aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/GPL-LICENSE.txt278
-rw-r--r--ui/MIT-LICENSE.txt20
-rw-r--r--ui/demos/functional/datepicker/debug.html21
-rw-r--r--ui/demos/functional/datepicker/demo/img/active-bg.gifbin89 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/ar.gifbin863 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/au.gifbin941 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/br.gifbin925 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/calendar.gifbin269 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/calendar2.gifbin1035 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/cn.gifbin856 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/dark-bg.gifbin85 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/hover-bg.gifbin89 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/id.gifbin840 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/ie.gifbin875 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/ke.gifbin948 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/lb.gifbin903 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/next.gifbin98 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/normal-bg.gifbin110 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/nz.gifbin925 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/prev.gifbin97 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/se.gifbin892 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/tab.pngbin1717 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/us.gifbin896 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/img/za.gifbin900 -> 0 bytes
-rw-r--r--ui/demos/functional/datepicker/demo/jquery.localisation.js64
-rw-r--r--ui/demos/functional/datepicker/demo/ui.datepicker.alt.css158
-rw-r--r--ui/demos/functional/datepicker/demo/ui.datepicker.demo.css53
-rw-r--r--ui/demos/functional/datepicker/demo/ui.datepicker.demo.js81
-rw-r--r--ui/demos/functional/datepicker/index.html887
-rw-r--r--ui/demos/real-world/accordion-drawers/images/caps.gifbin139 -> 0 bytes
-rw-r--r--ui/demos/real-world/accordion-drawers/images/sideboxlight_bg.gifbin86 -> 0 bytes
-rw-r--r--ui/demos/real-world/accordion-drawers/images/slider_handlebg.pngbin452 -> 0 bytes
-rw-r--r--ui/demos/real-world/accordion-drawers/index.html257
-rw-r--r--ui/demos/real-world/effects/demo.js65
-rw-r--r--ui/demos/real-world/effects/index.html120
-rw-r--r--ui/demos/real-world/effects/style.css36
-rw-r--r--ui/demos/real-world/image-cropper/img/img01.jpgbin84258 -> 0 bytes
-rw-r--r--ui/demos/real-world/image-cropper/img/img02.jpgbin112791 -> 0 bytes
-rw-r--r--ui/demos/real-world/image-cropper/img/img03.jpgbin59031 -> 0 bytes
-rw-r--r--ui/demos/real-world/image-cropper/img/img04.jpgbin54449 -> 0 bytes
-rw-r--r--ui/demos/real-world/image-cropper/img/img05.jpgbin92368 -> 0 bytes
-rw-r--r--ui/demos/real-world/image-cropper/index.html231
-rw-r--r--ui/demos/real-world/image-cropper/real-world.css104
-rw-r--r--ui/demos/real-world/layout/demo.css42
-rw-r--r--ui/demos/real-world/layout/demo.js97
-rw-r--r--ui/demos/real-world/layout/index.html94
-rw-r--r--ui/demos/real-world/layout/loader.gifbin4782 -> 0 bytes
-rw-r--r--ui/demos/real-world/layout/loader_bg.gifbin317 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010020.JPGbin59031 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010036.JPGbin54449 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010039.JPGbin92368 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010044.JPGbin84258 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010050.JPGbin112791 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010055.JPGbin25591 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010058.JPGbin46234 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010059.JPGbin37428 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010061.JPGbin59638 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/P1010063.JPGbin54692 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010020.JPGbin4735 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010036.JPGbin3996 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010039.JPGbin6783 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010044.JPGbin7084 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010050.JPGbin6418 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010055.JPGbin2645 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010058.JPGbin3727 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010059.JPGbin3287 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010061.JPGbin5062 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/img/thumbs/P1010063.JPGbin5042 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/index.html126
-rw-r--r--ui/demos/real-world/photo-manager/js/demo.js130
-rw-r--r--ui/demos/real-world/photo-manager/js/jquery.blockUI.js361
-rw-r--r--ui/demos/real-world/photo-manager/js/jquery.livequery.js250
-rw-r--r--ui/demos/real-world/photo-manager/theme/css/screen.css179
-rw-r--r--ui/demos/real-world/photo-manager/theme/img/body_wrap_bg.gifbin148 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/theme/img/header_bg.pngbin339 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/theme/img/photos_gold_32.gifbin1341 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/theme/img/search_16.gifbin541 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/theme/img/side_top.jpgbin985 -> 0 bytes
-rw-r--r--ui/demos/real-world/photo-manager/theme/img/trash_16.gifbin571 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_airport_express.jpgbin1211 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_airport_extreme.jpgbin1109 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_aperture20080212.jpgbin2208 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_apple_remote_desktop_20080115.jpgbin2234 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_cinema_display20071026.jpgbin4994 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_dot_mac_20080115.jpgbin4154 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_final_cut_express_20080115.jpgbin3464 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_final_cut_studio2_20080115.jpgbin4256 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_ilife_20080115.jpgbin4495 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_imac20071026.jpgbin5106 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_iwork_20080115.jpgbin3305 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_keyboards20070807.jpgbin3165 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_logic_express_20080115.jpgbin2896 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_logic_studio_20080115.jpgbin3391 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_mac_mini.jpgbin1094 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_mac_pro_20070622.jpgbin3406 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_macbook20071026.jpgbin3705 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_macbook_pro20071026.jpgbin4228 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_macbookair_20080115.jpgbin4921 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_macosx_20080115.jpgbin2610 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_macosx_server20071016.jpgbin3307 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_mighty_mouse.jpgbin1223 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_quicktime.jpgbin4057 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_shake_20080115.jpgbin3535 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_timecapsule_20080115.jpgbin1361 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_xsan_20080115.jpgbin2092 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_xserve.jpgbin1463 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/pb_xserve_raid.jpgbin2649 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/productbrowser_background_20070622.jpgbin5449 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/productbrowser_scrollbar_20070622.pngbin3842 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/images/productbrowser_scroller_20080115.pngbin1503 -> 0 bytes
-rw-r--r--ui/demos/real-world/product-slider/index.html185
-rw-r--r--ui/demos/real-world/range-interface/index.html130
-rw-r--r--ui/demos/real-world/splitpane/css/demo.css149
-rw-r--r--ui/demos/real-world/splitpane/images/bg_gradient.gifbin265 -> 0 bytes
-rw-r--r--ui/demos/real-world/splitpane/images/icons_2.pngbin3494 -> 0 bytes
-rw-r--r--ui/demos/real-world/splitpane/images/splitpane_handle-ew.gifbin114 -> 0 bytes
-rw-r--r--ui/demos/real-world/splitpane/images/splitpane_handle-sn.gifbin114 -> 0 bytes
-rw-r--r--ui/demos/real-world/splitpane/index.html96
-rw-r--r--ui/jquery-1.2.6.js3549
-rw-r--r--ui/source/effects.blind.js50
-rw-r--r--ui/source/effects.bounce.js79
-rw-r--r--ui/source/effects.clip.js54
-rw-r--r--ui/source/effects.core.js510
-rw-r--r--ui/source/effects.drop.js51
-rw-r--r--ui/source/effects.explode.js80
-rw-r--r--ui/source/effects.fold.js52
-rw-r--r--ui/source/effects.highlight.js49
-rw-r--r--ui/source/effects.pulsate.js56
-rw-r--r--ui/source/effects.scale.js180
-rw-r--r--ui/source/effects.shake.js58
-rw-r--r--ui/source/effects.slide.js51
-rw-r--r--ui/source/effects.transfer.js59
-rw-r--r--ui/source/i18n/ui.datepicker-am.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ar.js31
-rw-r--r--ui/source/i18n/ui.datepicker-bg.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ca.js22
-rw-r--r--ui/source/i18n/ui.datepicker-cs.js22
-rw-r--r--ui/source/i18n/ui.datepicker-da.js22
-rw-r--r--ui/source/i18n/ui.datepicker-de.js22
-rw-r--r--ui/source/i18n/ui.datepicker-es.js22
-rw-r--r--ui/source/i18n/ui.datepicker-fi.js24
-rw-r--r--ui/source/i18n/ui.datepicker-fr.js22
-rw-r--r--ui/source/i18n/ui.datepicker-he.js22
-rw-r--r--ui/source/i18n/ui.datepicker-hu.js22
-rw-r--r--ui/source/i18n/ui.datepicker-id.js22
-rw-r--r--ui/source/i18n/ui.datepicker-is.js22
-rw-r--r--ui/source/i18n/ui.datepicker-it.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ja.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ko.js22
-rw-r--r--ui/source/i18n/ui.datepicker-lt.js25
-rw-r--r--ui/source/i18n/ui.datepicker-lv.js24
-rw-r--r--ui/source/i18n/ui.datepicker-nl.js21
-rw-r--r--ui/source/i18n/ui.datepicker-no.js23
-rw-r--r--ui/source/i18n/ui.datepicker-pl.js22
-rw-r--r--ui/source/i18n/ui.datepicker-pt-BR.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ro.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ru.js22
-rw-r--r--ui/source/i18n/ui.datepicker-sk.js22
-rw-r--r--ui/source/i18n/ui.datepicker-sv.js22
-rw-r--r--ui/source/i18n/ui.datepicker-th.js22
-rw-r--r--ui/source/i18n/ui.datepicker-tr.js22
-rw-r--r--ui/source/i18n/ui.datepicker-ua.js22
-rw-r--r--ui/source/i18n/ui.datepicker-zh-CN.js22
-rw-r--r--ui/source/i18n/ui.datepicker-zh-TW.js23
-rw-r--r--ui/source/ui.accordion.js302
-rw-r--r--ui/source/ui.core.js289
-rw-r--r--ui/source/ui.datepicker.js1450
-rw-r--r--ui/source/ui.dialog.js445
-rw-r--r--ui/source/ui.draggable.js552
-rw-r--r--ui/source/ui.droppable.js283
-rw-r--r--ui/source/ui.resizable.js729
-rw-r--r--ui/source/ui.selectable.js266
-rw-r--r--ui/source/ui.slider.js424
-rw-r--r--ui/source/ui.sortable.js665
-rw-r--r--ui/source/ui.tabs.js595
-rw-r--r--ui/tests/accordion.html170
-rw-r--r--ui/tests/accordion.js78
-rw-r--r--ui/tests/all.html182
-rw-r--r--ui/tests/autodrag.html155
-rw-r--r--ui/tests/cursors/linux/auto.pngbin851 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/crosshair.pngbin413 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/default.pngbin851 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/e-resize.pngbin861 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/help.pngbin1279 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/move.pngbin710 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/n-resize.pngbin871 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/ne-resize.pngbin836 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/none.curbin2238 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/none.pngbin872 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/nw-resize.pngbin824 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/pointer.pngbin541 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/s-resize.pngbin871 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/se-resize.pngbin824 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/sw-resize.pngbin836 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/text.pngbin486 -> 0 bytes
-rw-r--r--ui/tests/cursors/linux/w-resize.pngbin861 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/auto.pngbin401 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/crosshair.pngbin341 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/default.pngbin401 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/e-resize.pngbin390 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/help.pngbin689 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/move.pngbin651 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/n-resize.pngbin434 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/ne-resize.pngbin440 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/none.curbin2238 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/none.pngbin872 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/nw-resize.pngbin452 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/pointer.pngbin675 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/s-resize.pngbin434 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/se-resize.pngbin452 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/sw-resize.pngbin440 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/text.pngbin436 -> 0 bytes
-rw-r--r--ui/tests/cursors/mac/w-resize.pngbin390 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/auto.pngbin724 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/crosshair.pngbin304 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/default.pngbin724 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/e-resize.pngbin714 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/help.pngbin1129 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/move.pngbin1035 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/n-resize.pngbin722 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/ne-resize.pngbin985 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/none.curbin2238 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/none.pngbin2847 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/nw-resize.pngbin993 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/pointer.pngbin1178 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/s-resize.pngbin722 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/se-resize.pngbin993 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/sw-resize.pngbin985 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/text.pngbin258 -> 0 bytes
-rw-r--r--ui/tests/cursors/win/w-resize.pngbin714 -> 0 bytes
-rw-r--r--ui/tests/draggable.html41
-rw-r--r--ui/tests/draggable.js494
-rw-r--r--ui/tests/images/click.pngbin1293 -> 0 bytes
-rw-r--r--ui/tests/images/test.jpgbin915 -> 0 bytes
-rw-r--r--ui/tests/jquery.useraction.js347
-rw-r--r--ui/tests/resizable.html41
-rw-r--r--ui/tests/resizable.js400
-rw-r--r--ui/tests/simulate/jquery.simulate.js141
-rw-r--r--ui/tests/slider.html33
-rw-r--r--ui/tests/slider.js110
-rw-r--r--ui/tests/ui.testmouse.js142
-rw-r--r--ui/themes/flora/flora.accordion.css39
-rw-r--r--ui/themes/flora/flora.all.css7
-rw-r--r--ui/themes/flora/flora.css2
-rw-r--r--ui/themes/flora/flora.datepicker.css179
-rw-r--r--ui/themes/flora/flora.dialog.css95
-rw-r--r--ui/themes/flora/flora.resizable.css20
-rw-r--r--ui/themes/flora/flora.slider.css11
-rw-r--r--ui/themes/flora/flora.tabs.css105
-rw-r--r--ui/themes/flora/i/accordion-left-act.pngbin249 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-left-over.pngbin174 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-left.pngbin174 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-middle-act.pngbin148 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-middle-over.pngbin122 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-middle.pngbin122 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-right-act.pngbin245 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-right-over.pngbin177 -> 0 bytes
-rw-r--r--ui/themes/flora/i/accordion-right.pngbin177 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-e.gifbin440 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-n.gifbin700 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-ne.gifbin353 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-nw.gifbin353 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-s.gifbin434 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-se.gifbin175 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-sw.gifbin175 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-title.gifbin238 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-titlebar-close-hover.pngbin2927 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-titlebar-close.pngbin2880 -> 0 bytes
-rw-r--r--ui/themes/flora/i/dialog-w.gifbin437 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-e.gifbin338 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-n.gifbin341 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-ne.gifbin124 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-nw.gifbin91 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-s.gifbin341 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-se.gifbin120 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-sw.gifbin175 -> 0 bytes
-rw-r--r--ui/themes/flora/i/resizable-w.gifbin339 -> 0 bytes
-rw-r--r--ui/themes/flora/i/slider-bg-1.pngbin204 -> 0 bytes
-rw-r--r--ui/themes/flora/i/slider-bg-2.pngbin326 -> 0 bytes
-rw-r--r--ui/themes/flora/i/slider-handle.gifbin176 -> 0 bytes
-rw-r--r--ui/themes/flora/i/tabs.pngbin263 -> 0 bytes
-rw-r--r--ui/themes/ui.datepicker.css207
-rw-r--r--ui/version.txt1
283 files changed, 0 insertions, 18813 deletions
diff --git a/ui/GPL-LICENSE.txt b/ui/GPL-LICENSE.txt
deleted file mode 100644
index 11dddd00e..000000000
--- a/ui/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/ui/MIT-LICENSE.txt b/ui/MIT-LICENSE.txt
deleted file mode 100644
index 965a83130..000000000
--- a/ui/MIT-LICENSE.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2007 John Resig, http://jquery.com/
-
-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/ui/demos/functional/datepicker/debug.html b/ui/demos/functional/datepicker/debug.html
deleted file mode 100644
index 91dab145b..000000000
--- a/ui/demos/functional/datepicker/debug.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html>
- <head>
- <title>Only core files for easy debug</title>
- <link rel="stylesheet" href="../../../themes/ui.datepicker.css" type="text/css" media="screen" title="default" charset="utf-8">
- </head>
- <body>
- <input type="text" name="testing" value="click" id="testing" />
-
- <!-- Include jQuery -->
- <script src="../../../../jquery/jquery-1.2.6.js" type="text/javascript" charset="utf-8"></script>
-
- <!-- Include UI Datepicker -->
- <script src="../../../source/ui.datepicker.js" type="text/javascript" charset="utf-8"></script>
-
- <script type="text/javascript" charset="utf-8">
- $(function(){
- $('#testing').datepicker();
- });
- </script>
- </body>
-</html> \ No newline at end of file
diff --git a/ui/demos/functional/datepicker/demo/img/active-bg.gif b/ui/demos/functional/datepicker/demo/img/active-bg.gif
deleted file mode 100644
index d608c5469..000000000
--- a/ui/demos/functional/datepicker/demo/img/active-bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/ar.gif b/ui/demos/functional/datepicker/demo/img/ar.gif
deleted file mode 100644
index f34c90f5c..000000000
--- a/ui/demos/functional/datepicker/demo/img/ar.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/au.gif b/ui/demos/functional/datepicker/demo/img/au.gif
deleted file mode 100644
index db005b4c7..000000000
--- a/ui/demos/functional/datepicker/demo/img/au.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/br.gif b/ui/demos/functional/datepicker/demo/img/br.gif
deleted file mode 100644
index 8b8bf147d..000000000
--- a/ui/demos/functional/datepicker/demo/img/br.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/calendar.gif b/ui/demos/functional/datepicker/demo/img/calendar.gif
deleted file mode 100644
index d0abaa7c0..000000000
--- a/ui/demos/functional/datepicker/demo/img/calendar.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/calendar2.gif b/ui/demos/functional/datepicker/demo/img/calendar2.gif
deleted file mode 100644
index 519a1fd4a..000000000
--- a/ui/demos/functional/datepicker/demo/img/calendar2.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/cn.gif b/ui/demos/functional/datepicker/demo/img/cn.gif
deleted file mode 100644
index 5482753d6..000000000
--- a/ui/demos/functional/datepicker/demo/img/cn.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/dark-bg.gif b/ui/demos/functional/datepicker/demo/img/dark-bg.gif
deleted file mode 100644
index 1dea48a8f..000000000
--- a/ui/demos/functional/datepicker/demo/img/dark-bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/hover-bg.gif b/ui/demos/functional/datepicker/demo/img/hover-bg.gif
deleted file mode 100644
index fbf94fc2c..000000000
--- a/ui/demos/functional/datepicker/demo/img/hover-bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/id.gif b/ui/demos/functional/datepicker/demo/img/id.gif
deleted file mode 100644
index d7f4ab8a3..000000000
--- a/ui/demos/functional/datepicker/demo/img/id.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/ie.gif b/ui/demos/functional/datepicker/demo/img/ie.gif
deleted file mode 100644
index 827c498d2..000000000
--- a/ui/demos/functional/datepicker/demo/img/ie.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/ke.gif b/ui/demos/functional/datepicker/demo/img/ke.gif
deleted file mode 100644
index e352177c7..000000000
--- a/ui/demos/functional/datepicker/demo/img/ke.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/lb.gif b/ui/demos/functional/datepicker/demo/img/lb.gif
deleted file mode 100644
index f204918fe..000000000
--- a/ui/demos/functional/datepicker/demo/img/lb.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/next.gif b/ui/demos/functional/datepicker/demo/img/next.gif
deleted file mode 100644
index be0959b1b..000000000
--- a/ui/demos/functional/datepicker/demo/img/next.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/normal-bg.gif b/ui/demos/functional/datepicker/demo/img/normal-bg.gif
deleted file mode 100644
index bdb506869..000000000
--- a/ui/demos/functional/datepicker/demo/img/normal-bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/nz.gif b/ui/demos/functional/datepicker/demo/img/nz.gif
deleted file mode 100644
index 86b89cb27..000000000
--- a/ui/demos/functional/datepicker/demo/img/nz.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/prev.gif b/ui/demos/functional/datepicker/demo/img/prev.gif
deleted file mode 100644
index 95d840f47..000000000
--- a/ui/demos/functional/datepicker/demo/img/prev.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/se.gif b/ui/demos/functional/datepicker/demo/img/se.gif
deleted file mode 100644
index 7301c598e..000000000
--- a/ui/demos/functional/datepicker/demo/img/se.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/tab.png b/ui/demos/functional/datepicker/demo/img/tab.png
deleted file mode 100644
index 01c8ab417..000000000
--- a/ui/demos/functional/datepicker/demo/img/tab.png
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/us.gif b/ui/demos/functional/datepicker/demo/img/us.gif
deleted file mode 100644
index 39c472e26..000000000
--- a/ui/demos/functional/datepicker/demo/img/us.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/img/za.gif b/ui/demos/functional/datepicker/demo/img/za.gif
deleted file mode 100644
index 197cbd888..000000000
--- a/ui/demos/functional/datepicker/demo/img/za.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/functional/datepicker/demo/jquery.localisation.js b/ui/demos/functional/datepicker/demo/jquery.localisation.js
deleted file mode 100644
index b11e37835..000000000
--- a/ui/demos/functional/datepicker/demo/jquery.localisation.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/* http://keith-wood.name/localisation.html
- Localisation assistance for jQuery v1.0.2.
- Written by Keith Wood (kbwood@iprimus.com.au) June 2007.
- Under the Creative Commons Licence http://creativecommons.org/licenses/by/3.0/
- Share or Remix it but please Attribute the author. */
-
-(function($) { // Hide scope, no $ conflict
-
-/* Load applicable localisation package(s) for one or more jQuery packages.
- Assumes that the localisations are named <base>-<lang>.js
- and loads them in order from least to most specific.
- For example, $.localise('jquery-calendar');
- with the browser set to 'en-US' would attempt to load
- jquery-calendar-en.js and jquery-calendar-en-US.js.
- Also accepts an array of package names to process.
- Optionally specify whether or not to include the base file,
- the desired language, and/or the timeout period, e.g.
- $.localise(['jquery-calendar', 'jquery-timeentry'],
- {loadBase: true; language: 'en-AU', timeout: 300}); */
-$.localise = function(pkg, settings) {
- var saveSettings = {async: $.ajaxSettings.async, timeout: $.ajaxSettings.timeout};
- $.ajaxSetup({async: false, timeout: (settings && settings.timeout ? settings.timeout : 500)});
- var localiseOne = function(pkg, lang) {
- if (settings && settings.loadBase) {
- $.getScript(pkg + '.js');
- }
- if (lang.length >= 2) {
- $.getScript(pkg + '-' + lang.substring(0, 2) + '.js');
- }
- if (lang.length >= 5) {
- $.getScript(pkg + '-' + lang.substring(0, 5) + '.js');
- }
- };
- var lang = normaliseLang(settings && settings.language ? settings.language : $.defaultLanguage);
- if (isArray(pkg)) {
- for (i = 0; i < pkg.length; i++) {
- localiseOne(pkg[i], lang);
- }
- }
- else {
- localiseOne(pkg, lang);
- }
- $.ajaxSetup(saveSettings);
-};
-
-/* Retrieve the default language set for the browser. */
-$.defaultLanguage = normaliseLang(navigator.language ? navigator.language /* Mozilla */ :
- navigator.userLanguage /* IE */);
-
-/* Ensure language code is in the format aa-AA. */
-function normaliseLang(lang) {
- lang = lang.replace(/_/, '-').toLowerCase();
- if (lang.length > 3) {
- lang = lang.substring(0, 3) + lang.substring(3).toUpperCase();
- }
- return lang;
-}
-
-/* Determine whether an object is an array. */
-function isArray(a) {
- return (a.constructor && a.constructor.toString().match(/\Array\(\)/));
-}
-
-})(jQuery);
diff --git a/ui/demos/functional/datepicker/demo/ui.datepicker.alt.css b/ui/demos/functional/datepicker/demo/ui.datepicker.alt.css
deleted file mode 100644
index d07a6e7bf..000000000
--- a/ui/demos/functional/datepicker/demo/ui.datepicker.alt.css
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Alternate UI date picker styles */
-#ui-datepicker-div, .ui-datepicker-inline {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 14px;
- padding: 0;
- margin: 0;
- background: #d8d8d8 url(../img/dark-bg.gif) repeat;
- color: #008;
- width: 220px;
-}
-#ui-datepicker-div {
- display: none;
- border: 1px solid #008;
- z-index: 9999; /*must have*/
-}
-.ui-datepicker-inline {
- float: left;
- display: block;
- border: 0;
-}
-.ui-datepicker-dialog {
- padding: 5px !important;
- border: 4px ridge #88c !important;
-}
-button.ui-datepicker-trigger {
- width: 25px;
-}
-img.ui-datepicker-trigger {
- margin: 2px;
- vertical-align: middle;
-}
-.ui-datepicker-prompt {
- float: left;
- padding: 2px;
- xbackground: #d8d8d8 url(../img/dark-bg.gif) repeat;
- background: transparent;
- color: #008;
-}
-* html .ui-datepicker-prompt {
- width: 185px;
-}
-.ui-datepicker-control, .ui-datepicker-links, .ui-datepicker-header, .ui-datepicker {
- clear: both;
- float: left;
- width: 100%;
-}
-.ui-datepicker-control, .ui-datepicker-links {
- font-weight: bold;
- font-size: 80%;
- letter-spacing: 1px;
-}
-
-.ui-datepicker-links label { /* disabled links */
- padding: 2px 5px;
- color: #88c;
-}
-.ui-datepicker-clear, .ui-datepicker-prev {
- float: left;
- width: 34%;
-}
-.ui-datepicker-current {
- float: left;
- width: 30%;
- text-align: center;
-}
-.ui-datepicker-close, .ui-datepicker-next {
- float: right;
- width: 34%;
- text-align: right;
-}
-.ui-datepicker-header {
- padding: 1px 0 3px;
-
- text-align: center;
- font-weight: bold;
- height: 1.3em;
-}
-.ui-datepicker-header select {
- background: #d8d8d8 url(../img/dark-bg.gif) repeat;
- color: #008;
- border: 0px;
- font-weight: bold;
-}
-.ui-datepicker {
- background: #f8f8f8 url(../img/normal-bg.gif) repeat;
- color: #008;
- text-align: center;
- font-size: 100%;
-}
-.ui-datepicker a {
- display: block;
- width: 100%;
-}
-.ui-datepicker-titleRow {
- background: #d8d8d8 url(../img/dark-bg.gif) repeat;
-}
-.ui-datepicker-weekEndCell {
- background: #d8d8d8 url(../img/dark-bg.gif) repeat;
-}
-.ui-datepicker-daysCellOver {
- background: #3c75c4 url(../img/active-bg.gif) repeat;
-}
-.ui-datepicker-unselectable {
- color: #88c;
-}
-.ui-datepicker-today {
- font-weight: bold;
-}
-.ui-datepicker-currentDay {
- background: #3c75c4 url(../img/active-bg.gif) repeat;
-}
-
-/* ________ CALENDAR LINKS _______
-
-** Reset link properties and then override them with !important */
-#ui-datepicker-div a, .ui-datepicker-inline a {
- cursor: pointer;
- margin: 0;
- padding: 0;
- background: none;
- color: #000;
-}
-.ui-datepicker-control a, .ui-datepicker-links a {
- padding: 2px 5px !important;
-}
-.ui-datepicker-control a:hover {
- background: #9dbae1 url(../img/hover-bg.gif) repeat !important;
-}
-.ui-datepicker-links a:hover, .ui-datepicker-titleRow a:hover {
- background: #9dbae1 url(../img/hover-bg.gif) repeat !important;
-}
-
-/* ___________ MULTIPLE MONTHS _________*/
-
-.ui-datepicker-multi .datepicker {
- border: 1px solid #008;
-}
-.ui-datepicker-oneMonth {
- float: left;
- width: 220px;
-}
-.ui-datepicker-newRow {
- clear: left;
-}
-
-/* ___________ IE6 IFRAME FIX ________ */
-
-.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/ui/demos/functional/datepicker/demo/ui.datepicker.demo.css b/ui/demos/functional/datepicker/demo/ui.datepicker.demo.css
deleted file mode 100644
index 2920d857f..000000000
--- a/ui/demos/functional/datepicker/demo/ui.datepicker.demo.css
+++ /dev/null
@@ -1,53 +0,0 @@
-#tab_menu1 { margin:0.5em 0 0 0; padding:0; font-size:1em; }
-.tab_group1 { clear:left; padding-top:0; display:none; }
-.demoLabel { float: left; width: 18em; }
-.ar_day { color: white !important; background: #eee url(img/ar.gif) no-repeat center !important; }
-.au_day { color: blue !important; background: #eee url(img/au.gif) no-repeat center !important; }
-.br_day { color: green !important; background: #eee url(img/br.gif) no-repeat center !important; }
-.cn_day { color: red !important; background: #eee url(img/cn.gif) no-repeat center !important; }
-.id_day { color: white !important; background: #eee url(img/id.gif) no-repeat center !important; }
-.ie_day { color: white !important; background: #eee url(img/ie.gif) no-repeat center !important; }
-.ke_day { color: red !important; background: #eee url(img/ke.gif) no-repeat center !important; }
-.lb_day { color: white !important; background: #eee url(img/lb.gif) no-repeat center !important; }
-.nz_day { color: blue !important; background: #eee url(img/nz.gif) no-repeat center !important; }
-.se_day { color: blue !important; background: #eee url(img/se.gif) no-repeat center !important; }
-.us_day { color: white !important; background: #eee url(img/us.gif) no-repeat center !important; }
-.za_day { color: green !important; background: #eee url(img/za.gif) no-repeat center !important; }
-code { font-size: 13px; font-family: Verdana, Arial, Helvetica, sans-serif; }
-pre { clear: both; padding-left: 2em; background: #eee; }
-#embedButton { width: 7em; }
-#embedButton + img { position: relative; left: -21px; top: -1px; }
-.tabs {
- list-style: none;
-}
-.tabs li {
- float: left;
-}
-.tabs li a {
- display:block;
- padding: 0.4em .75em;
- margin: 0;
- border-left: 1px solid #fff;
- border-right: 1px solid #ddd;
- cursor: pointer;
- cursor: hand;
- text-decoration: none;
- color: #eee;
- border-top: 1px solid #F9F9F9;
- background: #78A5CE;
-}
-.tabs li a:hover, .tabs li a.over {
- border-top: 1px solid #000;
- background: #333;
-}
-.tab_group1 h3 {
- font-weight: bold;
- margin-top:15px;
- border-bottom: 1px solid #ddd;
-}
-.nextFeature {
- margin-top: 15px;
-}
-ol li {
- margin-top: 1em;
-} \ No newline at end of file
diff --git a/ui/demos/functional/datepicker/demo/ui.datepicker.demo.js b/ui/demos/functional/datepicker/demo/ui.datepicker.demo.js
deleted file mode 100644
index 3d7d9b640..000000000
--- a/ui/demos/functional/datepicker/demo/ui.datepicker.demo.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// Initialise the date picker demonstrations
-$(document).ready(function () {
- // initialize tab interface
- tabs.init();
- // reset defaults to English
- $.datepicker.setDefaults($.datepicker.regional['']);
- // replace script tags with HTML code
- $(".demojs").each(function () {
- $(this).before( '<pre><code class="javascript">' +
- $(this).html().replace(/</g, '&lt;') + "</code></pre>" );
- eval( $(this).html() );
- });
- // Localization
- if ($.browser.safari)
- $('.languageSelect,.l10nDatepicker,#frFullFormat').attr({ disabled: 'disabled' });
- else
- $('.languageSelect').change(localise);
- // Stylesheets
- $('#altStyle').datepicker({buttonImage: 'demo/img/calendar2.gif',
- prevText: '<img src="demo/img/prev.gif" style="vertical-align: middle;"/> Prev',
- nextText: 'Next <img src="demo/img/next.gif" style="vertical-align: middle;"/>'});
- $('#button3').click(function() {
- $(this).datepicker('dialog', $('#altDialog').val(),
- setAltDateFromDialog, {prompt: 'Choose a date', speed: '',
- prevText: '<img src="demo/img/prev.gif" style="vertical-align: middle;"/> Prev',
- nextText: 'Next <img src="demo/img/next.gif" style="vertical-align: middle;"/>'});
- });
-});
-
-// Load and apply a localisation package for the date picker
-function localise() {
- var input = $('input', this.parentNode.parentNode);
- var date = $(input).datepicker('getDate');
- var language = $(this).val();
- $.localise('../../../source/i18n/ui.datepicker', {language: language});
- $(input).datepicker('change', $.datepicker.regional[language]);
- $.datepicker.setDefaults($.datepicker.regional['']); // Reset for general usage
- if (date) {
- $(input).datepicker('setDate', date);
- input.val($.datepicker.formatDate(
- $.datepicker.regional[language].dateFormat, date));
- }
-}
-
-// Demonstrate a callback from inline configuration
-function showDay(input) {
- var date = $(input).datepicker('getDate');
- $('#inlineDay').html(date ? $.datepicker.formatDate('DD', date) : 'blank');
-}
-
-// Display a date selected in a "dialog"
-function setAltDateFromDialog(date) {
- $('#altDialog').val(date);
-}
-
-// Custom Tabs written by Marc Grabanski
-var tabs =
-{
- init : function ()
- {
- // Setup tabs
- $("div[@class^=tab_group]").hide();
- $("div[@class^=tab_group]:first").show().id;
- $("ul[@id^=tab_menu] a:eq(0)").addClass('over');
-
- // Slide visible up and clicked one down
- $("ul[@id^=tab_menu] a").each(function(i){
- $(this).click(function () {
- $("ul[@id^=tab_menu] a.over").removeClass('over');
- $(this).addClass('over');
- $("div[@class^=tab_group]:visible").hide();
- $( $(this).attr("href") ).fadeIn();
- tabs.stylesheet = $(this).attr("href") == "#styles" ? 'alt' : 'default';
- $('link').each(function() {
- this.disabled = (this.title != '' && this.title != tabs.stylesheet);
- });
- return false;
- });
- });
- }
-}
diff --git a/ui/demos/functional/datepicker/index.html b/ui/demos/functional/datepicker/index.html
deleted file mode 100644
index 4b28d7e3a..000000000
--- a/ui/demos/functional/datepicker/index.html
+++ /dev/null
@@ -1,887 +0,0 @@
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>jQuery UI Datepicker</title>
-
- <!-- Include UI Datepicker CSS -->
- <link rel="stylesheet" href="../../../themes/ui.datepicker.css" type="text/css" media="screen" title="default" charset="utf-8">
-
- <!-- Include Demo Stylesheets -->
- <link rel="stylesheet" type="text/css" href="demo/ui.datepicker.alt.css" title="alt" id="alt" disabled="disabled"/>
- <link rel="stylesheet" type="text/css" href="demo/ui.datepicker.demo.css" />
-
- </head>
- <body>
- <div id="wrap">
- <div id="content">
- <ul id="tab_menu1" class="tabs">
- <li><a href="#default">Defaults</a></li>
- <li><a href="#invoke">Invocation</a></li>
- <li><a href="#keys">Keystrokes</a></li>
- <li><a href="#restrict">Restricting</a></li>
- <li><a href="#formats">Formats</a></li>
- <li><a href="#custom">Customize</a></li>
- <li><a href="#l10n">Localisation</a></li>
- <li style="clear: left;"><a href="#range">Date range</a></li>
- <li><a href="#misc1">Misc. 1</a></li>
- <li><a href="#misc2">Misc. 2</a></li>
- <li><a href="#change">Change Settings</a></li>
- <li><a href="#inline">Inline</a></li>
- <li><a href="#styles">Stylesheets</a></li>
- <li><a href="#compat">Compatibility</a></li>
- </ul>
- <div style="clear:left"></div>
- <div id="default" class="tab_group1 container" style="display:block">
- <h3>Defaults</h3>
- <p>A date picker can easily be added to an input field with default settings.</p>
- <p><span class="demoLabel">Default date picker:</span>
- <input type="text" size="30" value="click to show datepicker" id="defaultFocus"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#defaultFocus').datepicker();
-</script>
- <p><span class="demoLabel">IE select issue:</span>
- <select><option>Show how the date picker covers a select in IE</option></select></p>
- <p>The defaults are:</p>
- <ul>
- <li>Date picker appears on focus</li>
- <li>Text is in English</li>
- <li>Date format is mm/dd/yyyy</li>
- <li><em>Clear</em>/<em>Close</em> controls show at the top</li>
- <li>Month and year are selectable directly</li>
- <li>10 years before and after the selected year are shown</li>
- <li>Show a single month</li>
- <li>Select a single date</li>
- <li>Week starts on Sunday</li>
- <li>Day names are clickable to change the first day of the week</li>
- <li>Days in other months are not displayed</li>
- <li>No date restrictions</li>
- <li>Clicking elsewhere closes the date picker</li>
- </ul>
- <p>Processed fields are marked with a class of <code>hasDatepicker</code>
- and are not re-processed if targetted a second time.</p>
- <p>You can override the default settings that apply to all date picker instances.</p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$.datepicker.setDefaults({showOn: 'both', buttonImageOnly: true,
- buttonImage: 'demo/img/calendar.gif', buttonText: 'Calendar'});
-</script>
- </div>
- <div id="invoke" class="tab_group1 container">
- <h3>Invocation</h3>
- <p>The date picker can be invoked in a variety of ways, as shown below.
- Also shown is the use of an image only trigger,
- and how the controls and buttons appear when disabled.</p>
- <p><span class="demoLabel">Datepicker appears on focus:</span>
- <input type="text" size="10" id="invokeFocus"/>
- <input type="button" id="enableFocus" value="Disable"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#invokeFocus').datepicker({showOn: 'focus'});
-</script>
- <p><span class="demoLabel">Appears via text button:</span>
- <input type="text" size="10" id="invokeButton"/>
- <input type="button" id="enableButton" value="Disable"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#invokeButton').datepicker({showOn: 'button', buttonText: '...',
- buttonImage: '', buttonImageOnly: false});
-</script>
- <p style="clear:both"><span class="demoLabel">Appears both ways:</span>
- <input type="text" size="10" class="invokeBoth"/>
- <input type="button" id="enableBoth" value="Disable"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('.invokeBoth').datepicker({showOn: 'both', buttonImage: 'demo/img/calendar.gif', buttonImageOnly: true});
-</script>
- <p>You can embed the trigger image within the input area via CSS.</p>
- <p style="clear:both"><span class="demoLabel">Embedded button:</span>
- <input type="text" size="10" id="embedButton"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#embedButton').datepicker({showOn: 'button', buttonImage: 'demo/img/calendar.gif', buttonImageOnly: true});
-
-// CSS
-// #embedButton + img { position: relative; left: -21px; top: -1px; }
-</script>
- <p>Enable and disable datepicker with 'enable' and 'disable' commands.</p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#enableFocus').toggle(
- function () { this.value = 'Enable'; $('#invokeFocus').datepicker('disable'); },
- function () { this.value = 'Disable'; $('#invokeFocus').datepicker('enable'); });
-$('#enableButton').toggle(
- function () { this.value = 'Enable'; $('#invokeButton').datepicker('disable'); },
- function () { this.value = 'Disable'; $('#invokeButton').datepicker('enable'); });
-$('#enableBoth').toggle(
- function () { this.value = 'Enable'; $('.invokeBoth:first').datepicker('disable'); },
- function () { this.value = 'Disable'; $('.invokeBoth:first').datepicker('enable'); });
-</script>
- <p>The date picker can also be triggered externally for a particular input.</p>
- <p><span class="demoLabel">External trigger:</span>
- <button id="button1">Open date picker</button></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#button1').click(function() {
- $('#invokeFocus').datepicker('show');
-});
-</script>
- <p>Or even opened as a "dialog". If the <em>blockUI</em> plugin is available,
- it is used to create a modal dialog.</p>
- <p><span class="demoLabel">Date picker dialog:</span>
- <input type="text" size="10" id="invokeDialog" readonly="readonly"/>
- <button id="button2">Open dialog</button></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#button2').click(function() {
- $(this).datepicker('dialog', $('#invokeDialog').val(),
- setDateFromDialog, {prompt: 'Choose a date', speed: ''});
-});
-
-// Display a date selected in a "dialog"
-function setDateFromDialog(date) {
- $('#invokeDialog').val(date);
-}
-</script>
- </div>
- <div id="keys" class="tab_group1 container">
- <h3>Keystrokes</h3>
- <p>The date picker also responds to keystrokes entered in the input field.</p>
- <p><span class="demoLabel">Keyboard driven:</span>
- <input type="text" size="10" class="invokeBoth"/></p>
- <p>The relevant keystrokes are:</p>
- <ul>
- <li><span class="demoLabel">page up/down</span>previous/next month</li>
- <li><span class="demoLabel">ctrl+page up/down</span>previous/next year</li>
- <li><span class="demoLabel">ctrl+home</span>current month or open when closed</li>
- <li><span class="demoLabel">ctrl+left/right</span>previous/next day</li>
- <li><span class="demoLabel">ctrl+up/down</span>previous/next week</li>
- <li><span class="demoLabel">enter</span>accept the selected date</li>
- <li><span class="demoLabel">ctrl+end</span>close and erase the date</li>
- <li><span class="demoLabel">escape</span>close the date picker without selection</li>
- </ul>
- </div>
- <div id="restrict" class="tab_group1 container">
- <h3>Restricting</h3>
- <p>You can restrict the functionality of the date picker in various ways.
- The first example sets the first day of the week to Monday and prevents it from being
- changed, as well as preventing the month and year from being selected directly.</p>
- <p><span class="demoLabel">Restricted functionality:</span>
- <input type="text" size="10" id="restrictControls"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#restrictControls').datepicker({firstDay: 1, changeFirstDay: false,
- changeMonth: false, changeYear: false});
-</script>
- <p>You can also limit the range of dates selectable within the date picker.
- Here it's between 26-Jan-05 and 26-Jan-07.</p>
- <p><span class="demoLabel">Limited dates:</span>
- <input type="text" size="10" id="restrictDates"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#restrictDates').datepicker({minDate: new Date(2005, 1 - 1, 26),
- maxDate: new Date(2007, 1 - 1, 26)});
-</script>
- <p>Or set a range relative to today by specifying a number
- rather than an exact date, in this case in the coming year.</p>
- <p><span class="demoLabel">Limited dates (relative):</span>
- <input type="text" size="10" id="relativeDates"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#relativeDates').datepicker({minDate: 0, maxDate: 365});
-</script>
- <p>The relative dates can also be specified as a number and a period -
- 'd' for days, 'w' for weeks, 'm' for months, or 'y' for years.</p>
- <p><span class="demoLabel">Limited dates (extended):</span>
- <input type="text" size="10" id="extendedDates"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#extendedDates').datepicker({minDate: '-1d', maxDate: '6y'});
-</script>
- <p>Note that the range of selectable months and years changes appropriately. Also,
- note that the <em>Today</em> link is no longer available as today is not in the range.
- By default, the <em>Prev</em> and <em>Next</em> links are disabled if they are not
- applicable. You can override this to remove them instead, with the
- <code>hideIfNoPrevNext</code> setting.</p>
- </div>
- <div id="formats" class="tab_group1 container">
- <h3>Date Formats</h3>
- <p>You can set a variety of date formats for the date picker,
- with the default being 'mm/dd/yy'.</p>
- <p><span class="demoLabel">Medium format:</span>
- <input type="text" size="10" id="mediumFormat"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#mediumFormat').datepicker({dateFormat: 'M d, yy'});
-</script>
- <p><span class="demoLabel">Long format:</span>
- <input type="text" size="20" id="longFormat"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#longFormat').datepicker({dateFormat: 'MM d, yy'});
-</script>
- <p><span class="demoLabel">Full format:</span>
- <input type="text" size="30" id="fullFormat"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#fullFormat').datepicker({dateFormat: 'DD, MM d, yy'});
-</script>
- <p>Display dates without the century. The century is then determined based on the
- <code>shortYearCutoff</code> setting, which defaults to 10 years in the future ('+10').
- Year values less than or equal to this cutoff are interpreted as being in the current
- century, while those greater than the cutoff are taken to be in the previous century.</p>
- <p><span class="demoLabel">No century:</span>
- <input type="text" size="10" id="noCentury"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#noCentury').datepicker({dateFormat: 'dd/mm/y'});
-</script>
- <p><span class="demoLabel">ISO date format:</span>
- <input type="text" size="10" id="isoFormat"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#isoFormat').datepicker({dateFormat: 'yy-mm-dd'});
-</script>
- <p><span class="demoLabel">French full format:</span>
- <input type="text" size="30" id="frFullFormat"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#frFullFormat').datepicker($.datepicker.regional['fr']);
-$('#frFullFormat').datepicker('change', {dateFormat: 'DD, MM d, yy'});
-</script>
- <p>The formatting codes are:</p>
- <ul>
- <li><span class="demoLabel">d</span>day of month (no leading zero)</li>
- <li><span class="demoLabel">dd</span>day of month (two digit)</li>
- <li><span class="demoLabel">D</span>day name short</li>
- <li><span class="demoLabel">DD</span>day name long</li>
- <li><span class="demoLabel">m</span>month of year (no leading zero)</li>
- <li><span class="demoLabel">mm</span>month of year (two digit)</li>
- <li><span class="demoLabel">M</span>month name short</li>
- <li><span class="demoLabel">MM</span>month name long</li>
- <li><span class="demoLabel">y</span>year (two digit)</li>
- <li><span class="demoLabel">yy</span>year (four digit)</li>
- <li><span class="demoLabel">'...'</span>literal text</li>
- <li><span class="demoLabel">''</span>single quote</li>
- </ul>
- </div>
- <div id="custom" class="tab_group1 container">
- <h3>Customize</h3>
- <p>You can customize the selectability and/or appearance of individual days
- by setting a callback function that accepts a date and returns an array
- with the first entry being true/false for selectability and the second
- entry being a CSS class to apply (or '' for none). One appropriate
- function is built-in that prevents the selection of days on weekends.</p>
- <p><span class="demoLabel">No weekends:</span>
- <input type="text" size="10" id="noWeekends"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#noWeekends').datepicker({beforeShowDay: $.datepicker.noWeekends});
-</script>
- <p>Or you can provide your own function. The one below highlights and
- prevents selection of a set of national days.</p>
- <p><span class="demoLabel">National days:</span>
- <input type="text" size="10" id="nationalDays"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#nationalDays').datepicker({beforeShowDay: nationalDays});
-
-// Highlight certain national days on the calendar
-var natDays = [[1, 26, 'au'], [2, 6, 'nz'], [3, 17, 'ie'], [4, 27, 'za'], [5, 25, 'ar'], [6, 6, 'se'],
- [7, 4, 'us'], [8, 17, 'id'], [9, 7, 'br'], [10, 1, 'cn'], [11, 22, 'lb'], [12, 12, 'ke']];
-
-function nationalDays(date) {
- for (i = 0; i < natDays.length; i++) {
- if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) {
- return [false, natDays[i][2] + '_day'];
- }
- }
- return [true, ''];
-}
-</script>
- <p>With CSS like the following:</p>
-<pre><code>.au_day { color: blue !important; background: #eee url(au.gif) no-repeat center !important; }</code></pre>
- </div>
- <div id="l10n" class="tab_group1 container">
- <h3>Localisation</h3>
- <p>You can localise the date picker for other languages and regional differences.
- The date picker defaults to English with a date format of MM/DD/YYYY,
- but you can easily translate the text into another language and date format.</p>
- <p><span class="demoLabel">
- <select class="languageSelect">
- <option value="zh-CN">&#31616;&#20307;&#20013;&#25991; (Chinese Simplified)</option>
- <option value="zh-TW">&#31777;&#39636;&#20013;&#25991; (Chinese Traditional)</option>
- <option value="bg">&#1073;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080; &#1077;&#1079;&#1080;&#1082; (Bulgarian)</option>
- <option value="ca">Catal&agrave; (Catalan)</option>
- <option value="cs">&#268;e&#353;tina (Czech)</option>
- <option value="da">Dansk (Danish)</option>
- <option value="de">Deutsch (German)</option>
- <option value="es">Espa&ntilde;ol (Spanish)</option>
- <option value="fr" selected="selected">Fran&ccedil;ais (French)</option>
- <option value="ko">&#54620;&#44397;&#50612; (Korean)</option>
- <option value="is">&Iacute;slenska (Icelandic)</option>
- <option value="it">Italiano (Italian)</option>
- <option value="hu">Magyar (Hungarian)</option>
- <option value="nl">Nederlands (Dutch)</option>
- <option value="ja">&#26085;&#26412;&#35486; (Japanese)</option>
- <option value="lt">lietuvi&#371; kalba (Lithuanian)</option>
- <option value="no">Norsk (Norwegian)</option>
- <option value="th">Phasa thai (Thai)</option>
- <option value="pl">Polski (Polish)</option>
- <option value="pt-BR">Portugu&ecirc;s (Portuguese)</option>
- <option value="ro">Rom&acirc;n&#259; (Romanian)</option>
- <option value="ru">&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081; (Russian)</option>
- <option value="sk">Sloven&#269;ina (Slovak)</option>
- <option value="fi">suomi (Finnish)</option>
- <option value="sv">Svenska (Swedish)</option>
- <option value="tr">T&uuml;rk&ccedil;e (Turkish)</option>
- </select>:</span>
- <input type="text" size="10" id="l10nDatepicker"/></p>
- <p>The presentation is slightly different for right-to-left languages.</p>
- <p><span class="demoLabel">
- <select class="languageSelect">
- <option value="he" selected="selected">&#1506;&#1489;&#1512;&#1497;&#1514; (Hebrew)</option>
- </select>:</span>
- <input type="text" size="10" id="rtlDatepicker"/></p>
- <p>You need to load the appropriate language package, which
- adds a language set ($.datepicker.regional[langCode]) and
- automatically sets this language as the default for all date pickers.</p>
-<pre><code class="html">&lt;script type="text/javascript" src="ui.datepicker-fr.js">&lt;/script></code></pre>
- <p>Thereafter, if desired, you can restore the original language settings.</p>
-<pre><code class="javascript">$.datepicker.setDefaults($.datepicker.regional['']);</code></pre>
- <p>And then configure the language per date picker instance.</p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#l10nDatepicker').datepicker($.extend({showStatus: true}, $.datepicker.regional['fr']));
-$('#rtlDatepicker').datepicker($.extend({showStatus: true}, $.datepicker.regional['he']));
-</script>
- <p><strong>Localisation packages:</strong></p>
- <p>Localisation packages can be found below under <a href="#documentation">Settings and Documentation</a>.</p>
- </div>
- <div id="range" class="tab_group1 container">
- <h3>Date Range</h3>
- <p>Use a custom field settings function to create a date range control:
- two date fields, each restricting the other. The function takes an
- input field as an argument and returns a settings object (anonymous).</p>
- <p><span class="demoLabel">Date range:</span>
- <input type="text" size="10" class="dateRange" id="dFrom"/> to
- <input type="text" size="10" class="dateRange" id="dTo"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('.dateRange').datepicker({beforeShow: customRange});
-
-// Customize two date pickers to work as a date range
-function customRange(input) {
- return {minDate: (input.id == 'dTo' ? $('#dFrom').datepicker('getDate') : null),
- maxDate: (input.id == 'dFrom' ? $('#dTo').datepicker('getDate') : null)};
-}
-</script>
- <p>Select a date range on one date picker, first click is the start date and second click is the end date.
- The last example show six months in two rows of three months
- with <i>Previous</i> and <i>Next</i> moving three months at a time.</p>
- <p><span class="demoLabel">Date range:</span>
- <input type="text" size="25" id="rangeSelect"/></p>
-
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#rangeSelect').datepicker({rangeSelect: true});
-</script>
- <p><span class="demoLabel">Two months with range select:</span>
- <input type="text" size="25" id="rangeSelect2Months"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#rangeSelect2Months').datepicker({rangeSelect: true, numberOfMonths: 2});
-</script>
- <p><span class="demoLabel">Six months with range select:</span>
- <input type="text" size="25" id="rangeSelect6Months"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#rangeSelect6Months').datepicker({rangeSelect: true, numberOfMonths: [2, 3],
- stepMonths: 3, prevText: '&lt;&lt; Previous Months', nextText: 'Next Months &gt;&gt;'});
-</script>
- </div>
- <div id="misc1" class="tab_group1 container">
- <h3>Miscellaneous 1</h3>
- <p>Set the date shown when first opening the date picker. The default is today.</p>
- <p><span class="demoLabel">Open at 01-Jan-2007:</span>
- <input type="text" size="10" id="openDateJan01"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#openDateJan01').datepicker({defaultDate: new Date(2007, 1 - 1, 1)});
-</script>
- <p><span class="demoLabel">Open at 7 days from today:</span>
- <input type="text" size="10" id="openDatePlus7"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#openDatePlus7').datepicker({defaultDate: +7});
-</script>
- <p>Or specify a period from today - 'd' for days,
- 'w' for weeks, 'm' for months, or 'y' for years.</span>
- <p><span class="demoLabel">Open at 2 weeks from today:</span>
- <input type="text" size="10" id="openDate2Weeks"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#openDate2Weeks').datepicker({defaultDate: '2w'});
-</script>
- <p>Show the weeks of the year. Defaults to the ISO 8601 definition (weeks start
- on Mondays and the first week of the year contains January 4). Change the
- week calculation by setting <code>calculateWeek</code> to a function that
- takes a date as a parameter and returns the number of the week.</p>
- <p><span class="demoLabel">Show week of the year:</span>
- <input type="text" size="10" id="showWeeks"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#showWeeks').datepicker({showWeeks: true, firstDay: 1, changeFirstDay: false, showOtherMonths: true});
-</script>
- <p>Additional settings let you move the <em>Clear</em>/<em>Close</em> controls
- to the bottom, hide the <em>Clear</em> control to make the date mandatory,
- display the days in other months (non-selectable),
- and show a status bar (with a custom display for today).
- Callback functions are also added to operate when a date
- is selected and when the datepicker is closed.
- If no <code>onSelect</code> callback is specified, the
- <code>onchange</code> event of the input field is triggered.</p>
- <p><span class="demoLabel">Additional settings:</span>
- <input type="text" size="10" id="addSettings"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#addSettings').datepicker({
- closeAtTop: false,
- mandatory: true,
- showOtherMonths: true,
- showStatus: true,
- statusForDate: highlightToday,
- onSelect: alertDate, // invoke alertDate function
- onClose: function(date) { alert('Closed with ' + date); }
-});
-
-// Demonstrate the callback on select
-function alertDate(date) {
- alert('The date is ' + date);
-}
-
-// Demonstrate the callback for date status
-function highlightToday(date, inst) {
- var today = new Date();
- today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
- return $.datepicker.dateStatus(date, inst) +
- (today.getTime() == date.getTime() ? ' (today)' : '');
-}
-</script>
- </div>
- <div id="misc2" class="tab_group1 container">
- <h3>Miscellaneous 2</h3>
- <p>Hide the datepicker on demand (press <em>alt-h</em> here) or
- remove the datepicker altogether if you've finished with it.</p>
- <p><span class="demoLabel">Remove popup datepicker:</span>
- <input type="text" size="10" id="hideDatepicker" class="removeDatepicker"/>&nbsp;
- <button id="removeButton">Remove</button></p>
- <p><span class="demoLabel">Remove inline datepicker:</span>
- <span class="removeDatepicker"></span></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-var opts = {beforeShowDay: $.datepicker.noWeekends};
-$('.removeDatepicker').datepicker(opts);
-$('#hideDatepicker').keypress(function(e) {
- if (e.altKey && (e.charCode || e.keyCode) == 104) {
- $('#hideDatepicker').datepicker('hide');
- }
-});
-$('#removeButton').toggle(function() {
- $(this).text('Re-attach');
- $('.removeDatepicker').datepicker('destroy');
- },
- function() {
- $(this).text('Remove');
- $('.removeDatepicker').datepicker(opts);
- }
-);
-</script>
- <p><strong>(Advanced Technique)</strong><br />Connect the date picker to linked drop-downs. You still need an input field,
- but it is hidden following the drop-downs.</p>
- <p><span class="demoLabel">Linked drop-downs:</span>
- <select id="selectMonth"><option value="01">Jan</option><option value="02">Feb</option>
- <option value="03">Mar</option><option value="04">Apr</option>
- <option value="05">May</option><option value="06">Jun</option>
- <option value="07">Jul</option><option value="08">Aug</option>
- <option value="09">Sep</option><option value="10">Oct</option>
- <option value="11">Nov</option><option value="12">Dec</option></select>
- <select id="selectDay"><option value="01">1</option><option value="02">2</option>
- <option value="03">3</option><option value="04">4</option>
- <option value="05">5</option><option value="06">6</option>
- <option value="07">7</option><option value="08">8</option>
- <option value="09">9</option><option value="10">10</option>
- <option value="11">11</option><option value="12">12</option>
- <option value="13">13</option><option value="14">14</option>
- <option value="15">15</option><option value="16">16</option>
- <option value="17">17</option><option value="18">18</option>
- <option value="19">19</option><option value="20">20</option>
- <option value="21">21</option><option value="22">22</option>
- <option value="23">23</option><option value="24">24</option>
- <option value="25">25</option><option value="26">26</option>
- <option value="27">27</option><option value="28">28</option>
- <option value="29">29</option><option value="30">30</option>
- <option value="31">31</option></select>
- <select id="selectYear"><option value="2001">2001</option><option value="2002">2002</option>
- <option value="2003">2003</option><option value="2004">2004</option>
- <option value="2005">2005</option><option value="2006">2006</option>
- <option value="2007">2007</option><option value="2008">2008</option>
- <option value="2009">2009</option><option value="2010">2010</option></select>
- <input type="hidden" size="10" id="linkedDates" disabled="disabled"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#linkedDates').datepicker({
- minDate: new Date(2001, 1 - 1, 1),
- maxDate: new Date(2010, 12 - 1, 31),
- beforeShow: readLinked,
- onSelect: updateLinked
-});
-
-// Prepare to show a date picker linked to three select controls
-function readLinked() {
- $('#linkedDates').val(
- $('#selectMonth').val() + '/' +
- $('#selectDay').val() + '/' +
- $('#selectYear').val()
- );
- return {};
-}
-
-// Update three select controls to match a date picker selection
-function updateLinked(date) {
- $('#selectMonth').val(date.substring(0, 2));
- $('#selectDay').val(date.substring(3, 5));
- $('#selectYear').val(date.substring(6, 10));
-}
-
-$('#selectMonth, #selectYear').change(checkLinkedDays);
-
-// Prevent selection of invalid dates through the select controls
-function checkLinkedDays() {
- var daysInMonth = 32 - new Date($('#selectYear').val(),
- $('#selectMonth').val() - 1, 32).getDate();
- $('#selectDay option').attr('disabled', '');
- $('#selectDay option:gt(' + (daysInMonth - 1) +')').attr('disabled', 'disabled');
- if ($('#selectDay').val() > daysInMonth) {
- $('#selectDay').val(daysInMonth);
- }
-}
-</script>
- </div>
- <div id="change" class="tab_group1 container">
- <h3>Changing Settings</h3>
- <p>If necessary, the datepicker settings for an input (or set of inputs)
- can be changed on the fly. As an example, here we change the
- animation and speed at which the datepicker appears.</p>
- <p><span class="demoLabel">Display animation and speed:</span>
- <select id="animSelector">
- <option value="show">show</option>
- <option value="fadeIn">fade in</option>
- <option value="slideDown">slide down</option>
- </select>
- <select id="speedSelector">
- <option value="">immediate</option>
- <option value="slow">slow</option>
- <option value="medium" selected="selected">medium</option>
- <option value="fast">fast</option>
- </select>
- </p>
- <p><span class="demoLabel">Change datepicker:</span>
- <input type="text" size="10" id="changeDP"/></p>
- <p>When the option in the select changes, the following function is called:</p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#changeDP').datepicker();
-// Change the datepicker to selected speed.
-$('#animSelector,#speedSelector').change(function() {
- $('#changeDP').datepicker('change', {showAnim: $('#animSelector').val(),
- speed: $('#speedSelector').val()});
-});
-</script>
- <p>Date pickers can also be configured inline.
- Add attributes to the input control with the namespace "date:"
- corresponding to the date picker properties.
- The attribute values are evaluated as JavaScript.</p>
- <p><span class="demoLabel">Inline configuration 1:</span>
- <input type="text" size="10" class="inlineConfig" onchange="showDay(this);"
- date:closeAtTop="false" date:firstDay="1" date:appendText="which is a"/>
- <span id="inlineDay">blank</span></p>
- <p><span class="demoLabel">Inline configuration 2:</span>
- <input type="text" size="10" class="inlineConfig"
- date:minDate="new Date(2007, 1 - 1, 1)" date:maxDate="new Date(2007, 12 - 1, 31)"/></p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-/* HTML Markup for inline configuration
-
-Example #1:
-<input type="text" size="10" class="inlineConfig" onchange="showDay(this);"
- date:closeAtTop="false" date:firstDay="1" date:appendText="which is a" />
-
-Example #2:
-<input type="text" size="10" class="inlineConfig"
- date:minDate="new Date(2007, 1 - 1, 1)" date:maxDate="new Date(2007, 12 - 1, 31)"/>
-*/
-
-// Invoke inline configured datepickers
-$('.inlineConfig').datepicker();
-</script>
- </div>
- <div id="inline" class="tab_group1 container">
- <h3>Inline</h3>
- <p>The date picker can be used inline rather than as a popup.
- Use inline mode by attaching the datepicker to a span or div element.</p>
- <span id="inlineDemo"></span>
- <div style="clear:both;height:1em"></div>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-// HTML <span id="inlineDemo"></span>
-$('#inlineDemo').datepicker({
- onSelect: function(date) {
- alert(date);
- }
-});
-</script>
- <p>Show a number of months at once and set the range directly.</p>
- <p>Inline range with two months:</p>
- <div style="clear: both">
- <span id="rangeInline"></span>
- </div>
- <p style="clear: both; padding-top: 0.5em;">
- <span>Selected range is:</span>&nbsp;&nbsp;
- <input type="text" size="25" id="inlineRange" readonly="readonly"/>
- </p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-$('#rangeInline').datepicker({rangeSelect: true, rangeSeparator: ' to ',
- numberOfMonths: 2, onSelect: updateInlineRange});
-$('#rangeInline').find('div:first').width(370); // Unfortunately not automatic
-
-// Display the date range from a multi-month inline date picker
-function updateInlineRange(dateStr) {
- var dates = $('#rangeInline').datepicker('getDate');
- var dateFormat = $.datepicker.regional[''].dateFormat;
- $('#inlineRange').val(dateStr ? dateStr :
- $.datepicker.formatDate(dateFormat, dates[0]) + ' to ' +
- $.datepicker.formatDate(dateFormat, dates[1]));
-}
-</script>
- <p><strong>(Advanced Technique)</strong><br />
- Set initial value of inline date range to one week before and after today's date.
- Set the text field to current selected date.</p>
- <p>
- <button type="button" id="setInlineRange">Set Inline Range to +and- one week</button>
- </p>
-<script type="text/jsdemo" charset="utf-8" class="demojs">
-var nextWeek = new Date();
-nextWeek.setDate(nextWeek.getDate() + 7);
-
-var lastWeek = new Date();
-lastWeek.setDate(lastWeek.getDate() - 7);
-
-$('#setInlineRange').click(function() {
- // Set Inline Date Range Selection
- $('#rangeInline').datepicker('setDate', lastWeek, nextWeek);
-
- // Update text field with current date selections
- var dates = $('#rangeInline').datepicker('getDate');
- var dateFormat = $.datepicker.regional[''].dateFormat;
- $('#inlineRange').val($.datepicker.formatDate(dateFormat, dates[0]) + ' to ' +
- $.datepicker.formatDate(dateFormat, dates[1]));
-});
-</script>
- </div>
- <div id="styles" class="tab_group1 container">
- <h3>Stylesheets</h3>
- <p>The date picker can be formatted through the use of a stylesheet.
- The default stylesheet is used in the rest of this demo
- with an alternate one used here.</p>
- <p><span class="demoLabel">Alternate style:</span>
- <input type="text" size="10" id="altStyle"/></p>
- <p><span class="demoLabel">In a dialog:</span>
- <input type="text" size="10" id="altDialog" readonly="readonly"/>
- <button id="button3">Open dialog</button></p>
- <p>The basic HTML structure of the date picker is shown below:</p>
-<pre><code class="html">&lt;div id="datepicker_div" class="datepicker_multi">
- &lt;div class="datepicker_control">
- &lt;div class="datepicker_clear">&lt;a>Clear&lt;/a>&lt;/div>
- &lt;div class="datepicker_close">&lt;a>Close&lt;/a>&lt;/div>
- &lt;/div>
- &lt;div class="datepicker_links">
- &lt;div class="datepicker_prev">&lt;a>&amp;lt;Prev&lt;/a>&lt;/div>
- &lt;div class="datepicker_current">&lt;a>Today&lt;/a>&lt;/div>
- &lt;div class="datepicker_next">&lt;a>Next&amp;gt;&lt;/a>&lt;/div>
- &lt;/div>
- &lt;div class="datepicker_oneMonth datepicker_newRow">
- &lt;div class="datepicker_header">
- &lt;select class="datepicker_newMonth">&lt;/select>
- &lt;select class="datepicker_newYear">&lt;/select>
- &lt;/div>
- &lt;table class="datepicker" cellpadding="0" cellspacing="0">
- &lt;thead>
- &lt;tr class="datepicker_titleRow">
- &lt;td>&lt;a>Su&lt;/a>&lt;/td>&lt;td>&lt;a>Mo&lt;/a>&lt;/td>...
- &lt;/tr>
- &lt;/thead>
- &lt;tbody>
- &lt;tr class="datepicker_daysRow">
- &lt;td class="datepicker_daysCell datepicker_weekEndCell
- datepicker_otherMonth datepicker_unselectable">31&lt;/td>
- &lt;td class="datepicker_daysCell">&lt;a>1&lt;/a>&lt;/td>
- &lt;td class="datepicker_daysCell datepicker_daysCellOver">&lt;a>2&lt;/a>&lt;/td>
- &lt;td class="datepicker_daysCell datepicker_daysCellOver datepicker_currentDay">&lt;a>3&lt;/a>&lt;/td>
- &lt;td class="datepicker_daysCell datepicker_today">&lt;a>4&lt;/a>&lt;/td>
- ...
- &lt;/tr>
- ...
- &lt;/tbody>
- &lt;/table>
- &lt;/div>
- &lt;div class="datepicker_oneMonth">
- ...
- &lt;/div>
- &lt;div style="clear: both;">&lt;/div>
-&lt;/div></code></pre>
- </div>
- <div id="compat" class="tab_group1 container">
- <h3>Compatibility</h3>
- <h4>v3.3 to v3.4</h4>
- <p>The jQuery UI interfaces changed again, so here's another compatibility module.</p>
- <p>Users of v3.3 of the datepicker should use the following
- header code to work with their existing implementation:</p>
-<pre><code class="html">&lt;link rel="stylesheet" type="text/css" href="<b>ui.datepicker.css</b>"/&gt;
-&lt;script type="text/javascript" src="<b>ui.datepicker.js</b>"&gt;&lt;/script&gt;
-&lt;script type="text/javascript" src="<b>ui.datepicker.compatibility-3.3.js</b>"&gt;&lt;/script&gt;</code></pre>
- <p>Download the <a href="compatibility/ui.datepicker.compatibility-3.3.js" target="_blank">ui.datepicker.compatibility-3.3.js</a> module.</p>
- <p>To migrate fully, the following steps need to be taken:</p>
- <ul>
- <li>Replace references to the <code>$(selector).attachDatepicker(...)</code>
- function with <code>$(selector).datepicker(...)</code>.</li>
- <li>Replace references to the <code>$(selector).removeDatepicker()</code>
- function with <code>$(selector).datepicker('destroy')</code>.</li>
- <li>Replace references to the <code>$(selector).datepicker.changDatepicker(...)</code>
- function with <code>$(selector).datepicker('change', ...)</code>.</li>
- <li>Replace references to the <code>$(selector).datepicker.enableDatepicker()</code>
- function with <code>$(selector).datepicker('enable')</code>.</li>
- <li>Replace references to the <code>$(selector).disableDatepicker()</code>
- function with <code>$(selector).datepicker('disable')</code>.</li>
- <li>Replace references to the <code>$(selector).isDisabledDatepicker()</code>
- function with <code>$(selector).datepicker('isDisabled')</code>.</li>
- <li>Replace references to the <code>$(selector).showDatepicker()</code>
- function with <code>$(selector).datepicker('show')</code>.</li>
- <li>Replace references to the <code>$.datepicker.hideDatepicker()</code>
- function with <code>$(selector).datepicker('hide')</code>.</li>
- <li>Replace references to the <code>$(selector).getDatepickerDate()</code>
- function with <code>$(selector).datepicker('getDate')</code>.</li>
- <li>Replace references to the <code>$(selector).setDatepickerDate(...)</code>
- function with <code>$(selector).datepicker('setDate', ...)</code>.</li>
- </ul>
- <p>For example, this old style code:</p>
-<pre><code class="javascript">$('inputs').<b>attachDatepicker</b>(...);
-$('inputs').<b>changeDatepicker</b>(...);</code></pre>
- <p>becomes:</p>
-<pre><code class="javascript">$('inputs').<b>datepicker</b>(...);
-$('inputs').<b>datepicker('change',</b> ...);</code></pre>
-
- <h4>v3.2 to v3.4</h4>
- <p>To align the datepicker more closely with other jQuery UI components,
- further changes were made in v3.3, resulting in another compatibility module.</p>
- <p>Users of v3.2 of the datepicker should use the following
- header code to work with their existing implementation:</p>
-<pre><code class="html">&lt;link rel="stylesheet" type="text/css" href="<b>ui.datepicker.css</b>"/&gt;
-&lt;script type="text/javascript" src="<b>ui.datepicker.js</b>"&gt;&lt;/script&gt;
-&lt;script type="text/javascript" src="<b>ui.datepicker.compatibility-3.2.js</b>"&gt;&lt;/script&gt;</code></pre>
- <p>Download the <a href="compatibility/ui.datepicker.compatibility-3.2.js" target="_blank">ui.datepicker.compatibility-3.2.js</a> module.</p>
- <p>To migrate fully, the following steps need to be taken:</p>
- <ul>
- <li>Replace references to the <code>$.datepicker.reconfigureFor(selector, ...)</code>
- function with <code>$(selector).datepicker('change', ...)</code>.</li>
- <li>Replace references to the <code>$.datepicker.enableFor(selector)</code>
- function with <code>$(selector).datepicker('enable')</code>.</li>
- <li>Replace references to the <code>$.datepicker.disableFor(selector)</code>
- function with <code>$(selector).datepicker('disable')</code>.</li>
- <li>Replace references to the <code>$.datepicker.isDisabled(selector)</code>
- function with <code>$(selector).datepicker('isDisabled')</code>.</li>
- <li>Replace references to the <code>$.datepicker.showFor(selector)</code>
- function with <code>$(selector).datepicker('show')</code>.</li>
- <li>Replace references to the <code>$.datepicker.getDateFor(selector)</code>
- function with <code>$(selector).datepicker('getDate')</code>.</li>
- <li>Replace references to the <code>$.datepicker.setDateFor(selector, ...)</code>
- function with <code>$(selector).datepicker('setDate', ...)</code>.</li>
- </ul>
- <p>For example, this old style code:</p>
-<pre><code class="javascript">$.<b>datepicker.reconfigureFor</b>('inputs', {...});</code></pre>
- <p>becomes:</p>
-<pre><code class="javascript">$('inputs').<b>datepicker('change',</b> {...});</code></pre>
-
- <h4>v2.x to v3.3</h4>
- <p>The date picker has been refactored to better fit
- within the <a href="http://ui.jquery.com">jQuery UI</a> project.
- This has involved renaming the main function and some properties,
- resulting in current uses of the plugin no longer functioning correctly.
- To assist in the transition to the new format a compatibility
- plugin is also provided, allowing current code to continue
- to operate with minimal changes.</p>
- <p>Existing users of v2 of the calendar should use the following
- header code to work with their existing implementation:</p>
-<pre><code class="html">&lt;link rel="stylesheet" type="text/css" href="<b>ui.datepicker.css</b>"/&gt;
-&lt;script type="text/javascript" src="<b>ui.datepicker.js</b>"&gt;&lt;/script&gt;
-&lt;script type="text/javascript" src="<b>jquery-calendar-compatibility.js</b>"&gt;&lt;/script&gt;</code></pre>
- <p>Download the <a href="compatibility/jquery-calendar-compatibility.js" target="_blank">jquery-calendar-compatibility.js</a> module.</p>
- <p>To migrate fully, the following steps need to be taken:</p>
- <ul>
- <li>Replace references to the <code>jquery-calendar*</code>
- files with <code>ui.datepicker*</code>.</li>
- <li>Replace references to the <code>popUpCal</code>
- object with <code>$.datepicker</code>.</li>
- <li>Replace references to the <code>calendar</code>
- function with <code>datepicker</code>.</li>
- <li>Replace references to the <code>autoPopUp</code>
- setting with <code>showOn</code>.</li>
- <li>Replace references to the <code>fieldSettings</code>
- setting with <code>beforeShow</code>.</li>
- <li>Replace references to the <code>customDate</code>
- setting with <code>beforeShowDay</code>.</li>
- <li>Replace references to inline attributes with the <code>cal:</code>
- namespace with <code>date:</code>.</li>
- <li>Replace references to the <code>hideCalendar</code>
- function with <code>hideDatepicker</code>.</li>
- <li>Replace references to the <code>dialogCalendar</code>
- function with <code>dialogDatepicker</code>.</li>
- <li>Replace references to the <code>$.datepicker.reconfigureFor(selector, ...)</code>
- function with <code>$(selector).datepicker('change', ...)</code>.</li>
- <li>Replace references to the <code>$.datepicker.enableFor(selector)</code>
- function with <code>$(selector).datepicker('enable')</code>.</li>
- <li>Replace references to the <code>$.datepicker.disableFor(selector)</code>
- function with <code>$(selector).datepicker('disable')</code>.</li>
- <li>Replace references to the <code>$.datepicker.showFor(selector)</code>
- function with <code>$(selector).datepicker('show')</code>.</li>
- <li>Replace references to the <code>$.datepicker.getDateFor(selector)</code>
- function with <code>$(selector).datepicker('getDate')</code>.</li>
- <li>Replace references to the <code>$.datepicker.setDateFor(selector, ...)</code>
- function with <code>$(selector).datepicker('setDate', ...)</code>.</li>
- <li>Replace references to the <code>calendar*</code>
- CSS styles with <code>datepicker*</code>.</li>
- </ul>
- <p>For example, this old style code:</p>
-<pre><code class="javascript">$('inputs').<b>calendar</b>({<b>autoPopUp</b>: 'both', <b>fieldSettings</b>: setDateRange,
- <b>customDate</b>: <b>popUpCal</b>.noWeekends});
-
-&lt;input type="text" id="inlineConfig" <b>cal:</b>defaultDate="+7"/&gt;</code></pre>
- <p>becomes:</p>
-<pre><code class="javascript">$('inputs').<b>datepicker</b>({<b>showOn</b>: 'both', <b>beforeShow</b>: setDateRange,
- <b>beforeShowDay</b>: <b>$.datepicker</b>.noWeekends});
-
-&lt;input type="text" id="inlineConfig" <b>date:</b>defaultDate="+7"/&gt;</code></pre>
- </div>
- <h4>Localization Packages</h4>
- <ul style="float:left;width:220px;margin-top:0">
- <li><a href="../../../source/i18n/ui.datepicker-ca.js" target="_blank">Bulgarian</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-ca.js" target="_blank">Catalan of Spain</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-zh-CN.js" target="_blank">Chinese Simplified</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-zh-TW.js" target="_blank">Chinese Traditional</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-cs.js" target="_blank">Czech</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-da.js" target="_blank">Danish</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-nl.js" target="_blank">Dutch</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-fi.js" target="_blank">Finnish</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-fr.js" target="_blank">French</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-de.js" target="_blank">German</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-he.js" target="_blank">Hebrew</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-hu.js" target="_blank">Hungarian</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-is.js" target="_blank">Icelandic</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-it.js" target="_blank">Italian</a></li>
- </ul>
- <ul>
- <li><a href="../../../source/i18n/ui.datepicker-ja.js" target="_blank">Japanese</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-ko.js" target="_blank">Korean</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-lt.js" target="_blank">Lithuanian</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-no.js" target="_blank">Norwegian</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-pl.js" target="_blank">Polish</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-pt-BR.js" target="_blank">Portuguese of Brazil</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-ro.js" target="_blank">Romanian</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-ru.js" target="_blank">Russian</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-sk.js" target="_blank">Slovak</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-es.js" target="_blank">Spanish</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-sv.js" target="_blank">Swedish</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-th.js" target="_blank">Thai</a></li>
- <li><a href="../../../source/i18n/ui.datepicker-tr.js" target="_blank">Turkish</a></li>
- </ul>
-
- <!-- Include jQuery -->
- <script src="../../../../jquery/jquery-1.2.6.js" type="text/javascript" charset="utf-8"></script>
-
- <!-- Include UI Datepicker -->
- <script src="../../../source/ui.datepicker.js" type="text/javascript" charset="utf-8"></script>
-
- <!-- Include Demo Files -->
- <script type="text/javascript" src="demo/jquery.localisation.js"></script>
- <script src="../../../source/i18n/ui.datepicker-fr.js" type="text/javascript" charset="utf-8"></script>
- <script src="../../../source/i18n/ui.datepicker-he.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript" src="demo/ui.datepicker.demo.js"></script>
- </body>
-</html> \ No newline at end of file
diff --git a/ui/demos/real-world/accordion-drawers/images/caps.gif b/ui/demos/real-world/accordion-drawers/images/caps.gif
deleted file mode 100644
index 24184e742..000000000
--- a/ui/demos/real-world/accordion-drawers/images/caps.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/accordion-drawers/images/sideboxlight_bg.gif b/ui/demos/real-world/accordion-drawers/images/sideboxlight_bg.gif
deleted file mode 100644
index 2d52b8054..000000000
--- a/ui/demos/real-world/accordion-drawers/images/sideboxlight_bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/accordion-drawers/images/slider_handlebg.png b/ui/demos/real-world/accordion-drawers/images/slider_handlebg.png
deleted file mode 100644
index 1077c4d6e..000000000
--- a/ui/demos/real-world/accordion-drawers/images/slider_handlebg.png
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/accordion-drawers/index.html b/ui/demos/real-world/accordion-drawers/index.html
deleted file mode 100644
index 80c4df95d..000000000
--- a/ui/demos/real-world/accordion-drawers/index.html
+++ /dev/null
@@ -1,257 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- <title>Slide Demo - Fixed Drawer</title>
- <style type="text/css" media="screen">
- <!--
-/*************************************/
-/* Blueprint: reset.css */
-
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- font-weight: inherit;
- font-style: inherit;
- font-size: 100%;
- font-family: inherit;
- vertical-align: baseline;
-}
-
-/* Remember to define focus styles! */
-:focus {
- outline: 0;
-}
-body {
- line-height: 1;
- color: black;
- background: white;
-}
-ol, ul {
- list-style: none;
-}
-
-/* Tables still need 'cellspacing="0"' in the markup. */
-table {
- border-collapse: separate;
- border-spacing: 0;
-}
-caption, th, td {
- text-align: left;
- font-weight: normal;
-}
-
-/* Remove possible quote marks (") from <q>, <blockquote>. */
-blockquote:before, blockquote:after,
-q:before, q:after {
- content: "";
-}
-blockquote, q {
- quotes: "" "";
-}
-
-/*************************************/
-/* Demo Styles */
- .capt,
- .capb {
- background: url("images/caps.gif") no-repeat;
- height:4px;
- width:100%;
- /*position:absolute;*/
- z-index:100;
- margin:0px;
- padding:0px;
- }
- .capt {
- position:absolute;
- background-position:0 -4px;
- }
- .capb {
- margin-top:-19px;
- }
- #content {
- float:left;
- }
- .drawers-wrapper {
- position: relative;
- width: 188px;
- float:left;
- margin:10px;
- }
- .drawers {
- margin-bottom:15px;
- color:#76797C;
- font-size:11px;
- line-height: 18px;
- }
- .drawer {
- background:transparent url(images/sideboxlight_bg.gif) repeat-y scroll 0pt;
- color:#76797C;
- font-size:11px;
- line-height:1.3em;
- }
- .drawer-handle {
- background:#939393 url(images/slider_handlebg.png) no-repeat scroll 0pt;
- color:#333333;
- cursor:default;
- height:25px;
- line-height:25px;
- text-indent:15px;
- font-size:12px;
- width:100%;
- }
- .drawer-handle.open {
- background-color:#72839D;
- background-position:-188px 0pt;
- color:#FFFFFF;
- }
-
- /* nasty, but it fixes the indent on the first one. */
- h2.drawer-handle span {
-
- }
- .drawer ul {
- padding: 0 12px;
- padding-bottom:0pt;
- }
- .drawer li {
- border-bottom:1px solid #E5E5E5;
- line-height:16px;
- padding:6px 0pt;
- }
- .drawer-content ul {
- padding-top: 7px;
- }
- .drawer-content li a {
- display:block;
- overflow:hidden;
- }
- .alldownloads li {
- border:0pt none;
- line-height:18px;
- padding:0pt;
- }
-
- .drawers a {
- color:#666666;
- text-decoration:none;
- font-family:"Lucida Grande",Geneva,Arial,Verdana,sans-serif;
- }
- -->
- </style>
-
- <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
-
- <script type="text/javascript" src="../../../source/ui.core.js"></script>
- <script type="text/javascript" src="../../../source/ui.accordion.js"></script>
-
-
- <script type="text/javascript">
- <!--
- $(function () {
- $('ul.drawers').accordion({
- header: 'h2.drawer-handle',
- selectedClass: 'open',
- event: 'mouseover'
- });
- });
- //-->
- </script>
-</head>
-<body id="page">
- <div id="content">
- <h1>Fixed drawer slide out demo (using accordion plugin)</h1>
- <p>This example demonstrates the Apple downloads slider/accordion effect using the jQuery Accordion plugin.</p>
- <p>Mouse over the headings to reveal the list of available links.</p>
-
- <p>
- <a href="http://jqueryfordesigners.com/slide-out-and-drawer-effect/">Read the article this demonstration relates to</a>
- </p>
- </div>
- <div class="drawers-wrapper">
- <ul class="drawers">
- <li class="drawer">
- <h2 class="drawer-handle open">
- <div class="capt"></div>
- <span>Downloads</span>
- </h2>
- <ul class="alldownloads">
- <li id="sn-downloadsmacosx"><a href="/downloads/macosx/">All Categories</a></li>
- <li id="sn-aperture"><a href="/downloads/macosx/aperture/">Aperture</a></li>
- <li id="sn-apple"><a href="/downloads/macosx/apple/">Apple</a></li>
- <li id="sn-audio"><a href="/downloads/macosx/audio/">Audio</a></li>
- <li id="sn-automator"><a href="/downloads/macosx/automator/">Automator Actions</a></li>
- <li id="sn-businessfinance"><a href="/downloads/macosx/business_finance/">Business &amp; Finance</a></li>
- <li id="sn-calendars"><a href="/downloads/macosx/calendars/">Calendars</a></li>
- <li id="sn-developmenttools"><a href="/downloads/macosx/development_tools/">Development Tools</a></li>
- <li id="sn-drivers"><a href="/downloads/macosx/drivers/">Drivers</a></li>
- <li id="sn-emailchat"><a href="/downloads/macosx/email_chat/">Email &amp; Chat</a></li>
- <li id="sn-finalcutstudio"><a href="/downloads/macosx/finalcutstudio/">Final Cut Studio</a></li>
- <li id="sn-games"><a href="/downloads/macosx/games/">Games</a></li>
- <li id="sn-homelearning"><a href="/downloads/macosx/home_learning/">Home &amp; Learning</a></li>
- <li id="sn-iconsscreensavers"><a href="/downloads/macosx/icons_screensavers/">Icons, Screensavers, etc.</a></li>
- <li id="sn-imaging3d"><a href="/downloads/macosx/imaging_3d/">Imaging &amp; 3D</a></li>
- <li id="sn-internetutilities"><a href="/downloads/macosx/internet_utilities/">Internet Utilities</a></li>
- <li id="sn-ipoditunes"><a href="/downloads/macosx/ipod_itunes/">iPod + iTunes</a></li>
- <li id="sn-mathscience"><a href="/downloads/macosx/math_science/">Math &amp; Science</a></li>
- <li id="sn-networkingsecurity"><a href="/downloads/macosx/networking_security/">Networking &amp; Security</a></li>
- <li id="sn-productivitytools"><a href="/downloads/macosx/productivity_tools/">Productivity Tools</a></li>
- <li id="sn-spotlight"><a href="/downloads/macosx/spotlight/">Spotlight Plugins</a></li>
- <li id="sn-systemdiskutilities"><a href="/downloads/macosx/system_disk_utilities/">System/Disk Utilities</a></li>
- <li id="sn-unixopensource"><a href="/downloads/macosx/unix_open_source/">UNIX &amp; Open Source</a></li>
- <li id="sn-video"><a href="/downloads/macosx/video/">Video</a></li>
- <li id="sn-dashboard"><a href="/downloads/dashboard/" class="bottom">Widgets</a></li>
- </ul>
- </li>
- <li class="drawer">
- <h2 class="drawer-handle">Top Downloads</h2>
- <ul>
- <li><a title="iTunes 7.5" href="http://www.apple.com/itunes/download/">1. iTunes 7.5</a></li>
- <li><a title="QuickTime 7.3.1" href="http://www.apple.com/quicktime/download/">2. QuickTime 7.3.1</a></li>
- <li><a title="Safari 3 Public Beta" href="http://www.apple.com/safari/download/">3. Safari 3 Public Beta</a></li>
- <li><a title="MacPool" href="/downloads/macosx/games/simulation_and_sports/macpool.html">4. MacPool Realistic and easy to play computer simu…</a></li>
- <li><a title="Guitar Hero III: Legends of Rock" href="/downloads/macosx/games/demos_updates/guitarheroiiilegendsofrock.html">5. Guitar Hero III: L…</a></li>
- <li><a title="Messenger for Mac" href="/downloads/macosx/email_chat/messengerformac.html">6. Messenger for Mac</a></li>
- <li><a title="Google Earth" href="/downloads/macosx/home_learning/googleearth.html">7. Google Earth</a></li>
- <li><a title="Monopoly" href="/downloads/macosx/games/cards_puzzle/monopoly.html">8. Monopoly</a></li>
- <li><a title="Litho System Icons" href="/downloads/macosx/icons_screensavers/lithosystemicons.html">9. Litho System Icons</a></li>
- <li><a title="Battlefield 2142" href="/downloads/macosx/games/demos_updates/battlefield2142.html">10. Battlefield 2142</a></li>
- <li><a title="More iChat Effects" href="/downloads/macosx/email_chat/moreichateffects.html">11. More iChat Effects</a></li>
- <li><a title="Dragster" href="/downloads/macosx/internet_utilities/dragster.html">12. Dragster</a></li>
- <li><a title="iSquint" href="/downloads/macosx/ipod_itunes/isquint.html">13. iSquint</a></li>
- <li class="last"><a title="US Holiday Calendar" href="/downloads/macosx/calendars/usholidaycalendar.html">14. US Holiday Calendar</a></li>
- </ul>
- </li>
- <li class="drawer last">
- <h2 class="drawer-handle">Top Apple Downloads</h2>
- <ul>
- <li><a title="iTunes 7.5" href="http://www.apple.com/itunes/download/">1. iTunes 7.5</a></li>
- <li><a title="QuickTime 7.3.1" href="http://www.apple.com/quicktime/download/">2. QuickTime 7.3.1</a></li>
- <li><a title="Safari 3 Public Beta" href="http://www.apple.com/safari/download/">3. Safari 3 Public Beta</a></li>
- <li><a title="Mac OS X 10.5.1 Update" href="/downloads/macosx/apple/macosx_updates/macosx1051update.html">4. Mac OS X 10.5.1 Up…</a></li>
- <li><a title="Java for Mac OS X 10.4 Release 5" href="/downloads/macosx/apple/macosx_updates/javaformacosx104release5.html">5. Java for Mac OS X …</a></li>
- <li><a title="iPod Reset Utility 1.0.2 for Windows" href="/downloads/macosx/apple/ipod_itunes/ipodresetutility102forwindows.html">6. iPod Reset Utility…</a></li>
- <li><a title="iPhoto 7.1.1" href="/downloads/macosx/apple/application_updates/iphoto711.html">7. iPhoto 7.1.1</a></li>
- <li><a title="Bonjour for Windows" href="/downloads/macosx/apple/windows/bonjourforwindows.html">8. Bonjour for Windows</a></li>
- <li><a title="Mac OS X 10.4.11 Combo Update (PPC)" href="/downloads/macosx/apple/macosx_updates/macosx10411comboupdateppc.html">9. Mac OS X 10.4.11 C…<br/>The 10.4.11 Update is recommended for al…</a></li>
- <li><a title="Java for Mac OS X 10.4, Release 6" href="/downloads/macosx/apple/macosx_updates/javaformacosx104release6.html">10. Java for Mac OS X …</a></li>
- <li><a title="GarageBand 4.1.1" href="/downloads/macosx/apple/application_updates/garageband411.html">11. GarageBand 4.1.1</a></li>
- <li><a title="iPod Updater 2006-06-28 for Windows" href="/downloads/macosx/apple/ipod_itunes/ipodupdater20060628forwindows.html">12. iPod Updater 2006-…</a></li>
- <li><a title="Security Update 2007-009 1.1 (10.4.11 Universal)" href="/downloads/macosx/apple/security_updates/securityupdate20070091110411universal.html">13. Security Update 20…</a></li>
- <li class="last"><a title="Security Update 2007-009 1.1 (10.5.1)" href="/downloads/macosx/apple/security_updates/securityupdate2007009111051.html">14. Security Update 20…</a></li>
- </ul>
- </li>
- </ul>
- <div class="capb"></div>
- </div>
-</body>
-</html>
diff --git a/ui/demos/real-world/effects/demo.js b/ui/demos/real-world/effects/demo.js
deleted file mode 100644
index b52b23726..000000000
--- a/ui/demos/real-world/effects/demo.js
+++ /dev/null
@@ -1,65 +0,0 @@
-$(document).ready(function() {
-
- $("div.effect")
- .hover(function() {
- $(this).addClass("hover");
- }, function() {
- $(this).removeClass("hover");
- })
- ;
-
-
- var effect = function(el, n, o) {
-
- $.extend(o, {
- easing: "easeOutQuint"
- });
-
- $(el).bind("click", function() {
-
- $(this).addClass("current").hide(n, o, 1000, function() {
- var self = this;
- window.setTimeout(function() {
- $(self).show(n, o, 1000, function() { $(this).removeClass("current"); });
- },500);
- });
- });
-
- };
-
-
- effect("#blindHorizontally", "blind", { direction: "horizontal" });
- effect("#blindVertically", "blind", { direction: "vertical" });
-
- effect("#bounce3times", "bounce", { times: 3 });
-
- effect("#clipHorizontally", "clip", { direction: "horizontal" });
- effect("#clipVertically", "clip", { direction: "vertical" });
-
- effect("#dropDown", "drop", { direction: "down" });
- effect("#dropUp", "drop", { direction: "up" });
- effect("#dropLeft", "drop", { direction: "left" });
- effect("#dropRight", "drop", { direction: "right" });
-
- effect("#explode9", "explode", { });
- effect("#explode36", "explode", { pieces: 36 });
-
- effect("#fold", "fold", { size: 50 });
-
- effect("#highlight", "highlight", { });
-
- effect("#pulsate", "pulsate", { times: 2 });
-
- effect("#puff", "puff", { times: 2 });
- effect("#scale", "scale", { });
-
- $("#shake").bind("click", function() { $(this).addClass("current").effect("shake", {}, 100, function() { $(this).removeClass("current"); }); });
-
- effect("#slideDown", "slide", { direction: "down" });
- effect("#slideUp", "slide", { direction: "up" });
- effect("#slideLeft", "slide", { direction: "left" });
- effect("#slideRight", "slide", { direction: "right" });
-
- $("#transfer").bind("click", function() { $(this).addClass("current").effect("transfer", { to: "div:eq(0)" }, 1000, function() { $(this).removeClass("current"); }); });
-
-}); \ No newline at end of file
diff --git a/ui/demos/real-world/effects/index.html b/ui/demos/real-world/effects/index.html
deleted file mode 100644
index 15ebbece2..000000000
--- a/ui/demos/real-world/effects/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
- <head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- <title>Effects Test Suite</title>
- <link rel="stylesheet" href="style.css" type="text/css" media="screen" title="no title" charset="utf-8" />
-
- <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
- <script type="text/javascript" src="../../../source/effects.core.js"></script>
-
- <script type="text/javascript" src="../../../source/effects.blind.js"></script>
- <script type="text/javascript" src="../../../source/effects.bounce.js"></script>
- <script type="text/javascript" src="../../../source/effects.clip.js"></script>
- <script type="text/javascript" src="../../../source/effects.drop.js"></script>
- <script type="text/javascript" src="../../../source/effects.explode.js"></script>
- <script type="text/javascript" src="../../../source/effects.fold.js"></script>
- <script type="text/javascript" src="../../../source/effects.highlight.js"></script>
- <script type="text/javascript" src="../../../source/effects.pulsate.js"></script>
- <script type="text/javascript" src="../../../source/effects.scale.js"></script>
- <script type="text/javascript" src="../../../source/effects.shake.js"></script>
- <script type="text/javascript" src="../../../source/effects.slide.js"></script>
- <script type="text/javascript" src="../../../source/effects.transfer.js"></script>
-
- <script type="text/javascript" src="demo.js"></script>
-
-
- </head>
- <body>
-
- <div class="effect" id="blindHorizontally">
- <p>Blind horizontally</p>
- </div>
-
- <div class="effect" id="blindVertically">
- <p>Blind vertically</p>
- </div>
-
- <div class="effect" id="bounce3times">
- <p>Bounce 3 times</p>
- </div>
-
- <div class="effect" id="clipHorizontally">
- <p>Clip horizontally</p>
- </div>
-
- <div class="effect" id="clipVertically">
- <p>Clip vertically</p>
- </div>
-
- <div class="effect" id="dropDown">
- <p>Drop down</p>
- </div>
-
- <div class="effect" id="dropUp">
- <p>Drop up</p>
- </div>
-
- <div class="effect" id="dropLeft">
- <p>Drop left</p>
- </div>
-
- <div class="effect" id="dropRight">
- <p>Drop right</p>
- </div>
-
- <div class="effect" id="explode9">
- <p>Explode in 9 pieces</p>
- </div>
-
- <div class="effect" id="explode36">
- <p>Explode in 36 pieces</p>
- </div>
-
- <div class="effect" id="fold">
- <p>Fold</p>
- </div>
-
- <div class="effect" id="highlight">
- <p>Highlight</p>
- </div>
-
- <div class="effect" id="pulsate">
- <p>Pulsate 2 times</p>
- </div>
-
- <div class="effect" id="puff">
- <p>Puff</p>
- </div>
-
- <div class="effect" id="scale">
- <p>Scale</p>
- </div>
-
- <div class="effect" id="shake">
- <p>Shake</p>
- </div>
-
- <div class="effect" id="slideDown">
- <p>Slide down</p>
- </div>
-
- <div class="effect" id="slideUp">
- <p>Slide up</p>
- </div>
-
- <div class="effect" id="slideLeft">
- <p>Slide left</p>
- </div>
-
- <div class="effect" id="slideRight">
- <p>Slide right</p>
- </div>
-
- <div class="effect" id="transfer">
- <p>Transfer to first element</p>
- </div>
-
- </body>
-</html> \ No newline at end of file
diff --git a/ui/demos/real-world/effects/style.css b/ui/demos/real-world/effects/style.css
deleted file mode 100644
index f7ae220ef..000000000
--- a/ui/demos/real-world/effects/style.css
+++ /dev/null
@@ -1,36 +0,0 @@
-body,html {
- margin: 0;
- padding: 0;
- font-size: 12px;
- font-family: Arial;
- background: #000;
-}
-
-div.effect {
- width: 120px;
- height: 100px;
- background: #333;
- border: 5px outset #aaa;
- float: left;
- margin-top: 20px;
- margin-left: 20px;
- cursor: pointer;
- cursor: hand;
-}
-
-div.current {
- border: 5px outset #FF0000;
- background: #660000;
-}
-
-div.effect p {
- color: #eee;
- margin: 0px;
- padding: 10px;
-}
-
-.ui-effects-transfer {
- border: 1px dotted #fff;
- background: #666;
- opacity: 0.5;
-} \ No newline at end of file
diff --git a/ui/demos/real-world/image-cropper/img/img01.jpg b/ui/demos/real-world/image-cropper/img/img01.jpg
deleted file mode 100644
index 4d5f88445..000000000
--- a/ui/demos/real-world/image-cropper/img/img01.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/image-cropper/img/img02.jpg b/ui/demos/real-world/image-cropper/img/img02.jpg
deleted file mode 100644
index 5745265f0..000000000
--- a/ui/demos/real-world/image-cropper/img/img02.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/image-cropper/img/img03.jpg b/ui/demos/real-world/image-cropper/img/img03.jpg
deleted file mode 100644
index 7e6928f63..000000000
--- a/ui/demos/real-world/image-cropper/img/img03.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/image-cropper/img/img04.jpg b/ui/demos/real-world/image-cropper/img/img04.jpg
deleted file mode 100644
index 8216a2382..000000000
--- a/ui/demos/real-world/image-cropper/img/img04.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/image-cropper/img/img05.jpg b/ui/demos/real-world/image-cropper/img/img05.jpg
deleted file mode 100644
index 35de5bd8c..000000000
--- a/ui/demos/real-world/image-cropper/img/img05.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/image-cropper/index.html b/ui/demos/real-world/image-cropper/index.html
deleted file mode 100644
index afa85ae3c..000000000
--- a/ui/demos/real-world/image-cropper/index.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Language" content="en" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Image Cropper: jQuery Real-world Demo</title>
-<script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
-<script type="text/javascript" src="../../../source/ui.core.js"></script>
-<script type="text/javascript" src="../../../source/ui.resizable.js"></script>
-<script type="text/javascript" src="../../../source/ui.draggable.js"></script>
-
-<script type="text/javascript" src="../../../source/effects.core.js"></script>
-<script type="text/javascript" src="../../../source/effects.bounce.js"></script>
-<script type="text/javascript" src="../../../source/effects.scale.js"></script>
-
-
-<style type="text/css">
-<!--
-/*************************************/
-/* Real-World CSS */
-
-@import "real-world.css";
-
-/*************************************/
-/* Demo CSS */
-
-#sidebar div {
- text-align:center;
-}
-.thumb ul {
- padding:10px 0 0 0;
-}
-.thumbs li {
- margin:4px 20px;
-}
-.thumbs li a,
-.thumbs li a img{
- height: 75px;
- width: 75px;
- display: block;
-}
-.thumbs li a:hover,
-.thumbs li a:hover img{
- height: 130px;
- width: 130px;
-}
-.thumbs li a:hover {
- border: 4px solid #E8EEF7;
-}
-
-#break strong {
- margin:0 0 4px 0;
-}
-#break ul {
- padding:6px;
-}
-#break ul li {
- padding:3px 0px;
- font-style: italic;
-}
-#break ul li span {
- font-style: normal;
-}
-
-.ui-resizable-knob {
- border: 1px #fff dashed;
-}
-
-/*************************************/
-/* Cropper CSS */
-
-#resizeme_containment_wrap_image {
- position: relative;
-}
-#resizeme_containment_div {
- position: absolute;
- top:0px;
- left:0px;
- width: 150px;
- height:150px;
-}
-
-#resizeme_containment_div_wrapper {
- position: relative;
-}
-
-
--->
-</style>
-<script type="text/javascript">
- var getSizeImg = function(src) {
- var timg = $('<img>').attr('src', src).css({ position: 'absolute', top: '-1000px', left: '-1000px' }).appendTo('body');
- var size = [ timg.get(0).offsetWidth, timg.get(0).offsetHeight ];
-
- try { document.body.removeChild(timg[0]); }
- catch(e) {};
-
- return size;
- };
-
- $().ready(function(){
-
- $('#resizeme_containment_div').resizable({
-
- containment: $('#resizeme_containment_div_wrapper'),
-
- //proxy: 'proxy',
-
- //ghost: true,
-
- //animate:true,
-
- handles: 'all',
-
- knobHandles: true,
-
- //transparent: true,
-
- //aspectRatio: true,
-
- autoHide: true,
-
- minWidth: 100,
-
- minHeight: 100,
-
- resize: function(e, ui) {
- var self = $(this).data("resizable");
-
- this.style.backgroundPosition = '-' + (self.position.left) + 'px -' + (self.position.top) + 'px';
-
-
- $("#log-top").html(self.position.top+"px");
-
- $("#log-left").html(self.position.left+"px");
-
- $("#log-height").html(self.size.height+"px");
-
- $("#log-width").html(self.size.width+"px");
-
- },
- stop: function(e, ui) {
- var self = $(this).data("resizable");
- this.style.backgroundPosition = '-' + (self.position.left) + 'px -' + (self.position.top) + 'px';
- }
- })
-
- .draggable({
-
- cursor: 'move',
-
- containment: $('#resizeme_containment_div_wrapper'),
-
- drag: function(e, ui) {
- var self = $(this).data("draggable");
- this.style.backgroundPosition = '-' + (self.position.left) + 'px -' + (self.position.top) + 'px';
-
- $("#log-top").html(self.position.top+"px");
-
- $("#log-left").html(self.position.left+"px");
-
- }
-
- });
-
- $('.thumbs').find("li a").click(function(e){
-
- $('#resizeme_containment_div').css('top', '0');
-
- $('#resizeme_containment_div').css('left', '0');
-
- var size = getSizeImg($(this).find("img").attr("src"));
-
- $('#resizeme_containment_wrap_image').css( { width: size[0], height: size[1], background: 'transparent url('+$(this).find("img").attr("src")+') no-repeat scroll 0%' } );
- $('#resizeme_containment_div_wrapper').css( { width: size[0], height: size[1] } );
- $('#resizeme_containment_div').css('background', 'transparent url('+$(this).find("img").attr("src")+') no-repeat scroll 0px 0px');
-
- return false;
-
- });
-
-
- $('#resizeme_containment_wrap_image').css({ opacity: 0.5 });
-
- $("#log-height").html($('#resizeme_containment_div').height()+"px");
-
- $("#log-width").html($('#resizeme_containment_div').width()+"px");
-
- });
-
- $(window).load(function(){
- var size = getSizeImg("img/img01.jpg");
- $('#resizeme_containment_div').css('background', 'transparent url(img/img01.jpg) no-repeat scroll 0px 0px');
- $('#resizeme_containment_div_wrapper').css( { width: size[0], height: size[1] } );
- $('#resizeme_containment_wrap_image').css( { width: size[0], height: size[1], background: 'transparent url(img/img01.jpg) no-repeat scroll 0%' } );
-
- });
-</script>
-</head>
-<body>
- <div id="sidebar">
- <ul class="thumbs">
- <li><a href="#" title="Open This Image"><img src="img/img01.jpg"/></a></li>
- <li><a href="#" title="Open This Image"><img src="img/img02.jpg"/></a></li>
- <li><a href="#" title="Open This Image"><img src="img/img03.jpg"/></a></li>
- <li><a href="#" title="Open This Image"><img src="img/img04.jpg"/></a></li>
- <li><a href="#" title="Open This Image"><img src="img/img05.jpg"/></a></li>
- </div>
- </div>
- <div id="main">
- <div id="header">
- <h2>jQuery Real-world Demo: Image Cropper</h2>
- </div>
- <div id="content">
- <div id="resizeme_containment_div_wrapper">
- <div id="resizeme_containment_wrap_image"></div>
- <div id="resizeme_containment_div"></div>
- </div>
- </div>
- <div id="break">
- <strong>Properties:</strong>
- <ul>
- <li>width: <span id="log-width">0px</span></li>
- <li>height: <span id="log-height">0px</span></li>
- <li>top: <span id="log-top">0px</span></li>
- <li>left: <span id="log-left">0px</span></li>
- </ul>
- </div>
- </div>
-</body>
-</html>
diff --git a/ui/demos/real-world/image-cropper/real-world.css b/ui/demos/real-world/image-cropper/real-world.css
deleted file mode 100644
index 683033351..000000000
--- a/ui/demos/real-world/image-cropper/real-world.css
+++ /dev/null
@@ -1,104 +0,0 @@
-/*************************************/
-/* Blueprint: reset.css */
-
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- font-size: 100%;
- font-family: inherit;
- vertical-align: baseline;
-}
-
-/* Remember to define focus styles! */
-:focus {
- outline: 0;
-}
-body {
- line-height: 1;
- color: black;
- background: white;
-}
-ol, ul {
- list-style: none;
-}
-
-/* Tables still need 'cellspacing="0"' in the markup. */
-table {
- border-collapse: separate;
- border-spacing: 0;
-}
-caption, th, td {
- text-align: left;
- font-weight: normal;
-}
-
-/* Remove possible quote marks (") from <q>, <blockquote>. */
-blockquote:before, blockquote:after,
-q:before, q:after {
- content: "";
-}
-blockquote, q {
- quotes: "" "";
-}
-
-.clear {
- clear:both;
-}
-
-/*************************************/
-/* Layout */
-body, html {
- height: 100%;
- font-family:sans-serif;
- font-size:13px;
- margin:0px;
- padding:0px;
-}
-body, html {
- height: 100%;
- font-family:sans-serif;
- font-size:13px;
-
-}
-#main {
- height:auto;
- background: #E8EEF7;
- border-left:1px solid #ccc;
- border-bottom:1px solid #ccc;
- margin:0 0 0 200px;
-}
- #header {
- height:30px;
- padding:10px;
- font-size:2em;
- font-weight:bold;
- text-align: center;
- border-bottom:1px solid #ccc;
- background: #E8EEF7;
- }
- #main #content {
- padding:10px;
- background: #FFF;
- }
- #main #break {
- padding:10px;
- border-top:1px solid #ccc;
- }
-#sidebar {
- float:left;
- width:200px;
- height:100%;
- border-right:1px solid #ccc;
-}
- #sidebar div {
- padding:10px;
- }
diff --git a/ui/demos/real-world/layout/demo.css b/ui/demos/real-world/layout/demo.css
deleted file mode 100644
index a7b108623..000000000
--- a/ui/demos/real-world/layout/demo.css
+++ /dev/null
@@ -1,42 +0,0 @@
-body { background-color:#666; color:#FFF; font:11px/1.5 Arial, sans-serif; margin:0; overflow:hidden; padding:30px 0 0 30px; }
-h1 { font-size:18px; margin:0 0 20px; }
-a { color:#FFF; }
-
-.clear { clear:both; font-size:1px; line-height:1px; }
-
-#overlay { background:#666; height:100%; left:0; position:absolute; top:0; width:100%; z-index:2000; }
-#overlay #preloader { background:url(loader_bg.gif) no-repeat; height:50px; left:50%; line-height:50px; margin:-25px 0 0 -25px; position:absolute; text-align:center; top:50%; width:50px; }
-#overlay #preloader img { margin:11px 0 0 0; vertical-align:middle; }
-
-.ui-sortable { background-color:#FFF; border:1px solid #555; color:#222; margin:0 15px 15px 0; padding:0 10px 10px; width:175px; }
-.ui-sortable h2 { background-color:#555; border-top:3px solid #666; color:#FFF; font-size:11px; margin:0 -10px 10px; line-height:2; padding:0 10px; }
-
-dl.sort { color:#222; margin:10px 0; }
-#uidemo dl.first { margin-top:0; }
-#uidemo dl.last { margin-bottom:0; }
-
-dl.sort dt { background-color:#666; color:#FFF; cursor:move; height:2em; line-height:2; padding:0 6px; position:relative; }
-dl.sort dd { background-color:#FFF; margin:0; padding:3px 6px; }
-
-.ui-sortable-helper { width:175px; }
-.placeholder { border:1px dashed #AAA; }
-
-span.options { cursor:default; font-size:1px; line-height:1px; position:absolute; }
-span.options a { background-color:#FFF; cursor:pointer; display:block; float:left; text-indent:-9000px; }
-
-.ui-sortable h2 span.options { right:10px; top:8px; width:30px; }
-.ui-sortable h2 span.options a { height:12px; width:30px; }
-
-dl.sort dt span.options { right:5px; top:5px; width:27px; }
-dl.sort dt span.options a { height:12px; width:12px; }
-dl.sort dt span.options a.up { margin-right:3px; }
-dl.sort dt span.options a.disabled { background-color:#555; cursor:default; }
-
-#container { float:left; }
-#header { width:638px; }
-#content { float:left; width:400px; }
-#sidebar { float:left; width:200px; }
-#footer { width:638px; }
-#trashcan { float:left; }
-
-#trashcan p { margin:0; } \ No newline at end of file
diff --git a/ui/demos/real-world/layout/demo.js b/ui/demos/real-world/layout/demo.js
deleted file mode 100644
index 695863f25..000000000
--- a/ui/demos/real-world/layout/demo.js
+++ /dev/null
@@ -1,97 +0,0 @@
-(function($){
- var updateUpDown = function(sortable){
- $('dl:not(.ui-sortable-helper)', sortable)
- .removeClass('first').removeClass('last')
- .find('.up, .down').removeClass('disabled').end()
- .filter(':first').addClass('first').find('.up').addClass('disabled').end().end()
- .filter(':last').addClass('last').find('.down').addClass('disabled').end().end();
- };
-
- var moveUpDown = function(){
- var link = $(this),
- dl = link.parents('dl'),
- prev = dl.prev('dl'),
- next = dl.next('dl');
-
- if(link.is('.up') && prev.length > 0)
- dl.insertBefore(prev);
-
- if(link.is('.down') && next.length > 0)
- dl.insertAfter(next);
-
- updateUpDown(dl.parent());
- };
-
- var addItem = function(){
- var sortable = $(this).parents('.ui-sortable');
- var options = '<span class="options"><a class="up">up</a><a class="down">down</a></span>';
- var tpl = '<dl class="sort"><dt>{name}' + options + '</dt><dd>{desc}</dd></dl>';
- var html = tpl.replace(/{name}/g, 'Dynamic name :D').replace(/{desc}/g, 'Description');
-
- sortable.append(html).sortable('refresh').find('a.up, a.down').bind('click', moveUpDown);
- updateUpDown(sortable);
- };
-
- var emptyTrashCan = function(item){
- item.remove();
- };
-
- var sortableChange = function(e, ui){
- if(ui.sender){
- var w = ui.element.width();
- ui.placeholder.width(w);
- ui.helper.css("width",ui.element.children().width());
- }
- };
-
- var sortableUpdate = function(e, ui){
- if(ui.element[0].id == 'trashcan'){
- emptyTrashCan(ui.item);
- } else {
- updateUpDown(ui.element[0]);
- if(ui.sender)
- updateUpDown(ui.sender[0]);
- }
- };
-
- $(document).ready(function(){
- var els = ['#header', '#content', '#sidebar', '#footer', '#trashcan'];
- var $els = $(els.toString());
-
- $('h2', $els.slice(0,-1)).append('<span class="options"><a class="add">add</a></span>');
- $('dt', $els).append('<span class="options"><a class="up">up</a><a class="down">down</a></span>');
-
- $('a.add').bind('click', addItem);
- $('a.up, a.down').bind('click', moveUpDown);
-
- $els.each(function(){
- updateUpDown(this);
- });
-
- $els.sortable({
- items: '> dl',
- handle: 'dt',
- cursor: 'move',
- //cursorAt: { top: 2, left: 2 },
- //opacity: 0.8,
- //helper: 'clone',
- appendTo: 'body',
- //placeholder: 'clone',
- //placeholder: 'placeholder',
- connectWith: els,
- start: function(e,ui) {
- ui.helper.css("width", ui.item.width());
- },
- change: sortableChange,
- update: sortableUpdate
- });
- });
-
- $(window).bind('load',function(){
- setTimeout(function(){
- $('#overlay').fadeOut(function(){
- $('body').css('overflow', 'auto');
- });
- }, 750);
- });
-})(jQuery); \ No newline at end of file
diff --git a/ui/demos/real-world/layout/index.html b/ui/demos/real-world/layout/index.html
deleted file mode 100644
index 83f9d0378..000000000
--- a/ui/demos/real-world/layout/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <title>UI Sortable: Layout Demo</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
- <meta name="title" content="UI Sortable: Layout Demo" />
- <meta name="description" content="A sortable layout created with the jQuery UI suite" />
-
- <meta name="author" content="Joan Piedra" />
- <meta name="author-url" content="http://www.joanpiedra.com/" />
- <meta name="author-url" content="http://www.justaquit.com/" />
- <meta name="author-url" content="http://jquery.com/" />
-
- <link rel="shortcut icon" href="http://jquery.com/favicon.ico" />
- <link rel="icon" href="http://jquery.com/favicon.ico" type="image/x-icon" />
-
- <link rel="stylesheet" href="demo.css" type="text/css" media="screen" />
- <!-- saved from url=(0013)about:internet -->
- </head>
-
- <body id="uidemo">
- <h1>UI Sortable: <em>Layout demo</em></h1>
-
- <div id="container">
- <div id="header" class="ui-sortable">
- <h2>Header</h2>
- <dl class="sort">
- <dt>Pages</dt>
- <dd>Main Navigation</dd>
- </dl>
- </div>
-
- <div id="content" class="ui-sortable">
- <h2>Content</h2>
- <dl class="sort">
- <dt>Blog</dt>
- <dd>Main blog post</dd>
- </dl>
- </div>
-
- <div id="sidebar" class="ui-sortable">
- <h2>Sidebar</h2>
- <dl class="sort">
- <dt>Pages</dt>
- <dd>Mini About</dd>
- </dl>
- <dl class="sort">
- <dt>Blog</dt>
- <dd>Monthly Archives</dd>
- </dl>
- <dl class="sort">
- <dt>Links</dt>
- <dd>Random Links</dd>
- </dl>
- </div>
-
- <div class="clear"></div>
-
- <div id="footer" class="ui-sortable">
- <h2>Footer</h2>
- <dl class="sort">
- <dt>Pages</dt>
- <dd>Copyright</dd>
- </dl>
- </div>
- </div>
-
- <div id="trashcan" class="ui-sortable">
- <h2>Trash can</h2>
- <p>Drag modules here to delete them.</p>
- </div>
-
- <div class="clear"></div>
- <div id="overlay">
- <div id="preloader"><img src="loader.gif" alt="" /></div>
- </div>
-
- <!-- jQuery Core -->
- <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
-
- <!-- jQuery UI Base -->
- <script type="text/javascript" src="../../../source/ui.core.js"></script>
-
- <!-- jQuery UI Plugins -->
- <script type="text/javascript" src="../../../source/ui.draggable.js"></script>
- <script type="text/javascript" src="../../../source/ui.droppable.js"></script>
- <script type="text/javascript" src="../../../source/ui.sortable.js"></script>
-
-
- <!-- jQuery UI Demo -->
- <script type="text/javascript" src="demo.js"></script>
- </body>
-</html> \ No newline at end of file
diff --git a/ui/demos/real-world/layout/loader.gif b/ui/demos/real-world/layout/loader.gif
deleted file mode 100644
index 7e717cdf9..000000000
--- a/ui/demos/real-world/layout/loader.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/layout/loader_bg.gif b/ui/demos/real-world/layout/loader_bg.gif
deleted file mode 100644
index 9c0488402..000000000
--- a/ui/demos/real-world/layout/loader_bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010020.JPG b/ui/demos/real-world/photo-manager/img/P1010020.JPG
deleted file mode 100644
index 7e6928f63..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010020.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010036.JPG b/ui/demos/real-world/photo-manager/img/P1010036.JPG
deleted file mode 100644
index 8216a2382..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010036.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010039.JPG b/ui/demos/real-world/photo-manager/img/P1010039.JPG
deleted file mode 100644
index 35de5bd8c..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010039.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010044.JPG b/ui/demos/real-world/photo-manager/img/P1010044.JPG
deleted file mode 100644
index 4d5f88445..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010044.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010050.JPG b/ui/demos/real-world/photo-manager/img/P1010050.JPG
deleted file mode 100644
index 5745265f0..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010050.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010055.JPG b/ui/demos/real-world/photo-manager/img/P1010055.JPG
deleted file mode 100644
index 246121ba4..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010055.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010058.JPG b/ui/demos/real-world/photo-manager/img/P1010058.JPG
deleted file mode 100644
index d107b38ce..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010058.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010059.JPG b/ui/demos/real-world/photo-manager/img/P1010059.JPG
deleted file mode 100644
index c7fcdbdd1..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010059.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010061.JPG b/ui/demos/real-world/photo-manager/img/P1010061.JPG
deleted file mode 100644
index 1812fbfdf..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010061.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/P1010063.JPG b/ui/demos/real-world/photo-manager/img/P1010063.JPG
deleted file mode 100644
index 05b0d133c..000000000
--- a/ui/demos/real-world/photo-manager/img/P1010063.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010020.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010020.JPG
deleted file mode 100644
index cba634588..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010020.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010036.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010036.JPG
deleted file mode 100644
index 1d062b364..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010036.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010039.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010039.JPG
deleted file mode 100644
index 2d0b6c726..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010039.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010044.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010044.JPG
deleted file mode 100644
index 9d0cccf86..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010044.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010050.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010050.JPG
deleted file mode 100644
index 89a36b78b..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010050.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010055.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010055.JPG
deleted file mode 100644
index 889b4e67d..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010055.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010058.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010058.JPG
deleted file mode 100644
index 6a83a628b..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010058.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010059.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010059.JPG
deleted file mode 100644
index 6aac87261..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010059.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010061.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010061.JPG
deleted file mode 100644
index bfe698e86..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010061.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/img/thumbs/P1010063.JPG b/ui/demos/real-world/photo-manager/img/thumbs/P1010063.JPG
deleted file mode 100644
index 88c22e021..000000000
--- a/ui/demos/real-world/photo-manager/img/thumbs/P1010063.JPG
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/index.html b/ui/demos/real-world/photo-manager/index.html
deleted file mode 100644
index ecc9a5500..000000000
--- a/ui/demos/real-world/photo-manager/index.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <title>jQuery UI Draggables and Droppables playground</title>
-
- <meta http-equiv="content-type" content="text/html; charset=utf-8" />
- <meta http-equiv="content-language" content="en" />
-
- <meta name="keywords" content="jquery, ui, droppables, draggables, demo" />
- <meta name="description" content="Demonstration of jQuery UI Droppables and Dragables. More to come." />
- <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
- <script type="text/javascript" src="js/jquery.livequery.js"></script>
- <script type="text/javascript" src="js/jquery.blockUI.js"></script>
-
- <script type="text/javascript" src="../../../source/ui.core.js"></script>
- <script type="text/javascript" src="../../../source/ui.draggable.js"></script>
- <script type="text/javascript" src="../../../source/ui.droppable.js"></script>
-
- <script type="text/javascript" src="./js/demo.js"></script>
-
- <link rel="stylesheet" type="text/css" href="./theme/css/screen.css" media="screen, projection" />
- </head>
- <body>
- <h1>Manage Your Photos</h1>
- <div id="body_wrap">
- <div id="content">
- <h2>Drag photos to the Trash or waste them in the Shredder:</h2>
- <ul class="gallery">
- <li>
- <img src="./img/thumbs/P1010020.JPG" alt="Tatry 1" title="Drag me!" />
- <p>Tatry 1</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010020.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010036.JPG" alt="Tatry 2" title="Drag me!" />
- <p>Tatry 2</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010036.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010039.JPG" alt="Tatry 3" title="Drag me!" />
- <p>Tatry 3</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010039.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010044.JPG" alt="Tatry 4" title="Drag me!" />
- <p>Tatry 4</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010044.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010050.JPG" alt="Tatry 5" title="Drag me!" />
- <p>Tatry 5</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010050.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010055.JPG" alt="Tatry 6" title="Drag me!" />
- <p>Tatry 6</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010055.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010058.JPG" alt="Tatry 7" title="Drag me!" />
- <p>Tatry 7</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010058.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010059.JPG" alt="Tatry 8" title="Drag me!" />
- <p>Tatry 8</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010059.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010061.JPG" alt="Tatry 9" title="Drag me!" />
- <p>Tatry 9</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010061.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- <li>
- <img src="./img/thumbs/P1010063.JPG" alt="Tatry 10" title="Drag me!" />
- <p>Tatry 10</p>
- <div>
- <a href="#" title="Trash me." class="tb_trash">Trash me</a>
- <a href="./img/P1010063.JPG" title="See me supersized." class="tb_supersize">See me supersized</a>
- </div>
- </li>
- </ul>
- </div>
- <div id="sidebar">
- <div class="box" id="trash">
- <h2>Trash (drag me back)</h2>
- <div></div>
- </div>
- <div class="box" id="shred">
- <h2>Shredder (see me no more)</h2>
- <div></div>
- </div>
- </div>
- </div>
- <div id="footer">
- <p>Demo footer here :)</p>
- </div>
- </body>
-</html>
diff --git a/ui/demos/real-world/photo-manager/js/demo.js b/ui/demos/real-world/photo-manager/js/demo.js
deleted file mode 100644
index fac91ca1c..000000000
--- a/ui/demos/real-world/photo-manager/js/demo.js
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * The very first increment of Droppables&Draggables demo. The code is going to
- * be more concise (remove unnecessary code repetitions etc.). And imho the
- * photo management is a good candidate for demonstration of more jQuery UI
- * components (sortables, selectables...). More to come...
- *
- */
-
-$(window).bind('load', function() {
- // make images in the gallery draggable
- $('ul.gallery img').addClass('img_content').draggable({
- helper: 'clone'
- });
-
- // make the trash box droppable, accepting images from the content section only
- $('#trash div').droppable({
- accept: '.img_content',
- activeClass: 'active',
- drop: function(ev, ui) {
- var $that = $(this);
- ui.draggable.parent().fadeOut('slow', function() {
- ui.draggable
- .hide()
- .appendTo($that)
- .fadeIn('slow')
- .animate({
- width: '72px',
- height: '54px'
- })
- .removeClass('img_content')
- .addClass('img_trash');
- $(this).remove();
- });
- }
- });
-
- // make the shredder box droppable, accepting images from both content and trash sections
- $('#shred div').droppable({
- accept: '.img_content, .img_trash',
- activeClass: 'active',
- drop: function(ev, ui) {
- var $that = $(this);
- // images from the content
- if (ui.draggable.hasClass('img_content')) {
- ui.draggable.parent().fadeOut('slow', function() {
- ui.draggable
- .appendTo($that)
- .animate({
- width: '0',
- height: '0'
- }, 'slow', function(){
- $(this).remove();
- });
- $(this).remove();
- });
- }
- // images from the trash
- else if (ui.draggable.hasClass('img_trash')) {
- ui.draggable
- .appendTo($that)
- .animate({
- width: '0',
- height: '0'
- }, 'slow', function(){
- $(this).remove();
- });
- }
- }
- });
-
- // make the gallery droppable as well, accepting images from the trash only
- $('ul.gallery').droppable({
- accept: '.img_trash',
- activeClass: 'active',
- drop: function(ev, ui) {
- var $that = $(this);
- ui.draggable.fadeOut('slow', function() {
- var $item = createGalleryItem(this).appendTo($that);
- $(this)
- .removeClass('img_trash')
- .addClass('img_content')
- .css({ width: '144px', height: '108px' })
- .show();
- $item.fadeIn('slow');
- });
- }
- });
-
- // handle the trash icon behavior
- $('a.tb_trash').livequery('click', function() {
- var $this = $(this);
- var $img = $this.parent().siblings('img');
- var $item = $this.parents('li');
-
- $item.fadeOut('slow', function() {
- $img
- .hide()
- .appendTo('#trash div')
- .fadeIn('slow')
- .animate({
- width: '72px',
- height: '54px'
- })
- .removeClass('img_content')
- .addClass('img_trash');
- $(this).remove();
- });
-
- return false;
- });
-
- // handle the magnify button
- $('a.tb_supersize').livequery('click', function() {
- $('<img width="576" height="432">')
- .attr('src', $(this).attr('href'))
- .appendTo('#body_wrap')
- .displayBox();
- return false;
- });
-});
-
-function createGalleryItem(img) {
- var title = img.getAttribute('alt');
- var href = img.getAttribute('src').replace(/thumbs\//, '');
-
- var $item = $('<li><p>'+title+'</p><div><a href="#" title="Trash me" class="tb_trash">Trash me</a><a href="'+href+'" title="See me supersized" class="tb_supersize">See me supersized</a></div></li>').hide();
- $item.prepend($(img));
-
- return $item;
-}
diff --git a/ui/demos/real-world/photo-manager/js/jquery.blockUI.js b/ui/demos/real-world/photo-manager/js/jquery.blockUI.js
deleted file mode 100644
index b24c2dd05..000000000
--- a/ui/demos/real-world/photo-manager/js/jquery.blockUI.js
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- * jQuery blockUI plugin
- * Version 1.33 (09/14/2007)
- * @requires jQuery v1.1.1
- *
- * $Id: jquery.blockUI.js 3291 2007-09-14 23:56:25Z malsup $
- *
- * Examples at: http://malsup.com/jquery/block/
- * Copyright (c) 2007 M. Alsup
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- */
- (function($) {
-/**
- * blockUI provides a mechanism for blocking user interaction with a page (or parts of a page).
- * This can be an effective way to simulate synchronous behavior during ajax operations without
- * locking the browser. It will prevent user operations for the current page while it is
- * active ane will return the page to normal when it is deactivate. blockUI accepts the following
- * two optional arguments:
- *
- * message (String|Element|jQuery): The message to be displayed while the UI is blocked. The message
- * argument can be a plain text string like "Processing...", an HTML string like
- * "<h1><img src="busy.gif" /> Please wait...</h1>", a DOM element, or a jQuery object.
- * The default message is "<h1>Please wait...</h1>"
- *
- * css (Object): Object which contains css property/values to override the default styles of
- * the message. Use this argument if you wish to override the default
- * styles. The css Object should be in a format suitable for the jQuery.css
- * function. For example:
- * $.blockUI({
- * backgroundColor: '#ff8',
- * border: '5px solid #f00,
- * fontWeight: 'bold'
- * });
- *
- * The default blocking message used when blocking the entire page is "<h1>Please wait...</h1>"
- * but this can be overridden by assigning a value to $.blockUI.defaults.pageMessage in your
- * own code. For example:
- *
- * $.blockUI.defaults.pageMessage = "<h1>Bitte Wartezeit</h1>";
- *
- * The default message styling can also be overridden. For example:
- *
- * $.extend($.blockUI.defaults.pageMessageCSS, { color: '#00a', backgroundColor: '#0f0' });
- *
- * The default styles work well for simple messages like "Please wait", but for longer messages
- * style overrides may be necessary.
- *
- * @example $.blockUI();
- * @desc prevent user interaction with the page (and show the default message of 'Please wait...')
- *
- * @example $.blockUI( { backgroundColor: '#f00', color: '#fff'} );
- * @desc prevent user interaction and override the default styles of the message to use a white on red color scheme
- *
- * @example $.blockUI('Processing...');
- * @desc prevent user interaction and display the message "Processing..." instead of the default message
- *
- * @name blockUI
- * @param String|jQuery|Element message Message to display while the UI is blocked
- * @param Object css Style object to control look of the message
- * @cat Plugins/blockUI
- */
-$.blockUI = function(msg, css, opts) {
- $.blockUI.impl.install(window, msg, css, opts);
-};
-
-// expose version number so other plugins can interogate
-$.blockUI.version = 1.33;
-
-/**
- * unblockUI removes the UI block that was put in place by blockUI
- *
- * @example $.unblockUI();
- * @desc unblocks the page
- *
- * @name unblockUI
- * @cat Plugins/blockUI
- */
-$.unblockUI = function(opts) {
- $.blockUI.impl.remove(window, opts);
-};
-
-/**
- * Blocks user interaction with the selected elements. (Hat tip: Much of
- * this logic comes from Brandon Aaron's bgiframe plugin. Thanks, Brandon!)
- * By default, no message is displayed when blocking elements.
- *
- * @example $('div.special').block();
- * @desc prevent user interaction with all div elements with the 'special' class.
- *
- * @example $('div.special').block('Please wait');
- * @desc prevent user interaction with all div elements with the 'special' class
- * and show a message over the blocked content.
- *
- * @name block
- * @type jQuery
- * @param String|jQuery|Element message Message to display while the element is blocked
- * @param Object css Style object to control look of the message
- * @cat Plugins/blockUI
- */
-$.fn.block = function(msg, css, opts) {
- return this.each(function() {
- if (!this.$pos_checked) {
- if ($.css(this,"position") == 'static')
- this.style.position = 'relative';
- if ($.browser.msie) this.style.zoom = 1; // force 'hasLayout' in IE
- this.$pos_checked = 1;
- }
- $.blockUI.impl.install(this, msg, css, opts);
- });
-};
-
-/**
- * Unblocks content that was blocked by "block()"
- *
- * @example $('div.special').unblock();
- * @desc unblocks all div elements with the 'special' class.
- *
- * @name unblock
- * @type jQuery
- * @cat Plugins/blockUI
- */
-$.fn.unblock = function(opts) {
- return this.each(function() {
- $.blockUI.impl.remove(this, opts);
- });
-};
-
-/**
- * displays the first matched element in a "display box" above a page overlay.
- *
- * @example $('#myImage').displayBox();
- * @desc displays "myImage" element in a box
- *
- * @name displayBox
- * @type jQuery
- * @cat Plugins/blockUI
- */
-$.fn.displayBox = function(css, fn, isFlash) {
- var msg = this[0];
- if (!msg) return;
- var $msg = $(msg);
- css = css || {};
-
- var w = $msg.width() || $msg.attr('width') || css.width || $.blockUI.defaults.displayBoxCSS.width;
- var h = $msg.height() || $msg.attr('height') || css.height || $.blockUI.defaults.displayBoxCSS.height ;
- if (w[w.length-1] == '%') {
- var ww = document.documentElement.clientWidth || document.body.clientWidth;
- w = parseInt(w) || 100;
- w = (w * ww) / 100;
- }
- if (h[h.length-1] == '%') {
- var hh = document.documentElement.clientHeight || document.body.clientHeight;
- h = parseInt(h) || 100;
- h = (h * hh) / 100;
- }
-
- var ml = '-' + parseInt(w)/2 + 'px';
- var mt = '-' + parseInt(h)/2 + 'px';
-
- // supress opacity on overlay if displaying flash content on mac/ff platform
- var ua = navigator.userAgent.toLowerCase();
- var opts = {
- displayMode: fn || 1,
- noalpha: isFlash && /mac/.test(ua) && /firefox/.test(ua)
- };
-
- $.blockUI.impl.install(window, msg, { width: w, height: h, marginTop: mt, marginLeft: ml }, opts);
-};
-
-
-// override these in your code to change the default messages and styles
-$.blockUI.defaults = {
- // the message displayed when blocking the entire page
- pageMessage: '<h1>Please wait...</h1>',
- // the message displayed when blocking an element
- elementMessage: '', // none
- // styles for the overlay iframe
- overlayCSS: { backgroundColor: '#fff', opacity: '0.5' },
- // styles for the message when blocking the entire page
- pageMessageCSS: { width:'250px', margin:'-50px 0 0 -125px', top:'50%', left:'50%', textAlign:'center', color:'#000', backgroundColor:'#fff', border:'3px solid #aaa' },
- // styles for the message when blocking an element
- elementMessageCSS: { width:'250px', padding:'10px', textAlign:'center', backgroundColor:'#fff'},
- // styles for the displayBox
- displayBoxCSS: { width: '400px', height: '400px', top:'50%', left:'50%' },
- // allow body element to be stetched in ie6
- ie6Stretch: 1,
- // supress tab nav from leaving blocking content?
- allowTabToLeave: 0,
- // Title attribute for overlay when using displayBox
- closeMessage: 'Click to close',
- // use fadeOut effect when unblocking (can be overridden on unblock call)
- fadeOut: 1,
- // fadeOut transition time in millis
- fadeTime: 400
-};
-
-// the gory details
-$.blockUI.impl = {
- box: null,
- boxCallback: null,
- pageBlock: null,
- pageBlockEls: [],
- op8: window.opera && window.opera.version() < 9,
- ie6: $.browser.msie && /MSIE 6.0/.test(navigator.userAgent),
- install: function(el, msg, css, opts) {
- opts = opts || {};
- this.boxCallback = typeof opts.displayMode == 'function' ? opts.displayMode : null;
- this.box = opts.displayMode ? msg : null;
- var full = (el == window);
-
- // use logical settings for opacity support based on browser but allow overrides via opts arg
- var noalpha = this.op8 || $.browser.mozilla && /Linux/.test(navigator.platform);
- if (typeof opts.alphaOverride != 'undefined')
- noalpha = opts.alphaOverride == 0 ? 1 : 0;
-
- if (full && this.pageBlock) this.remove(window, {fadeOut:0});
- // check to see if we were only passed the css object (a literal)
- if (msg && typeof msg == 'object' && !msg.jquery && !msg.nodeType) {
- css = msg;
- msg = null;
- }
- msg = msg ? (msg.nodeType ? $(msg) : msg) : full ? $.blockUI.defaults.pageMessage : $.blockUI.defaults.elementMessage;
- if (opts.displayMode)
- var basecss = jQuery.extend({}, $.blockUI.defaults.displayBoxCSS);
- else
- var basecss = jQuery.extend({}, full ? $.blockUI.defaults.pageMessageCSS : $.blockUI.defaults.elementMessageCSS);
- css = jQuery.extend(basecss, css || {});
- var f = ($.browser.msie) ? $('<iframe class="blockUI" style="z-index:1000;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="javascript:false;"></iframe>')
- : $('<div class="blockUI" style="display:none"></div>');
- var w = $('<div class="blockUI" style="z-index:1001;cursor:wait;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
- var m = full ? $('<div class="blockUI blockMsg" style="z-index:1002;cursor:wait;padding:0;position:fixed"></div>')
- : $('<div class="blockUI" style="display:none;z-index:1002;cursor:wait;position:absolute"></div>');
- w.css('position', full ? 'fixed' : 'absolute');
- if (msg) m.css(css);
- if (!noalpha) w.css($.blockUI.defaults.overlayCSS);
- if (this.op8) w.css({ width:''+el.clientWidth,height:''+el.clientHeight }); // lame
- if ($.browser.msie) f.css('opacity','0.0');
-
- $([f[0],w[0],m[0]]).appendTo(full ? 'body' : el);
-
- // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
- var expr = $.browser.msie && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
- if (this.ie6 || expr) {
- // stretch content area if it's short
- if (full && $.blockUI.defaults.ie6Stretch && $.boxModel)
- $('html,body').css('height','100%');
-
- // fix ie6 problem when blocked element has a border width
- if ((this.ie6 || !$.boxModel) && !full) {
- var t = this.sz(el,'borderTopWidth'), l = this.sz(el,'borderLeftWidth');
- var fixT = t ? '(0 - '+t+')' : 0;
- var fixL = l ? '(0 - '+l+')' : 0;
- }
-
- // simulate fixed position
- $.each([f,w,m], function(i,o) {
- var s = o[0].style;
- s.position = 'absolute';
- if (i < 2) {
- full ? s.setExpression('height','document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + "px"')
- : s.setExpression('height','this.parentNode.offsetHeight + "px"');
- full ? s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
- : s.setExpression('width','this.parentNode.offsetWidth + "px"');
- if (fixL) s.setExpression('left', fixL);
- if (fixT) s.setExpression('top', fixT);
- }
- else {
- if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
- s.marginTop = 0;
- }
- });
- }
- if (opts.displayMode) {
- w.css('cursor','default').attr('title', $.blockUI.defaults.closeMessage);
- m.css('cursor','default');
- $([f[0],w[0],m[0]]).removeClass('blockUI').addClass('displayBox');
- $().click($.blockUI.impl.boxHandler).bind('keypress', $.blockUI.impl.boxHandler);
- }
- else
- this.bind(1, el);
- m.append(msg).show();
- if (msg.jquery) msg.show();
- if (opts.displayMode) return;
- if (full) {
- this.pageBlock = m[0];
- this.pageBlockEls = $(':input:enabled:visible',this.pageBlock);
- setTimeout(this.focus, 20);
- }
- else this.center(m[0]);
- },
- remove: function(el, opts) {
- var o = $.extend({}, $.blockUI.defaults, opts);
- this.bind(0, el);
- var full = el == window;
- var els = full ? $('body').children().filter('.blockUI') : $('.blockUI', el);
- if (full) this.pageBlock = this.pageBlockEls = null;
-
- if (o.fadeOut) {
- els.fadeOut(o.fadeTime, function() {
- if (this.parentNode) this.parentNode.removeChild(this);
- });
- }
- else els.remove();
- },
- boxRemove: function(el) {
- $().unbind('click',$.blockUI.impl.boxHandler).unbind('keypress', $.blockUI.impl.boxHandler);
- if (this.boxCallback)
- this.boxCallback(this.box);
- $('body .displayBox').hide().remove();
- },
- // event handler to suppress keyboard/mouse events when blocking
- handler: function(e) {
- if (e.keyCode && e.keyCode == 9) {
- if ($.blockUI.impl.pageBlock && !$.blockUI.defaults.allowTabToLeave) {
- var els = $.blockUI.impl.pageBlockEls;
- var fwd = !e.shiftKey && e.target == els[els.length-1];
- var back = e.shiftKey && e.target == els[0];
- if (fwd || back) {
- setTimeout(function(){$.blockUI.impl.focus(back)},10);
- return false;
- }
- }
- }
- if ($(e.target).parents('div.blockMsg').length > 0)
- return true;
- return $(e.target).parents().children().filter('div.blockUI').length == 0;
- },
- boxHandler: function(e) {
- if ((e.keyCode && e.keyCode == 27) || (e.type == 'click' && $(e.target).parents('div.blockMsg').length == 0))
- $.blockUI.impl.boxRemove();
- return true;
- },
- // bind/unbind the handler
- bind: function(b, el) {
- var full = el == window;
- // don't bother unbinding if there is nothing to unbind
- if (!b && (full && !this.pageBlock || !full && !el.$blocked)) return;
- if (!full) el.$blocked = b;
- var $e = $(el).find('a,:input');
- $.each(['mousedown','mouseup','keydown','keypress','click'], function(i,o) {
- $e[b?'bind':'unbind'](o, $.blockUI.impl.handler);
- });
- },
- focus: function(back) {
- if (!$.blockUI.impl.pageBlockEls) return;
- var e = $.blockUI.impl.pageBlockEls[back===true ? $.blockUI.impl.pageBlockEls.length-1 : 0];
- if (e) e.focus();
- },
- center: function(el) {
- var p = el.parentNode, s = el.style;
- var l = ((p.offsetWidth - el.offsetWidth)/2) - this.sz(p,'borderLeftWidth');
- var t = ((p.offsetHeight - el.offsetHeight)/2) - this.sz(p,'borderTopWidth');
- s.left = l > 0 ? (l+'px') : '0';
- s.top = t > 0 ? (t+'px') : '0';
- },
- sz: function(el, p) { return parseInt($.css(el,p))||0; }
-};
-
-})(jQuery);
diff --git a/ui/demos/real-world/photo-manager/js/jquery.livequery.js b/ui/demos/real-world/photo-manager/js/jquery.livequery.js
deleted file mode 100644
index dfed9fe75..000000000
--- a/ui/demos/real-world/photo-manager/js/jquery.livequery.js
+++ /dev/null
@@ -1,250 +0,0 @@
-/* Copyright (c) 2007 Brandon Aaron (brandon.aaron@gmail.com || 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.
- *
- * Version: @VERSION
- * Requires jQuery 1.1.3+
- * Docs: http://docs.jquery.com/Plugins/livequery
- */
-
-(function($) {
-
-$.extend($.fn, {
- livequery: function(type, fn, fn2) {
- var self = this, q;
-
- // Handle different call patterns
- if ($.isFunction(type))
- fn2 = fn, fn = type, type = undefined;
-
- // See if Live Query already exists
- $.each( $.livequery.queries, function(i, query) {
- if ( self.selector == query.selector && self.context == query.context &&
- type == query.type && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) )
- // Found the query, exit the each loop
- return (q = query) && false;
- });
-
- // Create new Live Query if it wasn't found
- q = q || new $.livequery(this.selector, this.context, type, fn, fn2);
-
- // Make sure it is running
- q.stopped = false;
-
- // Run it
- $.livequery.run( q.id );
-
- // Contnue the chain
- return this;
- },
-
- expire: function(type, fn, fn2) {
- var self = this;
-
- // Handle different call patterns
- if ($.isFunction(type))
- fn2 = fn, fn = type, type = undefined;
-
- // Find the Live Query based on arguments and stop it
- $.each( $.livequery.queries, function(i, query) {
- if ( self.selector == query.selector && self.context == query.context &&
- (!type || type == query.type) && (!fn || fn.$lqguid == query.fn.$lqguid) && (!fn2 || fn2.$lqguid == query.fn2.$lqguid) && !this.stopped )
- $.livequery.stop(query.id);
- });
-
- // Continue the chain
- return this;
- }
-});
-
-$.livequery = function(selector, context, type, fn, fn2) {
- this.selector = selector;
- this.context = context || document;
- this.type = type;
- this.fn = fn;
- this.fn2 = fn2;
- this.elements = [];
- this.stopped = false;
-
- // The id is the index of the Live Query in $.livequery.queries
- this.id = $.livequery.queries.push(this)-1;
-
- // Mark the functions for matching later on
- fn.$lqguid = fn.$lqguid || $.livequery.guid++;
- if (fn2) fn2.$lqguid = fn2.$lqguid || $.livequery.guid++;
-
- // Return the Live Query
- return this;
-};
-
-$.livequery.prototype = {
- stop: function() {
- var query = this;
-
- if ( this.type )
- // Unbind all bound events
- this.elements.unbind(this.type, this.fn);
- else if (this.fn2)
- // Call the second function for all matched elements
- this.elements.each(function(i, el) {
- query.fn2.apply(el);
- });
-
- // Clear out matched elements
- this.elements = [];
-
- // Stop the Live Query from running until restarted
- this.stopped = true;
- },
-
- run: function() {
- // Short-circuit if stopped
- if ( this.stopped ) return;
- var query = this;
-
- var oEls = this.elements,
- els = $(this.selector, this.context),
- nEls = els.not(oEls);
-
- // Set elements to the latest set of matched elements
- this.elements = els;
-
- if (this.type) {
- // Bind events to newly matched elements
- nEls.bind(this.type, this.fn);
-
- // Unbind events to elements no longer matched
- if (oEls.length > 0)
- $.each(oEls, function(i, el) {
- if ( $.inArray(el, els) < 0 )
- $.event.remove(el, query.type, query.fn);
- });
- }
- else {
- // Call the first function for newly matched elements
- nEls.each(function() {
- query.fn.apply(this);
- });
-
- // Call the second function for elements no longer matched
- if ( this.fn2 && oEls.length > 0 )
- $.each(oEls, function(i, el) {
- if ( $.inArray(el, els) < 0 )
- query.fn2.apply(el);
- });
- }
- }
-};
-
-$.extend($.livequery, {
- guid: 0,
- queries: [],
- queue: [],
- running: false,
- timeout: null,
-
- checkQueue: function() {
- if ( $.livequery.running && $.livequery.queue.length ) {
- var length = $.livequery.queue.length;
- // Run each Live Query currently in the queue
- while ( length-- )
- $.livequery.queries[ $.livequery.queue.shift() ].run();
- }
- },
-
- pause: function() {
- // Don't run anymore Live Queries until restarted
- $.livequery.running = false;
- },
-
- play: function() {
- // Restart Live Queries
- $.livequery.running = true;
- // Request a run of the Live Queries
- $.livequery.run();
- },
-
- registerPlugin: function() {
- $.each( arguments, function(i,n) {
- // Short-circuit if the method doesn't exist
- if (!$.fn[n]) return;
-
- // Save a reference to the original method
- var old = $.fn[n];
-
- // Create a new method
- $.fn[n] = function() {
- // Call the original method
- var r = old.apply(this, arguments);
-
- // Request a run of the Live Queries
- $.livequery.run();
-
- // Return the original methods result
- return r;
- }
- });
- },
-
- run: function(id) {
- if (id != undefined) {
- // Put the particular Live Query in the queue if it doesn't already exist
- if ( $.inArray(id, $.livequery.queue) < 0 )
- $.livequery.queue.push( id );
- }
- else
- // Put each Live Query in the queue if it doesn't already exist
- $.each( $.livequery.queries, function(id) {
- if ( $.inArray(id, $.livequery.queue) < 0 )
- $.livequery.queue.push( id );
- });
-
- // Clear timeout if it already exists
- if ($.livequery.timeout) clearTimeout($.livequery.timeout);
- // Create a timeout to check the queue and actually run the Live Queries
- $.livequery.timeout = setTimeout($.livequery.checkQueue, 20);
- },
-
- stop: function(id) {
- if (id != undefined)
- // Stop are particular Live Query
- $.livequery.queries[ id ].stop();
- else
- // Stop all Live Queries
- $.each( $.livequery.queries, function(id) {
- $.livequery.queries[ id ].stop();
- });
- }
-});
-
-// Register core DOM manipulation methods
-$.livequery.registerPlugin('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove');
-
-// Run Live Queries when the Document is ready
-$(function() { $.livequery.play(); });
-
-
-// Save a reference to the original init method
-var init = $.prototype.init;
-
-// Create a new init method that exposes two new properties: selector and context
-$.prototype.init = function(a,c) {
- // Call the original init and save the result
- var r = init.apply(this, arguments);
-
- // Copy over properties if they exist already
- if (a && a.selector)
- r.context = a.context, r.selector = a.selector;
-
- // Set properties
- if ( typeof a == 'string' )
- r.context = c || document, r.selector = a;
-
- // Return the result
- return r;
-};
-
-// Give the init function the jQuery prototype for later instantiation (needed after Rev 4091)
-$.prototype.init.prototype = $.prototype;
-
-})(jQuery); \ No newline at end of file
diff --git a/ui/demos/real-world/photo-manager/theme/css/screen.css b/ui/demos/real-world/photo-manager/theme/css/screen.css
deleted file mode 100644
index 3866beb8e..000000000
--- a/ui/demos/real-world/photo-manager/theme/css/screen.css
+++ /dev/null
@@ -1,179 +0,0 @@
-body {
- padding: 0;
- margin: 0;
- line-height: 1.5em;
- font-size: 75%; /* gives us 12px in most browsers */
- font-family: "Helvetica Neue", "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
- background: #aefe05 url('../img/side_top.jpg') repeat-x top; /* body background from ui.jquery.com */
- color: 222;
-}
-
-/*
-================================
-=LAYOUT
-================================ */
-h1 {
- padding: 0 0 0 52px;
- margin: 0;
- font-size: 1.5em; /* 18px */
- line-height: 2em; /* 36px */
- background: url('../img/photos_gold_32.gif') no-repeat 8px 50%; /* Thanks to Iconbuffet.com */
- color: #fff;
-}
-#body_wrap {
- width: 960px;
- margin: 0 auto;
- background: #fff url('../img/body_wrap_bg.gif') repeat-y;
-}
-#content {
- float: left;
- width: 632px;
-}
-#sidebar {
- float: right;
- width: 320px;
-}
-#footer {
- clear: both;
- background: #32342f;
- color: #fff;
-}
-
-/*
-================================
-=SECTIONS
-================================ */
-/*
-----------------
-=HEADER
----------------- */
-/*
-----------------
-=CONTENT
----------------- */
-#content h2 {
- padding-left: 25px;
-}
-/*
-=gallery
--------- */
-.gallery {
- min-height: 108px;
- padding: 0;
- margin: 18px 0;
- list-style: none;
-}
-* html .gallery {
- height: 108px; /* min-height for lte IE6 */
-}
-.gallery.active {
- background: #eee;
-}
-.gallery li {
- float: left;
- width: 160px;
- padding: 0 25px;
- margin: 0 0 8px;
-}
-.gallery img {
- display: block;
- padding: 7px;
- border: 1px solid #ccc;
- background: #fff;
-}
-.displayBox img {
- border: 25px solid #222;
-}
-/* img title */
-.gallery p {
- float: left;
- padding: 0;
- margin: 0;
-}
-/* img toolbar */
-.gallery div {
- float: right;
-}
-.gallery div a {
- float: left;
- width: 24px;
- height: 24px;
- background-repeat: no-repeat;
- background-position: center;
- text-indent: -9999px; /* Phark revisited image replacement */
-}
-.gallery div a:focus {
- outline: 0;
-}
-.tb_supersize {
- background-image: url('../img/search_16.gif'); /* Thanks to Iconbuffet.com */
-}
-.tb_trash {
- background-image: url('../img/trash_16.gif'); /* Thanks to Iconbuffet.com */
-}
-
-/*
-----------------
-=SIDEBAR
----------------- */
-.box {
- margin: 18px;
- border: 1px solid #ccc;
- background: #fff;
-}
-.box h2 {
- padding: 0 8px;
- margin: 0;
- font-size: 1.5em;
- line-height: 2em;
- background: #525252 url('../img/header_bg.png') repeat-x bottom;
- color: #fff;
-}
-.box div {
- min-height: 128px;
- border: 2px solid #fff;
-}
-* html #sidebar .box div {
- height: 128px; /* min-height for lte IE6 */
-}
-#trash div.active {
- border-color: green;
-}
-#shred div.active {
- border-color: red;
-}
-#trash div img {
- float: left;
- margin: 4px;
-}
-
-/*
-----------------
-=FOOTER
----------------- */
-#footer p {
- margin: 0;
- text-align: right;
-}
-
-
-/*
-================================
-=FLOAT CLEARING
-================================ */
-#body_wrap, ul.gallery, #trash div {
- display: inline-block;
-}
-#body_wrap:after, ul.gallery:after, #trash div:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-* html #body_wrap, * html ul.gallery, * html #trash div {
- height: 1%;
-}
-#body_wrap, ul.gallery, #trash div {
- display: block;
-}
diff --git a/ui/demos/real-world/photo-manager/theme/img/body_wrap_bg.gif b/ui/demos/real-world/photo-manager/theme/img/body_wrap_bg.gif
deleted file mode 100644
index 7ad1d5476..000000000
--- a/ui/demos/real-world/photo-manager/theme/img/body_wrap_bg.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/theme/img/header_bg.png b/ui/demos/real-world/photo-manager/theme/img/header_bg.png
deleted file mode 100644
index a517ae7dd..000000000
--- a/ui/demos/real-world/photo-manager/theme/img/header_bg.png
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/theme/img/photos_gold_32.gif b/ui/demos/real-world/photo-manager/theme/img/photos_gold_32.gif
deleted file mode 100644
index e6bdfdcbc..000000000
--- a/ui/demos/real-world/photo-manager/theme/img/photos_gold_32.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/theme/img/search_16.gif b/ui/demos/real-world/photo-manager/theme/img/search_16.gif
deleted file mode 100644
index d9ed18dfc..000000000
--- a/ui/demos/real-world/photo-manager/theme/img/search_16.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/theme/img/side_top.jpg b/ui/demos/real-world/photo-manager/theme/img/side_top.jpg
deleted file mode 100644
index ecf5a18b6..000000000
--- a/ui/demos/real-world/photo-manager/theme/img/side_top.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/photo-manager/theme/img/trash_16.gif b/ui/demos/real-world/photo-manager/theme/img/trash_16.gif
deleted file mode 100644
index cbe509180..000000000
--- a/ui/demos/real-world/photo-manager/theme/img/trash_16.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_airport_express.jpg b/ui/demos/real-world/product-slider/images/pb_airport_express.jpg
deleted file mode 100644
index d3ae98fa6..000000000
--- a/ui/demos/real-world/product-slider/images/pb_airport_express.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_airport_extreme.jpg b/ui/demos/real-world/product-slider/images/pb_airport_extreme.jpg
deleted file mode 100644
index b7d1e0395..000000000
--- a/ui/demos/real-world/product-slider/images/pb_airport_extreme.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_aperture20080212.jpg b/ui/demos/real-world/product-slider/images/pb_aperture20080212.jpg
deleted file mode 100644
index b8bc10830..000000000
--- a/ui/demos/real-world/product-slider/images/pb_aperture20080212.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_apple_remote_desktop_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_apple_remote_desktop_20080115.jpg
deleted file mode 100644
index 760035bac..000000000
--- a/ui/demos/real-world/product-slider/images/pb_apple_remote_desktop_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_cinema_display20071026.jpg b/ui/demos/real-world/product-slider/images/pb_cinema_display20071026.jpg
deleted file mode 100644
index f75703766..000000000
--- a/ui/demos/real-world/product-slider/images/pb_cinema_display20071026.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_dot_mac_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_dot_mac_20080115.jpg
deleted file mode 100644
index d1bd8ffb6..000000000
--- a/ui/demos/real-world/product-slider/images/pb_dot_mac_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_final_cut_express_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_final_cut_express_20080115.jpg
deleted file mode 100644
index 085b18033..000000000
--- a/ui/demos/real-world/product-slider/images/pb_final_cut_express_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_final_cut_studio2_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_final_cut_studio2_20080115.jpg
deleted file mode 100644
index 1f9c60a64..000000000
--- a/ui/demos/real-world/product-slider/images/pb_final_cut_studio2_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_ilife_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_ilife_20080115.jpg
deleted file mode 100644
index 69d6961bf..000000000
--- a/ui/demos/real-world/product-slider/images/pb_ilife_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_imac20071026.jpg b/ui/demos/real-world/product-slider/images/pb_imac20071026.jpg
deleted file mode 100644
index 961eaf7ec..000000000
--- a/ui/demos/real-world/product-slider/images/pb_imac20071026.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_iwork_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_iwork_20080115.jpg
deleted file mode 100644
index 929b7130e..000000000
--- a/ui/demos/real-world/product-slider/images/pb_iwork_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_keyboards20070807.jpg b/ui/demos/real-world/product-slider/images/pb_keyboards20070807.jpg
deleted file mode 100644
index 8bed6d3d8..000000000
--- a/ui/demos/real-world/product-slider/images/pb_keyboards20070807.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_logic_express_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_logic_express_20080115.jpg
deleted file mode 100644
index ff708e48b..000000000
--- a/ui/demos/real-world/product-slider/images/pb_logic_express_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_logic_studio_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_logic_studio_20080115.jpg
deleted file mode 100644
index 916ecce93..000000000
--- a/ui/demos/real-world/product-slider/images/pb_logic_studio_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_mac_mini.jpg b/ui/demos/real-world/product-slider/images/pb_mac_mini.jpg
deleted file mode 100644
index 4822b02e2..000000000
--- a/ui/demos/real-world/product-slider/images/pb_mac_mini.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_mac_pro_20070622.jpg b/ui/demos/real-world/product-slider/images/pb_mac_pro_20070622.jpg
deleted file mode 100644
index d1e6ab8d6..000000000
--- a/ui/demos/real-world/product-slider/images/pb_mac_pro_20070622.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_macbook20071026.jpg b/ui/demos/real-world/product-slider/images/pb_macbook20071026.jpg
deleted file mode 100644
index 525175a4b..000000000
--- a/ui/demos/real-world/product-slider/images/pb_macbook20071026.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_macbook_pro20071026.jpg b/ui/demos/real-world/product-slider/images/pb_macbook_pro20071026.jpg
deleted file mode 100644
index 4e4f42cca..000000000
--- a/ui/demos/real-world/product-slider/images/pb_macbook_pro20071026.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_macbookair_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_macbookair_20080115.jpg
deleted file mode 100644
index 595ecaf07..000000000
--- a/ui/demos/real-world/product-slider/images/pb_macbookair_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_macosx_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_macosx_20080115.jpg
deleted file mode 100644
index 34ace8d55..000000000
--- a/ui/demos/real-world/product-slider/images/pb_macosx_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_macosx_server20071016.jpg b/ui/demos/real-world/product-slider/images/pb_macosx_server20071016.jpg
deleted file mode 100644
index 53066e432..000000000
--- a/ui/demos/real-world/product-slider/images/pb_macosx_server20071016.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_mighty_mouse.jpg b/ui/demos/real-world/product-slider/images/pb_mighty_mouse.jpg
deleted file mode 100644
index a0267a7f7..000000000
--- a/ui/demos/real-world/product-slider/images/pb_mighty_mouse.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_quicktime.jpg b/ui/demos/real-world/product-slider/images/pb_quicktime.jpg
deleted file mode 100644
index 163059d46..000000000
--- a/ui/demos/real-world/product-slider/images/pb_quicktime.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_shake_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_shake_20080115.jpg
deleted file mode 100644
index 43151b508..000000000
--- a/ui/demos/real-world/product-slider/images/pb_shake_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_timecapsule_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_timecapsule_20080115.jpg
deleted file mode 100644
index cdc24f583..000000000
--- a/ui/demos/real-world/product-slider/images/pb_timecapsule_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_xsan_20080115.jpg b/ui/demos/real-world/product-slider/images/pb_xsan_20080115.jpg
deleted file mode 100644
index 1623791e6..000000000
--- a/ui/demos/real-world/product-slider/images/pb_xsan_20080115.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_xserve.jpg b/ui/demos/real-world/product-slider/images/pb_xserve.jpg
deleted file mode 100644
index f2c3f4b79..000000000
--- a/ui/demos/real-world/product-slider/images/pb_xserve.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/pb_xserve_raid.jpg b/ui/demos/real-world/product-slider/images/pb_xserve_raid.jpg
deleted file mode 100644
index f93f3dfc9..000000000
--- a/ui/demos/real-world/product-slider/images/pb_xserve_raid.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/productbrowser_background_20070622.jpg b/ui/demos/real-world/product-slider/images/productbrowser_background_20070622.jpg
deleted file mode 100644
index 0eb8f8e16..000000000
--- a/ui/demos/real-world/product-slider/images/productbrowser_background_20070622.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/productbrowser_scrollbar_20070622.png b/ui/demos/real-world/product-slider/images/productbrowser_scrollbar_20070622.png
deleted file mode 100644
index 997ac189c..000000000
--- a/ui/demos/real-world/product-slider/images/productbrowser_scrollbar_20070622.png
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/images/productbrowser_scroller_20080115.png b/ui/demos/real-world/product-slider/images/productbrowser_scroller_20080115.png
deleted file mode 100644
index 6c9d0f9bb..000000000
--- a/ui/demos/real-world/product-slider/images/productbrowser_scroller_20080115.png
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/product-slider/index.html b/ui/demos/real-world/product-slider/index.html
deleted file mode 100644
index 07cae0de7..000000000
--- a/ui/demos/real-world/product-slider/index.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- <title>Slider Gallery</title>
- <style type="text/css" media="screen">
- <!--
- body {
- padding: 0;
- font: 1em "Trebuchet MS", verdana, arial, sans-serif;
- font-size: 100%;
- background-color: #212121;
- margin: 0;
- }
-
- h1 {
- margin-bottom: 2px;
- }
-
- #container {
- background-color: #fff;
- width: 580px;
- margin: 15px auto;
- padding: 50px;
- }
-
- /* slider specific CSS */
- .sliderGallery {
- background: url(images/productbrowser_background_20070622.jpg) no-repeat;
- overflow: hidden;
- position: relative;
- padding: 10px;
- height: 160px;
- width: 560px;
- }
-
- .sliderGallery UL {
- position: absolute;
- list-style: none;
- overflow: none;
- white-space: nowrap;
- padding: 0;
- margin: 0;
- }
-
- .sliderGallery UL LI {
- display: inline;
- }
-
- .slider {
- width: 542px;
- height: 17px;
- margin-top: 140px;
- margin-left: 5px;
- padding: 1px;
- position: relative;
- background: url(images/productbrowser_scrollbar_20070622.png) no-repeat;
- }
-
- .handle {
- position: absolute;
- cursor: move;
- height: 17px;
- width: 181px;
- top: 0;
- background: url(images/productbrowser_scroller_20080115.png) no-repeat;
- z-index: 100;
- }
-
- .slider span {
- color: #bbb;
- font-size: 80%;
- cursor: pointer;
- position: absolute;
- z-index: 110;
- top: 3px;
- }
-
- .slider .slider-lbl1 {
- left: 50px;
- }
-
- .slider .slider-lbl2 {
- left: 107px;
- }
-
- .slider .slider-lbl3 {
- left: 156px;
- }
-
- .slider .slider-lbl4 {
- left: 280px;
- }
-
- .slider .slider-lbl5 {
- left: 455px;
- }
- -->
- </style>
-
- <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
- <script type="text/javascript" src="../../../source/ui.core.js"></script>
- <script type="text/javascript" src="../../../source/ui.slider.js"></script>
-
- <script type="text/javascript" charset="utf-8">
- /**
- * Note that we have to use window.onload because $(document).ready() fires before images are loaded
- * and ul.innerWidth() - container.outerWidth(); doesn't give the correct width because the width
- * of the UL hasn't expanded out until the images have finished rendering.
- */
- window.onload = function () {
- var container = $('div.sliderGallery');
- var ul = $('ul', container);
-
- var itemsWidth = ul.innerWidth() - container.outerWidth();
-
- $('.slider', container).slider({
- min: 0,
- max: itemsWidth,
- handle: '.handle',
- stop: function (event, ui) {
- ul.animate({'left' : ui.value * -1}, 500);
- },
- slide: function (event, ui) {
- ul.css('left', ui.value * -1);
- }
- });
- };
- </script>
-</head>
-<body>
- <div id="container">
- <h1>Slider Gallery</h1>
- <p>This shows a demonstration of a slider widget from the jQuery UI library used to create the same effect used on <a href="http://www.apple.com/mac/">Apple's web site</a>.</p>
- <p><a href="http://jqueryfordesigners.com/slider-gallery">Read the article, and see the screencast this demonstration relates to</a></p>
-
- <div class="sliderGallery">
- <ul>
- <li><img class="pb-airportexpress" src="images/pb_airport_express.jpg" /></li>
- <li><img src="images/pb_airport_extreme.jpg" /></li>
- <li><img src="images/pb_timecapsule_20080115.jpg" /></li>
- <li><img src="images/pb_keyboards20070807.jpg" /></li>
- <li><img src="images/pb_mighty_mouse.jpg" /></li>
- <li><img src="images/pb_cinema_display20071026.jpg" /></li>
- <li><img src="images/pb_mac_pro_20070622.jpg" /></li>
-
- <li><img class="pb-macmini" src="images/pb_mac_mini.jpg" /></li>
- <li><img src="images/pb_macbook20071026.jpg" /></li>
- <li><img class="pb-macbookair" src="images/pb_macbookair_20080115.jpg" /></li>
- <li><img class="pb-macbookpro" src="images/pb_macbook_pro20071026.jpg" /></li>
- <li><img class="pb-imac" src="images/pb_imac20071026.jpg" /></li>
- <li><img src="images/pb_macosx_20080115.jpg" /></li>
- <li><img src="images/pb_ilife_20080115.jpg" /></li>
- <li><img src="images/pb_dot_mac_20080115.jpg" /></li>
- <li><img src="images/pb_iwork_20080115.jpg" /></li>
-
- <li><img src="images/pb_quicktime.jpg" /></li>
- <li><img src="images/pb_aperture20080212.jpg" /></li>
- <li><img src="images/pb_final_cut_studio2_20080115.jpg" /></li>
- <li><img src="images/pb_final_cut_express_20080115.jpg" /></li>
- <li><img src="images/pb_logic_studio_20080115.jpg" /></li>
- <li><img src="images/pb_logic_express_20080115.jpg" /></li>
- <li><img src="images/pb_shake_20080115.jpg" /></li>
- <li><img src="images/pb_apple_remote_desktop_20080115.jpg" /></li>
- <li><img src="images/pb_xserve.jpg" /></li>
-
- <li><img src="images/pb_xserve_raid.jpg" /></li>
- <li><img class="pb-xsan" src="images/pb_xsan_20080115.jpg" /></li>
- <li><img class="pb-macosxserver" src="images/pb_macosx_server20071016.jpg" /></li>
- </ul>
- <div class="slider">
- <div class="handle"></div>
- <span class="slider-lbl1">Wi-Fi</span>
- <span class="slider-lbl3">Macs</span>
- <span class="slider-lbl4">Applications</span>
- <span class="slider-lbl5">Servers</span>
- </div>
- </div>
- </div>
-</body>
-</html>
-
-
-
-
diff --git a/ui/demos/real-world/range-interface/index.html b/ui/demos/real-world/range-interface/index.html
deleted file mode 100644
index bb8554fa3..000000000
--- a/ui/demos/real-world/range-interface/index.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Language" content="en" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Slider Test Page</title>
-<script src="../../../../jquery/jquery-1.2.6.js" type="text/javascript" charset="utf-8"></script>
-<link rel="stylesheet" href="../../../themes/flora/flora.all.css" type="text/css" media="screen" title="no title" charset="utf-8">
-<script src="../../../source/ui.core.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/ui.slider.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.core.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.blind.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.bounce.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.clip.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.drop.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.explode.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.fold.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.highlight.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.pulsate.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.scale.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.shake.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.slide.js" type="text/javascript" charset="utf-8"></script>
-<script src="../../../source/effects.transfer.js" type="text/javascript" charset="utf-8"></script>
-
-<style type="text/css" media="all">
-#wrap {
- width: 900px;
- margin: 0 auto;
-}
-#col-1 {
- width: 220px;
- border: 1px solid #ccc;
- padding: 20px;
- float: left;
-}
-#col-2 {
- width: 500px;
- float: left;
-}
-#col-2 div {
- width: 100px;
- height: 100px;
- background: #ccc;
- border: 1px solid #000;
- margin: 20px;
- float: left;
- text-align: center;
- font-size: 150%;
-}
-.label-1 { position: absolute; left: 0; top: -1.1em; }
-.label-2 { position: absolute; right: 0; top: -1.1em; }
-</style>
-</head>
-<body class="flora">
-<div id="wrap">
- <h1>Slider Interface Example</h1>
- <div id="col-1">
- <div id="slider1" class="ui-slider-2">
- <div class="ui-slider-handle"></div>
- <div class="ui-slider-handle"></div>
- <span class="label-1">0</span>
- <span class="label-2">100</span>
- </div>
- <br />
- <select id="effects">
- <option>fade</option>
- <option>drop</option>
- <option>fold</option>
- <option>highlight</option>
- <option>explode</option>
- <option>slide</option>
- <option>clip</option>
- <option>shake</option>
- <option>scale</option>
- <option>pulsate</option>
- <option>bounce</option>
- </select>
- </div>
-
- <div id="col-2">
- <div>0</div>
- <div>10</div>
- <div>20</div>
- <div>30</div>
- <div>40</div>
- <div>50</div>
- <div>60</div>
- <div>70</div>
- <div>80</div>
- <div>90</div>
- <div>100</div>
- </div>
-</div>
-<script type="text/javascript">
-$(function(){
- $('#slider1').slider({
- stepping: 10,
- min: 0,
- max: 100,
- range: true,
- change: function(e, ui) {
- var minValue = $('#slider1').slider('value', 0);
- var maxValue = $('#slider1').slider('value', 1);
- $('#col-2 div').each(function(){
- var value = parseInt($(this).html(), 10);
- if (value < minValue || value > maxValue) {
- var effect = $('#effects').val();
- switch (effect) {
- case 'fade' :
- $(this).fadeOut();
- break;
- case 'drop' :
- $(this).hide('drop', { direction: 'down' });
- break;
- default :
- $(this).hide(effect);
- }
- } else
- $(this).fadeIn();
- });
- },
- handles: [
- {start: 0, min: 0, max: 100},
- {start: 100, min: 0, max: 100}
- ]
- });
-});
-</script>
-</body>
-</html>
diff --git a/ui/demos/real-world/splitpane/css/demo.css b/ui/demos/real-world/splitpane/css/demo.css
deleted file mode 100644
index d30c33149..000000000
--- a/ui/demos/real-world/splitpane/css/demo.css
+++ /dev/null
@@ -1,149 +0,0 @@
-/* --------------------------------------------------------------
-
- jQuery UI: Demo Viewer
-
--------------------------------------------------------------- */
-
-
-/*************************************/
-/* Blueprint: reset.css */
-
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-dl, dt, dd, ol,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
- margin: 0;
- padding: 0;
- border: 0;
- outline: 0;
- font-weight: inherit;
- font-style: inherit;
- font-size: 100%;
- font-family: inherit;
- vertical-align: baseline;
-}
-
-label {
- margin-right: 5px;
-}
-
-/* Remember to define focus styles! */
-:focus {
- outline: 0;
-}
-body {
- line-height: 1;
- color: black;
- background: white;
- font-family: Arial,Sans-serif; font-size: 0.9em;
- background-color: white;
- overflow: hidden;
-}
-ol, ul {
- list-style: none;
-}
-
-/* Tables still need 'cellspacing="0"' in the markup. */
-table {
- border-collapse: separate;
- border-spacing: 0;
-}
-caption, th, td {
- text-align: left;
- font-weight: normal;
-}
-
-/* Remove possible quote marks (") from <q>, <blockquote>. */
-blockquote:before, blockquote:after,
-q:before, q:after {
- content: "";
-}
-blockquote, q {
- quotes: "" "";
-}
-
-/*************************************/
-/* Viewer: Layout */
-
-#wrapper {
- background: #e1e7f2 url(../images/bg_gradient.gif) repeat-x;
- }
- #header {
- padding: 10px;
- background: #67A7E3; color: #fff;
- position: relative;
- }
- #container {
- height: 500px;
- }
- #container td {
- overflow: hidden;
- }
- #container td div {
- overflow: hidden;
- padding: 0 15px 0 10px;
- background: #fff;
- height:475px;
- font-size: 90%;
- }
- #container .ui-split-side-box {
- width: 200px;
- }
- #container .ui-split-side {
- overflow: hidden;
- }
- #container .ui-split-side ul {
- margin: 0; padding: 0; padding-top: 3px;
- }
- #container .ui-split-side li {
- margin: 0; padding: 0; border: 0; outline: 0;
- list-style: none;
- }
- #container .ui-split-side li a {
- height: 15px;
- display:block;
- padding: 3px 3px 3px 12px;
- border-bottom: 1px solid #E8EEF7;
- color: #000;
- font-size: 90%;
- text-decoration: none;
- }
- #container .ui-split-side li a:hover {
- background: #E8EEF7;
- border-color: #C3D9FF;
- }
- #container .ui-split-main-box {
-
- }
-
- #container .ui-resizable-e {
- width: 10px; height: 475px;
- background:#e1e7f2 url(../images/splitpane_handle-ew.gif) no-repeat scroll 75% 50% !important;
- cursor:col-resize !important;
- border-left: #bbb 1px solid;
- padding: 3px;
- }
- #container .ui-resizable-n {
- height: 10px;
- background:#e1e7f2 url(../images/splitpane_handle-sn.gif) no-repeat scroll 50% 55% !important;
- border-top: #bbb 1px solid;
- padding: 3px;
- }
-
-
-
- .ui-toolbar-item-hide-icon {
- padding-left: 16px; height: 16px;
- background-image: url(../images/icons_2.png);
- background-repeat: no-repeat; margin: 0 2px;
- display: inline-block;
- }
-
- .ui-toolbar-item-hide-icon { background-position: -64px 50%; }
-
- .proxy { border: 1px dashed #000; };
-
diff --git a/ui/demos/real-world/splitpane/images/bg_gradient.gif b/ui/demos/real-world/splitpane/images/bg_gradient.gif
deleted file mode 100644
index d3f535e73..000000000
--- a/ui/demos/real-world/splitpane/images/bg_gradient.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/splitpane/images/icons_2.png b/ui/demos/real-world/splitpane/images/icons_2.png
deleted file mode 100644
index a05f52c7a..000000000
--- a/ui/demos/real-world/splitpane/images/icons_2.png
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/splitpane/images/splitpane_handle-ew.gif b/ui/demos/real-world/splitpane/images/splitpane_handle-ew.gif
deleted file mode 100644
index 262763665..000000000
--- a/ui/demos/real-world/splitpane/images/splitpane_handle-ew.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/splitpane/images/splitpane_handle-sn.gif b/ui/demos/real-world/splitpane/images/splitpane_handle-sn.gif
deleted file mode 100644
index bd60c408b..000000000
--- a/ui/demos/real-world/splitpane/images/splitpane_handle-sn.gif
+++ /dev/null
Binary files differ
diff --git a/ui/demos/real-world/splitpane/index.html b/ui/demos/real-world/splitpane/index.html
deleted file mode 100644
index 2800b206f..000000000
--- a/ui/demos/real-world/splitpane/index.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta http-equiv="Content-Language" content="en" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>jQuery UI: SplitPane</title>
-
- <!-- jQuery -->
- <script type="text/javascript" src="../../../../jquery/jquery-1.2.6.js"></script>
-
- <!-- jQuery UI -->
- <script type="text/javascript" src="../../../source/ui.core.js"></script>
- <script type="text/javascript" src="../../../source/ui.resizable.js"></script>
-
- <script src="js/demo.js" type="text/javascript" charset="utf-8"></script>
-
- <style type="text/css">
- @import "css/demo.css";
- </style>
-
-</head>
-<body>
-
-<div id="wrapper">
- <div id="header">
- <span class="ui-toolbar-item-hide-icon"></span> <span>jQuery UI Resizable SplitPanel</span>
- </div>
- <table id="container" cellpadding="0" cellspacing="0" border="0">
-
- <tr>
-
- <td class="ui-split-side-box">
- <div class="ui-split-side">
- <ul id="component-links">
- <li><a href="#ui.accordion" title="Goto Accordion's Component Page">Accordion</a></li>
- <li><a href="#ui.dialog" title="Goto Dialog's Component Page">Dialog</a></li>
- <li><a href="#ui.draggable" title="Goto Draggable's Component Page">Draggable</a></li>
- <li><a href="#ui.droppable" title="Goto Droppable's Component Page">Droppable</a></li>
- <li><a href="#ui.resizable" title="Goto Resizable's Component Page">Resizable</a></li>
- <li><a href="#ui.selectable" title="Goto Selectable's Component Page">Selectable</a></li>
- <li><a href="#ui.sortable" title="Goto Sortable's Component Page">Sortable</a></li>
- <li><a href="#ui.tabs" title="Goto Tabs Component Page">Tabs</a></li>
- </ul>
- </div>
- </td>
-
-
- <td class="ui-split-main-box">
- <div class="ui-split-main1">
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum commodo mollis tortor. Ut dapibus turpis consequat quam. Nulla lacinia. Donec nunc. Donec sollicitudin. Vivamus orci. Pellentesque tempus velit vitae odio. Maecenas enim arcu, volutpat ac, viverra id, bibendum eu, felis. Vestibulum imperdiet arcu. Ut nisi. Cras vel lectus consectetuer mauris luctus ultrices. Duis fringilla pellentesque sapien.
- <br><br>
- Cras tristique justo vel metus. Pellentesque dolor libero, ullamcorper ac, vehicula eget, porttitor at, dui. Ut a nibh. Nunc sit amet turpis. Aenean diam dui, consequat vel, scelerisque id, accumsan a, lectus. Duis ultrices, enim vitae pharetra tincidunt, elit nunc sollicitudin felis, dapibus pellentesque urna velit ut quam. Donec scelerisque vehicula dolor. Suspendisse lectus dui, posuere sit amet, sagittis nec, vulputate in, libero. Morbi tempus sagittis est. Phasellus in nisi. Sed a ligula. Vivamus condimentum quam non nibh. Fusce pellentesque, neque ac scelerisque luctus, leo elit bibendum elit, in rutrum leo erat tristique felis. Etiam consequat fringilla eros. Nullam neque. Aenean mollis, odio at consectetuer sollicitudin, tortor lorem facilisis nunc, sit amet condimentum lectus libero convallis dolor. Vivamus quis risus.
-
- </div>
- </td>
-
- <td class="ui-split-main-box">
- <div class="ui-split-main2">
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum commodo mollis tortor. Ut dapibus turpis consequat quam. Nulla lacinia. Donec nunc. Donec sollicitudin. Vivamus orci. Pellentesque tempus velit vitae odio. Maecenas enim arcu, volutpat ac, viverra id, bibendum eu, felis. Vestibulum imperdiet arcu. Ut nisi. Cras vel lectus consectetuer mauris luctus ultrices. Duis fringilla pellentesque sapien.
- <br><br>
- Cras tristique justo vel metus. Pellentesque dolor libero, ullamcorper ac, vehicula eget, porttitor at, dui. Ut a nibh. Nunc sit amet turpis. Aenean diam dui, consequat vel, scelerisque id, accumsan a, lectus. Duis ultrices, enim vitae pharetra tincidunt, elit nunc sollicitudin felis, dapibus pellentesque urna velit ut quam. Donec scelerisque vehicula dolor. Suspendisse lectus dui, posuere sit amet, sagittis nec, vulputate in, libero. Morbi tempus sagittis est. Phasellus in nisi. Sed a ligula. Vivamus condimentum quam non nibh. Fusce pellentesque, neque ac scelerisque luctus, leo elit bibendum elit, in rutrum leo erat tristique felis. Etiam consequat fringilla eros. Nullam neque. Aenean mollis, odio at consectetuer sollicitudin, tortor lorem facilisis nunc, sit amet condimentum lectus libero convallis dolor. Vivamus quis risus.
- </div>
- </td>
-
- <td class="ui-split-main-box">
- <div class="ui-split-main3">
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum commodo mollis tortor. Ut dapibus turpis consequat quam. Nulla lacinia. Donec nunc. Donec sollicitudin. Vivamus orci. Pellentesque tempus velit vitae odio. Maecenas enim arcu, volutpat ac, viverra id, bibendum eu, felis. Vestibulum imperdiet arcu. Ut nisi. Cras vel lectus consectetuer mauris luctus ultrices. Duis fringilla pellentesque sapien.
- <br><br>
- Cras tristique justo vel metus. Pellentesque dolor libero, ullamcorper ac, vehicula eget, porttitor at, dui. Ut a nibh. Nunc sit amet turpis. Aenean diam dui, consequat vel, scelerisque id, accumsan a, lectus. Duis ultrices, enim vitae pharetra tincidunt, elit nunc sollicitudin felis, dapibus pellentesque urna velit ut quam. Donec scelerisque vehicula dolor. Suspendisse lectus dui, posuere sit amet, sagittis nec, vulputate in, libero. Morbi tempus sagittis est. Phasellus in nisi. Sed a ligula. Vivamus condimentum quam non nibh. Fusce pellentesque, neque ac scelerisque luctus, leo elit bibendum elit, in rutrum leo erat tristique felis. Etiam consequat fringilla eros. Nullam neque. Aenean mollis, odio at consectetuer sollicitudin, tortor lorem facilisis nunc, sit amet condimentum lectus libero convallis dolor. Vivamus quis risus.
- </div>
- </td>
-
- </tr>
-
- </table>
-</div>
-<script type="text/javascript">
- $(function() {
-
- $('div.ui-split-main1, div.ui-split-main2').resizable({
- handles: 'e',
- minWidth: 200,
- maxWidth: 800
- });
-
- $('div.ui-split-side').resizable({
- handles: 'e',
- proxy: 'proxy',
- minWidth: 200,
- maxWidth: 300
- });
-
- });
-</script>
-</body>
-</html>
diff --git a/ui/jquery-1.2.6.js b/ui/jquery-1.2.6.js
deleted file mode 100644
index 88e661eec..000000000
--- a/ui/jquery-1.2.6.js
+++ /dev/null
@@ -1,3549 +0,0 @@
-(function(){
-/*
- * jQuery 1.2.6 - 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-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
- * $Rev: 5685 $
- */
-
-// Map over jQuery in case of overwrite
-var _jQuery = window.jQuery,
-// Map over the $ in case of overwrite
- _$ = window.$;
-
-var jQuery = window.jQuery = window.$ = function( selector, context ) {
- // The jQuery object is actually just the init constructor 'enhanced'
- return new jQuery.fn.init( selector, context );
-};
-
-// A simple way to check for HTML strings or ID strings
-// (both of which we optimize for)
-var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,
-
-// Is it a simple selector
- isSimple = /^.[^:#\[\.]*$/,
-
-// Will speed up references to undefined, and allows munging its name.
- undefined;
-
-jQuery.fn = jQuery.prototype = {
- init: function( selector, context ) {
- // Make sure that a selection was provided
- selector = selector || document;
-
- // Handle $(DOMElement)
- if ( selector.nodeType ) {
- this[0] = selector;
- this.length = 1;
- return this;
- }
- // Handle HTML strings
- if ( typeof selector == "string" ) {
- // Are we dealing with HTML string or an ID?
- var 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] )
- selector = jQuery.clean( [ match[1] ], context );
-
- // HANDLE: $("#id")
- else {
- var elem = document.getElementById( match[3] );
-
- // Make sure an element was located
- if ( elem ){
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem.id != match[3] )
- return jQuery().find( selector );
-
- // Otherwise, we inject the element directly into the jQuery object
- return jQuery( elem );
- }
- selector = [];
- }
-
- // HANDLE: $(expr, [context])
- // (which is just equivalent to: $(content).find(expr)
- } else
- return jQuery( context ).find( selector );
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) )
- return jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector );
-
- return this.setArray(jQuery.makeArray(selector));
- },
-
- // The current version of jQuery being used
- jquery: "1.2.6",
-
- // The number of elements contained in the matched element set
- size: function() {
- return this.length;
- },
-
- // The number of elements contained in the matched element set
- length: 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 == undefined ?
-
- // Return a 'clean' array
- jQuery.makeArray( this ) :
-
- // Return just the object
- this[ num ];
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
- // Build a new jQuery matched element set
- var ret = jQuery( elems );
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Force the current matched set of elements to become
- // the specified array of elements (destroying the stack in the process)
- // You should use pushStack() in order to do this, but maintain the stack
- setArray: function( elems ) {
- // Resetting the length to 0, then using the native Array push
- // is a super-fast way to populate an object with array-like properties
- this.length = 0;
- Array.prototype.push.apply( this, elems );
-
- return this;
- },
-
- // 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 );
- },
-
- // Determine the position of an element within
- // the matched set of elements
- index: function( elem ) {
- var ret = -1;
-
- // Locate the position of the desired element
- return jQuery.inArray(
- // If it receives a jQuery object, the first element is used
- elem && elem.jquery ? elem[0] : elem
- , this );
- },
-
- attr: function( name, value, type ) {
- var options = name;
-
- // Look for the case where we're accessing a style value
- if ( name.constructor == String )
- if ( value === undefined )
- return this[0] && jQuery[ type || "attr" ]( this[0], name );
-
- else {
- options = {};
- options[ name ] = value;
- }
-
- // Check to see if we're setting style values
- return this.each(function(i){
- // Set all the styles
- for ( name in options )
- jQuery.attr(
- type ?
- this.style :
- this,
- name, jQuery.prop( this, options[ name ], type, i, name )
- );
- });
- },
-
- css: function( key, value ) {
- // ignore negative width and height values
- if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 )
- value = undefined;
- return this.attr( key, value, "curCSS" );
- },
-
- text: function( text ) {
- if ( typeof text != "object" && text != null )
- return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-
- var ret = "";
-
- jQuery.each( text || this, function(){
- jQuery.each( this.childNodes, function(){
- if ( this.nodeType != 8 )
- ret += this.nodeType != 1 ?
- this.nodeValue :
- jQuery.fn.text( [ this ] );
- });
- });
-
- return ret;
- },
-
- wrapAll: function( html ) {
- if ( this[0] )
- // The elements to wrap the target around
- jQuery( html, this[0].ownerDocument )
- .clone()
- .insertBefore( this[0] )
- .map(function(){
- var elem = this;
-
- while ( elem.firstChild )
- elem = elem.firstChild;
-
- return elem;
- })
- .append(this);
-
- return this;
- },
-
- wrapInner: function( html ) {
- return this.each(function(){
- jQuery( this ).contents().wrapAll( html );
- });
- },
-
- wrap: function( html ) {
- return this.each(function(){
- jQuery( this ).wrapAll( html );
- });
- },
-
- append: function() {
- return this.domManip(arguments, true, false, function(elem){
- if (this.nodeType == 1)
- this.appendChild( elem );
- });
- },
-
- prepend: function() {
- return this.domManip(arguments, true, true, function(elem){
- if (this.nodeType == 1)
- this.insertBefore( elem, this.firstChild );
- });
- },
-
- before: function() {
- return this.domManip(arguments, false, false, function(elem){
- this.parentNode.insertBefore( elem, this );
- });
- },
-
- after: function() {
- return this.domManip(arguments, false, true, function(elem){
- this.parentNode.insertBefore( elem, this.nextSibling );
- });
- },
-
- end: function() {
- return this.prevObject || jQuery( [] );
- },
-
- find: function( selector ) {
- var elems = jQuery.map(this, function(elem){
- return jQuery.find( selector, elem );
- });
-
- return this.pushStack( /[^+>] [^+>]/.test( selector ) || selector.indexOf("..") > -1 ?
- jQuery.unique( elems ) :
- elems );
- },
-
- clone: function( events ) {
- // Do the clone
- var ret = this.map(function(){
- if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) {
- // IE copies events bound via attachEvent when
- // using cloneNode. Calling detachEvent on the
- // clone will also remove the events from the orignal
- // In order to get around this, we use innerHTML.
- // Unfortunately, this means some modifications to
- // attributes in IE that are actually only stored
- // as properties will not be copied (such as the
- // the name attribute on an input).
- var clone = this.cloneNode(true),
- container = document.createElement("div");
- container.appendChild(clone);
- return jQuery.clean([container.innerHTML])[0];
- } else
- return this.cloneNode(true);
- });
-
- // Need to set the expando to null on the cloned set if it exists
- // removeData doesn't work here, IE removes it from the original as well
- // this is primarily for IE but the data expando shouldn't be copied over in any browser
- var clone = ret.find("*").andSelf().each(function(){
- if ( this[ expando ] != undefined )
- this[ expando ] = null;
- });
-
- // Copy the events from the original to the clone
- if ( events === true )
- this.find("*").andSelf().each(function(i){
- if (this.nodeType == 3)
- return;
- var events = jQuery.data( this, "events" );
-
- for ( var type in events )
- for ( var handler in events[ type ] )
- jQuery.event.add( clone[ i ], type, events[ type ][ handler ], events[ type ][ handler ].data );
- });
-
- // Return the cloned set
- return ret;
- },
-
- filter: function( selector ) {
- return this.pushStack(
- jQuery.isFunction( selector ) &&
- jQuery.grep(this, function(elem, i){
- return selector.call( elem, i );
- }) ||
-
- jQuery.multiFilter( selector, this ) );
- },
-
- not: function( selector ) {
- if ( selector.constructor == String )
- // test special case where just one selector is passed in
- if ( isSimple.test( selector ) )
- return this.pushStack( jQuery.multiFilter( selector, this, true ) );
- else
- selector = jQuery.multiFilter( selector, this );
-
- var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType;
- return this.filter(function() {
- return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector;
- });
- },
-
- add: function( selector ) {
- return this.pushStack( jQuery.unique( jQuery.merge(
- this.get(),
- typeof selector == 'string' ?
- jQuery( selector ) :
- jQuery.makeArray( selector )
- )));
- },
-
- is: function( selector ) {
- return !!selector && jQuery.multiFilter( selector, this ).length > 0;
- },
-
- hasClass: function( selector ) {
- return this.is( "." + selector );
- },
-
- val: function( value ) {
- if ( value == undefined ) {
-
- if ( this.length ) {
- var elem = this[0];
-
- // 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 ];
-
- if ( option.selected ) {
- // Get the specifc value for the option
- value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;
-
- // We don't need an array for one selects
- if ( one )
- return value;
-
- // Multi-Selects return an array
- values.push( value );
- }
- }
-
- return values;
-
- // Everything else, we just grab the value
- } else
- return (this[0].value || "").replace(/\r/g, "");
-
- }
-
- return undefined;
- }
-
- if( value.constructor == Number )
- value += '';
-
- return this.each(function(){
- if ( this.nodeType != 1 )
- return;
-
- if ( value.constructor == Array && /radio|checkbox/.test( this.type ) )
- this.checked = (jQuery.inArray(this.value, value) >= 0 ||
- jQuery.inArray(this.name, value) >= 0);
-
- else if ( jQuery.nodeName( this, "select" ) ) {
- var values = jQuery.makeArray(value);
-
- jQuery( "option", this ).each(function(){
- this.selected = (jQuery.inArray( this.value, values ) >= 0 ||
- jQuery.inArray( this.text, values ) >= 0);
- });
-
- if ( !values.length )
- this.selectedIndex = -1;
-
- } else
- this.value = value;
- });
- },
-
- html: function( value ) {
- return value == undefined ?
- (this[0] ?
- this[0].innerHTML :
- null) :
- this.empty().append( value );
- },
-
- replaceWith: function( value ) {
- return this.after( value ).remove();
- },
-
- eq: function( i ) {
- return this.slice( i, i + 1 );
- },
-
- slice: function() {
- return this.pushStack( Array.prototype.slice.apply( this, arguments ) );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map(this, function(elem, i){
- return callback.call( elem, i, elem );
- }));
- },
-
- andSelf: function() {
- return this.add( this.prevObject );
- },
-
- data: function( key, value ){
- var parts = key.split(".");
- parts[1] = parts[1] ? "." + parts[1] : "";
-
- if ( value === undefined ) {
- var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
- if ( data === undefined && this.length )
- data = jQuery.data( this[0], key );
-
- return data === undefined && parts[1] ?
- this.data( parts[0] ) :
- data;
- } else
- return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function(){
- jQuery.data( this, key, value );
- });
- },
-
- removeData: function( key ){
- return this.each(function(){
- jQuery.removeData( this, key );
- });
- },
-
- domManip: function( args, table, reverse, callback ) {
- var clone = this.length > 1, elems;
-
- return this.each(function(){
- if ( !elems ) {
- elems = jQuery.clean( args, this.ownerDocument );
-
- if ( reverse )
- elems.reverse();
- }
-
- var obj = this;
-
- if ( table && jQuery.nodeName( this, "table" ) && jQuery.nodeName( elems[0], "tr" ) )
- obj = this.getElementsByTagName("tbody")[0] || this.appendChild( this.ownerDocument.createElement("tbody") );
-
- var scripts = jQuery( [] );
-
- jQuery.each(elems, function(){
- var elem = clone ?
- jQuery( this ).clone( true )[0] :
- this;
-
- // execute all scripts after the elements have been injected
- if ( jQuery.nodeName( elem, "script" ) )
- scripts = scripts.add( elem );
- else {
- // Remove any inner scripts for later evaluation
- if ( elem.nodeType == 1 )
- scripts = scripts.add( jQuery( "script", elem ).remove() );
-
- // Inject the elements into the document
- callback.call( obj, elem );
- }
- });
-
- scripts.each( evalScript );
- });
- }
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-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 );
-}
-
-function now(){
- return +new Date;
-}
-
-jQuery.extend = jQuery.fn.extend = function() {
- // copy reference to target object
- var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options;
-
- // Handle a deep copy situation
- if ( target.constructor == 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" && typeof target != "function" )
- 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 ( var name in options ) {
- var src = target[ name ], copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy )
- continue;
-
- // Recurse if we're merging object values
- if ( deep && copy && typeof copy == "object" && !copy.nodeType )
- target[ name ] = jQuery.extend( deep,
- // Never move original objects, clone them
- src || ( copy.length != null ? [ ] : { } )
- , copy );
-
- // Don't bring in undefined values
- else if ( copy !== undefined )
- target[ name ] = copy;
-
- }
-
- // Return the modified object
- return target;
-};
-
-var expando = "jQuery" + now(), uuid = 0, windowData = {},
- // exclude the following css properties to add px
- exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
- // cache defaultView
- defaultView = document.defaultView || {};
-
-jQuery.extend({
- noConflict: function( deep ) {
- window.$ = _$;
-
- if ( deep )
- window.jQuery = _jQuery;
-
- return jQuery;
- },
-
- // See test/unit/core.js for details concerning this function.
- isFunction: function( fn ) {
- return !!fn && typeof fn != "string" && !fn.nodeName &&
- fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
- },
-
- // check if an element is in a (or is an) XML document
- isXMLDoc: function( elem ) {
- return elem.documentElement && !elem.body ||
- elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
- },
-
- // Evalulates a script in a global context
- globalEval: function( data ) {
- data = jQuery.trim( data );
-
- if ( data ) {
- // Inspired by code by Andrea Giammarchi
- // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
- var head = document.getElementsByTagName("head")[0] || document.documentElement,
- script = document.createElement("script");
-
- script.type = "text/javascript";
- if ( jQuery.browser.msie )
- script.text = data;
- else
- script.appendChild( document.createTextNode( 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();
- },
-
- cache: {},
-
- data: function( elem, name, data ) {
- elem = elem == window ?
- windowData :
- elem;
-
- var id = elem[ expando ];
-
- // Compute a unique ID for the element
- if ( !id )
- id = elem[ expando ] = ++uuid;
-
- // Only generate the data cache if we're
- // trying to access or manipulate it
- if ( name && !jQuery.cache[ id ] )
- jQuery.cache[ id ] = {};
-
- // Prevent overriding the named cache with undefined values
- if ( data !== undefined )
- jQuery.cache[ id ][ name ] = data;
-
- // Return the named cache data, or the ID for the element
- return name ?
- jQuery.cache[ id ][ name ] :
- id;
- },
-
- removeData: function( elem, name ) {
- elem = elem == window ?
- windowData :
- elem;
-
- var id = elem[ expando ];
-
- // If we want to remove a specific section of the element's data
- if ( name ) {
- if ( jQuery.cache[ id ] ) {
- // Remove the section of cache data
- delete jQuery.cache[ id ][ name ];
-
- // If we've removed all the data, remove the element's cache
- name = "";
-
- for ( name in jQuery.cache[ id ] )
- break;
-
- if ( !name )
- jQuery.removeData( elem );
- }
-
- // Otherwise, we want to remove all of the element's data
- } else {
- // Clean up the element expando
- try {
- delete elem[ expando ];
- } catch(e){
- // IE has trouble directly removing the expando
- // but it's ok with using removeAttribute
- if ( elem.removeAttribute )
- elem.removeAttribute( expando );
- }
-
- // Completely remove the data cache
- delete jQuery.cache[ id ];
- }
- },
-
- // args is for internal usage only
- each: function( object, callback, args ) {
- var name, i = 0, length = object.length;
-
- if ( args ) {
- if ( length == undefined ) {
- 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 ( length == undefined ) {
- 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;
- },
-
- prop: function( elem, value, type, i, name ) {
- // Handle executable functions
- if ( jQuery.isFunction( value ) )
- value = value.call( elem, i );
-
- // Handle passing in a number to a CSS property
- return value && value.constructor == Number && type == "curCSS" && !exclude.test( name ) ?
- value + "px" :
- value;
- },
-
- className: {
- // internal only, use addClass("class")
- add: function( elem, classNames ) {
- jQuery.each((classNames || "").split(/\s+/), function(i, className){
- if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) )
- elem.className += (elem.className ? " " : "") + className;
- });
- },
-
- // internal only, use removeClass("class")
- remove: function( elem, classNames ) {
- if (elem.nodeType == 1)
- elem.className = classNames != undefined ?
- jQuery.grep(elem.className.split(/\s+/), function(className){
- return !jQuery.className.has( classNames, className );
- }).join(" ") :
- "";
- },
-
- // internal only, use hasClass("class")
- has: function( elem, className ) {
- return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
- }
- },
-
- // 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 ( var name in options )
- elem.style[ name ] = old[ name ];
- },
-
- css: function( elem, name, force ) {
- if ( name == "width" || name == "height" ) {
- var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ];
-
- function getWH() {
- val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
- var padding = 0, border = 0;
- jQuery.each( which, function() {
- padding += parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0;
- border += parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0;
- });
- val -= Math.round(padding + border);
- }
-
- if ( jQuery(elem).is(":visible") )
- getWH();
- else
- jQuery.swap( elem, props, getWH );
-
- return Math.max(0, val);
- }
-
- return jQuery.curCSS( elem, name, force );
- },
-
- curCSS: function( elem, name, force ) {
- var ret, style = elem.style;
-
- // A helper method for determining if an element's values are broken
- function color( elem ) {
- if ( !jQuery.browser.safari )
- return false;
-
- // defaultView is cached
- var ret = defaultView.getComputedStyle( elem, null );
- return !ret || ret.getPropertyValue("color") == "";
- }
-
- // We need to handle opacity special in IE
- if ( name == "opacity" && jQuery.browser.msie ) {
- ret = jQuery.attr( style, "opacity" );
-
- return ret == "" ?
- "1" :
- ret;
- }
- // Opera sometimes will give the wrong display answer, this fixes it, see #2037
- if ( jQuery.browser.opera && name == "display" ) {
- var save = style.outline;
- style.outline = "0 solid black";
- style.outline = save;
- }
-
- // Make sure we're using the right name for getting the float value
- if ( name.match( /float/i ) )
- name = styleFloat;
-
- if ( !force && style && style[ name ] )
- ret = style[ name ];
-
- else if ( defaultView.getComputedStyle ) {
-
- // Only "float" is needed here
- if ( name.match( /float/i ) )
- name = "float";
-
- name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
-
- var computedStyle = defaultView.getComputedStyle( elem, null );
-
- if ( computedStyle && !color( elem ) )
- ret = computedStyle.getPropertyValue( name );
-
- // If the element isn't reporting its values properly in Safari
- // then some display: none elements are involved
- else {
- var swap = [], stack = [], a = elem, i = 0;
-
- // Locate all of the parent display: none elements
- for ( ; a && color(a); a = a.parentNode )
- stack.unshift(a);
-
- // Go through and make them visible, but in reverse
- // (It would be better if we knew the exact display type that they had)
- for ( ; i < stack.length; i++ )
- if ( color( stack[ i ] ) ) {
- swap[ i ] = stack[ i ].style.display;
- stack[ i ].style.display = "block";
- }
-
- // Since we flip the display style, we have to handle that
- // one special, otherwise get the value
- ret = name == "display" && swap[ stack.length - 1 ] != null ?
- "none" :
- ( computedStyle && computedStyle.getPropertyValue( name ) ) || "";
-
- // Finally, revert the display styles back
- for ( i = 0; i < swap.length; i++ )
- if ( swap[ i ] != null )
- stack[ i ].style.display = swap[ i ];
- }
-
- // We should always get a number back from opacity
- if ( name == "opacity" && ret == "" )
- ret = "1";
-
- } else if ( elem.currentStyle ) {
- var camelCase = name.replace(/\-(\w)/g, function(all, letter){
- return letter.toUpperCase();
- });
-
- ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];
-
- // 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 ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
- // Remember the original values
- var left = style.left, rsLeft = elem.runtimeStyle.left;
-
- // Put in the new values to get a computed value out
- elem.runtimeStyle.left = elem.currentStyle.left;
- style.left = ret || 0;
- ret = style.pixelLeft + "px";
-
- // Revert the changed values
- style.left = left;
- elem.runtimeStyle.left = rsLeft;
- }
- }
-
- return ret;
- },
-
- clean: function( elems, context ) {
- var ret = [];
- 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;
-
- jQuery.each(elems, function(i, elem){
- if ( !elem )
- return;
-
- if ( elem.constructor == Number )
- elem += '';
-
- // Convert html string into DOM nodes
- if ( typeof elem == "string" ) {
- // Fix "XHTML"-style tags in all browsers
- elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
- return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
- all :
- front + "></" + tag + ">";
- });
-
- // Trim whitespace, otherwise indexOf won't work as expected
- var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div");
-
- var wrap =
- // option or optgroup
- !tags.indexOf("<opt") &&
- [ 1, "<select multiple='multiple'>", "</select>" ] ||
-
- !tags.indexOf("<leg") &&
- [ 1, "<fieldset>", "</fieldset>" ] ||
-
- tags.match(/^<(thead|tbody|tfoot|colg|cap)/) &&
- [ 1, "<table>", "</table>" ] ||
-
- !tags.indexOf("<tr") &&
- [ 2, "<table><tbody>", "</tbody></table>" ] ||
-
- // <thead> matched above
- (!tags.indexOf("<td") || !tags.indexOf("<th")) &&
- [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ] ||
-
- !tags.indexOf("<col") &&
- [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ] ||
-
- // IE can't serialize <link> and <script> tags normally
- jQuery.browser.msie &&
- [ 1, "div<div>", "</div>" ] ||
-
- [ 0, "", "" ];
-
- // Go to html and back, then peel off extra wrappers
- div.innerHTML = wrap[1] + elem + wrap[2];
-
- // Move to the right depth
- while ( wrap[0]-- )
- div = div.lastChild;
-
- // Remove IE's autoinserted <tbody> from table fragments
- if ( jQuery.browser.msie ) {
-
- // String was a <table>, *may* have spurious <tbody>
- var tbody = !tags.indexOf("<table") && tags.indexOf("<tbody") < 0 ?
- div.firstChild && div.firstChild.childNodes :
-
- // String was a bare <thead> or <tfoot>
- wrap[1] == "<table>" && tags.indexOf("<tbody") < 0 ?
- 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 ( /^\s/.test( elem ) )
- div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
-
- }
-
- elem = jQuery.makeArray( div.childNodes );
- }
-
- if ( elem.length === 0 && (!jQuery.nodeName( elem, "form" ) && !jQuery.nodeName( elem, "select" )) )
- return;
-
- if ( elem[0] == undefined || jQuery.nodeName( elem, "form" ) || elem.options )
- ret.push( elem );
-
- else
- ret = jQuery.merge( ret, elem );
-
- });
-
- return ret;
- },
-
- attr: function( elem, name, value ) {
- // don't set attributes on text and comment nodes
- if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
- return undefined;
-
- var notxml = !jQuery.isXMLDoc( elem ),
- // Whether we are setting (or getting)
- set = value !== undefined,
- msie = jQuery.browser.msie;
-
- // 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)
- // IE elem.getAttribute passes even for style
- if ( elem.tagName ) {
-
- // These attributes require special treatment
- var special = /href|src|style/.test( name );
-
- // Safari mis-reports the default selected property of a hidden option
- // Accessing the parent's selectedIndex property fixes it
- if ( name == "selected" && jQuery.browser.safari )
- elem.parentNode.selectedIndex;
-
- // If applicable, access the attribute via the DOM 0 way
- if ( name in elem && notxml && !special ) {
- if ( set ){
- // We can't allow the type property to be changed (since it causes problems in IE)
- if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode )
- throw "type property can't be changed";
-
- 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;
-
- return elem[ name ];
- }
-
- if ( msie && notxml && name == "style" )
- return jQuery.attr( elem.style, "cssText", value );
-
- if ( set )
- // convert the value to a string (all browsers do this but IE) see #1070
- elem.setAttribute( name, "" + value );
-
- var attr = msie && 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;
- }
-
- // elem is actually elem.style ... set the style
-
- // IE uses filters for opacity
- if ( msie && name == "opacity" ) {
- if ( set ) {
- // IE has trouble with opacity if it does not have layout
- // Force it by setting the zoom level
- elem.zoom = 1;
-
- // Set the alpha filter to set the opacity
- elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
- (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
- }
-
- return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
- (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
- "";
- }
-
- name = name.replace(/-([a-z])/ig, function(all, letter){
- return letter.toUpperCase();
- });
-
- if ( set )
- elem[ name ] = value;
-
- return elem[ name ];
- },
-
- trim: function( text ) {
- return (text || "").replace( /^\s+|\s+$/g, "" );
- },
-
- makeArray: function( array ) {
- var ret = [];
-
- if( array != null ){
- var i = array.length;
- //the window, strings and functions also have 'length'
- if( i == null || array.split || array.setInterval || array.call )
- ret[0] = array;
- else
- while( i )
- ret[--i] = array[i];
- }
-
- return ret;
- },
-
- inArray: function( elem, array ) {
- for ( var i = 0, length = array.length; i < length; i++ )
- // Use === because on IE, window == document
- if ( array[ i ] === elem )
- return i;
-
- return -1;
- },
-
- merge: function( first, second ) {
- // We have to loop this way because IE & Opera overwrite the length
- // expando of getElementsByTagName
- var i = 0, elem, pos = first.length;
- // Also, we need to make sure that the correct elements are being returned
- // (IE returns comment nodes in a '*' query)
- if ( jQuery.browser.msie ) {
- while ( elem = second[ i++ ] )
- if ( elem.nodeType != 8 )
- first[ pos++ ] = elem;
-
- } else
- while ( elem = second[ i++ ] )
- first[ pos++ ] = elem;
-
- return first;
- },
-
- unique: function( array ) {
- var ret = [], done = {};
-
- try {
-
- for ( var i = 0, length = array.length; i < length; i++ ) {
- var id = jQuery.data( array[ i ] );
-
- if ( !done[ id ] ) {
- done[ id ] = true;
- ret.push( array[ i ] );
- }
- }
-
- } catch( e ) {
- ret = array;
- }
-
- return ret;
- },
-
- grep: function( elems, callback, inv ) {
- var ret = [];
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( var i = 0, length = elems.length; i < length; i++ )
- if ( !inv != !callback( elems[ i ], i ) )
- ret.push( elems[ i ] );
-
- return ret;
- },
-
- map: function( elems, callback ) {
- var ret = [];
-
- // 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++ ) {
- var value = callback( elems[ i ], i );
-
- if ( value != null )
- ret[ ret.length ] = value;
- }
-
- return ret.concat.apply( [], ret );
- }
-});
-
-var userAgent = navigator.userAgent.toLowerCase();
-
-// Figure out what browser is being used
-jQuery.browser = {
- version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
- safari: /webkit/.test( userAgent ),
- opera: /opera/.test( userAgent ),
- msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
- mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
-};
-
-var styleFloat = jQuery.browser.msie ?
- "styleFloat" :
- "cssFloat";
-
-jQuery.extend({
- // Check to see if the W3C box model is being used
- boxModel: !jQuery.browser.msie || document.compatMode == "CSS1Compat",
-
- props: {
- "for": "htmlFor",
- "class": "className",
- "float": styleFloat,
- cssFloat: styleFloat,
- styleFloat: styleFloat,
- readonly: "readOnly",
- maxlength: "maxLength",
- cellspacing: "cellSpacing"
- }
-});
-
-jQuery.each({
- parent: function(elem){return elem.parentNode;},
- parents: function(elem){return jQuery.dir(elem,"parentNode");},
- 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");},
- 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( selector ) {
- var ret = jQuery.map( this, fn );
-
- if ( selector && typeof selector == "string" )
- ret = jQuery.multiFilter( selector, ret );
-
- return this.pushStack( jQuery.unique( ret ) );
- };
-});
-
-jQuery.each({
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
-}, function(name, original){
- jQuery.fn[ name ] = function() {
- var args = arguments;
-
- return this.each(function(){
- for ( var i = 0, length = args.length; i < length; i++ )
- jQuery( args[ i ] )[ original ]( this );
- });
- };
-});
-
-jQuery.each({
- removeAttr: function( name ) {
- jQuery.attr( this, name, "" );
- if (this.nodeType == 1)
- this.removeAttribute( name );
- },
-
- addClass: function( classNames ) {
- jQuery.className.add( this, classNames );
- },
-
- removeClass: function( classNames ) {
- jQuery.className.remove( this, classNames );
- },
-
- toggleClass: function( classNames ) {
- jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames );
- },
-
- remove: function( selector ) {
- if ( !selector || jQuery.filter( selector, [ this ] ).r.length ) {
- // Prevent memory leaks
- jQuery( "*", this ).add(this).each(function(){
- jQuery.event.remove(this);
- jQuery.removeData(this);
- });
- if (this.parentNode)
- this.parentNode.removeChild( this );
- }
- },
-
- empty: function() {
- // Remove element nodes and prevent memory leaks
- jQuery( ">*", this ).remove();
-
- // Remove any remaining nodes
- while ( this.firstChild )
- this.removeChild( this.firstChild );
- }
-}, function(name, fn){
- jQuery.fn[ name ] = function(){
- return this.each( fn, arguments );
- };
-});
-
-jQuery.each([ "Height", "Width" ], function(i, name){
- var type = name.toLowerCase();
-
- jQuery.fn[ type ] = function( size ) {
- // Get window width or height
- return this[0] == window ?
- // Opera reports document.body.client[Width/Height] properly in both quirks and standards
- jQuery.browser.opera && document.body[ "client" + name ] ||
-
- // Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths)
- jQuery.browser.safari && window[ "inner" + name ] ||
-
- // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
- document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] :
-
- // Get document width or height
- this[0] == document ?
- // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
- Math.max(
- Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]),
- Math.max(document.body["offset" + name], document.documentElement["offset" + name])
- ) :
-
- // Get or set width or height on the element
- size == undefined ?
- // Get width or height on the element
- (this.length ? jQuery.css( this[0], type ) : null) :
-
- // Set the width or height on the element (default to pixels if value is unitless)
- this.css( type, size.constructor == String ? size : size + "px" );
- };
-});
-
-// Helper function used by the dimensions and offset modules
-function num(elem, prop) {
- return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
-}var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ?
- "(?:[\\w*_-]|\\\\.)" :
- "(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",
- quickChild = new RegExp("^>\\s*(" + chars + "+)"),
- quickID = new RegExp("^(" + chars + "+)(#)(" + chars + "+)"),
- quickClass = new RegExp("^([#.]?)(" + chars + "*)");
-
-jQuery.extend({
- expr: {
- "": function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},
- "#": function(a,i,m){return a.getAttribute("id")==m[2];},
- ":": {
- // Position Checks
- lt: function(a,i,m){return i<m[3]-0;},
- gt: function(a,i,m){return i>m[3]-0;},
- nth: function(a,i,m){return m[3]-0==i;},
- eq: function(a,i,m){return m[3]-0==i;},
- first: function(a,i){return i==0;},
- last: function(a,i,m,r){return i==r.length-1;},
- even: function(a,i){return i%2==0;},
- odd: function(a,i){return i%2;},
-
- // Child Checks
- "first-child": function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},
- "last-child": function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},
- "only-child": function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},
-
- // Parent Checks
- parent: function(a){return a.firstChild;},
- empty: function(a){return !a.firstChild;},
-
- // Text Check
- contains: function(a,i,m){return (a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},
-
- // Visibility
- visible: function(a){return "hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},
- hidden: function(a){return "hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},
-
- // Form attributes
- enabled: function(a){return !a.disabled;},
- disabled: function(a){return a.disabled;},
- checked: function(a){return a.checked;},
- selected: function(a){return a.selected||jQuery.attr(a,"selected");},
-
- // Form elements
- text: function(a){return "text"==a.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||jQuery.nodeName(a,"button");},
- input: function(a){return /input|select|textarea|button/i.test(a.nodeName);},
-
- // :has()
- has: function(a,i,m){return jQuery.find(m[3],a).length;},
-
- // :header
- header: function(a){return /h\d/i.test(a.nodeName);},
-
- // :animated
- animated: function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}
- }
- },
-
- // The regular expressions that power the parsing engine
- parse: [
- // Match: [@value='test'], [@foo]
- /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,
-
- // Match: :contains('foo')
- /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,
-
- // Match: :even, :last-child, #id, .class
- new RegExp("^([:.#]*)(" + chars + "+)")
- ],
-
- multiFilter: function( expr, elems, not ) {
- var old, cur = [];
-
- while ( expr && expr != old ) {
- old = expr;
- var f = jQuery.filter( expr, elems, not );
- expr = f.t.replace(/^\s*,\s*/, "" );
- cur = not ? elems = f.r : jQuery.merge( cur, f.r );
- }
-
- return cur;
- },
-
- find: function( t, context ) {
- // Quickly handle non-string expressions
- if ( typeof t != "string" )
- return [ t ];
-
- // check to make sure context is a DOM element or a document
- if ( context && context.nodeType != 1 && context.nodeType != 9)
- return [ ];
-
- // Set the correct context (if none is provided)
- context = context || document;
-
- // Initialize the search
- var ret = [context], done = [], last, nodeName;
-
- // Continue while a selector expression exists, and while
- // we're no longer looping upon ourselves
- while ( t && last != t ) {
- var r = [];
- last = t;
-
- t = jQuery.trim(t);
-
- var foundToken = false,
-
- // An attempt at speeding up child selectors that
- // point to a specific element tag
- re = quickChild,
-
- m = re.exec(t);
-
- if ( m ) {
- nodeName = m[1].toUpperCase();
-
- // Perform our own iteration and filter
- for ( var i = 0; ret[i]; i++ )
- for ( var c = ret[i].firstChild; c; c = c.nextSibling )
- if ( c.nodeType == 1 && (nodeName == "*" || c.nodeName.toUpperCase() == nodeName) )
- r.push( c );
-
- ret = r;
- t = t.replace( re, "" );
- if ( t.indexOf(" ") == 0 ) continue;
- foundToken = true;
- } else {
- re = /^([>+~])\s*(\w*)/i;
-
- if ( (m = re.exec(t)) != null ) {
- r = [];
-
- var merge = {};
- nodeName = m[2].toUpperCase();
- m = m[1];
-
- for ( var j = 0, rl = ret.length; j < rl; j++ ) {
- var n = m == "~" || m == "+" ? ret[j].nextSibling : ret[j].firstChild;
- for ( ; n; n = n.nextSibling )
- if ( n.nodeType == 1 ) {
- var id = jQuery.data(n);
-
- if ( m == "~" && merge[id] ) break;
-
- if (!nodeName || n.nodeName.toUpperCase() == nodeName ) {
- if ( m == "~" ) merge[id] = true;
- r.push( n );
- }
-
- if ( m == "+" ) break;
- }
- }
-
- ret = r;
-
- // And remove the token
- t = jQuery.trim( t.replace( re, "" ) );
- foundToken = true;
- }
- }
-
- // See if there's still an expression, and that we haven't already
- // matched a token
- if ( t && !foundToken ) {
- // Handle multiple expressions
- if ( !t.indexOf(",") ) {
- // Clean the result set
- if ( context == ret[0] ) ret.shift();
-
- // Merge the result sets
- done = jQuery.merge( done, ret );
-
- // Reset the context
- r = ret = [context];
-
- // Touch up the selector string
- t = " " + t.substr(1,t.length);
-
- } else {
- // Optimize for the case nodeName#idName
- var re2 = quickID;
- var m = re2.exec(t);
-
- // Re-organize the results, so that they're consistent
- if ( m ) {
- m = [ 0, m[2], m[3], m[1] ];
-
- } else {
- // Otherwise, do a traditional filter check for
- // ID, class, and element selectors
- re2 = quickClass;
- m = re2.exec(t);
- }
-
- m[2] = m[2].replace(/\\/g, "");
-
- var elem = ret[ret.length-1];
-
- // Try to do a global search by ID, where we can
- if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) {
- // Optimization for HTML document case
- var oid = elem.getElementById(m[2]);
-
- // Do a quick check for the existence of the actual ID attribute
- // to avoid selecting by the name attribute in IE
- // also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form
- if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2] )
- oid = jQuery('[@id="'+m[2]+'"]', elem)[0];
-
- // Do a quick check for node name (where applicable) so
- // that div#foo searches will be really fast
- ret = r = oid && (!m[3] || jQuery.nodeName(oid, m[3])) ? [oid] : [];
- } else {
- // We need to find all descendant elements
- for ( var i = 0; ret[i]; i++ ) {
- // Grab the tag name being searched for
- var tag = m[1] == "#" && m[3] ? m[3] : m[1] != "" || m[0] == "" ? "*" : m[2];
-
- // Handle IE7 being really dumb about <object>s
- if ( tag == "*" && ret[i].nodeName.toLowerCase() == "object" )
- tag = "param";
-
- r = jQuery.merge( r, ret[i].getElementsByTagName( tag ));
- }
-
- // It's faster to filter by class and be done with it
- if ( m[1] == "." )
- r = jQuery.classFilter( r, m[2] );
-
- // Same with ID filtering
- if ( m[1] == "#" ) {
- var tmp = [];
-
- // Try to find the element with the ID
- for ( var i = 0; r[i]; i++ )
- if ( r[i].getAttribute("id") == m[2] ) {
- tmp = [ r[i] ];
- break;
- }
-
- r = tmp;
- }
-
- ret = r;
- }
-
- t = t.replace( re2, "" );
- }
-
- }
-
- // If a selector string still exists
- if ( t ) {
- // Attempt to filter it
- var val = jQuery.filter(t,r);
- ret = r = val.r;
- t = jQuery.trim(val.t);
- }
- }
-
- // An error occurred with the selector;
- // just return an empty set instead
- if ( t )
- ret = [];
-
- // Remove the root context
- if ( ret && context == ret[0] )
- ret.shift();
-
- // And combine the results
- done = jQuery.merge( done, ret );
-
- return done;
- },
-
- classFilter: function(r,m,not){
- m = " " + m + " ";
- var tmp = [];
- for ( var i = 0; r[i]; i++ ) {
- var pass = (" " + r[i].className + " ").indexOf( m ) >= 0;
- if ( !not && pass || not && !pass )
- tmp.push( r[i] );
- }
- return tmp;
- },
-
- filter: function(t,r,not) {
- var last;
-
- // Look for common filter expressions
- while ( t && t != last ) {
- last = t;
-
- var p = jQuery.parse, m;
-
- for ( var i = 0; p[i]; i++ ) {
- m = p[i].exec( t );
-
- if ( m ) {
- // Remove what we just matched
- t = t.substring( m[0].length );
-
- m[2] = m[2].replace(/\\/g, "");
- break;
- }
- }
-
- if ( !m )
- break;
-
- // :not() is a special case that can be optimized by
- // keeping it out of the expression list
- if ( m[1] == ":" && m[2] == "not" )
- // optimize if only one selector found (most common case)
- r = isSimple.test( m[3] ) ?
- jQuery.filter(m[3], r, true).r :
- jQuery( r ).not( m[3] );
-
- // We can get a big speed boost by filtering by class here
- else if ( m[1] == "." )
- r = jQuery.classFilter(r, m[2], not);
-
- else if ( m[1] == "[" ) {
- var tmp = [], type = m[3];
-
- for ( var i = 0, rl = r.length; i < rl; i++ ) {
- var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ];
-
- if ( z == null || /href|src|selected/.test(m[2]) )
- z = jQuery.attr(a,m[2]) || '';
-
- if ( (type == "" && !!z ||
- type == "=" && z == m[5] ||
- type == "!=" && z != m[5] ||
- type == "^=" && z && !z.indexOf(m[5]) ||
- type == "$=" && z.substr(z.length - m[5].length) == m[5] ||
- (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not )
- tmp.push( a );
- }
-
- r = tmp;
-
- // We can get a speed boost by handling nth-child here
- } else if ( m[1] == ":" && m[2] == "nth-child" ) {
- var merge = {}, tmp = [],
- // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
- test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
- m[3] == "even" && "2n" || m[3] == "odd" && "2n+1" ||
- !/\D/.test(m[3]) && "0n+" + m[3] || m[3]),
- // calculate the numbers (first)n+(last) including if they are negative
- first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0;
-
- // loop through all the elements left in the jQuery object
- for ( var i = 0, rl = r.length; i < rl; i++ ) {
- var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode);
-
- if ( !merge[id] ) {
- var c = 1;
-
- for ( var n = parentNode.firstChild; n; n = n.nextSibling )
- if ( n.nodeType == 1 )
- n.nodeIndex = c++;
-
- merge[id] = true;
- }
-
- var add = false;
-
- if ( first == 0 ) {
- if ( node.nodeIndex == last )
- add = true;
- } else if ( (node.nodeIndex - last) % first == 0 && (node.nodeIndex - last) / first >= 0 )
- add = true;
-
- if ( add ^ not )
- tmp.push( node );
- }
-
- r = tmp;
-
- // Otherwise, find the expression to execute
- } else {
- var fn = jQuery.expr[ m[1] ];
- if ( typeof fn == "object" )
- fn = fn[ m[2] ];
-
- if ( typeof fn == "string" )
- fn = eval("false||function(a,i){return " + fn + ";}");
-
- // Execute it against the current filter
- r = jQuery.grep( r, function(elem, i){
- return fn(elem, i, m, r);
- }, not );
- }
- }
-
- // Return an array of filtered elements (r)
- // and the modified expression string (t)
- return { r: r, t: t };
- },
-
- dir: function( elem, dir ){
- var matched = [],
- cur = elem[dir];
- while ( cur && cur != document ) {
- 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;
- }
-});
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code orignated 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;
-
- // For whatever reason, IE has trouble passing the window object
- // around, causing it to be cloned in the process
- if ( jQuery.browser.msie && elem.setInterval )
- elem = window;
-
- // Make sure that the function being executed has a unique ID
- if ( !handler.guid )
- handler.guid = this.guid++;
-
- // if data is passed, bind to handler
- if( data != undefined ) {
- // Create temporary function pointer to original handler
- var fn = handler;
-
- // Create unique handler function, wrapped around original handler
- handler = this.proxy( fn, function() {
- // Pass arguments and context to original handler
- return fn.apply(this, arguments);
- });
-
- // Store data in unique handler
- handler.data = data;
- }
-
- // Init the element's event structure
- var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),
- handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){
- // Handle the second event of a trigger and when
- // an event is called after a page has unloaded
- if ( typeof jQuery != "undefined" && !jQuery.event.triggered )
- return jQuery.event.handle.apply(arguments.callee.elem, arguments);
- });
- // Add elem as a property of the handle function
- // This is to prevent a memory leak with non-native
- // event in IE.
- handle.elem = elem;
-
- // Handle multiple events separated by a space
- // jQuery(...).bind("mouseover mouseout", fn);
- jQuery.each(types.split(/\s+/), function(index, type) {
- // Namespaced event handlers
- var parts = type.split(".");
- type = parts[0];
- handler.type = parts[1];
-
- // Get the current list of functions bound to this event
- var handlers = events[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 ( !jQuery.event.special[type] || jQuery.event.special[type].setup.call(elem) === false ) {
- // Bind the global event handler to the element
- if (elem.addEventListener)
- elem.addEventListener(type, handle, false);
- else if (elem.attachEvent)
- elem.attachEvent("on" + type, handle);
- }
- }
-
- // Add the function to the element's handler list
- handlers[handler.guid] = handler;
-
- // 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;
- },
-
- guid: 1,
- global: {},
-
- // Detach an event or set of events from an element
- remove: function(elem, types, handler) {
- // don't do events on text and comment nodes
- if ( elem.nodeType == 3 || elem.nodeType == 8 )
- return;
-
- var events = jQuery.data(elem, "events"), ret, index;
-
- if ( events ) {
- // Unbind all events for the element
- if ( types == undefined || (typeof types == "string" && types.charAt(0) == ".") )
- for ( var type in events )
- this.remove( elem, type + (types || "") );
- else {
- // types is actually an event object here
- if ( types.type ) {
- handler = types.handler;
- types = types.type;
- }
-
- // Handle multiple events seperated by a space
- // jQuery(...).unbind("mouseover mouseout", fn);
- jQuery.each(types.split(/\s+/), function(index, type){
- // Namespaced event handlers
- var parts = type.split(".");
- type = parts[0];
-
- if ( events[type] ) {
- // remove the given handler for the given type
- if ( handler )
- delete events[type][handler.guid];
-
- // remove all handlers for the given type
- else
- for ( handler in events[type] )
- // Handle the removal of namespaced events
- if ( !parts[1] || events[type][handler].type == parts[1] )
- delete events[type][handler];
-
- // remove generic event handler if no more handlers exist
- for ( ret in events[type] ) break;
- if ( !ret ) {
- if ( !jQuery.event.special[type] || jQuery.event.special[type].teardown.call(elem) === false ) {
- if (elem.removeEventListener)
- elem.removeEventListener(type, jQuery.data(elem, "handle"), false);
- else if (elem.detachEvent)
- elem.detachEvent("on" + type, jQuery.data(elem, "handle"));
- }
- ret = null;
- delete events[type];
- }
- }
- });
- }
-
- // Remove the expando if it's no longer used
- for ( ret in events ) break;
- if ( !ret ) {
- var handle = jQuery.data( elem, "handle" );
- if ( handle ) handle.elem = null;
- jQuery.removeData( elem, "events" );
- jQuery.removeData( elem, "handle" );
- }
- }
- },
-
- trigger: function(type, data, elem, donative, extra) {
- // Clone the incoming data, if any
- data = jQuery.makeArray(data);
-
- if ( type.indexOf("!") >= 0 ) {
- type = type.slice(0, -1);
- var exclusive = true;
- }
-
- // Handle a global trigger
- if ( !elem ) {
- // Only trigger if we've ever bound an event for it
- if ( this.global[type] )
- jQuery("*").add([window, document]).trigger(type, data);
-
- // Handle triggering a single element
- } else {
- // don't do events on text and comment nodes
- if ( elem.nodeType == 3 || elem.nodeType == 8 )
- return undefined;
-
- var val, ret, fn = jQuery.isFunction( elem[ type ] || null ),
- // Check to see if we need to provide a fake event, or not
- event = !data[0] || !data[0].preventDefault;
-
- // Pass along a fake event
- if ( event ) {
- data.unshift({
- type: type,
- target: elem,
- preventDefault: function(){},
- stopPropagation: function(){},
- timeStamp: now()
- });
- data[0][expando] = true; // no need to fix fake event
- }
-
- // Enforce the right trigger type
- data[0].type = type;
- if ( exclusive )
- data[0].exclusive = true;
-
- // Trigger the event, it is assumed that "handle" is a function
- var handle = jQuery.data(elem, "handle");
- if ( handle )
- val = handle.apply( elem, data );
-
- // Handle triggering native .onfoo handlers (and on links since we don't call .click() for links)
- if ( (!fn || (jQuery.nodeName(elem, 'a') && type == "click")) && elem["on"+type] && elem["on"+type].apply( elem, data ) === false )
- val = false;
-
- // Extra functions don't get the custom event object
- if ( event )
- data.shift();
-
- // Handle triggering of extra function
- if ( extra && jQuery.isFunction( extra ) ) {
- // call the extra function and tack the current return value on the end for possible inspection
- ret = extra.apply( elem, val == null ? data : data.concat( val ) );
- // if anything is returned, give it precedence and have it overwrite the previous value
- if (ret !== undefined)
- val = ret;
- }
-
- // Trigger the native events (except for clicks on links)
- if ( fn && donative !== false && val !== false && !(jQuery.nodeName(elem, 'a') && type == "click") ) {
- this.triggered = true;
- try {
- elem[ type ]();
- // prevent IE from throwing an error for some hidden elements
- } catch (e) {}
- }
-
- this.triggered = false;
- }
-
- return val;
- },
-
- handle: function(event) {
- // returned undefined or false
- var val, ret, namespace, all, handlers;
-
- event = arguments[0] = jQuery.event.fix( event || window.event );
-
- // Namespaced event handlers
- namespace = event.type.split(".");
- event.type = namespace[0];
- namespace = namespace[1];
- // Cache this now, all = true means, any handler
- all = !namespace && !event.exclusive;
-
- handlers = ( jQuery.data(this, "events") || {} )[event.type];
-
- for ( var j in handlers ) {
- var handler = handlers[j];
-
- // Filter the functions by class
- if ( all || handler.type == namespace ) {
- // Pass in a reference to the handler function itself
- // So that we can later remove it
- event.handler = handler;
- event.data = handler.data;
-
- ret = handler.apply( this, arguments );
-
- if ( val !== false )
- val = ret;
-
- if ( ret === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
-
- return val;
- },
-
- fix: function(event) {
- if ( event[expando] == true )
- return event;
-
- // store a copy of the original event object
- // and "clone" to set read-only properties
- var originalEvent = event;
- event = { originalEvent: originalEvent };
- var props = "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");
- for ( var i=props.length; i; i-- )
- event[ props[i] ] = originalEvent[ props[i] ];
-
- // Mark it as fixed
- event[expando] = true;
-
- // add preventDefault and stopPropagation since
- // they will not work on the clone
- event.preventDefault = function() {
- // if preventDefault exists run it on the original event
- if (originalEvent.preventDefault)
- originalEvent.preventDefault();
- // otherwise set the returnValue property of the original event to false (IE)
- originalEvent.returnValue = false;
- };
- event.stopPropagation = function() {
- // if stopPropagation exists run it on the original event
- if (originalEvent.stopPropagation)
- originalEvent.stopPropagation();
- // otherwise set the cancelBubble property of the original event to true (IE)
- originalEvent.cancelBubble = true;
- };
-
- // Fix timeStamp
- event.timeStamp = event.timeStamp || now();
-
- // Fix target property, if necessary
- if ( !event.target )
- event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
-
- // 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.clientLeft || 0);
- event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
- }
-
- // Add which for key events
- if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
- event.which = 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 )
- event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-
- return event;
- },
-
- proxy: function( fn, proxy ){
- // 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 || this.guid++;
- // So proxy can be declared as an argument
- return proxy;
- },
-
- special: {
- ready: {
- setup: function() {
- // Make sure the ready event is setup
- bindReady();
- return;
- },
-
- teardown: function() { return; }
- },
-
- mouseenter: {
- setup: function() {
- if ( jQuery.browser.msie ) return false;
- jQuery(this).bind("mouseover", jQuery.event.special.mouseenter.handler);
- return true;
- },
-
- teardown: function() {
- if ( jQuery.browser.msie ) return false;
- jQuery(this).unbind("mouseover", jQuery.event.special.mouseenter.handler);
- return true;
- },
-
- handler: function(event) {
- // If we actually just moused on to a sub-element, ignore it
- if ( withinElement(event, this) ) return true;
- // Execute the right handlers by setting the event type to mouseenter
- event.type = "mouseenter";
- return jQuery.event.handle.apply(this, arguments);
- }
- },
-
- mouseleave: {
- setup: function() {
- if ( jQuery.browser.msie ) return false;
- jQuery(this).bind("mouseout", jQuery.event.special.mouseleave.handler);
- return true;
- },
-
- teardown: function() {
- if ( jQuery.browser.msie ) return false;
- jQuery(this).unbind("mouseout", jQuery.event.special.mouseleave.handler);
- return true;
- },
-
- handler: function(event) {
- // If we actually just moused on to a sub-element, ignore it
- if ( withinElement(event, this) ) return true;
- // Execute the right handlers by setting the event type to mouseleave
- event.type = "mouseleave";
- return jQuery.event.handle.apply(this, arguments);
- }
- }
- }
-};
-
-jQuery.fn.extend({
- bind: function( type, data, fn ) {
- return type == "unload" ? this.one(type, data, fn) : this.each(function(){
- jQuery.event.add( this, type, fn || data, fn && data );
- });
- },
-
- one: function( type, data, fn ) {
- var one = jQuery.event.proxy( fn || data, function(event) {
- jQuery(this).unbind(event, one);
- return (fn || data).apply( this, arguments );
- });
- return this.each(function(){
- jQuery.event.add( this, type, one, fn && data);
- });
- },
-
- unbind: function( type, fn ) {
- return this.each(function(){
- jQuery.event.remove( this, type, fn );
- });
- },
-
- trigger: function( type, data, fn ) {
- return this.each(function(){
- jQuery.event.trigger( type, data, this, true, fn );
- });
- },
-
- triggerHandler: function( type, data, fn ) {
- return this[0] && jQuery.event.trigger( type, data, this[0], false, fn );
- },
-
- 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.event.proxy( fn, args[i++] );
-
- return this.click( jQuery.event.proxy( fn, function(event) {
- // Figure out which function to execute
- this.lastToggle = ( this.lastToggle || 0 ) % i;
-
- // Make sure that clicks stop
- event.preventDefault();
-
- // and execute the function
- return args[ this.lastToggle++ ].apply( this, arguments ) || false;
- }));
- },
-
- hover: function(fnOver, fnOut) {
- return this.bind('mouseenter', fnOver).bind('mouseleave', fnOut);
- },
-
- ready: function(fn) {
- // Attach the listeners
- bindReady();
-
- // If the DOM is already ready
- if ( jQuery.isReady )
- // Execute the function immediately
- fn.call( document, jQuery );
-
- // Otherwise, remember the function for later
- else
- // Add the function to the wait list
- jQuery.readyList.push( function() { return fn.call(this, jQuery); } );
-
- return this;
- }
-});
-
-jQuery.extend({
- isReady: false,
- readyList: [],
- // Handle when the DOM is ready
- ready: function() {
- // Make sure that the DOM is not already loaded
- if ( !jQuery.isReady ) {
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If there are functions bound, to execute
- if ( jQuery.readyList ) {
- // Execute all of them
- jQuery.each( jQuery.readyList, function(){
- this.call( document );
- });
-
- // Reset the list of functions
- jQuery.readyList = null;
- }
-
- // Trigger any bound ready events
- jQuery(document).triggerHandler("ready");
- }
- }
-});
-
-var readyBound = false;
-
-function bindReady(){
- if ( readyBound ) return;
- readyBound = true;
-
- // Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
- if ( document.addEventListener && !jQuery.browser.opera)
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", jQuery.ready, false );
-
- // If IE is used and is not in a frame
- // Continually check to see if the document is ready
- if ( jQuery.browser.msie && window == top ) (function(){
- 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( error ) {
- setTimeout( arguments.callee, 0 );
- return;
- }
- // and execute any waiting functions
- jQuery.ready();
- })();
-
- if ( jQuery.browser.opera )
- document.addEventListener( "DOMContentLoaded", function () {
- if (jQuery.isReady) return;
- for (var i = 0; i < document.styleSheets.length; i++)
- if (document.styleSheets[i].disabled) {
- setTimeout( arguments.callee, 0 );
- return;
- }
- // and execute any waiting functions
- jQuery.ready();
- }, false);
-
- if ( jQuery.browser.safari ) {
- var numStyles;
- (function(){
- if (jQuery.isReady) return;
- if ( document.readyState != "loaded" && document.readyState != "complete" ) {
- setTimeout( arguments.callee, 0 );
- return;
- }
- if ( numStyles === undefined )
- numStyles = jQuery("style, link[rel=stylesheet]").length;
- if ( document.styleSheets.length != numStyles ) {
- setTimeout( arguments.callee, 0 );
- return;
- }
- // and execute any waiting functions
- jQuery.ready();
- })();
- }
-
- // A fallback to window.onload, that will always work
- jQuery.event.add( window, "load", jQuery.ready );
-}
-
-jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
- "mousedown,mouseup,mousemove,mouseover,mouseout,change,select," +
- "submit,keydown,keypress,keyup,error").split(","), function(i, name){
-
- // Handle event binding
- jQuery.fn[name] = function(fn){
- return fn ? this.bind(name, fn) : this.trigger(name);
- };
-});
-
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function(event, elem) {
- // Check if mouse(over|out) are still within the same parent element
- var parent = event.relatedTarget;
- // Traverse up the tree
- while ( parent && parent != elem ) try { parent = parent.parentNode; } catch(error) { parent = elem; }
- // Return true if we actually just moused on to a sub-element
- return parent == elem;
-};
-
-// Prevent memory leaks in IE
-// And prevent errors on refresh with events like mouseover in other browsers
-// Window isn't included so as not to unbind existing unload events
-jQuery(window).bind("unload", function() {
- jQuery("*").add(document).unbind();
-});
-jQuery.fn.extend({
- // Keep a copy of the old load
- _load: jQuery.fn.load,
-
- load: function( url, params, callback ) {
- if ( typeof url != 'string' )
- return this._load( url );
-
- var off = url.indexOf(" ");
- if ( off >= 0 ) {
- var selector = url.slice(off, url.length);
- url = url.slice(0, off);
- }
-
- callback = callback || function(){};
-
- // 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 = null;
-
- // Otherwise, build a param string
- } else {
- params = jQuery.param( params );
- type = "POST";
- }
-
- var self = this;
-
- // Request the remote document
- jQuery.ajax({
- url: url,
- type: type,
- dataType: "html",
- data: params,
- complete: function(res, status){
- // If successful, inject the HTML into all the matched elements
- if ( status == "success" || status == "notmodified" )
- // 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(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
-
- // Locate the specified elements
- .find(selector) :
-
- // If not, just inject the full result
- res.responseText );
-
- self.each( callback, [res.responseText, status, res] );
- }
- });
- return this;
- },
-
- serialize: function() {
- return jQuery.param(this.serializeArray());
- },
- serializeArray: function() {
- return this.map(function(){
- return jQuery.nodeName(this, "form") ?
- jQuery.makeArray(this.elements) : this;
- })
- .filter(function(){
- return this.name && !this.disabled &&
- (this.checked || /select|textarea/i.test(this.nodeName) ||
- /text|hidden|password/i.test(this.type));
- })
- .map(function(i, elem){
- var val = jQuery(this).val();
- return val == null ? null :
- val.constructor == Array ?
- jQuery.map( val, function(val, i){
- return {name: elem.name, value: val};
- }) :
- {name: elem.name, value: val};
- }).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);
- };
-});
-
-var jsc = now();
-
-jQuery.extend({
- get: function( url, data, callback, type ) {
- // shift arguments if data argument was ommited
- if ( jQuery.isFunction( data ) ) {
- callback = data;
- data = null;
- }
-
- return jQuery.ajax({
- type: "GET",
- url: url,
- data: data,
- success: callback,
- dataType: type
- });
- },
-
- getScript: function( url, callback ) {
- return jQuery.get(url, null, callback, "script");
- },
-
- getJSON: function( url, data, callback ) {
- return jQuery.get(url, data, callback, "json");
- },
-
- post: function( url, data, callback, type ) {
- if ( jQuery.isFunction( data ) ) {
- callback = data;
- data = {};
- }
-
- return jQuery.ajax({
- type: "POST",
- url: url,
- data: data,
- success: callback,
- dataType: type
- });
- },
-
- ajaxSetup: function( settings ) {
- jQuery.extend( jQuery.ajaxSettings, settings );
- },
-
- ajaxSettings: {
- url: location.href,
- global: true,
- type: "GET",
- timeout: 0,
- contentType: "application/x-www-form-urlencoded",
- processData: true,
- async: true,
- data: null,
- username: null,
- password: null,
- accepts: {
- xml: "application/xml, text/xml",
- html: "text/html",
- script: "text/javascript, application/javascript",
- json: "application/json, text/javascript",
- text: "text/plain",
- _default: "*/*"
- }
- },
-
- // Last-Modified header cache for next request
- lastModified: {},
-
- ajax: function( s ) {
- // Extend the settings, but re-extend 's' so that it can be
- // checked again later (in the test suite, specifically)
- s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));
-
- var jsonp, jsre = /=\?(&|$)/g, status, data,
- type = s.type.toUpperCase();
-
- // convert data if not already a string
- if ( s.data && s.processData && typeof s.data != "string" )
- s.data = jQuery.param(s.data);
-
- // Handle JSONP Parameter Callbacks
- if ( s.dataType == "jsonp" ) {
- if ( type == "GET" ) {
- if ( !s.url.match(jsre) )
- s.url += (s.url.match(/\?/) ? "&" : "?") + (s.jsonp || "callback") + "=?";
- } else if ( !s.data || !s.data.match(jsre) )
- s.data = (s.data ? s.data + "&" : "") + (s.jsonp || "callback") + "=?";
- s.dataType = "json";
- }
-
- // Build temporary JSONP function
- if ( s.dataType == "json" && (s.data && s.data.match(jsre) || s.url.match(jsre)) ) {
- jsonp = "jsonp" + jsc++;
-
- // Replace the =? sequence both in the query string and the data
- if ( s.data )
- s.data = (s.data + "").replace(jsre, "=" + jsonp + "$1");
- s.url = s.url.replace(jsre, "=" + jsonp + "$1");
-
- // We need to make sure
- // that a JSONP style response is executed properly
- s.dataType = "script";
-
- // Handle JSONP-style loading
- window[ jsonp ] = function(tmp){
- data = tmp;
- success();
- complete();
- // Garbage collect
- window[ jsonp ] = undefined;
- try{ delete window[ jsonp ]; } catch(e){}
- if ( head )
- head.removeChild( script );
- };
- }
-
- if ( s.dataType == "script" && s.cache == null )
- s.cache = false;
-
- if ( s.cache === false && type == "GET" ) {
- var ts = now();
- // try replacing _= if it is there
- var ret = s.url.replace(/(\?|&)_=.*?(&|$)/, "$1_=" + ts + "$2");
- // if nothing was replaced, add timestamp to the end
- s.url = ret + ((ret == s.url) ? (s.url.match(/\?/) ? "&" : "?") + "_=" + ts : "");
- }
-
- // If data is available, append data to url for get requests
- if ( s.data && type == "GET" ) {
- s.url += (s.url.match(/\?/) ? "&" : "?") + s.data;
-
- // IE likes to send both get and post data, prevent this
- s.data = null;
- }
-
- // Watch for a new set of requests
- if ( s.global && ! jQuery.active++ )
- jQuery.event.trigger( "ajaxStart" );
-
- // Matches an absolute URL, and saves the domain
- var remote = /^(?:\w+:)?\/\/([^\/?#]+)/;
-
- // If we're requesting a remote document
- // and trying to load JSON or Script with a GET
- if ( s.dataType == "script" && type == "GET"
- && remote.test(s.url) && remote.exec(s.url)[1] != location.host ){
- var head = document.getElementsByTagName("head")[0];
- var script = document.createElement("script");
- script.src = s.url;
- if (s.scriptCharset)
- script.charset = s.scriptCharset;
-
- // Handle Script loading
- if ( !jsonp ) {
- var done = false;
-
- // Attach handlers for all browsers
- script.onload = script.onreadystatechange = function(){
- if ( !done && (!this.readyState ||
- this.readyState == "loaded" || this.readyState == "complete") ) {
- done = true;
- success();
- complete();
- head.removeChild( script );
- }
- };
- }
-
- head.appendChild(script);
-
- // We handle everything using the script element injection
- return undefined;
- }
-
- var requestDone = false;
-
- // Create the request object; Microsoft failed to properly
- // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
- var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
-
- // Open the socket
- // Passing null username, generates a login popup on Opera (#2865)
- if( s.username )
- xhr.open(type, s.url, s.async, s.username, s.password);
- else
- xhr.open(type, s.url, s.async);
-
- // Need an extra try/catch for cross domain requests in Firefox 3
- try {
- // Set the correct header, if data is being sent
- if ( s.data )
- xhr.setRequestHeader("Content-Type", s.contentType);
-
- // Set the If-Modified-Since header, if ifModified mode.
- if ( s.ifModified )
- xhr.setRequestHeader("If-Modified-Since",
- jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
-
- // Set header so the called script knows that it's an XMLHttpRequest
- xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-
- // Set the Accepts header for the server, depending on the dataType
- xhr.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
- s.accepts[ s.dataType ] + ", */*" :
- s.accepts._default );
- } catch(e){}
-
- // Allow custom headers/mimetypes
- if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
- // cleanup active request counter
- s.global && jQuery.active--;
- // close opended socket
- xhr.abort();
- return false;
- }
-
- if ( s.global )
- jQuery.event.trigger("ajaxSend", [xhr, s]);
-
- // Wait for a response to come back
- var onreadystatechange = function(isTimeout){
- // The transfer is complete and the data is available, or the request timed out
- if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
- requestDone = true;
-
- // clear poll interval
- if (ival) {
- clearInterval(ival);
- ival = null;
- }
-
- status = isTimeout == "timeout" && "timeout" ||
- !jQuery.httpSuccess( xhr ) && "error" ||
- s.ifModified && jQuery.httpNotModified( xhr, s.url ) && "notmodified" ||
- "success";
-
- if ( status == "success" ) {
- // Watch for, and catch, XML document parse errors
- try {
- // process the data (runs the xml through httpData regardless of callback)
- data = jQuery.httpData( xhr, s.dataType, s.dataFilter );
- } catch(e) {
- status = "parsererror";
- }
- }
-
- // Make sure that the request was successful or notmodified
- if ( status == "success" ) {
- // Cache Last-Modified header, if ifModified mode.
- var modRes;
- try {
- modRes = xhr.getResponseHeader("Last-Modified");
- } catch(e) {} // swallow exception thrown by FF if header is not available
-
- if ( s.ifModified && modRes )
- jQuery.lastModified[s.url] = modRes;
-
- // JSONP handles its own success callback
- if ( !jsonp )
- success();
- } else
- jQuery.handleError(s, xhr, status);
-
- // Fire the complete handlers
- complete();
-
- // Stop memory leaks
- if ( s.async )
- xhr = null;
- }
- };
-
- if ( s.async ) {
- // don't attach the handler to the request, just poll it instead
- var ival = setInterval(onreadystatechange, 13);
-
- // Timeout checker
- if ( s.timeout > 0 )
- setTimeout(function(){
- // Check to see if the request is still happening
- if ( xhr ) {
- // Cancel the request
- xhr.abort();
-
- if( !requestDone )
- onreadystatechange( "timeout" );
- }
- }, s.timeout);
- }
-
- // Send the data
- try {
- xhr.send(s.data);
- } catch(e) {
- jQuery.handleError(s, xhr, null, e);
- }
-
- // firefox 1.5 doesn't fire statechange for sync requests
- if ( !s.async )
- onreadystatechange();
-
- function success(){
- // 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", [xhr, s] );
- }
-
- function complete(){
- // Process result
- if ( s.complete )
- s.complete(xhr, status);
-
- // The request was completed
- if ( s.global )
- jQuery.event.trigger( "ajaxComplete", [xhr, s] );
-
- // Handle the global AJAX counter
- if ( s.global && ! --jQuery.active )
- jQuery.event.trigger( "ajaxStop" );
- }
-
- // return XMLHttpRequest to allow aborting the request etc.
- return xhr;
- },
-
- handleError: function( s, xhr, status, e ) {
- // If a local callback was specified, fire it
- if ( s.error ) s.error( xhr, status, e );
-
- // Fire the global callback
- if ( s.global )
- jQuery.event.trigger( "ajaxError", [xhr, s, e] );
- },
-
- // Counter for holding the number of active queries
- active: 0,
-
- // Determines if an XMLHttpRequest was successful or not
- httpSuccess: function( xhr ) {
- try {
- // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
- return !xhr.status && location.protocol == "file:" ||
- ( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223 ||
- jQuery.browser.safari && xhr.status == undefined;
- } catch(e){}
- return false;
- },
-
- // Determines if an XMLHttpRequest returns NotModified
- httpNotModified: function( xhr, url ) {
- try {
- var xhrRes = xhr.getResponseHeader("Last-Modified");
-
- // Firefox always returns 200. check Last-Modified date
- return xhr.status == 304 || xhrRes == jQuery.lastModified[url] ||
- jQuery.browser.safari && xhr.status == undefined;
- } catch(e){}
- return false;
- },
-
- httpData: function( xhr, type, filter ) {
- var ct = xhr.getResponseHeader("content-type"),
- xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
- data = xml ? xhr.responseXML : xhr.responseText;
-
- if ( xml && data.documentElement.tagName == "parsererror" )
- throw "parsererror";
-
- // Allow a pre-filtering function to sanitize the response
- if( filter )
- data = filter( data, type );
-
- // 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" )
- data = eval("(" + data + ")");
-
- return data;
- },
-
- // Serialize an array of form elements or a set of
- // key/values into a query string
- param: function( a ) {
- var s = [];
-
- // If an array was passed in, assume that it is an array
- // of form elements
- if ( a.constructor == Array || a.jquery )
- // Serialize the form elements
- jQuery.each( a, function(){
- s.push( encodeURIComponent(this.name) + "=" + encodeURIComponent( this.value ) );
- });
-
- // Otherwise, assume that it's an object of key/value pairs
- else
- // Serialize the key/values
- for ( var j in a )
- // If the value is an array then the key names need to be repeated
- if ( a[j] && a[j].constructor == Array )
- jQuery.each( a[j], function(){
- s.push( encodeURIComponent(j) + "=" + encodeURIComponent( this ) );
- });
- else
- s.push( encodeURIComponent(j) + "=" + encodeURIComponent( jQuery.isFunction(a[j]) ? a[j]() : a[j] ) );
-
- // Return the resulting serialization
- return s.join("&").replace(/%20/g, "+");
- }
-
-});
-jQuery.fn.extend({
- show: function(speed,callback){
- return speed ?
- this.animate({
- height: "show", width: "show", opacity: "show"
- }, speed, callback) :
-
- this.filter(":hidden").each(function(){
- this.style.display = this.oldblock || "";
- if ( jQuery.css(this,"display") == "none" ) {
- var elem = jQuery("<" + this.tagName + " />").appendTo("body");
- this.style.display = elem.css("display");
- // handle an edge condition where css is - div { display:none; } or similar
- if (this.style.display == "none")
- this.style.display = "block";
- elem.remove();
- }
- }).end();
- },
-
- hide: function(speed,callback){
- return speed ?
- this.animate({
- height: "hide", width: "hide", opacity: "hide"
- }, speed, callback) :
-
- this.filter(":visible").each(function(){
- this.oldblock = this.oldblock || jQuery.css(this,"display");
- this.style.display = "none";
- }).end();
- },
-
- // Save the old toggle function
- _toggle: jQuery.fn.toggle,
-
- toggle: function( fn, fn2 ){
- return jQuery.isFunction(fn) && jQuery.isFunction(fn2) ?
- this._toggle.apply( this, arguments ) :
- fn ?
- this.animate({
- height: "toggle", width: "toggle", opacity: "toggle"
- }, fn, fn2) :
- this.each(function(){
- jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
- });
- },
-
- slideDown: function(speed,callback){
- return this.animate({height: "show"}, speed, callback);
- },
-
- slideUp: function(speed,callback){
- return this.animate({height: "hide"}, speed, callback);
- },
-
- slideToggle: function(speed, callback){
- return this.animate({height: "toggle"}, speed, callback);
- },
-
- fadeIn: function(speed, callback){
- return this.animate({opacity: "show"}, speed, callback);
- },
-
- fadeOut: function(speed, callback){
- return this.animate({opacity: "hide"}, speed, callback);
- },
-
- fadeTo: function(speed,to,callback){
- return this.animate({opacity: to}, speed, callback);
- },
-
- animate: function( prop, speed, easing, callback ) {
- var optall = jQuery.speed(speed, easing, callback);
-
- return this[ optall.queue === false ? "each" : "queue" ](function(){
- if ( this.nodeType != 1)
- return false;
-
- var opt = jQuery.extend({}, optall), p,
- hidden = jQuery(this).is(":hidden"), self = this;
-
- for ( p in prop ) {
- if ( prop[p] == "hide" && hidden || prop[p] == "show" && !hidden )
- return opt.complete.call(this);
-
- if ( p == "height" || p == "width" ) {
- // Store display property
- opt.display = jQuery.css(this, "display");
-
- // Make sure that nothing sneaks out
- opt.overflow = this.style.overflow;
- }
- }
-
- 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 ( /toggle|show|hide/.test(val) )
- e[ val == "toggle" ? hidden ? "show" : "hide" : val ]( prop );
- else {
- var parts = val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),
- start = e.cur(true) || 0;
-
- if ( parts ) {
- var end = parseFloat(parts[2]),
- unit = parts[3] || "px";
-
- // We need to compute starting value
- if ( unit != "px" ) {
- self.style[ name ] = (end || 1) + unit;
- start = ((end || 1) / e.cur(true)) * start;
- self.style[ 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;
- });
- },
-
- queue: function(type, fn){
- if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) {
- fn = type;
- type = "fx";
- }
-
- if ( !type || (typeof type == "string" && !fn) )
- return queue( this[0], type );
-
- return this.each(function(){
- if ( fn.constructor == Array )
- queue(this, type, fn);
- else {
- queue(this, type).push( fn );
-
- if ( queue(this, type).length == 1 )
- fn.call(this);
- }
- });
- },
-
- 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;
- }
-
-});
-
-var queue = function( elem, type, array ) {
- if ( elem ){
-
- type = type || "fx";
-
- var q = jQuery.data( elem, type + "queue" );
-
- if ( !q || array )
- q = jQuery.data( elem, type + "queue", jQuery.makeArray(array) );
-
- }
- return q;
-};
-
-jQuery.fn.dequeue = function(type){
- type = type || "fx";
-
- return this.each(function(){
- var q = queue(this, type);
-
- q.shift();
-
- if ( q.length )
- q[0].call( this );
- });
-};
-
-jQuery.extend({
-
- speed: function(speed, easing, fn) {
- var opt = speed && speed.constructor == Object ? speed : {
- complete: fn || !fn && easing ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && easing.constructor != Function && easing
- };
-
- opt.duration = (opt.duration && opt.duration.constructor == Number ?
- opt.duration :
- jQuery.fx.speeds[opt.duration]) || jQuery.fx.speeds.def;
-
- // 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: [],
- timerId: null,
-
- 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 );
-
- // Set display property to block for height/width animations
- if ( this.prop == "height" || this.prop == "width" )
- this.elem.style.display = "block";
- },
-
- // Get the current size
- cur: function(force){
- if ( this.elem[this.prop] != null && this.elem.style[this.prop] == null )
- return this.elem[ this.prop ];
-
- var r = parseFloat(jQuery.css(this.elem, this.prop, force));
- return r && r > -10000 ? r : parseFloat(jQuery.curCSS(this.elem, this.prop)) || 0;
- },
-
- // Start an animation from one number to another
- custom: function(from, to, unit){
- this.startTime = now();
- this.start = from;
- this.end = to;
- this.unit = unit || this.unit || "px";
- this.now = this.start;
- this.pos = this.state = 0;
- this.update();
-
- var self = this;
- function t(gotoEnd){
- return self.step(gotoEnd);
- }
-
- t.elem = this.elem;
-
- jQuery.timers.push(t);
-
- if ( jQuery.timerId == null ) {
- jQuery.timerId = setInterval(function(){
- var timers = jQuery.timers;
-
- for ( var i = 0; i < timers.length; i++ )
- if ( !timers[i]() )
- timers.splice(i--, 1);
-
- if ( !timers.length ) {
- clearInterval( jQuery.timerId );
- jQuery.timerId = null;
- }
- }, 13);
- }
- },
-
- // Simple 'show' function
- show: function(){
- // Remember where we started, so that we can go back to it later
- this.options.orig[this.prop] = jQuery.attr( this.elem.style, this.prop );
- this.options.show = true;
-
- // Begin the animation
- this.custom(0, this.cur());
-
- // Make sure that we start at a small width/height to avoid any
- // flash of content
- if ( this.prop == "width" || this.prop == "height" )
- this.elem.style[this.prop] = "1px";
-
- // 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.attr( this.elem.style, this.prop );
- this.options.hide = true;
-
- // Begin the animation
- this.custom(this.cur(), 0);
- },
-
- // Each step of an animation
- step: function(gotoEnd){
- var t = now();
-
- 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;
-
- var done = true;
- for ( var i in this.options.curAnim )
- if ( this.options.curAnim[i] !== true )
- done = false;
-
- if ( done ) {
- if ( this.options.display != null ) {
- // Reset the overflow
- this.elem.style.overflow = this.options.overflow;
-
- // Reset the display
- this.elem.style.display = this.options.display;
- if ( jQuery.css(this.elem, "display") == "none" )
- this.elem.style.display = "block";
- }
-
- // Hide the element if the "hide" operation was done
- if ( this.options.hide )
- this.elem.style.display = "none";
-
- // 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.attr(this.elem.style, p, this.options.orig[p]);
- }
-
- if ( done )
- // 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
- this.pos = jQuery.easing[this.options.easing || (jQuery.easing.swing ? "swing" : "linear")](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, {
- speeds:{
- slow: 600,
- fast: 200,
- // Default speed
- def: 400
- },
- step: {
- scrollLeft: function(fx){
- fx.elem.scrollLeft = fx.now;
- },
-
- scrollTop: function(fx){
- fx.elem.scrollTop = fx.now;
- },
-
- opacity: function(fx){
- jQuery.attr(fx.elem.style, "opacity", fx.now);
- },
-
- _default: function(fx){
- fx.elem.style[ fx.prop ] = fx.now + fx.unit;
- }
- }
-});
-// The Offset Method
-// Originally By Brandon Aaron, part of the Dimension Plugin
-// http://jquery.com/plugins/project/dimensions
-jQuery.fn.offset = function() {
- var left = 0, top = 0, elem = this[0], results;
-
- if ( elem ) with ( jQuery.browser ) {
- var parent = elem.parentNode,
- offsetChild = elem,
- offsetParent = elem.offsetParent,
- doc = elem.ownerDocument,
- safari2 = safari && parseInt(version) < 522 && !/adobeair/i.test(userAgent),
- css = jQuery.curCSS,
- fixed = css(elem, "position") == "fixed";
-
- // Use getBoundingClientRect if available
- if ( elem.getBoundingClientRect ) {
- var box = elem.getBoundingClientRect();
-
- // Add the document scroll offsets
- add(box.left + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
- box.top + Math.max(doc.documentElement.scrollTop, doc.body.scrollTop));
-
- // IE adds the HTML element's border, by default it is medium which is 2px
- // IE 6 and 7 quirks mode the border width is overwritable by the following css html { border: 0; }
- // IE 7 standards mode, the border is always 2px
- // This border/offset is typically represented by the clientLeft and clientTop properties
- // However, in IE6 and 7 quirks mode the clientLeft and clientTop properties are not updated when overwriting it via CSS
- // Therefore this method will be off by 2px in IE while in quirksmode
- add( -doc.documentElement.clientLeft, -doc.documentElement.clientTop );
-
- // Otherwise loop through the offsetParents and parentNodes
- } else {
-
- // Initial element offsets
- add( elem.offsetLeft, elem.offsetTop );
-
- // Get parent offsets
- while ( offsetParent ) {
- // Add offsetParent offsets
- add( offsetParent.offsetLeft, offsetParent.offsetTop );
-
- // Mozilla and Safari > 2 does not include the border on offset parents
- // However Mozilla adds the border for table or table cells
- if ( mozilla && !/^t(able|d|h)$/i.test(offsetParent.tagName) || safari && !safari2 )
- border( offsetParent );
-
- // Add the document scroll offsets if position is fixed on any offsetParent
- if ( !fixed && css(offsetParent, "position") == "fixed" )
- fixed = true;
-
- // Set offsetChild to previous offsetParent unless it is the body element
- offsetChild = /^body$/i.test(offsetParent.tagName) ? offsetChild : offsetParent;
- // Get next offsetParent
- offsetParent = offsetParent.offsetParent;
- }
-
- // Get parent scroll offsets
- while ( parent && parent.tagName && !/^body|html$/i.test(parent.tagName) ) {
- // Remove parent scroll UNLESS that parent is inline or a table to work around Opera inline/table scrollLeft/Top bug
- if ( !/^inline|table.*$/i.test(css(parent, "display")) )
- // Subtract parent scroll offsets
- add( -parent.scrollLeft, -parent.scrollTop );
-
- // Mozilla does not add the border for a parent that has overflow != visible
- if ( mozilla && css(parent, "overflow") != "visible" )
- border( parent );
-
- // Get next parent
- parent = parent.parentNode;
- }
-
- // Safari <= 2 doubles body offsets with a fixed position element/offsetParent or absolutely positioned offsetChild
- // Mozilla doubles body offsets with a non-absolutely positioned offsetChild
- if ( (safari2 && (fixed || css(offsetChild, "position") == "absolute")) ||
- (mozilla && css(offsetChild, "position") != "absolute") )
- add( -doc.body.offsetLeft, -doc.body.offsetTop );
-
- // Add the document scroll offsets if position is fixed
- if ( fixed )
- add(Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft),
- Math.max(doc.documentElement.scrollTop, doc.body.scrollTop));
- }
-
- // Return an object with top and left properties
- results = { top: top, left: left };
- }
-
- function border(elem) {
- add( jQuery.curCSS(elem, "borderLeftWidth", true), jQuery.curCSS(elem, "borderTopWidth", true) );
- }
-
- function add(l, t) {
- left += parseInt(l, 10) || 0;
- top += parseInt(t, 10) || 0;
- }
-
- return results;
-};
-
-
-jQuery.fn.extend({
- position: function() {
- var left = 0, top = 0, results;
-
- if ( this[0] ) {
- // Get *real* offsetParent
- var offsetParent = this.offsetParent(),
-
- // Get correct offsets
- offset = this.offset(),
- parentOffset = /^body|html$/i.test(offsetParent[0].tagName) ? { 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 -= num( this, 'marginTop' );
- offset.left -= num( this, 'marginLeft' );
-
- // Add offsetParent borders
- parentOffset.top += num( offsetParent, 'borderTopWidth' );
- parentOffset.left += num( offsetParent, 'borderLeftWidth' );
-
- // Subtract the two offsets
- results = {
- top: offset.top - parentOffset.top,
- left: offset.left - parentOffset.left
- };
- }
-
- return results;
- },
-
- offsetParent: function() {
- var offsetParent = this[0].offsetParent;
- while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && jQuery.css(offsetParent, 'position') == 'static') )
- offsetParent = offsetParent.offsetParent;
- return jQuery(offsetParent);
- }
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ['Left', 'Top'], function(i, name) {
- var method = 'scroll' + name;
-
- jQuery.fn[ method ] = function(val) {
- if (!this[0]) return;
-
- return val != undefined ?
-
- // Set the scroll offset
- this.each(function() {
- this == window || this == document ?
- window.scrollTo(
- !i ? val : jQuery(window).scrollLeft(),
- i ? val : jQuery(window).scrollTop()
- ) :
- this[ method ] = val;
- }) :
-
- // Return the scroll offset
- this[0] == window || this[0] == document ?
- self[ i ? 'pageYOffset' : 'pageXOffset' ] ||
- jQuery.boxModel && document.documentElement[ method ] ||
- document.body[ method ] :
- this[0][ method ];
- };
-});
-// Create innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function(i, name){
-
- var tl = i ? "Left" : "Top", // top or left
- br = i ? "Right" : "Bottom"; // bottom or right
-
- // innerHeight and innerWidth
- jQuery.fn["inner" + name] = function(){
- return this[ name.toLowerCase() ]() +
- num(this, "padding" + tl) +
- num(this, "padding" + br);
- };
-
- // outerHeight and outerWidth
- jQuery.fn["outer" + name] = function(margin) {
- return this["inner" + name]() +
- num(this, "border" + tl + "Width") +
- num(this, "border" + br + "Width") +
- (margin ?
- num(this, "margin" + tl) + num(this, "margin" + br) : 0);
- };
-
-});})();
diff --git a/ui/source/effects.blind.js b/ui/source/effects.blind.js
deleted file mode 100644
index 34dd829e8..000000000
--- a/ui/source/effects.blind.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * jQuery UI Effects Blind
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.blind = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left'];
-
- // 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/ui/source/effects.bounce.js b/ui/source/effects.bounce.js
deleted file mode 100644
index 85f843fab..000000000
--- a/ui/source/effects.bounce.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * jQuery UI Effects Bounce
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.bounce = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left'];
-
- // 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/ui/source/effects.clip.js b/ui/source/effects.clip.js
deleted file mode 100644
index fc0fb22ad..000000000
--- a/ui/source/effects.clip.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * jQuery UI Effects Clip
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.clip = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left','width','height'];
-
- // 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
- $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
- var ref = {
- size: (direction == 'vertical') ? 'height' : 'width',
- position: (direction == 'vertical') ? 'top' : 'left'
- };
- var distance = (direction == 'vertical') ? el.height() : el.width();
- if(mode == 'show') { el.css(ref.size, 0); el.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
- 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/ui/source/effects.core.js b/ui/source/effects.core.js
deleted file mode 100644
index c8641d97c..000000000
--- a/ui/source/effects.core.js
+++ /dev/null
@@ -1,510 +0,0 @@
-/*
- * jQuery UI Effects
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/
- *
- */
-;(function($) {
-
-$.effects = $.effects || {}; //Add the 'effects' scope
-
-$.extend($.effects, {
- save: function(el, set) {
- for(var i=0;i<set.length;i++) {
- if(set[i] !== null) $.data(el[0], "ec.storage."+set[i], el[0].style[set[i]]);
- }
- },
- restore: function(el, set) {
- for(var i=0;i<set.length;i++) {
- if(set[i] !== null) el.css(set[i], $.data(el[0], "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};
- },
- createWrapper: function(el) {
- if (el.parent().attr('id') == 'fxWrapper')
- return el;
- var props = {width: el.outerWidth({margin:true}), height: el.outerHeight({margin:true}), 'float': el.css('float')};
- el.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');
- var wrapper = el.parent();
- if (el.css('position') == 'static'){
- wrapper.css({position: 'relative'});
- el.css({position: 'relative'});
- } else {
- var top = parseInt(el.css('top'), 10); if(isNaN(top)) top = 'auto';
- var left = parseInt(el.css('left'), 10); if(isNaN(top)) left = 'auto';
- wrapper.css({ position: el.css('position'), top: top, left: left, zIndex: el.css('z-index') }).show();
- el.css({position: 'relative', top:0, left:0});
- }
- wrapper.css(props);
- return wrapper;
- },
- removeWrapper: function(el) {
- if (el.parent().attr('id') == 'fxWrapper')
- return el.parent().replaceWith(el);
- return el;
- },
- setTransition: function(el, list, factor, val) {
- val = val || {};
- $.each(list,function(i, x){
- unit = el.cssUnit(x);
- if (unit[0] > 0) val[x] = unit[0] * factor + unit[1];
- });
- return val;
- },
- animateClass: function(value, duration, easing, callback) {
-
- var cb = (typeof easing == "function" ? easing : (callback ? callback : null));
- var ea = (typeof easing == "object" ? easing : null);
-
- return this.each(function() {
-
- var offset = {}; var that = $(this); var oldStyleAttr = that.attr("style") || '';
- if(typeof oldStyleAttr == 'object') oldStyleAttr = oldStyleAttr["cssText"]; /* Stupidly in IE, style is a object.. */
- if(value.toggle) { that.hasClass(value.toggle) ? value.remove = value.toggle : value.add = value.toggle; }
-
- //Let's get a style offset
- var oldStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle));
- if(value.add) that.addClass(value.add); if(value.remove) that.removeClass(value.remove);
- var newStyle = $.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this,null) : this.currentStyle));
- if(value.add) that.removeClass(value.add); if(value.remove) that.addClass(value.remove);
-
- // The main function to form the object for animation
- for(var n in newStyle) {
- if( typeof newStyle[n] != "function" && newStyle[n] /* No functions and null properties */
- && n.indexOf("Moz") == -1 && n.indexOf("length") == -1 /* No mozilla spezific render properties. */
- && newStyle[n] != oldStyle[n] /* Only values that have changed are used for the animation */
- && (n.match(/color/i) || (!n.match(/color/i) && !isNaN(parseInt(newStyle[n],10)))) /* Only things that can be parsed to integers or colors */
- && (oldStyle.position != "static" || (oldStyle.position == "static" && !n.match(/left|top|bottom|right/))) /* No need for positions when dealing with static positions */
- ) offset[n] = newStyle[n];
- }
-
- that.animate(offset, duration, ea, function() { // Animate the newly constructed offset object
- // Change style attribute back to original. For stupid IE, we need to clear the damn object.
- if(typeof $(this).attr("style") == 'object') { $(this).attr("style")["cssText"] = ""; $(this).attr("style")["cssText"] = oldStyleAttr; } else $(this).attr("style", oldStyleAttr);
- if(value.add) $(this).addClass(value.add); if(value.remove) $(this).removeClass(value.remove);
- if(cb) cb.apply(this, arguments);
- });
-
- });
- }
-});
-
-//Extend the methods of jQuery
-$.fn.extend({
- //Save old methods
- _show: $.fn.show,
- _hide: $.fn.hide,
- __toggle: $.fn.toggle,
- _addClass: $.fn.addClass,
- _removeClass: $.fn.removeClass,
- _toggleClass: $.fn.toggleClass,
- // New ec methods
- effect: function(fx,o,speed,callback) {
- return $.effects[fx] ? $.effects[fx].call(this, {method: fx, options: o || {}, duration: speed, callback: callback }) : null;
- },
- show: function() {
- if(!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])))
- return this._show.apply(this, arguments);
- else {
- var o = arguments[1] || {}; o['mode'] = 'show';
- return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
- }
- },
- hide: function() {
- if(!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])))
- return this._hide.apply(this, arguments);
- else {
- var o = arguments[1] || {}; o['mode'] = 'hide';
- return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
- }
- },
- toggle: function(){
- if(!arguments[0] || (arguments[0].constructor == Number || /(slow|normal|fast)/.test(arguments[0])) || (arguments[0].constructor == Function))
- return this.__toggle.apply(this, arguments);
- else {
- var o = arguments[1] || {}; o['mode'] = 'toggle';
- return this.effect.apply(this, [arguments[0], o, arguments[2] || o.duration, arguments[3] || o.callback]);
- }
- },
- addClass: function(classNames,speed,easing,callback) {
- return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
- },
- removeClass: function(classNames,speed,easing,callback) {
- return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
- },
- toggleClass: function(classNames,speed,easing,callback) {
- return speed ? $.effects.animateClass.apply(this, [{ toggle: classNames },speed,easing,callback]) : this._toggleClass(classNames);
- },
- morph: function(remove,add,speed,easing,callback) {
- return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
- },
- switchClass: function() {
- return this.morph.apply(this, arguments);
- },
- // 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;
- }
-});
-
-/*
- * jQuery Color Animations
- * Copyright 2007 John Resig
- * Released under the MIT and GPL licenses.
- */
-
-// We override the animation for all of these color styles
-jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
- jQuery.fx.step[attr] = function(fx){
- if ( fx.state == 0 ) {
- fx.start = getColor( fx.elem, attr );
- fx.end = getRGB( fx.end );
- }
-
- fx.elem.style[attr] = "rgb(" + [
- Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
- Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
- Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
- ].join(",") + ")";
- }
-});
-
-// 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]), parseInt(result[2]), parseInt(result[3])];
-
- // 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[jQuery.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
- var color;
-
- do {
- color = jQuery.curCSS(elem, attr);
-
- // Keep going until we find an element that has color, or we hit the body
- if ( color != '' && color != 'transparent' || jQuery.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]
-};
-
-/*
- * 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.
- *
- */
-
-})(jQuery);
diff --git a/ui/source/effects.drop.js b/ui/source/effects.drop.js
deleted file mode 100644
index e45bc9bd3..000000000
--- a/ui/source/effects.drop.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * jQuery UI Effects Drop
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.drop = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left','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/ui/source/effects.explode.js b/ui/source/effects.explode.js
deleted file mode 100644
index 8e93e6d6e..000000000
--- a/ui/source/effects.explode.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * jQuery UI Effects Explode
- *
- * Copyright (c) 2008 Paul Bakaus (ui.jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.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")) || 0;
- offset.left -= parseInt(el.css("marginLeft")) || 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('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();
-
- $('.effects-explode').remove();
-
- }, o.duration || 500);
-
-
- });
-
-};
-
-})(jQuery);
diff --git a/ui/source/effects.fold.js b/ui/source/effects.fold.js
deleted file mode 100644
index b006df978..000000000
--- a/ui/source/effects.fold.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * jQuery UI Effects Fold
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.fold = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
- var size = o.options.size || 15; // Default fold size
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
- var ref = (mode == 'show') ? ['width', 'height'] : ['height', 'width'];
- var distance = (mode == 'show') ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
- if(mode == 'show') wrapper.css({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, o.duration / 2, o.options.easing)
- .animate(animation2, o.duration / 2, 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/ui/source/effects.highlight.js b/ui/source/effects.highlight.js
deleted file mode 100644
index 9d6e3a1b1..000000000
--- a/ui/source/effects.highlight.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * jQuery UI Effects Highlight
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- * effects.core.js
- *
- */
-;(function($) {
-
-$.effects.highlight = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['backgroundImage','backgroundColor','opacity'];
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
- var color = o.options.color || "#ffff99"; // Default highlight color
- var oldColor = el.css("backgroundColor");
-
- // Adjust
- $.effects.save(el, props); el.show(); // Save & Show
- el.css({backgroundImage: 'none', backgroundColor: color}); // Shift
-
- // Animation
- var animation = {backgroundColor: oldColor };
- if (mode == "hide") animation['opacity'] = 0;
-
- // Animate
- el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
- if(mode == "hide") el.hide();
- $.effects.restore(el, props);
- if (mode == "show" && jQuery.browser.msie) this.style.removeAttribute('filter');
- if(o.callback) o.callback.apply(this, arguments);
- el.dequeue();
- }});
-
- });
-
-};
-
-})(jQuery);
diff --git a/ui/source/effects.pulsate.js b/ui/source/effects.pulsate.js
deleted file mode 100644
index 690e79805..000000000
--- a/ui/source/effects.pulsate.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * jQuery UI Effects Pulsate
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.pulsate = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this);
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
- var times = o.options.times || 5; // Default # of times
-
- // Adjust
- if (mode != 'hide') times--;
- if (el.is(':hidden')) { // Show fadeIn
- el.css('opacity', 0);
- el.show(); // Show
- el.animate({opacity: 1}, o.duration / 2, o.options.easing);
- times--;
- }
-
- // Animate
- for (var i = 0; i < times; i++) { // Pulsate
- el.animate({opacity: 0}, o.duration / 2, o.options.easing).animate({opacity: 1}, o.duration / 2, o.options.easing);
- };
- if (mode == 'hide') { // Last Pulse
- el.animate({opacity: 0}, o.duration / 2, o.options.easing, function(){
- el.hide(); // Hide
- if(o.callback) o.callback.apply(this, arguments); // Callback
- });
- } else {
- el.animate({opacity: 0}, o.duration / 2, o.options.easing).animate({opacity: 1}, o.duration / 2, o.options.easing, function(){
- if(o.callback) o.callback.apply(this, arguments); // Callback
- });
- };
- el.queue('fx', function() { el.dequeue(); });
- el.dequeue();
- });
-
-};
-
-})(jQuery);
diff --git a/ui/source/effects.scale.js b/ui/source/effects.scale.js
deleted file mode 100644
index 7bf8fdf9d..000000000
--- a/ui/source/effects.scale.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * jQuery UI Effects Scale
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.puff = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this);
-
- // Set options
- var options = $.extend(true, {}, o);
- var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
- var percent = parseInt(o.options.percent) || 150; // Set default puff percent
- options.fade = true; // It's not a puff if it doesn't fade! :)
- var original = {height: el.height(), width: el.width()}; // Save original
-
- // Adjust
- var factor = percent / 100;
- el.from = (mode == 'hide') ? original : {height: original.height * factor, width: original.width * factor};
-
- // Animation
- options.from = el.from;
- options.percent = (mode == 'hide') ? percent : 100;
- options.mode = mode;
-
- // Animate
- el.effect('scale', options, o.duration, o.callback);
- el.dequeue();
- });
-
-};
-
-$.effects.scale = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this);
-
- // Set options
- var options = $.extend(true, {}, o);
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- var percent = parseInt(o.options.percent) || (parseInt(o.options.percent) == 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
- 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 (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;
- };
- 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','left','width','height','overflow','opacity'];
- var props1 = ['position','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 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
- 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(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/ui/source/effects.shake.js b/ui/source/effects.shake.js
deleted file mode 100644
index d1f54477e..000000000
--- a/ui/source/effects.shake.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * jQuery UI Effects Shake
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.shake = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left'];
-
- // 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/ui/source/effects.slide.js b/ui/source/effects.slide.js
deleted file mode 100644
index ce76a5509..000000000
--- a/ui/source/effects.slide.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * jQuery UI Effects Slide
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.slide = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this), props = ['position','top','left'];
-
- // 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' ? -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/ui/source/effects.transfer.js b/ui/source/effects.transfer.js
deleted file mode 100644
index 7812c4e2b..000000000
--- a/ui/source/effects.transfer.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * jQuery UI Effects Transfer
- *
- * Copyright (c) 2008 Aaron Eisenberger (aaronchi@gmail.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- * effects.core.js
- *
- */
-(function($) {
-
-$.effects.transfer = function(o) {
-
- return this.queue(function() {
-
- // Create element
- var el = $(this);
-
- // Set options
- var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
- var target = $(o.options.to); // Find Target
- var position = el.offset();
- var transfer = $('<div class="ui-effects-transfer"></div>').appendTo(document.body);
-
- // Set target css
- transfer.addClass(o.options.className);
- transfer.css({
- top: position.top,
- left: position.left,
- height: el.outerHeight(true) - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
- width: el.outerWidth(true) - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth')),
- position: 'absolute'
- });
-
- // Animation
- position = target.offset();
- animation = {
- top: position.top,
- left: position.top,
- height: target.outerHeight() - parseInt(transfer.css('borderTopWidth')) - parseInt(transfer.css('borderBottomWidth')),
- width: target.outerWidth() - parseInt(transfer.css('borderLeftWidth')) - parseInt(transfer.css('borderRightWidth'))
- };
-
- // Animate
- transfer.animate(animation, o.duration, o.options.easing, function() {
- transfer.remove(); // Remove div
- if(o.callback) o.callback.apply(el[0], arguments); // Callback
- el.dequeue();
- });
-
- });
-
-};
-
-})(jQuery);
diff --git a/ui/source/i18n/ui.datepicker-am.js b/ui/source/i18n/ui.datepicker-am.js
deleted file mode 100644
index 32ba8c27a..000000000
--- a/ui/source/i18n/ui.datepicker-am.js
+++ /dev/null
@@ -1,22 +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['am'] = {clearText: 'Õ„Õ¡Ö„Ö€Õ¥Õ¬', clearStatus: '',
- closeText: 'Õ“Õ¡Õ¯Õ¥Õ¬', closeStatus: '',
- prevText: '&lt;Õ†Õ¡Õ­.', prevStatus: '',
- nextText: 'Õ€Õ¡Õ».&gt;', nextStatus: '',
- currentText: 'Ô±ÕµÕ½Ö…Ö€', currentStatus: '',
- monthNames: ['Õ€Õ¸Ö‚Õ¶Õ¾Õ¡Ö€','Õ“Õ¥Õ¿Ö€Õ¾Õ¡Ö€','Õ„Õ¡Ö€Õ¿','Ô±ÕºÖ€Õ«Õ¬','Õ„Õ¡ÕµÕ«Õ½','Õ€Õ¸Ö‚Õ¶Õ«Õ½',
- 'Õ€Õ¸Ö‚Õ¬Õ«Õ½','Õ•Õ£Õ¸Õ½Õ¿Õ¸Õ½','ÕÕ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€','Õ€Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€','Õ†Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€','Ô´Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'],
- monthNamesShort: ['Õ€Õ¸Ö‚Õ¶Õ¾','Õ“Õ¥Õ¿Ö€','Õ„Õ¡Ö€Õ¿','Ô±ÕºÖ€','Õ„Õ¡ÕµÕ«Õ½','Õ€Õ¸Ö‚Õ¶Õ«Õ½',
- 'Õ€Õ¸Ö‚Õ¬','Õ•Õ£Õ½','ÕÕ¥Õº','Õ€Õ¸Õ¯','Õ†Õ¸Õµ','Ô´Õ¥Õ¯'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Õ‡Ô²Õ', weekStatus: '',
- dayNames: ['Õ¯Õ«Ö€Õ¡Õ¯Õ«','Õ¥Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«','Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«','Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«','Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«','Õ¸Ö‚Ö€Õ¢Õ¡Õ©','Õ·Õ¡Õ¢Õ¡Õ©'],
- dayNamesShort: ['Õ¯Õ«Ö€','Õ¥Ö€Õ¯','Õ¥Ö€Ö„','Õ¹Ö€Ö„','Õ°Õ¶Õ£','Õ¸Ö‚Ö€Õ¢','Õ·Õ¢Õ©'],
- dayNamesMin: ['Õ¯Õ«Ö€','Õ¥Ö€Õ¯','Õ¥Ö€Ö„','Õ¹Ö€Ö„','Õ°Õ¶Õ£','Õ¸Ö‚Ö€Õ¢','Õ·Õ¢Õ©'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['am']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-ar.js b/ui/source/i18n/ui.datepicker-ar.js
deleted file mode 100644
index 8e4e08562..000000000
--- a/ui/source/i18n/ui.datepicker-ar.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Arabic Translation for jQuery UI date picker plugin. */
-/* Khaled Al Horani -- koko.dw@gmail.com */
-jQuery(function($){
- $.datepicker.regional['ar'] = {
- clearText: 'äÙíÝ',
- clearStatus: 'ÇãÓÍ ÇáÊÇÑíÎ ÇáÍÇáí',
- closeText: 'ÅÛáÇÞ',
- closeStatus: 'ÅÛáÇÞ ÈÏæä ÍÝÙ',
- prevText: '<ÇáÓÇÈÞ',
- prevStatus: 'ÚÑÖ ÇáÔåÑ ÇáÓÇÈÞ',
- nextText: 'ÇáÊÇáí>',
- nextStatus: 'ÚÑÖ ÇáÔåÑ ÇáÞÇÏã',
- currentText: 'Çáíæã',
- currentStatus: 'ÚÑÖ ÇáÔåÑ ÇáÍÇáí',
- monthNames: ['ßÇäæä ÇáËÇäí', 'ÔÈÇØ', 'ÂÐÇÑ', 'äíÓÇä', 'ÂÐÇÑ', 'ÍÒíÑÇä', 'ÊãæÒ', 'ÂÈ', 'Ãíáæá', 'ÊÔÑíä ÇáÃæá', 'ÊÔÑíä ÇáËÇäí', 'ßÇäæä ÇáÃæá'],
- monthNamesShort: ['ßÇäæä ÇáËÇäí', 'ÔÈÇØ', 'ÂÐÇÑ', 'äíÓÇä', 'ÂÐÇÑ', 'ÍÒíÑÇä', 'ÊãæÒ', 'ÂÈ', 'Ãíáæá', 'ÊÔÑíä ÇáÃæá', 'ÊÔÑíä ÇáËÇäí', 'ßÇäæä ÇáÃæá'],
- monthStatus: 'ÚÑÖ ÔåÑ ÂÎÑ',
- yearStatus: 'ÚÑÖ ÓäÉ ÂÎÑì',
- weekHeader: 'ÃÓÈæÚ',
- weekStatus: 'ÃÓÈæÚ ÇáÓäÉ',
- dayNames: ['ÇáÓÈÊ', 'ÇáÃÍÏ', 'ÇáÇËäíä', 'ÇáËáÇËÇÁ', 'ÇáÃÑÈÚÇÁ', 'ÇáÎãíÓ', 'ÇáÌãÚÉ'],
- dayNamesShort: ['ÇáÓÈÊ', 'ÇáÃÍÏ', 'ÇáÇËäíä', 'ÇáËáÇËÇÁ', 'ÇáÃÑÈÚÇÁ', 'ÇáÎãíÓ', 'ÇáÌãÚÉ'],
- dayNamesMin: ['ÇáÓÈÊ', 'ÇáÃÍÏ', 'ÇáÇËäíä', 'ÇáËáÇËÇÁ', 'ÇáÃÑÈÚÇÁ', 'ÇáÎãíÓ', 'ÇáÌãÚÉ'],
- dayStatus: 'ÇÎÊÑ DD ááíæã ÇáÃæá ãä ÇáÃÓÈæÚ',
- dateStatus: 'ÇÎÊÑ D, M d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: 'ÇÎÊÑ íæã',
- isRTL: true
- };
- $.datepicker.setDefaults($.datepicker.regional['ar']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-bg.js b/ui/source/i18n/ui.datepicker-bg.js
deleted file mode 100644
index 1f1a81537..000000000
--- a/ui/source/i18n/ui.datepicker-bg.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* German initialisation for the jQuery UI date picker plugin. */
-/* Written by Stoyan Kyosev (http://svest.org). */
-jQuery(function($){
- $.datepicker.regional['bg'] = {clearText: 'изчиÑти', clearStatus: 'изчиÑти актуалната дата',
- closeText: 'затвори', closeStatus: 'затвори без промени',
- prevText: '&#x3c;назад', prevStatus: 'покажи поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð¼ÐµÑец',
- nextText: 'напред&#x3e;', nextStatus: 'покажи ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Ð¼ÐµÑец',
- currentText: 'днеÑ', currentStatus: '',
- monthNames: ['Януари','Февруари','Март','Ðприл','Май','Юни',
- 'Юли','ÐвгуÑÑ‚','Септември','Октомври','Ðоември','Декември'],
- monthNamesShort: ['Яну','Фев','Мар','Ðпр','Май','Юни',
- 'Юли','Ðвг','Сеп','Окт','Ðов','Дек'],
- monthStatus: 'покажи друг меÑец', yearStatus: 'покажи друга година',
- weekHeader: 'Wk', weekStatus: 'Ñедмица от меÑеца',
- dayNames: ['ÐеделÑ','Понеделник','Вторник','СрÑда','Четвъртък','Петък','Събота'],
- dayNamesShort: ['Ðед','Пон','Вто','СрÑ','Чет','Пет','Съб'],
- dayNamesMin: ['Ðе','По','Ð’Ñ‚','Ср','Че','Пе','Съ'],
- dayStatus: 'Сложи DD като първи ден от Ñедмицата', dateStatus: 'Избери D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: 'Избери дата', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['bg']);
-});
diff --git a/ui/source/i18n/ui.datepicker-ca.js b/ui/source/i18n/ui.datepicker-ca.js
deleted file mode 100644
index 709a96ae8..000000000
--- a/ui/source/i18n/ui.datepicker-ca.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Inicialització en català per a l'extenció 'calendar' per jQuery. */
-/* Writers: (joan.leon@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['ca'] = {clearText: 'Netejar', clearStatus: '',
- closeText: 'Tancar', closeStatus: '',
- prevText: '&lt;Ant', prevStatus: '',
- nextText: 'Seg&gt;', nextStatus: '',
- currentText: 'Avui', currentStatus: '',
- monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
- 'Juliol','Agost','Setembre','Octubre','Novembre','Decembre'],
- monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
- 'Jul','Ago','Set','Oct','Nov','Dec'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Sm', weekStatus: '',
- dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
- dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
- dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'mm/dd/yy', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['ca']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-cs.js b/ui/source/i18n/ui.datepicker-cs.js
deleted file mode 100644
index e195deb43..000000000
--- a/ui/source/i18n/ui.datepicker-cs.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Czech initialisation for the jQuery UI date picker plugin. */
-/* Written by Tomas Muller (tomas@tomas-muller.net). */
-jQuery(function($){
- $.datepicker.regional['cs'] = {clearText: 'Vymazat', clearStatus: 'Vymaže zadané datum',
- closeText: 'Zavřít', closeStatus: 'Zavře kalendář beze změny',
- prevText: '&#x3c;Dříve', prevStatus: 'Přejít na předchozí měsí',
- nextText: 'Později&#x3e;', nextStatus: 'Přejít na další měsíc',
- currentText: 'Nyní', currentStatus: 'Přejde na aktuální měsíc',
- 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'],
- monthStatus: 'Přejít na jiný měsíc', yearStatus: 'Přejít na jiný rok',
- weekHeader: 'Týd', weekStatus: 'Týden v roce',
- 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'],
- dayStatus: 'Nastavit DD jako první den v týdnu', dateStatus: '\'Vyber\' DD, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: 'Vyberte datum', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['cs']);
-});
diff --git a/ui/source/i18n/ui.datepicker-da.js b/ui/source/i18n/ui.datepicker-da.js
deleted file mode 100644
index 794f6ef44..000000000
--- a/ui/source/i18n/ui.datepicker-da.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Danish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jan Christensen ( deletestuff@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['da'] = {clearText: 'Nulstil', clearStatus: 'Nulstil den aktuelle dato',
- closeText: 'Luk', closeStatus: 'Luk uden ændringer',
- prevText: '&#x3c;Forrige', prevStatus: 'Vis forrige måned',
- nextText: 'Næste&#x3e;', nextStatus: 'Vis næste måned',
- currentText: 'Idag', currentStatus: 'Vis aktuel måned',
- 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'],
- monthStatus: 'Vis en anden måned', yearStatus: 'Vis et andet år',
- weekHeader: 'Uge', weekStatus: 'Ã…rets uge',
- 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ø'],
- dayStatus: 'Sæt DD som første ugedag', dateStatus: 'Vælg D, M d',
- dateFormat: 'dd-mm-yy', firstDay: 0,
- initStatus: 'Vælg en dato', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['da']);
-});
diff --git a/ui/source/i18n/ui.datepicker-de.js b/ui/source/i18n/ui.datepicker-de.js
deleted file mode 100644
index d31af3a1b..000000000
--- a/ui/source/i18n/ui.datepicker-de.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* German initialisation for the jQuery UI date picker plugin. */
-/* Written by Milian Wolff (mail@milianw.de). */
-jQuery(function($){
- $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
- closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
- prevText: '&#x3c;zurück', prevStatus: 'letzten Monat zeigen',
- nextText: 'Vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
- currentText: 'heute', currentStatus: '',
- 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'],
- monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
- weekHeader: 'Wo', weekStatus: 'Woche des Monats',
- dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
- dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
- dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
- dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: 'Wähle ein Datum', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['de']);
-});
diff --git a/ui/source/i18n/ui.datepicker-es.js b/ui/source/i18n/ui.datepicker-es.js
deleted file mode 100644
index c5fdd719d..000000000
--- a/ui/source/i18n/ui.datepicker-es.js
+++ /dev/null
@@ -1,22 +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'] = {clearText: 'Limpiar', clearStatus: '',
- closeText: 'Cerrar', closeStatus: '',
- prevText: '&lt;Ant', prevStatus: '',
- nextText: 'Sig&gt;', nextStatus: '',
- currentText: 'Hoy', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Sm', weekStatus: '',
- dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;dabo'],
- dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
- dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['es']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-fi.js b/ui/source/i18n/ui.datepicker-fi.js
deleted file mode 100644
index 550a980aa..000000000
--- a/ui/source/i18n/ui.datepicker-fi.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Finnish initialisation for the jQuery UI date picker plugin. */
-/* Written by Harri Kilpiö (harrikilpio@gmail.com). */
-
-$(document).ready(function(){
- $.datepicker.regional['fi'] = {
- clearText: 'Tyhjenn&auml;', clearStatus: '',
- closeText: 'Sulje', closeStatus: '',
- prevText: '&laquo;Edellinen', prevStatus: '',
- nextText: 'Seuraava&raquo;', nextStatus: '',
- currentText: 'T&auml;n&auml;&auml;n', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Vk', weekStatus: '',
- dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
- dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
- dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['fi']);
-});
diff --git a/ui/source/i18n/ui.datepicker-fr.js b/ui/source/i18n/ui.datepicker-fr.js
deleted file mode 100644
index b3e390706..000000000
--- a/ui/source/i18n/ui.datepicker-fr.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* French initialisation for the jQuery UI date picker plugin. */
-/* Written by Keith Wood (kbwood@iprimus.com.au) and Stéphane Nahmani (sholby@sholby.net). */
-jQuery(function($){
- $.datepicker.regional['fr'] = {clearText: 'Effacer', clearStatus: '',
- closeText: 'Fermer', closeStatus: 'Fermer sans modifier',
- prevText: '&lt;Préc', prevStatus: 'Voir le mois précédent',
- nextText: 'Suiv&gt;', nextStatus: 'Voir le mois suivant',
- currentText: 'Courant', currentStatus: 'Voir le mois 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'],
- monthStatus: 'Voir un autre mois', yearStatus: 'Voir un autre année',
- weekHeader: 'Sm', weekStatus: '',
- dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
- dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
- dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
- dayStatus: 'Utiliser DD comme premier jour de la semaine', dateStatus: 'Choisir le DD, MM d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: 'Choisir la date', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['fr']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-he.js b/ui/source/i18n/ui.datepicker-he.js
deleted file mode 100644
index 87f55f729..000000000
--- a/ui/source/i18n/ui.datepicker-he.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Hebrew initialisation for the UI Datepicker extension. */
-/* Written by Amir Hardon (ahardon at gmail dot com). */
-jQuery(document).ready(function(){
- jQuery.datepicker.regional['he'] = {clearText: '× ×§×”', clearStatus: '',
- closeText: 'סגור', closeStatus: '',
- prevText: '&#x3c;הקוד×', prevStatus: '',
- nextText: 'הב×&#x3e;', nextStatus: '',
- currentText: 'היו×', currentStatus: '',
- monthNames: ['ינו×ר','פברו×ר','מרץ','×פריל','מ××™','יוני',
- 'יולי','×וגוסט','ספטמבר','×וקטובר','נובמבר','דצמבר'],
- monthNamesShort: ['1','2','3','4','5','6',
- '7','8','9','10','11','12'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Sm', weekStatus: '',
- dayNames: ['ר×שון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
- dayNamesShort: ['×\'','ב\'','×’\'','ד\'','×”\'','ו\'','שבת'],
- dayNamesMin: ['×\'','ב\'','×’\'','ד\'','×”\'','ו\'','שבת'],
- dayStatus: 'DD', dateStatus: 'DD, M d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: '', isRTL: true};
- jQuery.datepicker.setDefaults($.datepicker.regional['he']);
-});
diff --git a/ui/source/i18n/ui.datepicker-hu.js b/ui/source/i18n/ui.datepicker-hu.js
deleted file mode 100644
index 1d71a3ddf..000000000
--- a/ui/source/i18n/ui.datepicker-hu.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Hungarian initialisation for the jQuery UI date picker plugin. */
-/* Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */
-jQuery(function($){
- $.datepicker.regional['hu'] = {clearText: 'törlés', clearStatus: '',
- closeText: 'bezárás', closeStatus: '',
- prevText: '&laquo;&nbsp;vissza', prevStatus: '',
- nextText: 'előre&nbsp;&raquo;', nextStatus: '',
- currentText: 'ma', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Hé', weekStatus: '',
- dayNames: ['Vasámap', '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'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'yy-mm-dd', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['hu']);
-});
diff --git a/ui/source/i18n/ui.datepicker-id.js b/ui/source/i18n/ui.datepicker-id.js
deleted file mode 100644
index 6c14e2fc4..000000000
--- a/ui/source/i18n/ui.datepicker-id.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Indonesian initialisation for the jQuery UI date picker plugin. */
-/* Written by Deden Fathurahman (dedenf@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['id'] = {clearText: 'kosongkan', clearStatus: 'bersihkan tanggal yang sekarang',
- closeText: 'Tutup', closeStatus: 'Tutup tanpa mengubah',
- prevText: '<mundur', prevStatus: 'Tampilkan bulan sebelumnya',
- nextText: 'maju>', nextStatus: 'Tampilkan bulan berikutnya',
- currentText: 'hari ini', currentStatus: 'Tampilkan bulan sekarang',
- 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'],
- monthStatus: 'Tampilkan bulan yang berbeda', yearStatus: 'Tampilkan tahun yang berbeda',
- weekHeader: 'Mg', weekStatus: 'Minggu dalam tahun',
- dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
- dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
- dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
- dayStatus: 'gunakan DD sebagai awal hari dalam minggu', dateStatus: 'pilih le DD, MM d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: 'Pilih Tanggal', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['id']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-is.js b/ui/source/i18n/ui.datepicker-is.js
deleted file mode 100644
index 65316eed0..000000000
--- a/ui/source/i18n/ui.datepicker-is.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Icelandic initialisation for the jQuery UI date picker plugin. */
-/* Written by Haukur H. Thorsson (haukur@eskill.is). */
-jQuery(function($){
- $.datepicker.regional['is'] = {clearText: 'Hreinsa', clearStatus: '',
- closeText: 'Loka', closeStatus: '',
- prevText: '< Fyrri', prevStatus: '',
- nextText: 'N&aelig;sti >', nextStatus: '',
- currentText: '&Iacute; dag', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Vika', weekStatus: '',
- 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'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['is']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-it.js b/ui/source/i18n/ui.datepicker-it.js
deleted file mode 100644
index a1ee89599..000000000
--- a/ui/source/i18n/ui.datepicker-it.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Italian initialisation for the jQuery UI date picker plugin. */
-/* Written by Apaella (apaella@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['it'] = {clearText: 'Svuota', clearStatus: '',
- closeText: 'Chiudi', closeStatus: '',
- prevText: '&lt;Prec', prevStatus: '',
- nextText: 'Succ&gt;', nextStatus: '',
- currentText: 'Oggi', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Sm', weekStatus: '',
- 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','Gio','Ve','Sa'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd/mm/yy', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['it']);
-});
diff --git a/ui/source/i18n/ui.datepicker-ja.js b/ui/source/i18n/ui.datepicker-ja.js
deleted file mode 100644
index e33909fe5..000000000
--- a/ui/source/i18n/ui.datepicker-ja.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Japanese (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Milly. */
-jQuery(function($){
- $.datepicker.regional['ja'] = {clearText: '&#21066;&#38500;', clearStatus: '',
- closeText: '&#38281;&#12376;&#12427;', closeStatus: '',
- prevText: '&lt;&#21069;&#26376;', prevStatus: '',
- nextText: '&#27425;&#26376;&gt;', nextStatus: '',
- currentText: '&#20170;&#26085;', currentStatus: '',
- monthNames: ['1&#26376;','2&#26376;','3&#26376;','4&#26376;','5&#26376;','6&#26376;',
- '7&#26376;','8&#26376;','9&#26376;','10&#26376;','11&#26376;','12&#26376;'],
- monthNamesShort: ['1&#26376;','2&#26376;','3&#26376;','4&#26376;','5&#26376;','6&#26376;',
- '7&#26376;','8&#26376;','9&#26376;','10&#26376;','11&#26376;','12&#26376;'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Wk', weekStatus: '',
- dayNames: ['&#26085;','&#26376;','&#28779;','&#27700;','&#26408;','&#37329;','&#22303;'],
- dayNamesShort: ['&#26085;','&#26376;','&#28779;','&#27700;','&#26408;','&#37329;','&#22303;'],
- dayNamesMin: ['&#26085;','&#26376;','&#28779;','&#27700;','&#26408;','&#37329;','&#22303;'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'yy/mm/dd', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['ja']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-ko.js b/ui/source/i18n/ui.datepicker-ko.js
deleted file mode 100644
index 1381e66b7..000000000
--- a/ui/source/i18n/ui.datepicker-ko.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Korean initialisation for the jQuery calendar extension. */
-/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['ko'] = {clearText: '지우기', clearStatus: '',
- closeText: '닫기', closeStatus: '',
- prevText: 'ì´ì „달', prevStatus: '',
- nextText: '다ìŒë‹¬', nextStatus: '',
- currentText: '오늘', currentStatus: '',
- 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)'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Wk', weekStatus: '',
- dayNames: ['ì¼','ì›”','í™”','수','목','금','토'],
- dayNamesShort: ['ì¼','ì›”','í™”','수','목','금','토'],
- dayNamesMin: ['ì¼','ì›”','í™”','수','목','금','토'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'yy-mm-dd', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['ko']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-lt.js b/ui/source/i18n/ui.datepicker-lt.js
deleted file mode 100644
index 120e82b2f..000000000
--- a/ui/source/i18n/ui.datepicker-lt.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin.
- *
- * @author Arturas Paleicikas <arturas@avalon.lt>
- */
-jQuery(function($){
- $.datepicker.regional['lt'] = {clearText: 'Išvalyti', clearStatus: '',
- closeText: 'Uždaryti', closeStatus: '',
- prevText: '&lt;Atgal', prevStatus: '',
- nextText: 'Pirmyn&gt;', nextStatus: '',
- currentText: 'Å iandien', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: '', weekStatus: '',
- 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'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'yy-mm-dd', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['lt']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-lv.js b/ui/source/i18n/ui.datepicker-lv.js
deleted file mode 100644
index 809185df5..000000000
--- a/ui/source/i18n/ui.datepicker-lv.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * @author Arturas Paleicikas <arturas.paleicikas@metasite.net>
- */
-jQuery(function($){
- $.datepicker.regional['lv'] = {
- clearText: 'Notīrīt', clearStatus: '',
- closeText: 'Aizvērt', closeStatus: '',
- prevText: 'Iepr', prevStatus: '',
- nextText: 'NÄka', nextStatus: '',
- currentText: 'Å odien', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Nav', weekStatus: '',
- 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'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd-mm-yy', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['lv']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-nl.js b/ui/source/i18n/ui.datepicker-nl.js
deleted file mode 100644
index 0d52d6f33..000000000
--- a/ui/source/i18n/ui.datepicker-nl.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
-jQuery(function($){
- $.datepicker.regional['nl'] = {clearText: 'Wissen', clearStatus: 'Wis de huidige datum',
- closeText: 'Sluiten', closeStatus: 'Sluit zonder verandering',
- prevText: '&lt;Terug', prevStatus: 'Laat de voorgaande maand zien',
- nextText: 'Volgende&gt;', nextStatus: 'Laat de volgende maand zien',
- currentText: 'Vandaag', currentStatus: 'Laat de huidige maand zien',
- monthNames: ['Januari','Februari','Maart','April','Mei','Juni',
- 'Juli','Augustus','September','Oktober','November','December'],
- monthNamesShort: ['Jan','Feb','Mrt','Apr','Mei','Jun',
- 'Jul','Aug','Sep','Okt','Nov','Dec'],
- monthStatus: 'Laat een andere maand zien', yearStatus: 'Laat een ander jaar zien',
- weekHeader: 'Wk', weekStatus: 'Week van het jaar',
- dayNames: ['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'],
- dayNamesShort: ['Zon','Maa','Din','Woe','Don','Vri','Zat'],
- dayNamesMin: ['Zo','Ma','Di','Wo','Do','Vr','Za'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: 'Kies een datum', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['nl']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-no.js b/ui/source/i18n/ui.datepicker-no.js
deleted file mode 100644
index 42932b0f9..000000000
--- a/ui/source/i18n/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). */
-
-$(document).ready(function(){
- $.datepicker.regional['no'] = {clearText: 'Tøm', clearStatus: '',
- closeText: 'Lukk', closeStatus: '',
- prevText: '&laquo;Forrige', prevStatus: '',
- nextText: 'Neste&raquo;', nextStatus: '',
- currentText: 'I dag', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Uke', weekStatus: '',
- 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ø'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'yy-mm-dd', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['no']);
-});
diff --git a/ui/source/i18n/ui.datepicker-pl.js b/ui/source/i18n/ui.datepicker-pl.js
deleted file mode 100644
index bb3112d96..000000000
--- a/ui/source/i18n/ui.datepicker-pl.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Polish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['pl'] = {clearText: 'Wyczyść', clearStatus: 'Wyczyść obecną datę',
- closeText: 'Zamknij', closeStatus: 'Zamknij bez zapisywania',
- prevText: '&#x3c;Poprzedni', prevStatus: 'Pokaż poprzedni miesiąc',
- nextText: 'Następny&#x3e;', nextStatus: 'Pokaż następny miesiąc',
- currentText: 'Dziś', currentStatus: 'Pokaż aktualny miesiąc',
- 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'],
- monthStatus: 'Pokaż inny miesiąc', yearStatus: 'Pokaż inny rok',
- weekHeader: 'Tydz', weekStatus: 'Tydzień roku',
- dayNames: ['Niedziela','Poniedzialek','Wtorek','Åšroda','Czwartek','PiÄ…tek','Sobota'],
- dayNamesShort: ['Nie','Pn','Wt','Åšr','Czw','Pt','So'],
- dayNamesMin: ['N','Pn','Wt','Åšr','Cz','Pt','So'],
- dayStatus: 'Ustaw DD jako pierwszy dzień tygodnia', dateStatus: 'Wybierz D, M d',
- dateFormat: 'yy-mm-dd', firstDay: 1,
- initStatus: 'Wybierz datÄ™', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['pl']);
-});
diff --git a/ui/source/i18n/ui.datepicker-pt-BR.js b/ui/source/i18n/ui.datepicker-pt-BR.js
deleted file mode 100644
index 457341983..000000000
--- a/ui/source/i18n/ui.datepicker-pt-BR.js
+++ /dev/null
@@ -1,22 +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'] = {clearText: 'Limpar', clearStatus: '',
- closeText: 'Fechar', closeStatus: '',
- prevText: '&lt;Anterior', prevStatus: '',
- nextText: 'Pr&oacute;ximo&gt;', nextStatus: '',
- currentText: 'Hoje', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Sm', weekStatus: '',
- dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
- dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
- dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-ro.js b/ui/source/i18n/ui.datepicker-ro.js
deleted file mode 100644
index 5902596af..000000000
--- a/ui/source/i18n/ui.datepicker-ro.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Romanian initialisation for the jQuery UI date picker plugin. */
-/* Written by Edmond L. (ll_edmond@walla.com). */
-jQuery(function($){
- $.datepicker.regional['ro'] = {clearText: 'Curat', clearStatus: 'Sterge data curenta',
- closeText: 'Inchide', closeStatus: 'Inchide fara schimbare',
- prevText: '&#x3c;Anterior', prevStatus: 'Arata luna trecuta',
- nextText: 'Urmator&#x3e;', nextStatus: 'Arata luna urmatoare',
- currentText: 'Azi', currentStatus: 'Arata luna curenta',
- monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Junie',
- 'Julie','August','Septembrie','Octobrie','Noiembrie','Decembrie'],
- monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun',
- 'Jul', 'Aug', 'Sep', 'Oct', 'Noi', 'Dec'],
- monthStatus: 'Arata o luna diferita', yearStatus: 'Arat un an diferit',
- weekHeader: 'Sapt', weekStatus: 'Saptamana anului',
- dayNames: ['Duminica', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sambata'],
- dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam'],
- dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sa'],
- dayStatus: 'Seteaza DD ca prima saptamana zi', dateStatus: 'Selecteaza D, M d',
- dateFormat: 'mm/dd/yy', firstDay: 0,
- initStatus: 'Selecteaza o data', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['ro']);
-});
diff --git a/ui/source/i18n/ui.datepicker-ru.js b/ui/source/i18n/ui.datepicker-ru.js
deleted file mode 100644
index 1b6518c50..000000000
--- a/ui/source/i18n/ui.datepicker-ru.js
+++ /dev/null
@@ -1,22 +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'] = {clearText: 'ОчиÑтить', clearStatus: '',
- closeText: 'Закрыть', closeStatus: '',
- prevText: '&lt;Пред', prevStatus: '',
- nextText: 'След&gt;', nextStatus: '',
- currentText: 'СегоднÑ', currentStatus: '',
- monthNames: ['Январь','Февраль','Март','Ðпрель','Май','Июнь',
- 'Июль','ÐвгуÑÑ‚','СентÑбрь','ОктÑбрь','ÐоÑбрь','Декабрь'],
- monthNamesShort: ['Янв','Фев','Мар','Ðпр','Май','Июн',
- 'Июл','Ðвг','Сен','Окт','ÐоÑ','Дек'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Ðе', weekStatus: '',
- dayNames: ['воÑкреÑенье','понедельник','вторник','Ñреда','четверг','пÑтница','Ñуббота'],
- dayNamesShort: ['вÑк','пнд','втр','Ñрд','чтв','птн','Ñбт'],
- dayNamesMin: ['Ð’Ñ','Пн','Ð’Ñ‚','Ср','Чт','Пт','Сб'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['ru']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-sk.js b/ui/source/i18n/ui.datepicker-sk.js
deleted file mode 100644
index c486fd7bb..000000000
--- a/ui/source/i18n/ui.datepicker-sk.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Slovak initialisation for the jQuery UI date picker plugin. */
-/* Written by Vojtech Rinik (vojto@hmm.sk). */
-jQuery(function($){
- $.datepicker.regional['sk'] = {clearText: 'Zmazať', clearStatus: '',
- closeText: 'Zavrieť', closeStatus: '',
- prevText: '&lt;Predchádzajúci', prevStatus: '',
- nextText: 'Nasledujúci&gt;', nextStatus: '',
- currentText: 'Dnes', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Ty', weekStatus: '',
- 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'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['sk']);
-});
diff --git a/ui/source/i18n/ui.datepicker-sv.js b/ui/source/i18n/ui.datepicker-sv.js
deleted file mode 100644
index 87befa260..000000000
--- a/ui/source/i18n/ui.datepicker-sv.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Swedish initialisation for the jQuery UI date picker plugin. */
-/* Written by Anders Ekdahl ( anders@nomadiz.se). */
-jQuery(function($){
- $.datepicker.regional['sv'] = {clearText: 'Rensa', clearStatus: '',
- closeText: 'Stäng', closeStatus: '',
- prevText: '&laquo;Förra', prevStatus: '',
- nextText: 'Nästa&raquo;', nextStatus: '',
- currentText: 'Idag', currentStatus: '',
- 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'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Ve', weekStatus: '',
- 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ö'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'yy-mm-dd', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['sv']);
-});
diff --git a/ui/source/i18n/ui.datepicker-th.js b/ui/source/i18n/ui.datepicker-th.js
deleted file mode 100644
index cfbf0ccc7..000000000
--- a/ui/source/i18n/ui.datepicker-th.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Thai initialisation for the jQuery UI date picker plugin. */
-/* Written by pipo (pipo@sixhead.com). */
-jQuery(function($){
- $.datepicker.regional['th'] = {clearText: 'ลบ', clearStatus: '',
- closeText: 'ปิด', closeStatus: '',
- prevText: '&laquo;&nbsp;ย้อน', prevStatus: '',
- nextText: 'ถัดไป&nbsp;&raquo;', nextStatus: '',
- currentText: 'วันนี้', currentStatus: '',
- monthNames: ['มà¸à¸£à¸²à¸„ม','à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
- 'à¸à¸£à¸à¸à¸²à¸„ม','สิงหาคม','à¸à¸±à¸™à¸¢à¸²à¸¢à¸™','ตุลาคม','พฤศจิà¸à¸²à¸¢à¸™','ธันวาคม'],
- monthNamesShort: ['ม.ค.','à¸.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
- 'à¸.ค.','ส.ค.','à¸.ย.','ต.ค.','พ.ย.','ธ.ค.'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Sm', weekStatus: '',
- dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุà¸à¸£à¹Œ','เสาร์'],
- dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
- dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd/mm/yy', firstDay: 0,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['th']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-tr.js b/ui/source/i18n/ui.datepicker-tr.js
deleted file mode 100644
index 80670d14b..000000000
--- a/ui/source/i18n/ui.datepicker-tr.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Turkish initialisation for the jQuery UI date picker plugin. */
-/* Written by Izzet Emre Erkan (kara@karalamalar.net). */
-jQuery(function($){
- $.datepicker.regional['tr'] = {clearText: 'temizle', clearStatus: 'geçerli tarihi temizler',
- closeText: 'kapat', closeStatus: 'sadece göstergeyi kapat',
- prevText: '&#x3c;geri', prevStatus: 'önceki ayı göster',
- nextText: 'ileri&#x3e', nextStatus: 'sonraki ayı göster',
- currentText: 'bugün', currentStatus: '',
- 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'],
- monthStatus: 'başka ay', yearStatus: 'başka yıl',
- weekHeader: 'Hf', weekStatus: 'Ayın haftaları',
- 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'],
- dayStatus: 'Haftanın ilk gününü belirleyin', dateStatus: 'D, M d seçiniz',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: 'Bir tarih seçiniz', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['tr']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-ua.js b/ui/source/i18n/ui.datepicker-ua.js
deleted file mode 100644
index f233c6395..000000000
--- a/ui/source/i18n/ui.datepicker-ua.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['ua'] = {clearText: 'ОчиÑтити', clearStatus: '',
- closeText: 'Закрити', closeStatus: '',
- prevText: '&lt;&lt;', prevStatus: '',
- nextText: '&gt;&gt;', nextStatus: '',
- currentText: 'Сьогодні', currentStatus: '',
- monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
- 'Липень','Серпень','ВереÑень','Жовтень','ЛиÑтопад','Грудень'],
- monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
- 'Лип','Сер','Вер','Жов','ЛиÑ','Гру'],
- monthStatus: '', yearStatus: '',
- weekHeader: 'Ðе', weekStatus: '',
- dayNames: ['неділÑ','понеділок','вівторок','Ñереда','четвер','пÑтницÑ','Ñуббота'],
- dayNamesShort: ['нед','пнд','вів','Ñрд','чтв','птн','Ñбт'],
- dayNamesMin: ['Ðд','Пн','Ð’Ñ‚','Ср','Чт','Пт','Сб'],
- dayStatus: 'DD', dateStatus: 'D, M d',
- dateFormat: 'dd.mm.yy', firstDay: 1,
- initStatus: '', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['ua']);
-}); \ No newline at end of file
diff --git a/ui/source/i18n/ui.datepicker-zh-CN.js b/ui/source/i18n/ui.datepicker-zh-CN.js
deleted file mode 100644
index 05dad7244..000000000
--- a/ui/source/i18n/ui.datepicker-zh-CN.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Cloudream (cloudream@gmail.com). */
-jQuery(function($){
- $.datepicker.regional['zh-CN'] = {clearText: '清除', clearStatus: '清除已选日期',
- closeText: '关闭', closeStatus: '䏿”¹å˜å½“å‰é€‰æ‹©',
- prevText: '&lt;上月', prevStatus: '显示上月',
- nextText: '下月&gt;', nextStatus: '显示下月',
- currentText: '今天', currentStatus: '显示本月',
- monthNames: ['一月','二月','三月','四月','五月','六月',
- '七月','八月','乿œˆ','åæœˆ','å一月','å二月'],
- monthNamesShort: ['一','二','三','四','五','六',
- '七','å…«','ä¹','å','å一','å二'],
- monthStatus: '选择月份', yearStatus: '选择年份',
- weekHeader: '周', weekStatus: '年内周次',
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
- dayNamesMin: ['日','一','二','三','四','五','六'],
- dayStatus: '设置 DD 为一周起始', dateStatus: '选择 m月 d日, DD',
- dateFormat: 'yy-mm-dd', firstDay: 1,
- initStatus: '请选择日期', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
-});
diff --git a/ui/source/i18n/ui.datepicker-zh-TW.js b/ui/source/i18n/ui.datepicker-zh-TW.js
deleted file mode 100644
index d1bca8d04..000000000
--- a/ui/source/i18n/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'] = {
- clearText: '清除', clearStatus: 'æ¸…é™¤å·²é¸æ—¥æœŸ',
- closeText: '關閉', closeStatus: '䏿”¹è®Šç›®å‰çš„鏿“‡',
- prevText: '&lt;上月', prevStatus: '顯示上月',
- nextText: '下月&gt;', nextStatus: '顯示下月',
- currentText: '今天', currentStatus: '顯示本月',
- monthNames: ['一月','二月','三月','四月','五月','六月',
- '七月','八月','乿œˆ','åæœˆ','å一月','å二月'],
- monthNamesShort: ['一','二','三','四','五','六',
- '七','å…«','ä¹','å','å一','å二'],
- monthStatus: '鏿“‡æœˆä»½', yearStatus: '鏿“‡å¹´ä»½',
- weekHeader: '周', weekStatus: '年內周次',
- dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
- dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
- dayNamesMin: ['日','一','二','三','四','五','六'],
- dayStatus: '設定 DD 為一周起始', dateStatus: '鏿“‡ m月 dæ—¥, DD',
- dateFormat: 'yy/mm/dd', firstDay: 1,
- initStatus: 'è«‹é¸æ“‡æ—¥æœŸ', isRTL: false};
- $.datepicker.setDefaults($.datepicker.regional['zh-TW']);
-});
diff --git a/ui/source/ui.accordion.js b/ui/source/ui.accordion.js
deleted file mode 100644
index 7ba499d49..000000000
--- a/ui/source/ui.accordion.js
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * jQuery UI Accordion
- *
- * Copyright (c) 2007, 2008 Jörn Zaefferer
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.accordion.js 5656 2008-05-21 19:35:33Z braeker $
- */
-(function($) {
-
-$.widget("ui.accordion", {
- init: function() {
- var options = this.options;
-
- if ( options.navigation ) {
- var current = this.element.find("a").filter(options.navigationFilter);
- if ( current.length ) {
- if ( current.filter(options.header).length ) {
- options.active = current;
- } else {
- options.active = current.parent().parent().prev();
- current.addClass("current");
- }
- }
- }
-
- // calculate active if not specified, using the first header
- options.headers = this.element.find(options.header);
- options.active = findActive(options.headers, options.active);
-
- // IE7-/Win - Extra vertical space in Lists fixed
- if ($.browser.msie) {
- this.element.find('a').css('zoom', '1');
- }
-
- if (!this.element.hasClass("ui-accordion")) {
- this.element.addClass("ui-accordion");
- $("<span class='ui-accordion-left'/>").insertBefore(options.headers);
- $("<span class='ui-accordion-right'/>").appendTo(options.headers);
- options.headers.addClass("ui-accordion-header").attr("tabindex", "0");
- }
-
- var maxHeight;
- if ( options.fillSpace ) {
- maxHeight = this.element.parent().height();
- options.headers.each(function() {
- maxHeight -= $(this).outerHeight();
- });
- var maxPadding = 0;
- options.headers.next().each(function() {
- maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
- }).height(maxHeight - maxPadding);
- } else if ( options.autoHeight ) {
- maxHeight = 0;
- options.headers.next().each(function() {
- maxHeight = Math.max(maxHeight, $(this).outerHeight());
- }).height(maxHeight);
- }
-
- options.headers
- .not(options.active || "")
- .next()
- .hide();
- options.active.parent().andSelf().addClass(options.selectedClass);
-
- if (options.event) {
- this.element.bind((options.event) + ".accordion", clickHandler);
- }
- },
- activate: function(index) {
- // call clickHandler with custom event
- clickHandler.call(this.element[0], {
- target: findActive( this.options.headers, index )[0]
- });
- },
- destroy: function() {
- this.options.headers.next().css("display", "");
- if ( this.options.fillSpace || this.options.autoHeight ) {
- this.options.headers.next().css("height", "");
- }
- $.removeData(this.element[0], "accordion");
- this.element.removeClass("ui-accordion").unbind(".accordion");
- }
-});
-
-function scopeCallback(callback, scope) {
- return function() {
- return callback.apply(scope, arguments);
- };
-};
-
-function completed(cancel) {
- // if removed while animated data can be empty
- if (!$.data(this, "accordion")) {
- return;
- }
-
- var instance = $.data(this, "accordion");
- var options = instance.options;
- options.running = cancel ? 0 : --options.running;
- if ( options.running ) {
- return;
- }
- if ( options.clearStyle ) {
- options.toShow.add(options.toHide).css({
- height: "",
- overflow: ""
- });
- }
- $(this).triggerHandler("accordionchange", [options.data], options.change);
-}
-
-function toggle(toShow, toHide, data, clickedActive, down) {
- var options = $.data(this, "accordion").options;
- options.toShow = toShow;
- options.toHide = toHide;
- options.data = data;
- var complete = scopeCallback(completed, this);
-
- // count elements to animate
- options.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
- if ( options.animated ) {
- if ( !options.alwaysOpen && clickedActive ) {
- $.ui.accordion.animations[options.animated]({
- toShow: jQuery([]),
- toHide: toHide,
- complete: complete,
- down: down,
- autoHeight: options.autoHeight
- });
- } else {
- $.ui.accordion.animations[options.animated]({
- toShow: toShow,
- toHide: toHide,
- complete: complete,
- down: down,
- autoHeight: options.autoHeight
- });
- }
- } else {
- if ( !options.alwaysOpen && clickedActive ) {
- toShow.toggle();
- } else {
- toHide.hide();
- toShow.show();
- }
- complete(true);
- }
-}
-
-function clickHandler(event) {
- var options = $.data(this, "accordion").options;
- if (options.disabled) {
- return false;
- }
-
- // called only when using activate(false) to close all parts programmatically
- if ( !event.target && !options.alwaysOpen ) {
- options.active.parent().andSelf().toggleClass(options.selectedClass);
- var toHide = options.active.next(),
- data = {
- instance: this,
- options: options,
- newHeader: jQuery([]),
- oldHeader: options.active,
- newContent: jQuery([]),
- oldContent: toHide
- },
- toShow = (options.active = $([]));
- toggle.call(this, toShow, toHide, data );
- return false;
- }
- // get the click target
- var clicked = $(event.target);
-
- // due to the event delegation model, we have to check if one
- // of the parent elements is our actual header, and find that
- if ( clicked.parents(options.header).length ) {
- while ( !clicked.is(options.header) ) {
- clicked = clicked.parent();
- }
- }
-
- var clickedActive = clicked[0] == options.active[0];
-
- // if animations are still active, or the active header is the target, ignore click
- if (options.running || (options.alwaysOpen && clickedActive)) {
- return false;
- }
- if (!clicked.is(options.header)) {
- return;
- }
-
- // switch classes
- options.active.parent().andSelf().toggleClass(options.selectedClass);
- if ( !clickedActive ) {
- clicked.parent().andSelf().addClass(options.selectedClass);
- }
-
- // find elements to show and hide
- var toShow = clicked.next(),
- toHide = options.active.next(),
- //data = [clicked, options.active, toShow, toHide],
- data = {
- instance: this,
- options: options,
- newHeader: clicked,
- oldHeader: options.active,
- newContent: toShow,
- oldContent: toHide
- },
- down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] );
-
- options.active = clickedActive ? $([]) : clicked;
- toggle.call(this, toShow, toHide, data, clickedActive, down );
-
- return false;
-};
-
-function findActive(headers, selector) {
- return selector != undefined
- ? typeof selector == "number"
- ? headers.filter(":eq(" + selector + ")")
- : headers.not(headers.not(selector))
- : selector === false
- ? $([])
- : headers.filter(":eq(0)");
-}
-
-$.extend($.ui.accordion, {
- defaults: {
- selectedClass: "selected",
- alwaysOpen: true,
- animated: 'slide',
- event: "click",
- header: "a",
- autoHeight: true,
- running: 0,
- navigationFilter: function() {
- return this.href.toLowerCase() == location.href.toLowerCase();
- }
- },
- animations: {
- slide: function(options, additions) {
- options = $.extend({
- easing: "swing",
- duration: 300
- }, options, additions);
- if ( !options.toHide.size() ) {
- options.toShow.animate({height: "show"}, options);
- return;
- }
- var hideHeight = options.toHide.height(),
- showHeight = options.toShow.height(),
- difference = showHeight / hideHeight;
- options.toShow.css({ height: 0, overflow: 'hidden' }).show();
- options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{
- step: function(now) {
- var current = (hideHeight - now) * difference;
- if ($.browser.msie || $.browser.opera) {
- current = Math.ceil(current);
- }
- options.toShow.height( current );
- },
- duration: options.duration,
- easing: options.easing,
- complete: function() {
- if ( !options.autoHeight ) {
- options.toShow.css("height", "auto");
- }
- options.complete();
- }
- });
- },
- bounceslide: function(options) {
- this.slide(options, {
- easing: options.down ? "bounceout" : "swing",
- duration: options.down ? 1000 : 200
- });
- },
- easeslide: function(options) {
- this.slide(options, {
- easing: "easeinout",
- duration: 700
- });
- }
- }
-});
-
-// deprecated, use accordion("activate", index) instead
-$.fn.activate = function(index) {
- return this.accordion("activate", index);
-};
-
-})(jQuery);
diff --git a/ui/source/ui.core.js b/ui/source/ui.core.js
deleted file mode 100644
index 7b96ced5a..000000000
--- a/ui/source/ui.core.js
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * jQuery UI @VERSION
- *
- * Copyright (c) 2008 Paul Bakaus (ui.jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI
- *
- * $Id: ui.core.js 5587 2008-05-13 19:56:42Z scott.gonzalez $
- */
-;(function($) {
-
-$.ui = {
- 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) { return; }
-
- for (var i = 0; i < set.length; i++) {
- if (instance.options[set[i][0]]) {
- set[i][1].apply(instance.element, args);
- }
- }
- }
- },
- cssCache: {},
- css: function(name) {
- if ($.ui.cssCache[name]) { return $.ui.cssCache[name]; }
- var tmp = $('<div class="ui-resizable-gen">').addClass(name).css({position:'absolute', top:'-5000px', left:'-5000px', display:'block'}).appendTo('body');
-
- //if (!$.browser.safari)
- //tmp.appendTo('body');
-
- //Opera and Safari set width and height to 0px instead of auto
- //Safari returns rgba(0,0,0,0) when bgcolor is not set
- $.ui.cssCache[name] = !!(
- (!(/auto|default/).test(tmp.css('cursor')) || (/^[1-9]/).test(tmp.css('height')) || (/^[1-9]/).test(tmp.css('width')) ||
- !(/none/).test(tmp.css('backgroundImage')) || !(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor')))
- );
- try { $('body').get(0).removeChild(tmp.get(0)); } catch(e){}
- return $.ui.cssCache[name];
- },
- disableSelection: function(e) {
- e.unselectable = "on";
- e.onselectstart = function() { return false; };
- if (e.style) { e.style.MozUserSelect = "none"; }
- },
- enableSelection: function(e) {
- e.unselectable = "off";
- e.onselectstart = function() { return true; };
- if (e.style) { e.style.MozUserSelect = ""; }
- },
- hasScroll: function(e, a) {
- var scroll = /top/.test(a||"top") ? 'scrollTop' : 'scrollLeft', has = false;
- if (e[scroll] > 0) return true; e[scroll] = 1;
- has = e[scroll] > 0 ? true : false; e[scroll] = 0;
- return has;
- }
-};
-
-
-/** jQuery core modifications and additions **/
-
-var _remove = $.fn.remove;
-$.fn.remove = function() {
- $("*", this).add(this).trigger("remove");
- return _remove.apply(this, arguments );
-};
-
-// $.widget is a factory to create jQuery plugins
-// taking some boilerplate code out of the plugin code
-// created by Scott González and Jörn Zaefferer
-function getter(namespace, plugin, method) {
- var methods = $[namespace][plugin].getter || [];
- methods = (typeof methods == "string" ? methods.split(/,?\s+/) : methods);
- return ($.inArray(method, methods) != -1);
-}
-
-$.widget = function(name, prototype) {
- var namespace = name.split(".")[0];
- name = name.split(".")[1];
-
- // create plugin method
- $.fn[name] = function(options) {
- var isMethodCall = (typeof options == 'string'),
- args = Array.prototype.slice.call(arguments, 1);
-
- if (isMethodCall && getter(namespace, name, options)) {
- var instance = $.data(this[0], name);
- return (instance ? instance[options].apply(instance, args)
- : undefined);
- }
-
- return this.each(function() {
- var instance = $.data(this, name);
- if (isMethodCall && instance) {
- instance[options].apply(instance, args);
- } else if (!isMethodCall) {
- $.data(this, name, new $[namespace][name](this, options));
- }
- });
- };
-
- // create widget constructor
- $[namespace][name] = function(element, options) {
- var self = this;
-
- this.widgetName = name;
- this.widgetBaseClass = namespace + '-' + name;
-
- this.options = $.extend({}, $[namespace][name].defaults, options);
- this.element = $(element)
- .bind('setData.' + name, function(e, key, value) {
- return self.setData(key, value);
- })
- .bind('getData.' + name, function(e, key) {
- return self.getData(key);
- })
- .bind('remove', function() {
- return self.destroy();
- });
- this.init();
- };
-
- // add widget prototype
- $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
-};
-
-$.widget.prototype = {
- init: function() {},
- destroy: function() {
- this.element.removeData(this.widgetName);
- },
-
- getData: function(key) {
- return this.options[key];
- },
- setData: function(key, value) {
- this.options[key] = value;
-
- if (key == 'disabled') {
- this.element[value ? 'addClass' : 'removeClass'](
- this.widgetBaseClass + '-disabled');
- }
- },
-
- enable: function() {
- this.setData('disabled', false);
- },
- disable: function() {
- this.setData('disabled', true);
- }
-};
-
-
-/** Mouse Interaction Plugin **/
-
-$.ui.mouse = {
- mouseInit: function() {
- var self = this;
-
- this.element.bind('mousedown.'+this.widgetName, function(e) {
- return self.mouseDown(e);
- });
-
- // Prevent text selection in IE
- if ($.browser.msie) {
- this._mouseUnselectable = this.element.attr('unselectable');
- this.element.attr('unselectable', 'on');
- }
-
- 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);
-
- // Restore text selection in IE
- ($.browser.msie
- && this.element.attr('unselectable', this._mouseUnselectable));
- },
-
- mouseDown: function(e) {
- // we may have missed mouseup (out of window)
- (this._mouseStarted && this.mouseUp(e));
-
- this._mouseDownEvent = e;
-
- var self = this,
- btnIsLeft = (e.which == 1),
- elIsCancel = ($(e.target).is(this.options.cancel));
- if (!btnIsLeft || elIsCancel) {
- return true;
- }
-
- this._mouseDelayMet = !this.options.delay;
- if (!this._mouseDelayMet) {
- this._mouseDelayTimer = setTimeout(function() {
- self._mouseDelayMet = true;
- }, this.options.delay);
- }
-
- if (this.mouseDistanceMet(e) && this.mouseDelayMet(e)) {
- this._mouseStarted = (this.mouseStart(e) !== false);
- if (!this._mouseStarted) { return false; }
- }
-
- // these delegates are required to keep context
- this._mouseMoveDelegate = function(e) {
- return self.mouseMove(e);
- };
- this._mouseUpDelegate = function(e) {
- return self.mouseUp(e);
- };
- $(document)
- .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- return false;
- },
-
- mouseMove: function(e) {
- // IE mouseup check - mouseup happened when mouse was out of window
- if ($.browser.msie && !e.button) {
- return this.mouseUp(e);
- }
-
- if (this._mouseStarted) {
- this.mouseDrag(e);
- return false;
- }
-
- if (this.mouseDistanceMet(e) && this.mouseDelayMet(e)) {
- this._mouseStarted =
- (this.mouseStart(this._mouseDownEvent, e) !== false);
- (this._mouseStarted ? this.mouseDrag(e) : this.mouseUp(e));
- }
-
- return !this._mouseStarted;
- },
-
- mouseUp: function(e) {
- $(document)
- .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- if (this._mouseStarted) {
- this._mouseStarted = false;
- this.mouseStop(e);
- }
-
- return false;
- },
-
- mouseDistanceMet: function(e) {
- return (Math.max(
- Math.abs(this._mouseDownEvent.pageX - e.pageX),
- Math.abs(this._mouseDownEvent.pageY - e.pageY)
- ) >= this.options.distance
- );
- },
-
- mouseDelayMet: function(e) {
- return this._mouseDelayMet;
- },
-
- // These are placeholder methods, to be overriden by extending plugin
- mouseStart: function(e) {},
- mouseDrag: function(e) {},
- mouseStop: function(e) {}
-};
-
-$.ui.mouse.defaults = {
- cancel: null,
- distance: 1,
- delay: 0
-};
-
-})(jQuery); \ No newline at end of file
diff --git a/ui/source/ui.datepicker.js b/ui/source/ui.datepicker.js
deleted file mode 100644
index c1f1b3c4d..000000000
--- a/ui/source/ui.datepicker.js
+++ /dev/null
@@ -1,1450 +0,0 @@
-/*
- * jQuery UI Datepicker
- *
- * Copyright (c) 2006, 2007, 2008 Marc Grabanski
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- * ui.core.js
- *
- * Marc Grabanski (m@marcgrabanski.com) and Keith Wood (kbwood@virginbroadband.com.au).
- */
-
-(function($) { // hide the namespace
-
-/* 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
- (DatepickerInstance), allowing multiple different settings on the same page. */
-
-function Datepicker() {
- this.debug = false; // Change this to true to start debugging
- this._nextId = 0; // Next ID for a date picker instance
- this._inst = []; // List of instances indexed by ID
- this._curInst = null; // The current instance in use
- 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.regional = []; // Available regional settings, indexed by language code
- this.regional[''] = { // Default regional settings
- clearText: 'Clear', // Display text for clear link
- clearStatus: 'Erase the current date', // Status text for clear link
- closeText: 'Close', // Display text for close link
- closeStatus: 'Close without change', // Status text for close link
- prevText: '&#x3c;Prev', // Display text for previous month link
- prevStatus: 'Show the previous month', // Status text for previous month link
- nextText: 'Next&#x3e;', // Display text for next month link
- nextStatus: 'Show the next month', // Status text for next month link
- currentText: 'Today', // Display text for current month link
- currentStatus: 'Show the current month', // Status 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
- monthStatus: 'Show a different month', // Status text for selecting a month
- yearStatus: 'Show a different year', // Status text for selecting a year
- weekHeader: 'Wk', // Header for the week of the year column
- weekStatus: 'Week of the year', // Status text for the week of the year column
- 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
- dayStatus: 'Set DD as first week day', // Status text for the day of the week selection
- dateStatus: 'Select DD, M d', // Status text for the date selection
- dateFormat: 'mm/dd/yy', // See format options on parseDate
- firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
- initStatus: 'Select a date', // Initial Status text on opening
- isRTL: false // True if right-to-left language, false if left-to-right
- };
- this._defaults = { // Global defaults for all the date picker instances
- showOn: 'focus', // 'focus' for popup on focus,
- // 'button' for trigger button, or 'both' for either
- showAnim: 'show', // Name of jQuery animation for popup
- 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
- closeAtTop: true, // True to have the clear/close at the top,
- // false to have them at the bottom
- mandatory: false, // True to hide the Clear link, false to include it
- hideIfNoPrevNext: false, // True to hide next/previous month links
- // if not applicable, false to just disable them
- changeMonth: true, // True if month can be selected directly, false if only prev/next
- changeYear: true, // True if year can be selected directly, false if only prev/next
- yearRange: '-10:+10', // Range of years to display in drop-down,
- // either relative to current year (-nn:+nn) or absolute (nnnn:nnnn)
- changeFirstDay: true, // True to click on day name to change, false to remain as set
- showOtherMonths: false, // True to show dates in other months, false to leave blank
- showWeeks: false, // True to show week of the year, false to omit
- 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
- showStatus: false, // True to show status bar at bottom, false to not show it
- statusForDate: this.dateStatus, // Function to provide status text for a date -
- // takes date and instance as parameters, returns display text
- minDate: null, // The earliest selectable date, or null for no limit
- maxDate: null, // The latest selectable date, or null for no limit
- speed: 'normal', // Speed 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 '', 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
- onClose: null, // Define a callback function when the datepicker is closed
- numberOfMonths: 1, // Number of months to show at a time
- stepMonths: 1, // Number of months to step back/forward
- rangeSelect: false, // Allows for selecting a date range on one date picker
- rangeSeparator: ' - ' // Text between two dates in a range
- };
- $.extend(this._defaults, this.regional['']);
- this._datepickerDiv = $('<div id="ui-datepicker-div"></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);
- },
-
- /* Register a new date picker instance - with custom settings. */
- _register: function(inst) {
- var id = this._nextId++;
- this._inst[id] = inst;
- return id;
- },
-
- /* Retrieve a particular date picker instance based on its ID. */
- _getInst: function(id) {
- return this._inst[id] || id;
- },
-
- /* 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 (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 instSettings = (inlineSettings ?
- $.extend(settings || {}, inlineSettings || {}) : settings);
- if (nodeName == 'input') {
- var inst = (inst && !inlineSettings ? inst :
- new DatepickerInstance(instSettings, false));
- this._connectDatepicker(target, inst);
- } else if (nodeName == 'div' || nodeName == 'span') {
- var inst = new DatepickerInstance(instSettings, true);
- this._inlineDatepicker(target, inst);
- }
- },
-
- /* Detach a datepicker from its control.
- @param target element - the target input field or division or span */
- _destroyDatepicker: function(target) {
- var nodeName = target.nodeName.toLowerCase();
- var calId = target._calId;
- target._calId = null;
- var $target = $(target);
- if (nodeName == 'input') {
- $target.siblings('.ui-datepicker-append').replaceWith('').end()
- .siblings('.ui-datepicker-trigger').replaceWith('').end()
- .removeClass(this.markerClassName)
- .unbind('focus', this._showDatepicker)
- .unbind('keydown', this._doKeyDown)
- .unbind('keypress', this._doKeyPress);
- var wrapper = $target.parents('.ui-datepicker-wrap');
- if (wrapper)
- wrapper.replaceWith(wrapper.html());
- } else if (nodeName == 'div' || nodeName == 'span')
- $target.removeClass(this.markerClassName).empty();
- if ($('input[_calId=' + calId + ']').length == 0)
- // clean up if last for this ID
- this._inst[calId] = null;
- },
-
- /* Enable the date picker to a jQuery selection.
- @param target element - the target input field or division or span */
- _enableDatepicker: function(target) {
- target.disabled = false;
- $(target).siblings('button.ui-datepicker-trigger').each(function() { this.disabled = false; }).end()
- .siblings('img.ui-datepicker-trigger').css({opacity: '1.0', cursor: ''});
- 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) {
- target.disabled = true;
- $(target).siblings('button.ui-datepicker-trigger').each(function() { this.disabled = true; }).end()
- .siblings('img.ui-datepicker-trigger').css({opacity: '0.5', cursor: 'default'});
- this._disabledInputs = $.map($.datepicker._disabledInputs,
- function(value) { return (value == target ? null : value); }); // delete entry
- this._disabledInputs[$.datepicker._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;
- },
-
- /* Update 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 string - the name of the setting to change or
- object - the new settings to update
- @param value any - the new value for the setting (omit if above is an object) */
- _changeDatepicker: function(target, name, value) {
- var settings = name || {};
- if (typeof name == 'string') {
- settings = {};
- settings[name] = value;
- }
- if (inst = this._getInst(target._calId)) {
- extendRemove(inst._settings, settings);
- 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
- @param endDate Date - the new end date for a range (optional) */
- _setDateDatepicker: function(target, date, endDate) {
- if (inst = this._getInst(target._calId)) {
- inst._setDate(date, endDate);
- this._updateDatepicker(inst);
- }
- },
-
- /* Get the date(s) for the first entry in a jQuery selection.
- @param target element - the target input field or division or span
- @return Date - the current date or
- Date[2] - the current dates for a range */
- _getDateDatepicker: function(target) {
- var inst = this._getInst(target._calId);
- if (inst) {
- inst._setDateFromField($(target));
- }
- return (inst ? inst._getDate() : null);
- },
-
- /* Handle keystrokes. */
- _doKeyDown: function(e) {
- var inst = $.datepicker._getInst(this._calId);
- if ($.datepicker._datepickerShowing)
- switch (e.keyCode) {
- case 9: $.datepicker._hideDatepicker(null, '');
- break; // hide on tab out
- case 13: $.datepicker._selectDay(inst, inst._selectedMonth, inst._selectedYear,
- $('td.ui-datepicker-days-cell-over', inst._datepickerDiv)[0]);
- return false; // don't submit the form
- break; // select the value on enter
- case 27: $.datepicker._hideDatepicker(null, inst._get('speed'));
- break; // hide on escape
- case 33: $.datepicker._adjustDate(inst,
- (e.ctrlKey ? -1 : -inst._get('stepMonths')), (e.ctrlKey ? 'Y' : 'M'));
- break; // previous month/year on page up/+ ctrl
- case 34: $.datepicker._adjustDate(inst,
- (e.ctrlKey ? +1 : +inst._get('stepMonths')), (e.ctrlKey ? 'Y' : 'M'));
- break; // next month/year on page down/+ ctrl
- case 35: if (e.ctrlKey) $.datepicker._clearDate(inst);
- break; // clear on ctrl+end
- case 36: if (e.ctrlKey) $.datepicker._gotoToday(inst);
- break; // current on ctrl+home
- case 37: if (e.ctrlKey) $.datepicker._adjustDate(inst, -1, 'D');
- break; // -1 day on ctrl+left
- case 38: if (e.ctrlKey) $.datepicker._adjustDate(inst, -7, 'D');
- break; // -1 week on ctrl+up
- case 39: if (e.ctrlKey) $.datepicker._adjustDate(inst, +1, 'D');
- break; // +1 day on ctrl+right
- case 40: if (e.ctrlKey) $.datepicker._adjustDate(inst, +7, 'D');
- break; // +1 week on ctrl+down
- }
- else if (e.keyCode == 36 && e.ctrlKey) // display the date picker on ctrl+home
- $.datepicker._showDatepicker(this);
- },
-
- /* Filter entered characters - based on date format. */
- _doKeyPress: function(e) {
- var inst = $.datepicker._getInst(this._calId);
- var chars = $.datepicker._possibleChars(inst._get('dateFormat'));
- var chr = String.fromCharCode(e.charCode == undefined ? e.keyCode : e.charCode);
- return e.ctrlKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
- },
-
- /* Attach the date picker to an input field. */
- _connectDatepicker: function(target, inst) {
- var input = $(target);
- if (input.is('.' + this.markerClassName))
- return;
- var appendText = inst._get('appendText');
- var isRTL = inst._get('isRTL');
- if (appendText) {
- if (isRTL)
- input.before('<span class="ui-datepicker-append">' + appendText);
- else
- input.after('<span class="ui-datepicker-append">' + appendText);
- }
- var showOn = inst._get('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
- input.wrap('<span class="ui-datepicker-wrap">');
- var buttonText = inst._get('buttonText');
- var buttonImage = inst._get('buttonImage');
- var trigger = $(inst._get('buttonImageOnly') ?
- $('<img>').addClass('ui-datepicker-trigger').attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
- $('<button>').addClass('ui-datepicker-trigger').attr({ type: 'button' }).html(buttonImage != '' ?
- $('<img>').attr({ src:buttonImage, alt:buttonText, title:buttonText }) : buttonText));
- if (isRTL)
- input.before(trigger);
- else
- input.after(trigger);
- trigger.click(function() {
- if ($.datepicker._datepickerShowing && $.datepicker._lastInput == target)
- $.datepicker._hideDatepicker();
- else
- $.datepicker._showDatepicker(target);
- });
- }
- input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress)
- .bind("setData.datepicker", function(event, key, value) {
- inst._settings[key] = value;
- }).bind("getData.datepicker", function(event, key) {
- return inst._get(key);
- });
- input[0]._calId = inst._id;
- },
-
- /* Attach an inline date picker to a div. */
- _inlineDatepicker: function(target, inst) {
- var input = $(target);
- if (input.is('.' + this.markerClassName))
- return;
- input.addClass(this.markerClassName).append(inst._datepickerDiv)
- .bind("setData.datepicker", function(event, key, value){
- inst._settings[key] = value;
- }).bind("getData.datepicker", function(event, key){
- return inst._get(key);
- });
- input[0]._calId = inst._id;
- this._updateDatepicker(inst);
- },
-
- /* Tidy up after displaying the date picker. */
- _inlineShow: function(inst) {
- var numMonths = inst._getNumberOfMonths(); // fix width for dynamic number of date pickers
- inst._datepickerDiv.width(numMonths[1] * $('.ui-datepicker', inst._datepickerDiv[0]).width());
- },
-
- /* Pop-up the date picker in a "dialog" box.
- @param input element - ignored
- @param dateText string - the initial date to display (in the current format)
- @param onSelect function - the function(dateText) 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, dateText, onSelect, settings, pos) {
- var inst = this._dialogInst; // internal instance
- if (!inst) {
- inst = this._dialogInst = new DatepickerInstance({}, false);
- this._dialogInput = $('<input type="text" size="1" style="position: absolute; top: -100px;"/>');
- this._dialogInput.keydown(this._doKeyDown);
- $('body').append(this._dialogInput);
- this._dialogInput[0]._calId = inst._id;
- }
- extendRemove(inst._settings, settings || {});
- this._dialogInput.val(dateText);
-
- this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
- if (!this._pos) {
- var browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
- var browserHeight = window.innerHeight || document.documentElement.clientHeight || document.body.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] + 'px').css('top', this._pos[1] + 'px');
- inst._settings.onSelect = onSelect;
- this._inDialog = true;
- this._datepickerDiv.addClass('ui-datepicker-dialog');
- this._showDatepicker(this._dialogInput[0]);
- if ($.blockUI)
- $.blockUI(this._datepickerDiv);
- return this;
- },
-
- /* 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._calId);
- var beforeShow = inst._get('beforeShow');
- extendRemove(inst._settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
- $.datepicker._hideDatepicker(null, '');
- $.datepicker._lastInput = input;
- inst._setDateFromField(input);
- 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';
- });
- if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
- $.datepicker._pos[0] -= document.documentElement.scrollLeft;
- $.datepicker._pos[1] -= document.documentElement.scrollTop;
- }
- inst._datepickerDiv.css('position', ($.datepicker._inDialog && $.blockUI ?
- 'static' : (isFixed ? 'fixed' : 'absolute')))
- .css({ left: $.datepicker._pos[0] + 'px', top: $.datepicker._pos[1] + 'px' });
- $.datepicker._pos = null;
- inst._rangeStart = null;
- $.datepicker._updateDatepicker(inst);
- if (!inst._inline) {
- var speed = inst._get('speed');
- var postProcess = function() {
- $.datepicker._datepickerShowing = true;
- $.datepicker._afterShow(inst);
- };
- var showAnim = inst._get('showAnim') || 'show';
- inst._datepickerDiv[showAnim](speed, postProcess);
- if (speed == '')
- postProcess();
- if (inst._input[0].type != 'hidden')
- inst._input[0].focus();
- $.datepicker._curInst = inst;
- }
- },
-
- /* Generate the date picker content. */
- _updateDatepicker: function(inst) {
- inst._datepickerDiv.empty().append(inst._generateDatepicker());
- var numMonths = inst._getNumberOfMonths();
- if (numMonths[0] != 1 || numMonths[1] != 1)
- inst._datepickerDiv.addClass('ui-datepicker-multi');
- else
- inst._datepickerDiv.removeClass('ui-datepicker-multi');
-
- if (inst._get('isRTL'))
- inst._datepickerDiv.addClass('ui-datepicker-rtl');
- else
- inst._datepickerDiv.removeClass('ui-datepicker-rtl');
-
- if (inst._input && inst._input[0].type != 'hidden')
- $(inst._input[0]).focus();
- },
-
- /* Tidy up after displaying the date picker. */
- _afterShow: function(inst) {
- var numMonths = inst._getNumberOfMonths(); // fix width for dynamic number of date pickers
- inst._datepickerDiv.width(numMonths[1] * $('.ui-datepicker', inst._datepickerDiv[0])[0].offsetWidth);
- if ($.browser.msie && parseInt($.browser.version) < 7) { // fix IE < 7 select problems
- $('iframe.ui-datepicker-cover').css({width: inst._datepickerDiv.width() + 4,
- height: inst._datepickerDiv.height() + 4});
- }
- // re-position on screen if necessary
- var isFixed = inst._datepickerDiv.css('position') == 'fixed';
- var pos = inst._input ? $.datepicker._findPos(inst._input[0]) : null;
- var browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
- var browserHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
- var scrollX = (isFixed ? 0 : document.documentElement.scrollLeft || document.body.scrollLeft);
- var scrollY = (isFixed ? 0 : document.documentElement.scrollTop || document.body.scrollTop);
- // reposition date picker horizontally if outside the browser window
- if ((inst._datepickerDiv.offset().left + inst._datepickerDiv.width() -
- (isFixed && $.browser.msie ? document.documentElement.scrollLeft : 0)) >
- (browserWidth + scrollX)) {
- inst._datepickerDiv.css('left', Math.max(scrollX,
- pos[0] + (inst._input ? $(inst._input[0]).width() : null) - inst._datepickerDiv.width() -
- (isFixed && $.browser.opera ? document.documentElement.scrollLeft : 0)) + 'px');
- }
- // reposition date picker vertically if outside the browser window
- if ((inst._datepickerDiv.offset().top + inst._datepickerDiv.height() -
- (isFixed && $.browser.msie ? document.documentElement.scrollTop : 0)) >
- (browserHeight + scrollY) ) {
- inst._datepickerDiv.css('top', Math.max(scrollY,
- pos[1] - (this._inDialog ? 0 : inst._datepickerDiv.height()) -
- (isFixed && $.browser.opera ? document.documentElement.scrollTop : 0)) + 'px');
- }
- },
-
- /* Find an object's position on the screen. */
- _findPos: function(obj) {
- while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
- obj = obj.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
- @param speed string - the speed at which to close the date picker */
- _hideDatepicker: function(input, speed) {
- var inst = this._curInst;
- if (!inst)
- return;
- var rangeSelect = inst._get('rangeSelect');
- if (rangeSelect && this._stayOpen) {
- this._selectDate(inst, inst._formatDate(
- inst._currentDay, inst._currentMonth, inst._currentYear));
- }
- this._stayOpen = false;
- if (this._datepickerShowing) {
- speed = (speed != null ? speed : inst._get('speed'));
- var showAnim = inst._get('showAnim');
- inst._datepickerDiv[(showAnim == 'slideDown' ? 'slideUp' :
- (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))](speed, function() {
- $.datepicker._tidyDialog(inst);
- });
- if (speed == '')
- this._tidyDialog(inst);
- var onClose = inst._get('onClose');
- if (onClose) {
- onClose.apply((inst._input ? inst._input[0] : null),
- [inst._getDate(), inst]); // trigger custom callback
- }
- this._datepickerShowing = false;
- this._lastInput = null;
- inst._settings.prompt = null;
- if (this._inDialog) {
- this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
- if ($.blockUI) {
- $.unblockUI();
- $('body').append(this._datepickerDiv);
- }
- }
- this._inDialog = false;
- }
- this._curInst = null;
- },
-
- /* Tidy up after a dialog display. */
- _tidyDialog: function(inst) {
- inst._datepickerDiv.removeClass('ui-datepicker-dialog').unbind('.ui-datepicker');
- $('.ui-datepicker-prompt', inst._datepickerDiv).remove();
- },
-
- /* Close date picker if clicked elsewhere. */
- _checkExternalClick: function(event) {
- if (!$.datepicker._curInst)
- return;
- var $target = $(event.target);
- if (($target.parents("#ui-datepicker-div").length == 0) &&
- !$target.hasClass('hasDatepicker') &&
- !$target.hasClass('ui-datepicker-trigger') &&
- $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI)) {
- $.datepicker._hideDatepicker(null, '');
- }
- },
-
- /* Adjust one of the date sub-fields. */
- _adjustDate: function(id, offset, period) {
- var inst = this._getInst(id);
- inst._adjustDate(offset, period);
- this._updateDatepicker(inst);
- },
-
- /* Action for current link. */
- _gotoToday: function(id) {
- var date = new Date();
- var inst = this._getInst(id);
- inst._selectedDay = date.getDate();
- inst._drawMonth = inst._selectedMonth = date.getMonth();
- inst._drawYear = inst._selectedYear = date.getFullYear();
- this._adjustDate(inst);
- },
-
- /* Action for selecting a new month/year. */
- _selectMonthYear: function(id, select, period) {
- var inst = this._getInst(id);
- inst._selectingMonthYear = false;
- inst[period == 'M' ? '_drawMonth' : '_drawYear'] =
- select.options[select.selectedIndex].value - 0;
- this._adjustDate(inst);
- },
-
- /* Restore input focus after not changing month/year. */
- _clickMonthYear: function(id) {
- var inst = this._getInst(id);
- if (inst._input && inst._selectingMonthYear && !$.browser.msie)
- inst._input[0].focus();
- inst._selectingMonthYear = !inst._selectingMonthYear;
- },
-
- /* Action for changing the first week day. */
- _changeFirstDay: function(id, day) {
- var inst = this._getInst(id);
- inst._settings.firstDay = day;
- this._updateDatepicker(inst);
- },
-
- /* Action for selecting a day. */
- _selectDay: function(id, month, year, td) {
- if ($(td).is('.ui-datepicker-unselectable'))
- return;
- var inst = this._getInst(id);
- var rangeSelect = inst._get('rangeSelect');
- if (rangeSelect) {
- if (!this._stayOpen) {
- $('.ui-datepicker td').removeClass('ui-datepicker-current-day');
- $(td).addClass('ui-datepicker-current-day');
- }
- this._stayOpen = !this._stayOpen;
- }
- inst._selectedDay = inst._currentDay = $('a', td).html();
- inst._selectedMonth = inst._currentMonth = month;
- inst._selectedYear = inst._currentYear = year;
- this._selectDate(id, inst._formatDate(
- inst._currentDay, inst._currentMonth, inst._currentYear));
- if (this._stayOpen) {
- inst._endDay = inst._endMonth = inst._endYear = null;
- inst._rangeStart = new Date(inst._currentYear, inst._currentMonth, inst._currentDay);
- this._updateDatepicker(inst);
- }
- else if (rangeSelect) {
- inst._endDay = inst._currentDay;
- inst._endMonth = inst._currentMonth;
- inst._endYear = inst._currentYear;
- inst._selectedDay = inst._currentDay = inst._rangeStart.getDate();
- inst._selectedMonth = inst._currentMonth = inst._rangeStart.getMonth();
- inst._selectedYear = inst._currentYear = inst._rangeStart.getFullYear();
- inst._rangeStart = null;
- if (inst._inline)
- this._updateDatepicker(inst);
- }
- },
-
- /* Erase the input field and hide the date picker. */
- _clearDate: function(id) {
- var inst = this._getInst(id);
- if (inst._get('mandatory'))
- return;
- this._stayOpen = false;
- inst._endDay = inst._endMonth = inst._endYear = inst._rangeStart = null;
- this._selectDate(inst, '');
- },
-
- /* Update the input field with the selected date. */
- _selectDate: function(id, dateStr) {
- var inst = this._getInst(id);
- dateStr = (dateStr != null ? dateStr : inst._formatDate());
- if (inst._rangeStart)
- dateStr = inst._formatDate(inst._rangeStart) + inst._get('rangeSeparator') + dateStr;
- if (inst._input)
- inst._input.val(dateStr);
- var onSelect = inst._get('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 if (!this._stayOpen) {
- this._hideDatepicker(null, inst._get('speed'));
- this._lastInput = inst._input[0];
- if (typeof(inst._input[0]) != 'object')
- inst._input[0].focus(); // restore focus
- this._lastInput = null;
- }
- },
-
- /* 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.getFullYear(), date.getMonth(), date.getDate(), (date.getTimezoneOffset() / -60));
- var firstMon = new Date(checkDate.getFullYear(), 1 - 1, 4); // First week always contains 4 Jan
- var firstDay = firstMon.getDay() || 7; // Day of week: Mon = 1, ..., Sun = 7
- firstMon.setDate(firstMon.getDate() + 1 - firstDay); // Preceding Monday
- if (firstDay < 4 && checkDate < firstMon) { // Adjust first three days in year if necessary
- checkDate.setDate(checkDate.getDate() - 3); // Generate for previous year
- return $.datepicker.iso8601Week(checkDate);
- } else if (checkDate > new Date(checkDate.getFullYear(), 12 - 1, 28)) { // Check last three days in year
- firstDay = new Date(checkDate.getFullYear() + 1, 1 - 1, 4).getDay() || 7;
- if (firstDay > 4 && (checkDate.getDay() || 7) < firstDay - 3) { // Adjust if necessary
- checkDate.setDate(checkDate.getDate() + 3); // Generate for next year
- return $.datepicker.iso8601Week(checkDate);
- }
- }
- return Math.floor(((checkDate - firstMon) / 86400000) / 7) + 1; // Weeks to given date
- },
-
- /* Provide status text for a particular date.
- @param date the date to get the status for
- @param inst the current datepicker instance
- @return the status display text for this date */
- dateStatus: function(date, inst) {
- return $.datepicker.formatDate(inst._get('dateStatus'), date, inst._getFormatConfig());
- },
-
- /* Parse a string value into a date object.
- The format can be combinations of the following:
- d - day of month (no leading zero)
- dd - day of month (two 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)
- '...' - literal text
- '' - single quote
-
- @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;
- 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 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) {
- lookAhead(match);
- var size = (match == 'y' ? 4 : 2);
- var num = 0;
- while (size > 0 && iValue < value.length &&
- value.charAt(iValue) >= '0' && value.charAt(iValue) <= '9') {
- num = num * 10 + (value.charAt(iValue++) - 0);
- size--;
- }
- if (size == (match == 'y' ? 4 : 2))
- throw 'Missing number at position ' + iValue;
- return num;
- };
- // Extract a name from the string value and convert to an index
- var getName = function(match, shortNames, longNames) {
- var names = (lookAhead(match) ? longNames : shortNames);
- var size = 0;
- for (var j = 0; j < names.length; j++)
- size = Math.max(size, names[j].length);
- var name = '';
- var iInit = iValue;
- while (size > 0 && iValue < value.length) {
- name += value.charAt(iValue++);
- for (var i = 0; i < names.length; i++)
- if (name == names[i])
- return i + 1;
- size--;
- }
- throw 'Unknown name at position ' + iInit;
- };
- // 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 'm':
- month = getNumber('m');
- break;
- case 'M':
- month = getName('M', monthNamesShort, monthNames);
- break;
- case 'y':
- year = getNumber('y');
- break;
- case "'":
- if (lookAhead("'"))
- checkLiteral();
- else
- literal = true;
- break;
- default:
- checkLiteral();
- }
- }
- if (year < 100) {
- year += new Date().getFullYear() - new Date().getFullYear() % 100 +
- (year <= shortYearCutoff ? 0 : -100);
- }
- var date = 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;
- },
-
- /* 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)
- 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)
- '...' - 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) {
- return (lookAhead(match) && value < 10 ? '0' : '') + value;
- };
- // 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());
- break;
- case 'D':
- output += formatName('D', date.getDay(), dayNamesShort, dayNames);
- break;
- case 'm':
- output += formatNumber('m', date.getMonth() + 1);
- 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 "'":
- 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;
- 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' || 'm' || 'y':
- chars += '0123456789';
- break;
- case 'D' || 'M':
- return null; // Accept anything
- case "'":
- if (lookAhead("'"))
- chars += "'";
- else
- literal = true;
- break;
- default:
- chars += format.charAt(iFormat);
- }
- return chars;
- }
-});
-
-/* Individualised settings for date picker functionality applied to one or more related inputs.
- Instances are managed and manipulated through the Datepicker manager. */
-function DatepickerInstance(settings, inline) {
- this._id = $.datepicker._register(this);
- this._selectedDay = 0; // Current date for selection
- this._selectedMonth = 0; // 0-11
- this._selectedYear = 0; // 4-digit year
- this._drawMonth = 0; // Current month at start of datepicker
- this._drawYear = 0;
- this._input = null; // The attached input field
- this._inline = inline; // True if showing inline, false if used in a popup
- this._datepickerDiv = (!inline ? $.datepicker._datepickerDiv :
- $('<div id="ui-datepicker-div-' + this._id + '" class="ui-datepicker-inline">'));
- // customise the date picker object - uses manager defaults if not overridden
- this._settings = extendRemove(settings || {}); // clone
- if (inline)
- this._setDate(this._getDefaultDate());
-}
-
-$.extend(DatepickerInstance.prototype, {
- /* Get a setting value, defaulting if necessary. */
- _get: function(name) {
- return this._settings[name] !== undefined ? this._settings[name] : $.datepicker._defaults[name];
- },
-
- /* Parse existing date and initialise date picker. */
- _setDateFromField: function(input) {
- this._input = $(input);
- var dateFormat = this._get('dateFormat');
- var dates = this._input ? this._input.val().split(this._get('rangeSeparator')) : null;
- this._endDay = this._endMonth = this._endYear = null;
- var date = defaultDate = this._getDefaultDate();
- if (dates.length > 0) {
- var settings = this._getFormatConfig();
- if (dates.length > 1) {
- date = $.datepicker.parseDate(dateFormat, dates[1], settings) || defaultDate;
- this._endDay = date.getDate();
- this._endMonth = date.getMonth();
- this._endYear = date.getFullYear();
- }
- try {
- date = $.datepicker.parseDate(dateFormat, dates[0], settings) || defaultDate;
- } catch (e) {
- $.datepicker.log(e);
- date = defaultDate;
- }
- }
- this._selectedDay = date.getDate();
- this._drawMonth = this._selectedMonth = date.getMonth();
- this._drawYear = this._selectedYear = date.getFullYear();
- this._currentDay = (dates[0] ? date.getDate() : 0);
- this._currentMonth = (dates[0] ? date.getMonth() : 0);
- this._currentYear = (dates[0] ? date.getFullYear() : 0);
- this._adjustDate();
- },
-
- /* Retrieve the default date shown on opening. */
- _getDefaultDate: function() {
- var date = this._determineDate('defaultDate', new Date());
- var minDate = this._getMinMaxDate('min', true);
- var maxDate = this._getMinMaxDate('max');
- date = (minDate && date < minDate ? minDate : date);
- date = (maxDate && date > maxDate ? maxDate : date);
- return date;
- },
-
- /* A date may be specified as an exact value or a relative one. */
- _determineDate: function(name, defaultDate) {
- var offsetNumeric = function(offset) {
- var date = new Date();
- date.setDate(date.getDate() + offset);
- return date;
- };
- var offsetString = function(offset, getDaysInMonth) {
- var date = new Date();
- var matches = /^([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?$/.exec(offset);
- if (matches) {
- var year = date.getFullYear();
- var month = date.getMonth();
- var day = date.getDate();
- switch (matches[2] || 'd') {
- case 'd' : case 'D' :
- day += (matches[1] - 0); break;
- case 'w' : case 'W' :
- day += (matches[1] * 7); break;
- case 'm' : case 'M' :
- month += (matches[1] - 0);
- day = Math.min(day, getDaysInMonth(year, month));
- break;
- case 'y': case 'Y' :
- year += (matches[1] - 0);
- day = Math.min(day, getDaysInMonth(year, month));
- break;
- }
- date = new Date(year, month, day);
- }
- return date;
- };
- var date = this._get(name);
- return (date == null ? defaultDate :
- (typeof date == 'string' ? offsetString(date, this._getDaysInMonth) :
- (typeof date == 'number' ? offsetNumeric(date) : date)));
- },
-
- /* Set the date(s) directly. */
- _setDate: function(date, endDate) {
- this._selectedDay = this._currentDay = date.getDate();
- this._drawMonth = this._selectedMonth = this._currentMonth = date.getMonth();
- this._drawYear = this._selectedYear = this._currentYear = date.getFullYear();
- if (this._get('rangeSelect')) {
- if (endDate) {
- this._endDay = endDate.getDate();
- this._endMonth = endDate.getMonth();
- this._endYear = endDate.getFullYear();
- } else {
- this._endDay = this._currentDay;
- this._endMonth = this._currentMonth;
- this._endYear = this._currentYear;
- }
- }
- this._adjustDate();
- },
-
- /* Retrieve the date(s) directly. */
- _getDate: function() {
- var startDate = (!this._currentYear || (this._input && this._input.val() == '') ? null :
- new Date(this._currentYear, this._currentMonth, this._currentDay));
- if (this._get('rangeSelect')) {
- return [startDate, (!this._endYear ? null :
- new Date(this._endYear, this._endMonth, this._endDay))];
- } else
- return startDate;
- },
-
- /* Generate the HTML for the current state of the date picker. */
- _generateDatepicker: function() {
- var today = new Date();
- today = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // clear time
- var showStatus = this._get('showStatus');
- var isRTL = this._get('isRTL');
- // build the date picker HTML
- var clear = (this._get('mandatory') ? '' :
- '<div class="ui-datepicker-clear"><a onclick="jQuery.datepicker._clearDate(' + this._id + ');"' +
- (showStatus ? this._addStatus(this._get('clearStatus') || '&#xa0;') : '') + '>' +
- this._get('clearText') + '</a></div>');
- var controls = '<div class="ui-datepicker-control">' + (isRTL ? '' : clear) +
- '<div class="ui-datepicker-close"><a onclick="jQuery.datepicker._hideDatepicker();"' +
- (showStatus ? this._addStatus(this._get('closeStatus') || '&#xa0;') : '') + '>' +
- this._get('closeText') + '</a></div>' + (isRTL ? clear : '') + '</div>';
- var prompt = this._get('prompt');
- var closeAtTop = this._get('closeAtTop');
- var hideIfNoPrevNext = this._get('hideIfNoPrevNext');
- var numMonths = this._getNumberOfMonths();
- var stepMonths = this._get('stepMonths');
- var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
- var minDate = this._getMinMaxDate('min', true);
- var maxDate = this._getMinMaxDate('max');
- var drawMonth = this._drawMonth;
- var drawYear = this._drawYear;
- if (maxDate) {
- var maxDraw = new Date(maxDate.getFullYear(),
- maxDate.getMonth() - numMonths[1] + 1, maxDate.getDate());
- maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
- while (new Date(drawYear, drawMonth, 1) > maxDraw) {
- drawMonth--;
- if (drawMonth < 0) {
- drawMonth = 11;
- drawYear--;
- }
- }
- }
- // controls and links
- var prev = '<div class="ui-datepicker-prev">' + (this._canAdjustMonth(-1, drawYear, drawMonth) ?
- '<a onclick="jQuery.datepicker._adjustDate(' + this._id + ', -' + stepMonths + ', \'M\');"' +
- (showStatus ? this._addStatus(this._get('prevStatus') || '&#xa0;') : '') + '>' +
- this._get('prevText') + '</a>' :
- (hideIfNoPrevNext ? '' : '<label>' + this._get('prevText') + '</label>')) + '</div>';
- var next = '<div class="ui-datepicker-next">' + (this._canAdjustMonth(+1, drawYear, drawMonth) ?
- '<a onclick="jQuery.datepicker._adjustDate(' + this._id + ', +' + stepMonths + ', \'M\');"' +
- (showStatus ? this._addStatus(this._get('nextStatus') || '&#xa0;') : '') + '>' +
- this._get('nextText') + '</a>' :
- (hideIfNoPrevNext ? '>' : '<label>' + this._get('nextText') + '</label>')) + '</div>';
- var html = (prompt ? '<div class="ui-datepicker-prompt">' + prompt + '</div>' : '') +
- (closeAtTop && !this._inline ? controls : '') +
- '<div class="ui-datepicker-links">' + (isRTL ? next : prev) +
- (this._isInRange(today) ? '<div class="ui-datepicker-current">' +
- '<a onclick="jQuery.datepicker._gotoToday(' + this._id + ');"' +
- (showStatus ? this._addStatus(this._get('currentStatus') || '&#xa0;') : '') + '>' +
- this._get('currentText') + '</a></div>' : '') + (isRTL ? prev : next) + '</div>';
- var showWeeks = this._get('showWeeks');
- for (var row = 0; row < numMonths[0]; row++)
- for (var col = 0; col < numMonths[1]; col++) {
- var selectedDate = new Date(drawYear, drawMonth, this._selectedDay);
- html += '<div class="ui-datepicker-one-month' + (col == 0 ? ' ui-datepicker-new-row' : '') + '">' +
- this._generateMonthYearHeader(drawMonth, drawYear, minDate, maxDate,
- selectedDate, row > 0 || col > 0) + // draw month headers
- '<table class="ui-datepicker" cellpadding="0" cellspacing="0"><thead>' +
- '<tr class="ui-datepicker-title-row">' +
- (showWeeks ? '<td>' + this._get('weekHeader') + '</td>' : '');
- var firstDay = this._get('firstDay');
- var changeFirstDay = this._get('changeFirstDay');
- var dayNames = this._get('dayNames');
- var dayNamesShort = this._get('dayNamesShort');
- var dayNamesMin = this._get('dayNamesMin');
- for (var dow = 0; dow < 7; dow++) { // days of the week
- var day = (dow + firstDay) % 7;
- var status = this._get('dayStatus') || '&#xa0;';
- status = (status.indexOf('DD') > -1 ? status.replace(/DD/, dayNames[day]) :
- status.replace(/D/, dayNamesShort[day]));
- html += '<td' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end-cell"' : '') + '>' +
- (!changeFirstDay ? '<span' :
- '<a onclick="jQuery.datepicker._changeFirstDay(' + this._id + ', ' + day + ');"') +
- (showStatus ? this._addStatus(status) : '') + ' title="' + dayNames[day] + '">' +
- dayNamesMin[day] + (changeFirstDay ? '</a>' : '</span>') + '</td>';
- }
- html += '</tr></thead><tbody>';
- var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
- if (drawYear == this._selectedYear && drawMonth == this._selectedMonth) {
- this._selectedDay = Math.min(this._selectedDay, daysInMonth);
- }
- var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
- var currentDate = (!this._currentDay ? new Date(9999, 9, 9) :
- new Date(this._currentYear, this._currentMonth, this._currentDay));
- var endDate = this._endDay ? new Date(this._endYear, this._endMonth, this._endDay) : currentDate;
- var printDate = new Date(drawYear, drawMonth, 1 - leadDays);
- var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
- var beforeShowDay = this._get('beforeShowDay');
- var showOtherMonths = this._get('showOtherMonths');
- var calculateWeek = this._get('calculateWeek') || $.datepicker.iso8601Week;
- var dateStatus = this._get('statusForDate') || $.datepicker.dateStatus;
- for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
- html += '<tr class="ui-datepicker-days-row">' +
- (showWeeks ? '<td class="ui-datepicker-week-col">' + calculateWeek(printDate) + '</td>' : '');
- for (var dow = 0; dow < 7; dow++) { // create date picker days
- var daySettings = (beforeShowDay ?
- beforeShowDay.apply((this._input ? this._input[0] : null), [printDate]) : [true, '']);
- var otherMonth = (printDate.getMonth() != drawMonth);
- var unselectable = otherMonth || !daySettings[0] ||
- (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
- html += '<td class="ui-datepicker-days-cell' +
- ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end-cell' : '') + // highlight weekends
- (otherMonth ? ' ui-datepicker-otherMonth' : '') + // highlight days from other months
- (printDate.getTime() == selectedDate.getTime() && drawMonth == this._selectedMonth ?
- ' ui-datepicker-days-cell-over' : '') + // highlight selected day
- (unselectable ? ' ui-datepicker-unselectable' : '') + // highlight unselectable days
- (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
- (printDate.getTime() >= currentDate.getTime() && printDate.getTime() <= endDate.getTime() ? // in current range
- ' ui-datepicker-current-day' : '') + // highlight selected day
- (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
- (unselectable ? '' : ' onmouseover="jQuery(this).addClass(\'ui-datepicker-days-cell-over\');' +
- (!showStatus || (otherMonth && !showOtherMonths) ? '' : 'jQuery(\'#ui-datepicker-status-' +
- this._id + '\').html(\'' + (dateStatus.apply((this._input ? this._input[0] : null),
- [printDate, this]) || '&#xa0;') +'\');') + '"' +
- ' onmouseout="jQuery(this).removeClass(\'ui-datepicker-days-cell-over\');' +
- (!showStatus || (otherMonth && !showOtherMonths) ? '' : 'jQuery(\'#ui-datepicker-status-' +
- this._id + '\').html(\'&#xa0;\');') + '" onclick="jQuery.datepicker._selectDay(' +
- this._id + ',' + drawMonth + ',' + drawYear + ', this);"') + '>' + // actions
- (otherMonth ? (showOtherMonths ? printDate.getDate() : '&#xa0;') : // display for other months
- (unselectable ? printDate.getDate() : '<a>' + printDate.getDate() + '</a>')) + '</td>'; // display for this month
- printDate.setDate(printDate.getDate() + 1);
- }
- html += '</tr>';
- }
- drawMonth++;
- if (drawMonth > 11) {
- drawMonth = 0;
- drawYear++;
- }
- html += '</tbody></table></div>';
- }
- html += (showStatus ? '<div style="clear: both;"></div><div id="ui-datepicker-status-' + this._id +
- '" class="ui-datepicker-status">' + (this._get('initStatus') || '&#xa0;') + '</div>' : '') +
- (!closeAtTop && !this._inline ? controls : '') +
- '<div style="clear: both;"></div>' +
- ($.browser.msie && parseInt($.browser.version) < 7 && !this._inline ?
- '<iframe src="javascript:false;" class="ui-datepicker-cover"></iframe>' : '');
- return html;
- },
-
- /* Generate the month and year header. */
- _generateMonthYearHeader: function(drawMonth, drawYear, minDate, maxDate, selectedDate, secondary) {
- minDate = (this._rangeStart && minDate && selectedDate < minDate ? selectedDate : minDate);
- var showStatus = this._get('showStatus');
- var html = '<div class="ui-datepicker-header">';
- // month selection
- var monthNames = this._get('monthNames');
- if (secondary || !this._get('changeMonth'))
- html += monthNames[drawMonth] + '&#xa0;';
-
- else {
- var inMinYear = (minDate && minDate.getFullYear() == drawYear);
- var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
- html += '<select class="ui-datepicker-new-month" ' +
- 'onchange="jQuery.datepicker._selectMonthYear(' + this._id + ', this, \'M\');" ' +
- 'onclick="jQuery.datepicker._clickMonthYear(' + this._id + ');"' +
- (showStatus ? this._addStatus(this._get('monthStatus') || '&#xa0;') : '') + '>';
- for (var month = 0; month < 12; month++) {
- if ((!inMinYear || month >= minDate.getMonth()) &&
- (!inMaxYear || month <= maxDate.getMonth())) {
- html += '<option value="' + month + '"' +
- (month == drawMonth ? ' selected="selected"' : '') +
- '>' + monthNames[month] + '</option>';
- }
- }
- html += '</select>';
- }
- // year selection
- if (secondary || !this._get('changeYear'))
- html += drawYear;
- else {
- // determine range of years to display
- var years = this._get('yearRange').split(':');
- var year = 0;
- var endYear = 0;
- if (years.length != 2) {
- year = drawYear - 10;
- endYear = drawYear + 10;
- } else if (years[0].charAt(0) == '+' || years[0].charAt(0) == '-') {
- year = new Date().getFullYear() + parseInt(years[0], 10);
- endYear = new Date().getFullYear() + parseInt(years[1], 10);
- } else {
- year = parseInt(years[0], 10);
- endYear = parseInt(years[1], 10);
- }
- year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
- endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
- html += '<select class="ui-datepicker-new-year" ' +
- 'onchange="jQuery.datepicker._selectMonthYear(' + this._id + ', this, \'Y\');" ' +
- 'onclick="jQuery.datepicker._clickMonthYear(' + this._id + ');"' +
- (showStatus ? this._addStatus(this._get('yearStatus') || '&#xa0;') : '') + '>';
- for (; year <= endYear; year++) {
- html += '<option value="' + year + '"' +
- (year == drawYear ? ' selected="selected"' : '') +
- '>' + year + '</option>';
- }
- html += '</select>';
- }
- html += '</div>'; // Close datepicker_header
- return html;
- },
-
- /* Provide code to set and clear the status panel. */
- _addStatus: function(text) {
- return ' onmouseover="jQuery(\'#ui-datepicker-status-' + this._id + '\').html(\'' + text + '\');" ' +
- 'onmouseout="jQuery(\'#ui-datepicker-status-' + this._id + '\').html(\'&#xa0;\');"';
- },
-
- /* Adjust one of the date sub-fields. */
- _adjustDate: function(offset, period) {
- var year = this._drawYear + (period == 'Y' ? offset : 0);
- var month = this._drawMonth + (period == 'M' ? offset : 0);
- var day = Math.min(this._selectedDay, this._getDaysInMonth(year, month)) +
- (period == 'D' ? offset : 0);
- var date = new Date(year, month, day);
- // ensure it is within the bounds set
- var minDate = this._getMinMaxDate('min', true);
- var maxDate = this._getMinMaxDate('max');
- date = (minDate && date < minDate ? minDate : date);
- date = (maxDate && date > maxDate ? maxDate : date);
- this._selectedDay = date.getDate();
- this._drawMonth = this._selectedMonth = date.getMonth();
- this._drawYear = this._selectedYear = date.getFullYear();
- },
-
- /* Determine the number of months to show. */
- _getNumberOfMonths: function() {
- var numMonths = this._get('numberOfMonths');
- return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
- },
-
- /* Determine the current maximum date - ensure no time components are set - may be overridden for a range. */
- _getMinMaxDate: function(minMax, checkRange) {
- var date = this._determineDate(minMax + 'Date', null);
- if (date) {
- date.setHours(0);
- date.setMinutes(0);
- date.setSeconds(0);
- date.setMilliseconds(0);
- }
- return date || (checkRange ? this._rangeStart : null);
- },
-
- /* Find the number of days in a given month. */
- _getDaysInMonth: function(year, month) {
- return 32 - 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(offset, curYear, curMonth) {
- var numMonths = this._getNumberOfMonths();
- var date = new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[1]), 1);
- if (offset < 0)
- date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
- return this._isInRange(date);
- },
-
- /* Is the given date in the accepted range? */
- _isInRange: function(date) {
- // during range selection, use minimum of selected date and range start
- var newMinDate = (!this._rangeStart ? null :
- new Date(this._selectedYear, this._selectedMonth, this._selectedDay));
- newMinDate = (newMinDate && this._rangeStart < newMinDate ? this._rangeStart : newMinDate);
- var minDate = newMinDate || this._getMinMaxDate('min');
- var maxDate = this._getMinMaxDate('max');
- return ((!minDate || date >= minDate) && (!maxDate || date <= maxDate));
- },
-
- /* Provide the configuration settings for formatting/parsing. */
- _getFormatConfig: function() {
- var shortYearCutoff = this._get('shortYearCutoff');
- shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
- new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
- return {shortYearCutoff: shortYearCutoff,
- dayNamesShort: this._get('dayNamesShort'), dayNames: this._get('dayNames'),
- monthNamesShort: this._get('monthNamesShort'), monthNames: this._get('monthNames')};
- },
-
- /* Format the given date for display. */
- _formatDate: function(day, month, year) {
- if (!day) {
- this._currentDay = this._selectedDay;
- this._currentMonth = this._selectedMonth;
- this._currentYear = this._selectedYear;
- }
- var date = (day ? (typeof day == 'object' ? day : new Date(year, month, day)) :
- new Date(this._currentYear, this._currentMonth, this._currentDay));
- return $.datepicker.formatDate(this._get('dateFormat'), date, this._getFormatConfig());
- }
-});
-
-/* jQuery extend now ignores nulls! */
-function extendRemove(target, props) {
- $.extend(target, props);
- for (var name in props)
- if (props[name] == null)
- target[name] = null;
- return target;
-};
-
-/* Invoke the datepicker functionality.
- @param options String - a command, optionally followed by additional parameters or
- Object - settings for attaching new datepicker functionality
- @return jQuery object */
-$.fn.datepicker = function(options){
- var otherArgs = Array.prototype.slice.call(arguments, 1);
- if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate')) {
- 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
-
-/* Initialise the date picker. */
-$(document).ready(function() {
- $(document.body).append($.datepicker._datepickerDiv)
- .mousedown($.datepicker._checkExternalClick);
-});
-
-})(jQuery);
diff --git a/ui/source/ui.dialog.js b/ui/source/ui.dialog.js
deleted file mode 100644
index a1496dbdc..000000000
--- a/ui/source/ui.dialog.js
+++ /dev/null
@@ -1,445 +0,0 @@
-/*
- * jQuery UI Dialog
- *
- * Copyright (c) 2008 Richard D. Worth (rdworth.org)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- * ui.core.js
- * ui.draggable.js
- * ui.resizable.js
- *
- * Revision: $Id: ui.dialog.js 5608 2008-05-15 14:41:12Z scott.gonzalez $
- */
-(function($) {
-
-var setDataSwitch = {
- dragStart: "start.draggable",
- drag: "drag.draggable",
- dragStop: "stop.draggable",
- maxHeight: "maxHeight.resizable",
- minHeight: "minHeight.resizable",
- maxWidth: "maxWidth.resizable",
- minWidth: "minWidth.resizable",
- resizeStart: "start.resizable",
- resize: "drag.resizable",
- resizeStop: "stop.resizable"
-};
-
-$.widget("ui.dialog", {
- init: function() {
- var self = this,
- options = this.options,
- resizeHandles = typeof options.resizable == 'string'
- ? options.resizable
- : 'n,e,s,w,se,sw,ne,nw',
-
- uiDialogContent = this.element
- .addClass('ui-dialog-content')
- .wrap('<div/>')
- .wrap('<div/>'),
-
- uiDialogContainer = uiDialogContent.parent()
- .addClass('ui-dialog-container')
- .css({position: 'relative'}),
-
- title = options.title || uiDialogContent.attr('title') || '',
- uiDialogTitlebar = (this.uiDialogTitlebar =
- $('<div class="ui-dialog-titlebar"/>'))
- .append('<span class="ui-dialog-title">' + title + '</span>')
- .append('<a href="#" class="ui-dialog-titlebar-close"><span>X</span></a>')
- .prependTo(uiDialogContainer),
-
- uiDialog = (this.uiDialog = uiDialogContainer.parent())
- .hide()
- .appendTo(document.body)
- .addClass('ui-dialog')
- .addClass(options.dialogClass)
- // add content classes to dialog
- // to inherit theme at top level of element
- .addClass(uiDialogContent.attr('className'))
- .removeClass('ui-dialog-content')
- .css({
- position: 'absolute',
- width: options.width,
- height: options.height,
- overflow: 'hidden',
- 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(ev) {
- if (options.closeOnEscape) {
- var ESC = 27;
- (ev.keyCode && ev.keyCode == ESC && self.close());
- }
- })
- .mousedown(function() {
- self.moveToTop();
- });
-
- this.uiDialogTitlebarClose = $('.ui-dialog-titlebar-close', uiDialogTitlebar)
- .hover(
- function() {
- $(this).addClass('ui-dialog-titlebar-close-hover');
- },
- function() {
- $(this).removeClass('ui-dialog-titlebar-close-hover');
- }
- )
- .mousedown(function(ev) {
- ev.stopPropagation();
- })
- .click(function() {
- self.close();
- return false;
- });
-
- var hasButtons = false;
- $.each(options.buttons, function() { return !(hasButtons = true); });
- if (hasButtons) {
- var uiDialogButtonPane = $('<div class="ui-dialog-buttonpane"/>')
- .appendTo(uiDialog);
- $.each(options.buttons, function(name, fn) {
- $('<button/>')
- .text(name)
- .click(function() { fn.apply(self.element, arguments); })
- .appendTo(uiDialogButtonPane);
- });
- }
-
- if ($.fn.draggable) {
- uiDialog.draggable({
- handle: '.ui-dialog-titlebar',
- start: function(e, ui) {
- self.moveToTop();
- (options.dragStart && options.dragStart.apply(this, arguments));
- },
- drag: options.drag,
- stop: function(e, ui) {
- (options.dragStop && options.dragStop.apply(this, arguments));
- $.ui.dialog.overlay.resize();
- }
- });
- (options.draggable || uiDialog.draggable('disable'));
- }
-
- if ($.fn.resizable) {
- uiDialog.resizable({
- maxWidth: options.maxWidth,
- maxHeight: options.maxHeight,
- minWidth: options.minWidth,
- minHeight: options.minHeight,
- start: options.resizeStart,
- resize: options.resize,
- handles: resizeHandles,
- stop: function(e, ui) {
- (options.resizeStop && options.resizeStop.apply(this, arguments));
- $.ui.dialog.overlay.resize();
- }
- });
- (options.resizable || uiDialog.resizable('disable'));
- }
-
- (options.bgiframe && $.fn.bgiframe && uiDialog.bgiframe());
- (options.autoOpen && this.open());
- },
-
- setData: function(key, value){
- (setDataSwitch[key] && this.uiDialog.data(setDataSwitch[key], value));
- switch (key) {
- case "draggable":
- this.uiDialog.draggable(value ? 'enable' : 'disable');
- break;
- case "height":
- this.uiDialog.height(value);
- break;
- case "position":
- this.position(value);
- break;
- case "resizable":
- (typeof value == 'string' && this.uiDialog.data('handles.resizable', value));
- this.uiDialog.resizable(value ? 'enable' : 'disable');
- break;
- case "title":
- $(".ui-dialog-title", this.uiDialogTitlebar).text(value);
- break;
- case "width":
- this.uiDialog.width(value);
- break;
- }
-
- $.widget.prototype.setData.apply(this, arguments);
- },
-
- position: function(pos) {
- var wnd = $(window), doc = $(document),
- pTop = doc.scrollTop(), pLeft = doc.scrollLeft(),
- minTop = pTop;
-
- if ($.inArray(pos, ['center','top','right','bottom','left']) >= 0) {
- pos = [
- pos == 'right' || pos == 'left' ? pos : 'center',
- pos == 'top' || pos == 'bottom' ? pos : 'middle'
- ];
- }
- if (pos.constructor != Array) {
- pos = ['center', 'middle'];
- }
- if (pos[0].constructor == Number) {
- pLeft += pos[0];
- } else {
- switch (pos[0]) {
- case 'left':
- pLeft += 0;
- break;
- case 'right':
- pLeft += wnd.width() - this.uiDialog.width();
- break;
- default:
- case 'center':
- pLeft += (wnd.width() - this.uiDialog.width()) / 2;
- }
- }
- if (pos[1].constructor == Number) {
- pTop += pos[1];
- } else {
- switch (pos[1]) {
- case 'top':
- pTop += 0;
- break;
- case 'bottom':
- pTop += wnd.height() - this.uiDialog.height();
- break;
- default:
- case 'middle':
- pTop += (wnd.height() - this.uiDialog.height()) / 2;
- }
- }
-
- // prevent the dialog from being too high (make sure the titlebar
- // is accessible)
- pTop = Math.max(pTop, minTop);
- this.uiDialog.css({top: pTop, left: pLeft});
- },
-
- open: function() {
- this.overlay = this.options.modal ? new $.ui.dialog.overlay(this) : null;
- this.uiDialog.appendTo('body');
- this.position(this.options.position);
- this.uiDialog.show();
- this.moveToTop(true);
-
- // CALLBACK: open
- var openEV = null;
- var openUI = {
- options: this.options
- };
- this.uiDialogTitlebarClose.focus();
- this.element.triggerHandler("dialogopen", [openEV, openUI], this.options.open);
- },
-
- // the force parameter allows us to move modal dialogs to their correct
- // position on open
- moveToTop: function(force) {
- if ((this.options.modal && !force) || !this.options.stack) { return; }
-
- var maxZ = this.options.zIndex, options = this.options;
- $('.ui-dialog:visible').each(function() {
- maxZ = Math.max(maxZ, parseInt($(this).css('z-index'), 10) || options.zIndex);
- });
- (this.overlay && this.overlay.$el.css('z-index', ++maxZ));
- this.uiDialog.css('z-index', ++maxZ);
- },
-
- close: function() {
- (this.overlay && this.overlay.destroy());
- this.uiDialog.hide();
-
- // CALLBACK: close
- var closeEV = null;
- var closeUI = {
- options: this.options
- };
- this.element.triggerHandler("dialogclose", [closeEV, closeUI], this.options.close);
- $.ui.dialog.overlay.resize();
- },
-
- destroy: function() {
- (this.overlay && this.overlay.destroy());
- this.uiDialog.hide();
- this.element
- .unbind('.dialog')
- .removeData('dialog')
- .removeClass('ui-dialog-content')
- .hide().appendTo('body');
- this.uiDialog.remove();
- }
-});
-
-$.extend($.ui.dialog, {
- defaults: {
- autoOpen: true,
- bgiframe: false,
- buttons: {},
- closeOnEscape: true,
- draggable: true,
- height: 200,
- minHeight: 100,
- minWidth: 150,
- modal: false,
- overlay: {},
- position: 'center',
- resizable: true,
- stack: true,
- width: 300,
- zIndex: 1000
- },
-
- overlay: function(dialog) {
- this.$el = $.ui.dialog.overlay.create(dialog);
- }
-});
-
-$.extend($.ui.dialog.overlay, {
- instances: [],
- events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
- function(e) { return e + '.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() {
- $('a, :input').bind($.ui.dialog.overlay.events, function() {
- // allow use of the element if inside a dialog and
- // - there are no modal dialogs
- // - there are modal dialogs, but we are in front of the topmost modal
- var allow = false;
- var $dialog = $(this).parents('.ui-dialog');
- if ($dialog.length) {
- var $overlays = $('.ui-dialog-overlay');
- if ($overlays.length) {
- var maxZ = parseInt($overlays.css('z-index'), 10);
- $overlays.each(function() {
- maxZ = Math.max(maxZ, parseInt($(this).css('z-index'), 10));
- });
- allow = parseInt($dialog.css('z-index'), 10) > maxZ;
- } else {
- allow = true;
- }
- }
- return allow;
- });
- }, 1);
-
- // allow closing by pressing the escape key
- $(document).bind('keydown.dialog-overlay', function(e) {
- var ESC = 27;
- (e.keyCode && e.keyCode == ESC && dialog.close());
- });
-
- // handle window resize
- $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
- }
-
- var $el = $('<div/>').appendTo(document.body)
- .addClass('ui-dialog-overlay').css($.extend({
- borderWidth: 0, margin: 0, padding: 0,
- position: 'absolute', top: 0, left: 0,
- width: this.width(),
- height: this.height()
- }, dialog.options.overlay));
-
- (dialog.options.bgiframe && $.fn.bgiframe && $el.bgiframe());
-
- this.instances.push($el);
- return $el;
- },
-
- destroy: function($el) {
- this.instances.splice($.inArray(this.instances, $el), 1);
-
- if (this.instances.length === 0) {
- $('a, :input').add([document, window]).unbind('.dialog-overlay');
- }
-
- $el.remove();
- },
-
- height: function() {
- if ($.browser.msie && $.browser.version < 7) {
- var scrollHeight = Math.max(
- document.documentElement.scrollHeight,
- document.body.scrollHeight
- );
- var offsetHeight = Math.max(
- document.documentElement.offsetHeight,
- document.body.offsetHeight
- );
-
- if (scrollHeight < offsetHeight) {
- return $(window).height() + 'px';
- } else {
- return scrollHeight + 'px';
- }
- } else {
- return $(document).height() + 'px';
- }
- },
-
- width: function() {
- if ($.browser.msie && $.browser.version < 7) {
- var scrollWidth = Math.max(
- document.documentElement.scrollWidth,
- document.body.scrollWidth
- );
- var offsetWidth = Math.max(
- document.documentElement.offsetWidth,
- document.body.offsetWidth
- );
-
- if (scrollWidth < offsetWidth) {
- return $(window).width() + 'px';
- } else {
- return scrollWidth + 'px';
- }
- } 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/ui/source/ui.draggable.js b/ui/source/ui.draggable.js
deleted file mode 100644
index 692cf20d5..000000000
--- a/ui/source/ui.draggable.js
+++ /dev/null
@@ -1,552 +0,0 @@
-/*
- * jQuery UI Draggable
- *
- * Copyright (c) 2008 Paul Bakaus
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.draggable.js 5672 2008-05-23 04:11:30Z braeker $
- */
-(function($) {
-
-$.widget("ui.draggable", $.extend($.ui.mouse, {
- init: function() {
-
- //Initialize needed constants
- var o = this.options;
-
- //Position the node
- if (o.helper == 'original' && !(/(relative|absolute|fixed)/).test(this.element.css('position')))
- this.element.css('position', 'relative');
-
- this.element.addClass('ui-draggable');
- (o.disabled && this.element.addClass('ui-draggable-disabled'));
-
- this.mouseInit();
-
- },
- mouseStart: function(e) {
- var o = this.options;
-
- if (this.helper || o.disabled || $(e.target).is('.ui-resizable-handle')) return false;
-
- var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
- if(!handle) $(this.options.handle, this.element).each(function() {
- if(this == e.target) handle = true;
- });
- if (!handle) return false;
-
- if($.ui.ddmanager) $.ui.ddmanager.current = this;
-
- //Create and append the visible helper
- this.helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [e])) : (o.helper == 'clone' ? this.element.clone() : this.element);
- if(!this.helper.parents('body').length) this.helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
- if(this.helper[0] != this.element[0] && !(/(fixed|absolute)/).test(this.helper.css("position"))) this.helper.css("position", "absolute");
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- this.margins = { //Cache the margins
- left: (parseInt(this.element.css("marginLeft"),10) || 0),
- top: (parseInt(this.element.css("marginTop"),10) || 0)
- };
-
- this.cssPosition = this.helper.css("position"); //Store the helper's css position
- this.offset = this.element.offset(); //The element's absolute position on the page
- this.offset = { //Substract the margins from the element's absolute offset
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- this.offset.click = { //Where the click happened, relative to the element
- left: e.pageX - this.offset.left,
- top: e.pageY - this.offset.top
- };
-
- this.offsetParent = this.helper.offsetParent(); var po = this.offsetParent.offset(); //Get the offsetParent and cache its position
- this.offset.parent = { //Store its position plus border
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- var p = this.element.position(); //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helpers
- this.offset.relative = this.cssPosition == "relative" ? {
- top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.offsetParent[0].scrollTop,
- left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.offsetParent[0].scrollLeft
- } : { top: 0, left: 0 };
-
- this.originalPosition = this.generatePosition(e); //Generate the original position
- this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() };//Cache the helper size
-
- if(o.cursorAt) {
- if(o.cursorAt.left != undefined) this.offset.click.left = o.cursorAt.left;
- if(o.cursorAt.right != undefined) this.offset.click.left = this.helperProportions.width - o.cursorAt.right;
- if(o.cursorAt.top != undefined) this.offset.click.top = o.cursorAt.top;
- if(o.cursorAt.bottom != undefined) this.offset.click.top = this.helperProportions.height - o.cursorAt.bottom;
- }
-
-
- /*
- * - Position constraining -
- * Here we prepare position constraining like grid and containment.
- */
-
- if(o.containment) {
- if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
- if(o.containment == 'document') this.containment = [0,0,$(document).width(), ($(document).height() || document.body.parentNode.scrollHeight)];
- if(!(/^(document|window|parent)$/).test(o.containment)) {
- var ce = $(o.containment)[0];
- var co = $(o.containment).offset();
-
- this.containment = [
- co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) - this.offset.relative.left - this.offset.parent.left,
- co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) - this.offset.relative.top - this.offset.parent.top,
- co.left+Math.max(ce.scrollWidth,ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - this.offset.relative.left - this.offset.parent.left - this.helperProportions.width - this.margins.left - (parseInt(this.element.css("marginRight"),10) || 0),
- co.top+Math.max(ce.scrollHeight,ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - this.offset.relative.top - this.offset.parent.top - this.helperProportions.height - this.margins.top - (parseInt(this.element.css("marginBottom"),10) || 0)
- ];
- }
- }
-
- //Call plugins and callbacks
- this.propagate("start", e);
-
- this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() };//Recache the helper size
- if ($.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(this, e);
-
- this.helper.addClass("ui-draggable-dragging");
- this.mouseDrag(e); //Execute the drag once - this causes the helper not to be visible before getting its correct position
- return true;
- },
- convertPositionTo: function(d, pos) {
- if(!pos) pos = this.position;
- var mod = d == "absolute" ? 1 : -1;
- return {
- top: (
- pos.top // the calculated relative position
- + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
- - (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollTop) * mod // The offsetParent's scroll position, not if the element is fixed
- + (this.cssPosition == "fixed" ? this.offsetParent[0].scrollTop : 0) * mod
- + this.margins.top * mod //Add the margin (you don't want the margin counting in intersection methods)
- ),
- left: (
- pos.left // the calculated relative position
- + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent
- + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
- - (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollLeft) * mod // The offsetParent's scroll position, not if the element is fixed
- + (this.cssPosition == "fixed" ? this.offsetParent[0].scrollLeft : 0) * mod
- + this.margins.left * mod //Add the margin (you don't want the margin counting in intersection methods)
- )
- };
- },
- generatePosition: function(e) {
-
- var o = this.options;
- var position = {
- top: (
- e.pageY // The absolute mouse position
- - this.offset.click.top // Click offset (relative to the element)
- - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
- + (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollTop) // The offsetParent's scroll position, not if the element is fixed
- - (this.cssPosition == "fixed" ? this.offsetParent[0].scrollTop : 0)
- ),
- left: (
- e.pageX // The absolute mouse position
- - this.offset.click.left // Click offset (relative to the element)
- - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent
- - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
- + (this.cssPosition == "fixed" || (this.cssPosition == "absolute" && this.offsetParent[0] == document.body) ? 0 : this.offsetParent[0].scrollLeft) // The offsetParent's scroll position, not if the element is fixed
- - (this.cssPosition == "fixed" ? this.offsetParent[0].scrollLeft : 0)
- )
- };
-
- if(!this.originalPosition) return position; //If we are not dragging yet, we won't check for options
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
- if(this.containment) {
- if(position.left < this.containment[0]) position.left = this.containment[0];
- if(position.top < this.containment[1]) position.top = this.containment[1];
- if(position.left > this.containment[2]) position.left = this.containment[2];
- if(position.top > this.containment[3]) position.top = this.containment[3];
- }
-
- if(o.grid) {
- var top = this.originalPosition.top + Math.round((position.top - this.originalPosition.top) / o.grid[1]) * o.grid[1];
- position.top = this.containment ? (!(top < this.containment[1] || top > this.containment[3]) ? top : (!(top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- var left = this.originalPosition.left + Math.round((position.left - this.originalPosition.left) / o.grid[0]) * o.grid[0];
- position.left = this.containment ? (!(left < this.containment[0] || left > this.containment[2]) ? left : (!(left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- return position;
- },
- mouseDrag: function(e) {
-
- //Compute the helpers position
- this.position = this.generatePosition(e);
- this.positionAbs = this.convertPositionTo("absolute");
-
- //Call plugins and callbacks and use the resulting position if something is returned
- this.position = this.propagate("drag", e) || this.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, e);
-
- return false;
- },
- mouseStop: function(e) {
-
- //If we are using droppables, inform the manager about the drop
- if ($.ui.ddmanager && !this.options.dropBehaviour)
- $.ui.ddmanager.drop(this, e);
-
- if(this.options.revert) {
- var self = this;
- $(this.helper).animate(this.originalPosition, parseInt(this.options.revert, 10) || 500, function() {
- self.propagate("stop", e);
- self.clear();
- });
- } else {
- this.propagate("stop", e);
- this.clear();
- }
-
- return false;
- },
- clear: function() {
- this.helper.removeClass("ui-draggable-dragging");
- if(this.options.helper != 'original' && !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
- plugins: {},
- uiHash: function(e) {
- return {
- helper: this.helper,
- position: this.position,
- absolutePosition: this.positionAbs,
- options: this.options
- };
- },
- propagate: function(n,e) {
- $.ui.plugin.call(this, n, [e, this.uiHash()]);
- return this.element.triggerHandler(n == "drag" ? n : "drag"+n, [e, this.uiHash()], this.options[n]);
- },
- destroy: function() {
- if(!this.element.data('draggable')) return;
- this.element.removeData("draggable").unbind(".draggable").removeClass('ui-draggable');
- this.mouseDestroy();
- }
-}));
-
-$.extend($.ui.draggable, {
- defaults: {
- appendTo: "parent",
- axis: false,
- cancel: ":input,button",
- delay: 0,
- distance: 0,
- helper: "original"
- }
-});
-
-$.ui.plugin.add("draggable", "cursor", {
- start: function(e, ui) {
- var t = $('body');
- if (t.css("cursor")) ui.options._cursor = t.css("cursor");
- t.css("cursor", ui.options.cursor);
- },
- stop: function(e, ui) {
- if (ui.options._cursor) $('body').css("cursor", ui.options._cursor);
- }
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
- start: function(e, ui) {
- var t = $(ui.helper);
- if(t.css("zIndex")) ui.options._zIndex = t.css("zIndex");
- t.css('zIndex', ui.options.zIndex);
- },
- stop: function(e, ui) {
- if(ui.options._zIndex) $(ui.helper).css('zIndex', ui.options._zIndex);
- }
-});
-
-$.ui.plugin.add("draggable", "opacity", {
- start: function(e, ui) {
- var t = $(ui.helper);
- if(t.css("opacity")) ui.options._opacity = t.css("opacity");
- t.css('opacity', ui.options.opacity);
- },
- stop: function(e, ui) {
- if(ui.options._opacity) $(ui.helper).css('opacity', ui.options._opacity);
- }
-});
-
-$.ui.plugin.add("draggable", "iframeFix", {
- start: function(e, ui) {
- $(ui.options.iframeFix === true ? "iframe" : ui.options.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(e, ui) {
- $("div.DragDropIframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers
- }
-});
-
-$.ui.plugin.add("draggable", "scroll", {
- start: function(e, ui) {
- var o = ui.options;
- var i = $(this).data("draggable");
- o.scrollSensitivity = o.scrollSensitivity || 20;
- o.scrollSpeed = o.scrollSpeed || 20;
-
- i.overflowY = function(el) {
- do { if(/auto|scroll/.test(el.css('overflow')) || (/auto|scroll/).test(el.css('overflow-y'))) return el; el = el.parent(); } while (el[0].parentNode);
- return $(document);
- }(this);
- i.overflowX = function(el) {
- do { if(/auto|scroll/.test(el.css('overflow')) || (/auto|scroll/).test(el.css('overflow-x'))) return el; el = el.parent(); } while (el[0].parentNode);
- return $(document);
- }(this);
-
- if(i.overflowY[0] != document && i.overflowY[0].tagName != 'HTML') i.overflowYOffset = i.overflowY.offset();
- if(i.overflowX[0] != document && i.overflowX[0].tagName != 'HTML') i.overflowXOffset = i.overflowX.offset();
-
- },
- drag: function(e, ui) {
-
- var o = ui.options;
- var i = $(this).data("draggable");
-
- if(i.overflowY[0] != document && i.overflowY[0].tagName != 'HTML') {
- if((i.overflowYOffset.top + i.overflowY[0].offsetHeight) - e.pageY < o.scrollSensitivity)
- i.overflowY[0].scrollTop = i.overflowY[0].scrollTop + o.scrollSpeed;
- if(e.pageY - i.overflowYOffset.top < o.scrollSensitivity)
- i.overflowY[0].scrollTop = i.overflowY[0].scrollTop - o.scrollSpeed;
-
- } else {
- if(e.pageY - $(document).scrollTop() < o.scrollSensitivity)
- $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- if($(window).height() - (e.pageY - $(document).scrollTop()) < o.scrollSensitivity)
- $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
- }
-
- if(i.overflowX[0] != document && i.overflowX[0].tagName != 'HTML') {
- if((i.overflowXOffset.left + i.overflowX[0].offsetWidth) - e.pageX < o.scrollSensitivity)
- i.overflowX[0].scrollLeft = i.overflowX[0].scrollLeft + o.scrollSpeed;
- if(e.pageX - i.overflowXOffset.left < o.scrollSensitivity)
- i.overflowX[0].scrollLeft = i.overflowX[0].scrollLeft - o.scrollSpeed;
- } else {
- if(e.pageX - $(document).scrollLeft() < o.scrollSensitivity)
- $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- if($(window).width() - (e.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
- $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
- }
-
- }
-});
-
-$.ui.plugin.add("draggable", "snap", {
- start: function(e, ui) {
-
- var inst = $(this).data("draggable");
- inst.snapElements = [];
- $(ui.options.snap === true ? '.ui-draggable' : ui.options.snap).each(function() {
- var $t = $(this); var $o = $t.offset();
- if(this != inst.element[0]) inst.snapElements.push({
- item: this,
- width: $t.outerWidth(), height: $t.outerHeight(),
- top: $o.top, left: $o.left
- });
- });
-
- },
- drag: function(e, ui) {
-
- var inst = $(this).data("draggable");
- var d = ui.options.snapTolerance || 20;
- var x1 = ui.absolutePosition.left, x2 = x1 + inst.helperProportions.width,
- y1 = ui.absolutePosition.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))) continue;
-
- if(ui.options.snapMode != 'inner') {
- var ts = Math.abs(t - y2) <= 20;
- var bs = Math.abs(b - y1) <= 20;
- var ls = Math.abs(l - x2) <= 20;
- var rs = Math.abs(r - x1) <= 20;
- if(ts) ui.position.top = inst.convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top;
- if(bs) ui.position.top = inst.convertPositionTo("relative", { top: b, left: 0 }).top;
- if(ls) ui.position.left = inst.convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left;
- if(rs) ui.position.left = inst.convertPositionTo("relative", { top: 0, left: r }).left;
- }
-
- if(ui.options.snapMode != 'outer') {
- var ts = Math.abs(t - y1) <= 20;
- var bs = Math.abs(b - y2) <= 20;
- var ls = Math.abs(l - x1) <= 20;
- var rs = Math.abs(r - x2) <= 20;
- if(ts) ui.position.top = inst.convertPositionTo("relative", { top: t, left: 0 }).top;
- if(bs) ui.position.top = inst.convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top;
- if(ls) ui.position.left = inst.convertPositionTo("relative", { top: 0, left: l }).left;
- if(rs) ui.position.left = inst.convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left;
- }
-
- };
- }
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
- start: function(e,ui) {
-
- var inst = $(this).data("draggable");
- inst.sortables = [];
- $(ui.options.connectToSortable).each(function() {
- if($.data(this, 'sortable')) {
- var sortable = $.data(this, 'sortable');
- inst.sortables.push({
- instance: sortable,
- shouldRevert: sortable.options.revert
- });
- sortable.refresh(); //Do a one-time refresh at start to refresh the containerCache
- sortable.propagate("activate", e, inst);
- }
- });
-
- },
- stop: function(e,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");
-
- $.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)
- if(this.shouldRevert) this.instance.options.revert = true; //revert here
- this.instance.mouseStop(e);
-
- //Also propagate receive event, since the sortable is actually receiving a element
- this.instance.element.triggerHandler("sortreceive", [e, $.extend(this.instance.ui(), { sender: inst.element })], this.instance.options["receive"]);
-
- this.instance.options.helper = this.instance.options._helper;
- } else {
- this.instance.propagate("deactivate", e, inst);
- }
-
- });
-
- },
- drag: function(e,ui) {
-
- var inst = $(this).data("draggable"), self = this;
-
- var checkPos = function(o) {
-
- var l = o.left, r = l + o.width,
- t = o.top, b = t + o.height;
-
- return (l < (this.positionAbs.left + this.offset.click.left) && (this.positionAbs.left + this.offset.click.left) < r
- && t < (this.positionAbs.top + this.offset.click.top) && (this.positionAbs.top + this.offset.click.top) < b);
- };
-
- $.each(inst.sortables, function(i) {
-
- if(checkPos.call(inst, 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]; };
-
- e.target = this.instance.currentItem[0];
- this.instance.mouseStart(e, 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.propagate("toSortable", e);
-
- }
-
- //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(e);
-
- } 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;
- this.instance.options.revert = false; //No revert here
- this.instance.mouseStop(e, 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();
- this.instance.placeholder.remove();
-
- inst.propagate("fromSortable", e);
- }
-
- };
-
- });
-
- }
-});
-
-$.ui.plugin.add("draggable", "stack", {
- start: function(e,ui) {
- var group = $.makeArray($(ui.options.stack.group)).sort(function(a,b) {
- return (parseInt($(a).css("zIndex"),10) || ui.options.stack.min) - (parseInt($(b).css("zIndex"),10) || ui.options.stack.min);
- });
-
- $(group).each(function(i) {
- this.style.zIndex = ui.options.stack.min + i;
- });
-
- this[0].style.zIndex = ui.options.stack.min + group.length;
- }
-});
-
-})(jQuery);
diff --git a/ui/source/ui.droppable.js b/ui/source/ui.droppable.js
deleted file mode 100644
index d97a5c40f..000000000
--- a/ui/source/ui.droppable.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * jQuery UI Droppable
- *
- * Copyright (c) 2008 Paul Bakaus
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- * ui.core.js
- * ui.draggable.js
- *
- * Revision: $Id: ui.droppable.js 5568 2008-05-12 15:07:16Z paul.bakaus $
- */
-(function($) {
-
-$.widget("ui.droppable", {
- init: function() {
-
- this.element.addClass("ui-droppable");
- this.isover = 0; this.isout = 1;
-
- //Prepare the passed options
- var o = this.options, accept = o.accept;
- o = $.extend(o, {
- accept: o.accept && o.accept.constructor == Function ? o.accept : function(d) {
- return $(d).is(accept);
- }
- });
-
- //Store the droppable's proportions
- this.proportions = { width: this.element.outerWidth(), height: this.element.outerHeight() };
-
- // Add the reference and positions to the manager
- $.ui.ddmanager.droppables.push(this);
-
- },
- plugins: {},
- ui: function(c) {
- return {
- instance: this,
- draggable: (c.currentItem || c.element),
- helper: c.helper,
- position: c.position,
- absolutePosition: c.positionAbs,
- options: this.options,
- element: this.element
- };
- },
- destroy: function() {
- var drop = $.ui.ddmanager.droppables;
- 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");
- },
- over: function(e) {
-
- 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.options.accept.call(this.element,(draggable.currentItem || draggable.element))) {
- $.ui.plugin.call(this, 'over', [e, this.ui(draggable)]);
- this.element.triggerHandler("dropover", [e, this.ui(draggable)], this.options.over);
- }
-
- },
- out: function(e) {
-
- 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.options.accept.call(this.element,(draggable.currentItem || draggable.element))) {
- $.ui.plugin.call(this, 'out', [e, this.ui(draggable)]);
- this.element.triggerHandler("dropout", [e, this.ui(draggable)], this.options.out);
- }
-
- },
- drop: function(e,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(".ui-droppable").not(".ui-draggable-dragging").each(function() {
- var inst = $.data(this, 'droppable');
- if(inst.options.greedy && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)) {
- childrenIntersection = true; return false;
- }
- });
- if(childrenIntersection) return false;
-
- if(this.options.accept.call(this.element,(draggable.currentItem || draggable.element))) {
- $.ui.plugin.call(this, 'drop', [e, this.ui(draggable)]);
- this.element.triggerHandler("drop", [e, this.ui(draggable)], this.options.drop);
- return true;
- }
-
- return false;
-
- },
- activate: function(e) {
-
- var draggable = $.ui.ddmanager.current;
- $.ui.plugin.call(this, 'activate', [e, this.ui(draggable)]);
- if(draggable) this.element.triggerHandler("dropactivate", [e, this.ui(draggable)], this.options.activate);
-
- },
- deactivate: function(e) {
-
- var draggable = $.ui.ddmanager.current;
- $.ui.plugin.call(this, 'deactivate', [e, this.ui(draggable)]);
- if(draggable) this.element.triggerHandler("dropdeactivate", [e, this.ui(draggable)], this.options.deactivate);
-
- }
-});
-
-$.extend($.ui.droppable, {
- defaults: {
- disabled: false,
- tolerance: 'intersect'
- }
-});
-
-$.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':
- return (l < ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left) && ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left) < r
- && t < ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top) && ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top) < b);
- 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: [],
- prepareOffsets: function(t, e) {
-
- var m = $.ui.ddmanager.droppables;
- var type = e ? e.type : null; // workaround for #2317
- for (var i = 0; i < m.length; i++) {
-
- if(m[i].options.disabled || (t && !m[i].options.accept.call(m[i].element,(t.currentItem || t.element)))) continue;
- m[i].visible = m[i].element.is(":visible"); if(!m[i].visible) continue; //If the element is not visible, continue
- m[i].offset = m[i].element.offset();
- m[i].proportions = { width: m[i].element.outerWidth(), height: m[i].element.outerHeight() };
-
- if(type == "dragstart" || type == "sortactivate") m[i].activate.call(m[i], e); //Activate the droppable if used directly from draggables
- }
-
- },
- drop: function(draggable, e) {
-
- var dropped = false;
- $.each($.ui.ddmanager.droppables, function() {
-
- if(!this.options) return;
- if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
- dropped = this.drop.call(this, e);
-
- if (!this.options.disabled && this.visible && this.options.accept.call(this.element,(draggable.currentItem || draggable.element))) {
- this.isout = 1; this.isover = 0;
- this.deactivate.call(this, e);
- }
-
- });
- return dropped;
-
- },
- drag: function(draggable, e) {
-
- //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, e);
-
- //Run through all droppables and check their positions based on specific tolerance options
- $.each($.ui.ddmanager.droppables, function() {
-
- if(this.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('.ui-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, e);
- }
-
- this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
- this[c == "isover" ? "over" : "out"].call(this, e);
-
- // we just moved out of a greedy child
- if (parentInstance && c == 'isout') {
- parentInstance['isout'] = 0;
- parentInstance['isover'] = 1;
- parentInstance.over.call(parentInstance, e);
- }
- });
-
- }
-};
-
-/*
- * Droppable Extensions
- */
-
-$.ui.plugin.add("droppable", "activeClass", {
- activate: function(e, ui) {
- $(this).addClass(ui.options.activeClass);
- },
- deactivate: function(e, ui) {
- $(this).removeClass(ui.options.activeClass);
- },
- drop: function(e, ui) {
- $(this).removeClass(ui.options.activeClass);
- }
-});
-
-$.ui.plugin.add("droppable", "hoverClass", {
- over: function(e, ui) {
- $(this).addClass(ui.options.hoverClass);
- },
- out: function(e, ui) {
- $(this).removeClass(ui.options.hoverClass);
- },
- drop: function(e, ui) {
- $(this).removeClass(ui.options.hoverClass);
- }
-});
-
-})(jQuery);
diff --git a/ui/source/ui.resizable.js b/ui/source/ui.resizable.js
deleted file mode 100644
index 29dccb33b..000000000
--- a/ui/source/ui.resizable.js
+++ /dev/null
@@ -1,729 +0,0 @@
-/*
- * jQuery UI Resizable
- *
- * Copyright (c) 2008 Paul Bakaus
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.resizable.js 5668 2008-05-22 18:17:30Z rdworth $
- */
-(function($) {
-
-$.widget("ui.resizable", $.extend($.ui.mouse, {
- init: function() {
-
- var self = this, o = this.options;
-
- var elpos = this.element.css('position');
-
- // simulate .ui-resizable { position: relative; }
- this.element.addClass("ui-resizable").css({ position: /static/.test(elpos) ? 'relative' : elpos });
-
- $.extend(o, {
- _aspectRatio: !!(o.aspectRatio),
- proxy: o.proxy || o.ghost || o.animate ? o.proxy || 'proxy' : null,
- knobHandles: o.knobHandles === true ? 'ui-resizable-knob-handle' : o.knobHandles
- });
-
- //Default Theme
- var aBorder = '1px solid #DEDEDE';
-
- o.defaultTheme = {
- 'ui-resizable': { display: 'block' },
- 'ui-resizable-handle': { position: 'absolute', background: '#F2F2F2', fontSize: '0.1px' },
- 'ui-resizable-n': { cursor: 'n-resize', height: '4px', left: '0px', right: '0px', borderTop: aBorder },
- 'ui-resizable-s': { cursor: 's-resize', height: '4px', left: '0px', right: '0px', borderBottom: aBorder },
- 'ui-resizable-e': { cursor: 'e-resize', width: '4px', top: '0px', bottom: '0px', borderRight: aBorder },
- 'ui-resizable-w': { cursor: 'w-resize', width: '4px', top: '0px', bottom: '0px', borderLeft: aBorder },
- 'ui-resizable-se': { cursor: 'se-resize', width: '4px', height: '4px', borderRight: aBorder, borderBottom: aBorder },
- 'ui-resizable-sw': { cursor: 'sw-resize', width: '4px', height: '4px', borderBottom: aBorder, borderLeft: aBorder },
- 'ui-resizable-ne': { cursor: 'ne-resize', width: '4px', height: '4px', borderRight: aBorder, borderTop: aBorder },
- 'ui-resizable-nw': { cursor: 'nw-resize', width: '4px', height: '4px', borderLeft: aBorder, borderTop: aBorder }
- };
-
- o.knobTheme = {
- 'ui-resizable-handle': { background: '#F2F2F2', border: '1px solid #808080', height: '8px', width: '8px' },
- 'ui-resizable-n': { cursor: 'n-resize', top: '0px', left: '45%' },
- 'ui-resizable-s': { cursor: 's-resize', bottom: '0px', left: '45%' },
- 'ui-resizable-e': { cursor: 'e-resize', right: '0px', top: '45%' },
- 'ui-resizable-w': { cursor: 'w-resize', left: '0px', top: '45%' },
- 'ui-resizable-se': { cursor: 'se-resize', right: '0px', bottom: '0px' },
- 'ui-resizable-sw': { cursor: 'sw-resize', left: '0px', bottom: '0px' },
- 'ui-resizable-nw': { cursor: 'nw-resize', left: '0px', top: '0px' },
- 'ui-resizable-ne': { cursor: 'ne-resize', right: '0px', top: '0px' }
- };
-
- o._nodeName = this.element[0].nodeName;
-
- //Wrap the element if it cannot hold child nodes
- if(o._nodeName.match(/canvas|textarea|input|select|button|img/i)) {
- var el = this.element;
-
- //Opera fixing relative position
- if (/relative/.test(el.css('position')) && $.browser.opera)
- el.css({ position: 'relative', top: 'auto', left: 'auto' });
-
- //Create a wrapper element and set the wrapper to the new current internal element
- el.wrap(
- $('<div class="ui-wrapper" style="overflow: hidden;"></div>').css( {
- position: el.css('position'),
- width: el.outerWidth(),
- height: el.outerHeight(),
- top: el.css('top'),
- left: el.css('left')
- })
- );
-
- var oel = this.element; this.element = this.element.parent();
-
- // store instance on wrapper
- this.element.data('resizable', this);
-
- //Move margins to the wrapper
- this.element.css({ marginLeft: oel.css("marginLeft"), marginTop: oel.css("marginTop"),
- marginRight: oel.css("marginRight"), marginBottom: oel.css("marginBottom")
- });
-
- oel.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
-
- //Prevent Safari textarea resize
- if ($.browser.safari && o.preventDefault) oel.css('resize', 'none');
-
- o.proportionallyResize = oel.css({ position: 'static', zoom: 1, display: 'block' });
-
- // avoid IE jump
- this.element.css({ margin: oel.css('margin') });
-
- // fix handlers offset
- this._proportionallyResize();
- }
-
- if(!o.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(o.handles.constructor == String) {
-
- o.zIndex = o.zIndex || 1000;
-
- if(o.handles == 'all') o.handles = 'n,e,s,w,se,sw,ne,nw';
-
- var n = o.handles.split(","); o.handles = {};
-
- // insertions are applied when don't have theme loaded
- var insertionsDefault = {
- handle: 'position: absolute; display: none; overflow:hidden;',
- n: 'top: 0pt; width:100%;',
- e: 'right: 0pt; height:100%;',
- s: 'bottom: 0pt; width:100%;',
- w: 'left: 0pt; height:100%;',
- se: 'bottom: 0pt; right: 0px;',
- sw: 'bottom: 0pt; left: 0px;',
- ne: 'top: 0pt; right: 0px;',
- nw: 'top: 0pt; left: 0px;'
- };
-
- for(var i = 0; i < n.length; i++) {
- var handle = $.trim(n[i]), dt = o.defaultTheme, hname = 'ui-resizable-'+handle, loadDefault = !$.ui.css(hname) && !o.knobHandles, userKnobClass = $.ui.css('ui-resizable-knob-handle'),
- allDefTheme = $.extend(dt[hname], dt['ui-resizable-handle']), allKnobTheme = $.extend(o.knobTheme[hname], !userKnobClass ? o.knobTheme['ui-resizable-handle'] : {});
-
- // increase zIndex of sw, se, ne, nw axis
- var applyZIndex = /sw|se|ne|nw/.test(handle) ? { zIndex: ++o.zIndex } : {};
-
- var defCss = (loadDefault ? insertionsDefault[handle] : ''),
- axis = $(['<div class="ui-resizable-handle ', hname, '" style="', defCss, insertionsDefault.handle, '"></div>'].join('')).css( applyZIndex );
- o.handles[handle] = '.ui-resizable-'+handle;
-
- this.element.append(
- //Theme detection, if not loaded, load o.defaultTheme
- axis.css( loadDefault ? allDefTheme : {} )
- // Load the knobHandle css, fix width, height, top, left...
- .css( o.knobHandles ? allKnobTheme : {} ).addClass(o.knobHandles ? 'ui-resizable-knob-handle' : '').addClass(o.knobHandles)
- );
- }
-
- if (o.knobHandles) this.element.addClass('ui-resizable-knob').css( !$.ui.css('ui-resizable-knob') ? { /*border: '1px #fff dashed'*/ } : {} );
- }
-
- this._renderAxis = function(target) {
- target = target || this.element;
-
- for(var i in o.handles) {
- if(o.handles[i].constructor == String)
- o.handles[i] = $(o.handles[i], this.element).show();
-
- if (o.transparent)
- o.handles[i].css({opacity:0});
-
- //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
- if (this.element.is('.ui-wrapper') &&
- o._nodeName.match(/textarea|input|select|button/i)) {
-
- var axis = $(o.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("");
-
- if (!o.transparent)
- target.css(padPos, padWrapper);
-
- this._proportionallyResize();
- }
- if(!$(o.handles[i]).length) continue;
- }
- };
-
- this._renderAxis(this.element);
- o._handles = $('.ui-resizable-handle', self.element);
-
- if (o.disableSelection)
- o._handles.each(function(i, e) { $.ui.disableSelection(e); });
-
- //Matching axis name
- o._handles.mouseover(function() {
- if (!o.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 = o.axis = axis && axis[1] ? axis[1] : 'se';
- }
- });
-
- //If we want to auto hide the elements
- if (o.autohide) {
- o._handles.hide();
- $(self.element).addClass("ui-resizable-autohide").hover(function() {
- $(this).removeClass("ui-resizable-autohide");
- o._handles.show();
- },
- function(){
- if (!o.resizing) {
- $(this).addClass("ui-resizable-autohide");
- o._handles.hide();
- }
- });
- }
-
- this.mouseInit();
- },
- plugins: {},
- ui: function() {
- return {
- axis: this.options.axis,
- options: this.options
- };
- },
- propagate: function(n,e) {
- $.ui.plugin.call(this, n, [e, this.ui()]);
- this.element.triggerHandler(n == "resize" ? n : ["resize", n].join(""), [e, this.ui()], this.options[n]);
- },
- destroy: function() {
- var el = this.element, wrapped = el.children(".ui-resizable").get(0);
-
- this.mouseDestroy();
-
- var _destroy = function(exp) {
- $(exp).removeClass("ui-resizable ui-resizable-disabled")
- .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
- };
-
- _destroy(el);
-
- if (el.is('.ui-wrapper') && wrapped) {
- el.parent().append(
- $(wrapped).css({
- position: el.css('position'),
- width: el.outerWidth(),
- height: el.outerHeight(),
- top: el.css('top'),
- left: el.css('left')
- })
- ).end().remove();
-
- _destroy(wrapped);
- }
- },
- mouseStart: function(e) {
- if(this.options.disabled) return false;
-
- var handle = false;
- for(var i in this.options.handles) {
- if($(this.options.handles[i])[0] == e.target) handle = true;
- }
- if (!handle) return false;
-
- var o = this.options, iniPos = this.element.position(), el = this.element,
- num = function(v) { return parseInt(v, 10) || 0; }, ie6 = $.browser.msie && $.browser.version < 7;
- o.resizing = true;
- o.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
-
- // bugfix #1749
- if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
-
- // sOffset decides if document scrollOffset will be added to the top/left of the resizable element
- var sOffset = $.browser.msie && !o.containment && (/absolute/).test(el.css('position')) && !(/relative/).test(el.parent().css('position'));
- var dscrollt = sOffset ? o.documentScroll.top : 0, dscrolll = sOffset ? o.documentScroll.left : 0;
-
- el.css({ position: 'absolute', top: (iniPos.top + dscrollt), left: (iniPos.left + dscrolll) });
- }
-
- //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'));
-
- //Store needed variables
- this.offset = this.helper.offset();
- this.position = { left: curleft, top: curtop };
- this.size = o.proxy || ie6 ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
- this.originalSize = o.proxy || ie6 ? { 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: e.pageX, top: e.pageY };
-
- //Aspect Ratio
- o.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.height / this.originalSize.width)||1);
-
- if (o.preserveCursor)
- $('body').css('cursor', this.axis + '-resize');
-
- this.propagate("start", e);
- return true;
- },
- mouseDrag: function(e) {
-
- //Increase performance, avoid regex
- var el = this.helper, o = this.options, props = {},
- self = this, smp = this.originalMousePosition, a = this.axis;
-
- var dx = (e.pageX-smp.left)||0, dy = (e.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, [e, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
-
- if (o._aspectRatio || e.shiftKey)
- data = this._updateRatio(data, e);
-
- data = this._respectSize(data, e);
-
- this.propagate("resize", e);
-
- el.css({
- top: this.position.top + "px", left: this.position.left + "px",
- width: this.size.width + "px", height: this.size.height + "px"
- });
-
- if (!o.proxy && o.proportionallyResize)
- this._proportionallyResize();
-
- this._updateCache(data);
-
- return false;
- },
- mouseStop: function(e) {
-
- this.options.resizing = false;
- var o = this.options, num = function(v) { return parseInt(v, 10) || 0; }, self = this;
-
- if(o.proxy) {
- var pr = o.proportionallyResize, ista = pr && (/textarea/i).test(pr.get(0).nodeName),
- soffseth = ista && $.ui.hasScroll(pr.get(0), 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
- soffsetw = ista ? 0 : self.sizeDiff.width;
-
- var s = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
- 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 }));
-
- if (o.proxy && !o.animate) this._proportionallyResize();
- this.helper.remove();
- }
-
- if (o.preserveCursor)
- $('body').css('cursor', 'auto');
-
- this.propagate("stop", e);
- return false;
- },
- _updateCache: function(data) {
- var o = this.options;
- this.offset = this.helper.offset();
- if (data.left) this.position.left = data.left;
- if (data.top) this.position.top = data.top;
- if (data.height) this.size.height = data.height;
- if (data.width) this.size.width = data.width;
- },
- _updateRatio: function(data, e) {
- var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
-
- if (data.height) data.width = (csize.height / o.aspectRatio);
- else if (data.width) data.height = (csize.width * o.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, e) {
-
- var el = this.helper, o = this.options, pRatio = o._aspectRatio || e.shiftKey, a = this.axis,
- ismaxw = data.width && o.maxWidth && o.maxWidth < data.width, ismaxh = data.height && o.maxHeight && o.maxHeight < data.height,
- isminw = data.width && o.minWidth && o.minWidth > data.width, isminh = 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 (!o.proportionallyResize) return;
- var prel = o.proportionallyResize, el = this.helper || this.element;
-
- if (!o.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')];
-
- o.borderDif = $.map(b, function(v, i) {
- var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
- return border + padding;
- });
- }
- prel.css({
- height: (el.height() - o.borderDif[0] - o.borderDif[2]) + "px",
- width: (el.width() - o.borderDif[1] - o.borderDif[3]) + "px"
- });
- },
- _renderProxy: function() {
- var el = this.element, o = this.options;
- this.elementOffset = el.offset();
-
- if(o.proxy) {
- this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
-
- // fix ie6 offset
- var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
- pxyoffset = ( ie6 ? 2 : -1 );
-
- this.helper.addClass(o.proxy).css({
- width: el.outerWidth() + pxyoffset,
- height: el.outerHeight() + pxyoffset,
- position: 'absolute',
- left: this.elementOffset.left - ie6offset +'px',
- top: this.elementOffset.top - ie6offset +'px',
- zIndex: ++o.zIndex
- });
-
- this.helper.appendTo("body");
-
- if (o.disableSelection)
- $.ui.disableSelection(this.helper.get(0));
-
- } else {
- this.helper = el;
- }
- },
- _change: {
- e: function(e, dx, dy) {
- return { width: this.originalSize.width + dx };
- },
- w: function(e, dx, dy) {
- var o = this.options, cs = this.originalSize, sp = this.originalPosition;
- return { left: sp.left + dx, width: cs.width - dx };
- },
- n: function(e, dx, dy) {
- var o = this.options, cs = this.originalSize, sp = this.originalPosition;
- return { top: sp.top + dy, height: cs.height - dy };
- },
- s: function(e, dx, dy) {
- return { height: this.originalSize.height + dy };
- },
- se: function(e, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [e, dx, dy]));
- },
- sw: function(e, dx, dy) {
- return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [e, dx, dy]));
- },
- ne: function(e, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [e, dx, dy]));
- },
- nw: function(e, dx, dy) {
- return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [e, dx, dy]));
- }
- }
-}));
-
-$.extend($.ui.resizable, {
- defaults: {
- cancel: ":input,button",
- distance: 0,
- delay: 0,
- preventDefault: true,
- transparent: false,
- minWidth: 10,
- minHeight: 10,
- aspectRatio: false,
- disableSelection: true,
- preserveCursor: true,
- autohide: false,
- knobHandles: false
- }
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "containment", {
-
- start: function(e, ui) {
- var o = ui.options, self = $(this).data("resizable"), el = self.element;
- var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
- if (!ce) return;
-
- if (/document/.test(oc) || oc == document) {
- self.containerOffset = { 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{
- self.containerOffset = $(ce).offset();
- self.containerSize = { height: $(ce).innerHeight(), width: $(ce).innerWidth() };
-
- 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(e, ui) {
- var o = ui.options, self = $(this).data("resizable"), ps = self.containerSize,
- co = self.containerOffset, cs = self.size, cp = self.position,
- pRatio = o._aspectRatio || e.shiftKey;
-
- if (cp.left < (o.proxy ? co.left : 0)) {
- self.size.width = self.size.width + (o.proxy ? (self.position.left - co.left) : self.position.left);
- if (pRatio) self.size.height = self.size.width * o.aspectRatio;
- self.position.left = o.proxy ? co.left : 0;
- }
-
- if (cp.top < (o.proxy ? co.top : 0)) {
- self.size.height = self.size.height + (o.proxy ? (self.position.top - co.top) : self.position.top);
- if (pRatio) self.size.width = self.size.height / o.aspectRatio;
- self.position.top = o.proxy ? co.top : 0;
- }
-
- var woset = (o.proxy ? self.offset.left - co.left : self.position.left) + self.sizeDiff.width,
- hoset = (o.proxy ? self.offset.top - co.top : self.position.top) + self.sizeDiff.height;
-
- if (woset + self.size.width >= self.parentData.width) {
- self.size.width = self.parentData.width - woset;
- if (pRatio) self.size.height = self.size.width * o.aspectRatio;
- }
-
- if (hoset + self.size.height >= self.parentData.height) {
- self.size.height = self.parentData.height - hoset;
- if (pRatio) self.size.width = self.size.height / o.aspectRatio;
- }
- }
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
- resize: function(e, ui) {
- var o = ui.options, self = $(this).data("resizable"), cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || e.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;
- }
- }
-
-});
-
-$.ui.plugin.add("resizable", "animate", {
-
- stop: function(e, ui) {
- var o = ui.options, self = $(this).data("resizable");
-
- var pr = o.proportionallyResize, ista = pr && (/textarea/i).test(pr.get(0).nodeName),
- soffseth = ista && $.ui.hasScroll(pr.get(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 || "slow", easing: o.animateEasing || "swing",
- 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.css({ width: data.width, height: data.height });
-
- // propagating resize, and updating values for each animation step
- self._updateCache(data);
- self.propagate("animate", e);
-
- }
- }
- );
- }
-
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
- start: function(e, ui) {
- var o = ui.options, self = $(this).data("resizable"), pr = o.proportionallyResize, cs = self.size;
-
- if (!pr) self.ghost = self.element.clone();
- else self.ghost = pr.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(e, ui){
- var o = ui.options, self = $(this).data("resizable"), pr = o.proportionallyResize;
-
- if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
-
- },
-
- stop: function(e, ui){
- var o = ui.options, self = $(this).data("resizable"), pr = o.proportionallyResize;
- if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
- }
-
-});
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
- start: function(e, ui) {
- var o = ui.options, self = $(this).data("resizable"),
-
- _store = function(exp) {
- $(exp).each(function() {
- $(this).data("resizable-alsoresize", {
- width: parseInt($(this).width(), 10), height: parseInt($(this).height(), 10),
- left: parseInt($(this).css('left'), 10), top: parseInt($(this).css('top'), 10)
- });
- });
- };
-
- if (typeof(o.alsoResize) == 'object') {
- $.each(o.alsoResize, function(exp, c) { _store(exp); });
- }else{
- _store(o.alsoResize);
- }
- },
-
- resize: function(e, ui){
- var o = ui.options, self = $(this).data("resizable"), 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 start = $(this).data("resizable-alsoresize"), style = {}, css = c && c.length ? c : ['width', 'height', 'top', 'left'];
-
- $.each(css || ['width', 'height', 'top', 'left'], function(i, prop) {
- var sum = (start[prop]||0) + (delta[prop]||0);
- if (sum && sum >= 0)
- style[prop] = sum || null;
- });
- $(this).css(style);
- });
- };
-
- if (typeof(o.alsoResize) == 'object') {
- $.each(o.alsoResize, function(exp, c) { _alsoResize(exp, c); });
- }else{
- _alsoResize(o.alsoResize);
- }
- },
-
- stop: function(e, ui){
- $(this).removeData("resizable-alsoresize-start");
- }
-});
-
-})(jQuery);
diff --git a/ui/source/ui.selectable.js b/ui/source/ui.selectable.js
deleted file mode 100644
index 399ae71f4..000000000
--- a/ui/source/ui.selectable.js
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * jQuery UI Selectable
- *
- * Copyright (c) 2008 Richard D. Worth (rdworth.org)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.selectable.js 5581 2008-05-13 16:58:03Z scott.gonzalez $
- */
-(function($) {
-
-$.widget("ui.selectable", $.extend($.ui.mouse, {
- init: 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.width(),
- bottom: pos.top + $this.height(),
- 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 = $(document.createElement('div')).css({border:'1px dotted black'});
- },
- toggle: function() {
- if(this.options.disabled){
- this.enable();
- } else {
- this.disable();
- }
- },
- destroy: function() {
- this.element
- .removeClass("ui-selectable ui-selectable-disabled")
- .removeData("selectable")
- .unbind(".selectable");
- this.mouseDestroy();
- },
- mouseStart: function(e) {
- var self = this;
-
- this.opos = [e.pageX, e.pageY];
-
- if (this.options.disabled)
- return;
-
- var options = this.options;
-
- this.selectees = $(options.filter, this.element[0]);
-
- // selectable START callback
- this.element.triggerHandler("selectablestart", [e, {
- "selectable": this.element[0],
- "options": options
- }], options.start);
-
- $('body').append(this.helper);
- // position helper (lasso)
- this.helper.css({
- "z-index": 100,
- "position": "absolute",
- "left": e.clientX,
- "top": e.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 (!e.ctrlKey) {
- selectee.$element.removeClass('ui-selected');
- selectee.selected = false;
- selectee.$element.addClass('ui-unselecting');
- selectee.unselecting = true;
- // selectable UNSELECTING callback
- self.element.triggerHandler("selectableunselecting", [e, {
- selectable: self.element[0],
- unselecting: selectee.element,
- options: options
- }], options.unselecting);
- }
- });
-
- var isSelectee = false;
- $(e.target).parents().andSelf().each(function() {
- if($.data(this, "selectable-item")) isSelectee = true;
- });
- return this.options.keyboard ? !isSelectee : true;
- },
- mouseDrag: function(e) {
- 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 = e.pageX, y2 = e.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.element.triggerHandler("selectableselecting", [e, {
- selectable: self.element[0],
- selecting: selectee.element,
- options: options
- }], options.selecting);
- }
- } else {
- // UNSELECT
- if (selectee.selecting) {
- if (e.ctrlKey && selectee.startselected) {
- selectee.$element.removeClass('ui-selecting');
- selectee.selecting = false;
- selectee.$element.addClass('ui-selected');
- selectee.selected = true;
- } else {
- selectee.$element.removeClass('ui-selecting');
- selectee.selecting = false;
- if (selectee.startselected) {
- selectee.$element.addClass('ui-unselecting');
- selectee.unselecting = true;
- }
- // selectable UNSELECTING callback
- self.element.triggerHandler("selectableunselecting", [e, {
- selectable: self.element[0],
- unselecting: selectee.element,
- options: options
- }], options.unselecting);
- }
- }
- if (selectee.selected) {
- if (!e.ctrlKey && !selectee.startselected) {
- selectee.$element.removeClass('ui-selected');
- selectee.selected = false;
-
- selectee.$element.addClass('ui-unselecting');
- selectee.unselecting = true;
- // selectable UNSELECTING callback
- self.element.triggerHandler("selectableunselecting", [e, {
- selectable: self.element[0],
- unselecting: selectee.element,
- options: options
- }], options.unselecting);
- }
- }
- }
- });
-
- return false;
- },
- mouseStop: function(e) {
- 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.element.triggerHandler("selectableunselected", [e, {
- selectable: self.element[0],
- unselected: selectee.element,
- options: options
- }], options.unselected);
- });
- $('.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.element.triggerHandler("selectableselected", [e, {
- selectable: self.element[0],
- selected: selectee.element,
- options: options
- }], options.selected);
- });
- this.element.triggerHandler("selectablestop", [e, {
- selectable: self.element[0],
- options: this.options
- }], this.options.stop);
-
- this.helper.remove();
-
- return false;
- }
-}));
-
-$.extend($.ui.selectable, {
- defaults: {
- distance: 0,
- delay: 0,
- cancel: ":input,button",
- appendTo: 'body',
- autoRefresh: true,
- filter: '*',
- tolerance: 'touch'
- }
-});
-
-})(jQuery);
diff --git a/ui/source/ui.slider.js b/ui/source/ui.slider.js
deleted file mode 100644
index 51bc01c9d..000000000
--- a/ui/source/ui.slider.js
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * jQuery UI Slider
- *
- * Copyright (c) 2008 Paul Bakaus
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.slider.js 5539 2008-05-09 16:48:33Z paul.bakaus $
- */
-(function($) {
-
-$.fn.unwrap = $.fn.unwrap || function(expr) {
- return this.each(function(){
- $(this).parents(expr).eq(0).after(this).remove();
- });
-};
-
-$.widget("ui.slider", {
- plugins: {},
- ui: function(e) {
- return {
- instance: this,
- options: this.options,
- handle: this.currentHandle,
- value: this.options.axis != "both" || !this.options.axis ? Math.round(this.value(null,this.options.axis == "vertical" ? "y" : "x")) : {
- x: Math.round(this.value(null,"x")),
- y: Math.round(this.value(null,"y"))
- },
- range: this.getRange()
- };
- },
- propagate: function(n,e) {
- $.ui.plugin.call(this, n, [e, this.ui()]);
- this.element.triggerHandler(n == "slide" ? n : "slide"+n, [e, this.ui()], this.options[n]);
- },
- destroy: function() {
- this.element
- .removeClass("ui-slider ui-slider-disabled")
- .removeData("slider")
- .unbind(".slider");
- this.handle
- .unwrap("a");
- this.handle.each(function() {
- $(this).data("mouse").mouseDestroy();
- });
- this.generated && this.generated.remove();
- },
- setData: function(key, value) {
- $.widget.prototype.setData.apply(this, arguments);
- if (/min|max|steps/.test(key)) {
- this.initBoundaries();
- }
- },
-
- init: function() {
-
- var self = this;
- this.element.addClass("ui-slider");
- this.initBoundaries();
-
- // Initialize mouse and key events for interaction
- this.handle = $(this.options.handle, this.element);
- if (!this.handle.length) {
- self.handle = self.generated = $(self.options.handles || [0]).map(function() {
- var handle = $("<div/>").addClass("ui-slider-handle").appendTo(self.element);
- if (this.id)
- handle.attr("id", this.id);
- return handle[0];
- });
- }
-
-
- var handleclass = function(el) {
- this.element = $(el);
- this.element.data("mouse", this);
- this.options = self.options;
-
- this.element.bind("mousedown", function() {
- if(self.currentHandle) this.blur(self.currentHandle);
- self.focus(this,1);
- });
-
- this.mouseInit();
- };
-
- $.extend(handleclass.prototype, $.ui.mouse, {
- mouseStart: function(e) { return self.start.call(self, e, this.element[0]); },
- mouseStop: function(e) { return self.stop.call(self, e, this.element[0]); },
- mouseDrag: function(e) { return self.drag.call(self, e, this.element[0]); },
- trigger: function(e) { this.mouseDown(e); }
- });
-
-
- $(this.handle)
- .each(function() {
- new handleclass(this);
- })
- .wrap('<a href="javascript:void(0)" style="cursor:default;"></a>')
- .parent()
- .bind('focus', function(e) { self.focus(this.firstChild); })
- .bind('blur', function(e) { self.blur(this.firstChild); })
- .bind('keydown', function(e) { if(!self.options.noKeyboard) self.keydown(e.keyCode, this.firstChild); })
- ;
-
- // Bind the click to the slider itself
- this.element.bind('mousedown.slider', function(e) {
- self.click.apply(self, [e]);
- self.currentHandle.data("mouse").trigger(e);
- self.firstValue = self.firstValue + 1; //This is for always triggering the change event
- });
-
- // Move the first handle to the startValue
- $.each(this.options.handles || [], function(index, handle) {
- self.moveTo(handle.start, index, true);
- });
- if (!isNaN(this.options.startValue))
- this.moveTo(this.options.startValue, 0, true);
-
- this.previousHandle = $(this.handle[0]); //set the previous handle to the first to allow clicking before selecting the handle
- if(this.handle.length == 2 && this.options.range) this.createRange();
- },
- initBoundaries: function() {
-
- var element = this.element[0], o = this.options;
- this.actualSize = { width: this.element.outerWidth() , height: this.element.outerHeight() };
-
- $.extend(o, {
- axis: o.axis || (element.offsetWidth < element.offsetHeight ? 'vertical' : 'horizontal'),
- max: !isNaN(parseInt(o.max,10)) ? { x: parseInt(o.max, 10), y: parseInt(o.max, 10) } : ({ x: o.max && o.max.x || 100, y: o.max && o.max.y || 100 }),
- min: !isNaN(parseInt(o.min,10)) ? { x: parseInt(o.min, 10), y: parseInt(o.min, 10) } : ({ x: o.min && o.min.x || 0, y: o.min && o.min.y || 0 })
- });
- //Prepare the real maxValue
- o.realMax = {
- x: o.max.x - o.min.x,
- y: o.max.y - o.min.y
- };
- //Calculate stepping based on steps
- o.stepping = {
- x: o.stepping && o.stepping.x || parseInt(o.stepping, 10) || (o.steps ? o.realMax.x/(o.steps.x || parseInt(o.steps, 10) || o.realMax.x) : 0),
- y: o.stepping && o.stepping.y || parseInt(o.stepping, 10) || (o.steps ? o.realMax.y/(o.steps.y || parseInt(o.steps, 10) || o.realMax.y) : 0)
- };
- },
-
-
- keydown: function(keyCode, handle) {
- if(/(37|38|39|40)/.test(keyCode)) {
- this.moveTo({
- x: /(37|39)/.test(keyCode) ? (keyCode == 37 ? '-' : '+') + '=' + this.oneStep("x") : 0,
- y: /(38|40)/.test(keyCode) ? (keyCode == 38 ? '-' : '+') + '=' + this.oneStep("y") : 0
- }, handle);
- }
- },
- focus: function(handle,hard) {
- this.currentHandle = $(handle).addClass('ui-slider-handle-active');
- if (hard)
- this.currentHandle.parent()[0].focus();
- },
- blur: function(handle) {
- $(handle).removeClass('ui-slider-handle-active');
- if(this.currentHandle && this.currentHandle[0] == handle) { this.previousHandle = this.currentHandle; this.currentHandle = null; };
- },
- click: function(e) {
- // This method is only used if:
- // - The user didn't click a handle
- // - The Slider is not disabled
- // - There is a current, or previous selected handle (otherwise we wouldn't know which one to move)
-
- var pointer = [e.pageX,e.pageY];
-
- var clickedHandle = false;
- this.handle.each(function() {
- if(this == e.target)
- clickedHandle = true;
- });
- if (clickedHandle || this.options.disabled || !(this.currentHandle || this.previousHandle))
- return;
-
- // If a previous handle was focussed, focus it again
- if (!this.currentHandle && this.previousHandle)
- this.focus(this.previousHandle, true);
-
- // propagate only for distance > 0, otherwise propagation is done my drag
- this.offset = this.element.offset();
-
- this.moveTo({
- y: this.convertValue(e.pageY - this.offset.top - this.currentHandle[0].offsetHeight/2, "y"),
- x: this.convertValue(e.pageX - this.offset.left - this.currentHandle[0].offsetWidth/2, "x")
- }, null, !this.options.distance);
- },
-
-
-
- createRange: function() {
- this.rangeElement = $('<div></div>')
- .addClass('ui-slider-range')
- .css({ position: 'absolute' })
- .appendTo(this.element);
- this.updateRange();
- },
- updateRange: function() {
- var prop = this.options.axis == "vertical" ? "top" : "left";
- var size = this.options.axis == "vertical" ? "height" : "width";
- this.rangeElement.css(prop, parseInt($(this.handle[0]).css(prop),10) + this.handleSize(0, this.options.axis == "vertical" ? "y" : "x")/2);
- this.rangeElement.css(size, parseInt($(this.handle[1]).css(prop),10) - parseInt($(this.handle[0]).css(prop),10));
- },
- getRange: function() {
- return this.rangeElement ? this.convertValue(parseInt(this.rangeElement.css(this.options.axis == "vertical" ? "height" : "width"),10), this.options.axis == "vertical" ? "y" : "x") : null;
- },
-
- handleIndex: function() {
- return this.handle.index(this.currentHandle[0]);
- },
- value: function(handle, axis) {
- if(this.handle.length == 1) this.currentHandle = this.handle;
- if(!axis) axis = this.options.axis == "vertical" ? "y" : "x";
-
- var curHandle = $(handle != undefined && handle !== null ? this.handle[handle] || handle : this.currentHandle);
-
- if(curHandle.data("mouse").sliderValue) {
- return parseInt(curHandle.data("mouse").sliderValue[axis],10);
- } else {
- return parseInt(((parseInt(curHandle.css(axis == "x" ? "left" : "top"),10) / (this.actualSize[axis == "x" ? "width" : "height"] - this.handleSize(handle,axis))) * this.options.realMax[axis]) + this.options.min[axis],10);
- }
-
- },
- convertValue: function(value,axis) {
- return this.options.min[axis] + (value / (this.actualSize[axis == "x" ? "width" : "height"] - this.handleSize(null,axis))) * this.options.realMax[axis];
- },
-
- translateValue: function(value,axis) {
- return ((value - this.options.min[axis]) / this.options.realMax[axis]) * (this.actualSize[axis == "x" ? "width" : "height"] - this.handleSize(null,axis));
- },
- translateRange: function(value,axis) {
- if (this.rangeElement) {
- if (this.currentHandle[0] == this.handle[0] && value >= this.translateValue(this.value(1),axis))
- value = this.translateValue(this.value(1,axis) - this.oneStep(axis), axis);
- if (this.currentHandle[0] == this.handle[1] && value <= this.translateValue(this.value(0),axis))
- value = this.translateValue(this.value(0,axis) + this.oneStep(axis), axis);
- }
- if (this.options.handles) {
- var handle = this.options.handles[this.handleIndex()];
- if (value < this.translateValue(handle.min,axis)) {
- value = this.translateValue(handle.min,axis);
- } else if (value > this.translateValue(handle.max,axis)) {
- value = this.translateValue(handle.max,axis);
- }
- }
- return value;
- },
- translateLimits: function(value,axis) {
- if (value >= this.actualSize[axis == "x" ? "width" : "height"] - this.handleSize(null,axis))
- value = this.actualSize[axis == "x" ? "width" : "height"] - this.handleSize(null,axis);
- if (value <= 0)
- value = 0;
- return value;
- },
- handleSize: function(handle,axis) {
- return $(handle != undefined && handle !== null ? this.handle[handle] : this.currentHandle)[0]["offset"+(axis == "x" ? "Width" : "Height")];
- },
- oneStep: function(axis) {
- return this.options.stepping[axis] || 1;
- },
-
-
- start: function(e, handle) {
-
- var o = this.options;
- if(o.disabled) return false;
-
- // Prepare the outer size
- this.actualSize = { width: this.element.outerWidth() , height: this.element.outerHeight() };
-
- // This is a especially ugly fix for strange blur events happening on mousemove events
- if (!this.currentHandle)
- this.focus(this.previousHandle, true);
-
- this.offset = this.element.offset();
-
- this.handleOffset = this.currentHandle.offset();
- this.clickOffset = { top: e.pageY - this.handleOffset.top, left: e.pageX - this.handleOffset.left };
-
- this.firstValue = this.value();
-
- this.propagate('start', e);
- this.drag(e, handle);
- return true;
-
- },
- stop: function(e) {
- this.propagate('stop', e);
- if (this.firstValue != this.value())
- this.propagate('change', e);
- // This is a especially ugly fix for strange blur events happening on mousemove events
- this.focus(this.currentHandle, true);
- return false;
- },
- drag: function(e, handle) {
-
- var o = this.options;
- var position = { top: e.pageY - this.offset.top - this.clickOffset.top, left: e.pageX - this.offset.left - this.clickOffset.left};
- if(!this.currentHandle) this.focus(this.previousHandle, true); //This is a especially ugly fix for strange blur events happening on mousemove events
-
- position.left = this.translateLimits(position.left, "x");
- position.top = this.translateLimits(position.top, "y");
-
- if (o.stepping.x) {
- var value = this.convertValue(position.left, "x");
- value = Math.round(value / o.stepping.x) * o.stepping.x;
- position.left = this.translateValue(value, "x");
- }
- if (o.stepping.y) {
- var value = this.convertValue(position.top, "y");
- value = Math.round(value / o.stepping.y) * o.stepping.y;
- position.top = this.translateValue(value, "y");
- }
-
- position.left = this.translateRange(position.left, "x");
- position.top = this.translateRange(position.top, "y");
-
- if(o.axis != "vertical") this.currentHandle.css({ left: position.left });
- if(o.axis != "horizontal") this.currentHandle.css({ top: position.top });
-
- //Store the slider's value
- this.currentHandle.data("mouse").sliderValue = {
- x: Math.round(this.convertValue(position.left, "x")) || 0,
- y: Math.round(this.convertValue(position.top, "y")) || 0
- };
-
- if (this.rangeElement)
- this.updateRange();
- this.propagate('slide', e);
- return false;
- },
-
- moveTo: function(value, handle, noPropagation) {
-
- var o = this.options;
-
- // Prepare the outer size
- this.actualSize = { width: this.element.outerWidth() , height: this.element.outerHeight() };
-
- //If no handle has been passed, no current handle is available and we have multiple handles, return false
- if (handle == undefined && !this.currentHandle && this.handle.length != 1)
- return false;
-
- //If only one handle is available, use it
- if (handle == undefined && !this.currentHandle)
- handle = 0;
-
- if (handle != undefined)
- this.currentHandle = this.previousHandle = $(this.handle[handle] || handle);
-
-
- if(value.x !== undefined && value.y !== undefined) {
- var x = value.x, y = value.y;
- } else {
- var x = value, y = value;
- }
-
- if(x !== undefined && x.constructor != Number) {
- var me = /^\-\=/.test(x), pe = /^\+\=/.test(x);
- if(me || pe) {
- x = this.value(null, "x") + parseInt(x.replace(me ? '=' : '+=', ''), 10);
- } else {
- x = isNaN(parseInt(x, 10)) ? undefined : parseInt(x, 10);
- }
- }
-
- if(y !== undefined && y.constructor != Number) {
- var me = /^\-\=/.test(y), pe = /^\+\=/.test(y);
- if(me || pe) {
- y = this.value(null, "y") + parseInt(y.replace(me ? '=' : '+=', ''), 10);
- } else {
- y = isNaN(parseInt(y, 10)) ? undefined : parseInt(y, 10);
- }
- }
-
- if(o.axis != "vertical" && x !== undefined) {
- if(o.stepping.x) x = Math.round(x / o.stepping.x) * o.stepping.x;
- x = this.translateValue(x, "x");
- x = this.translateLimits(x, "x");
- x = this.translateRange(x, "x");
- this.currentHandle.css({ left: x });
- }
-
- if(o.axis != "horizontal" && y !== undefined) {
- if(o.stepping.y) y = Math.round(y / o.stepping.y) * o.stepping.y;
- y = this.translateValue(y, "y");
- y = this.translateLimits(y, "y");
- y = this.translateRange(y, "y");
- this.currentHandle.css({ top: y });
- }
-
- if (this.rangeElement)
- this.updateRange();
-
- //Store the slider's value
- this.currentHandle.data("mouse").sliderValue = {
- x: Math.round(this.convertValue(x, "x")) || 0,
- y: Math.round(this.convertValue(y, "y")) || 0
- };
-
- if (!noPropagation) {
- this.propagate('start', null);
- this.propagate('stop', null);
- this.propagate('change', null);
- this.propagate("slide", null);
- }
- }
-});
-
-$.ui.slider.getter = "value";
-
-$.ui.slider.defaults = {
- handle: ".ui-slider-handle",
- distance: 1
-};
-
-})(jQuery);
diff --git a/ui/source/ui.sortable.js b/ui/source/ui.sortable.js
deleted file mode 100644
index a433805e8..000000000
--- a/ui/source/ui.sortable.js
+++ /dev/null
@@ -1,665 +0,0 @@
-/*
- * jQuery UI Sortable
- *
- * Copyright (c) 2008 Paul Bakaus
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.sortable.js 5433 2008-05-04 20:07:17Z joern.zaefferer $
- */
-(function($) {
-
-function contains(a, b) {
- var safari2 = $.browser.safari && $.browser.version < 522;
- if (a.contains && !safari2) {
- return a.contains(b);
- }
- if (a.compareDocumentPosition)
- return !!(a.compareDocumentPosition(b) & 16);
- while (b = b.parentNode)
- if (b == a) return true;
- return false;
-};
-
-$.widget("ui.sortable", $.extend($.ui.mouse, {
- init: function() {
-
- var o = this.options;
- this.containerCache = {};
- this.element.addClass("ui-sortable");
-
- //Get the items
- this.refresh();
-
- //Let's determine if the items are floating
- this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false;
-
- //Let's determine the parent's offset
- if(!(/(relative|absolute|fixed)/).test(this.element.css('position'))) this.element.css('position', 'relative');
- this.offset = this.element.offset();
-
- //Initialize mouse events for interaction
- this.mouseInit();
-
- },
- plugins: {},
- ui: function(inst) {
- return {
- helper: (inst || this)["helper"],
- placeholder: (inst || this)["placeholder"] || $([]),
- position: (inst || this)["position"],
- absolutePosition: (inst || this)["positionAbs"],
- options: this.options,
- element: this.element,
- item: (inst || this)["currentItem"],
- sender: inst ? inst.element : null
- };
- },
- propagate: function(n,e,inst, noPropagation) {
- $.ui.plugin.call(this, n, [e, this.ui(inst)]);
- if(!noPropagation) this.element.triggerHandler(n == "sort" ? n : "sort"+n, [e, this.ui(inst)], this.options[n]);
- },
- serialize: function(o) {
-
-
-
- var items = ($.isFunction(this.options.items) ? this.options.items.call(this.element) : $(this.options.items, this.element)).not('.ui-sortable-helper'); //Only the items of the sortable itself
- var str = []; o = o || {};
-
- items.each(function() {
- var res = ($(this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
- if(res) str.push((o.key || res[1])+'[]='+(o.key ? res[1] : res[2]));
- });
-
- return str.join('&');
-
- },
- toArray: function(attr) {
- var items = ($.isFunction(this.options.items) ? this.options.items.call(this.element) : $(this.options.items, this.element)).not('.ui-sortable-helper'); //Only the items of the sortable itself
- var ret = [];
-
- items.each(function() { ret.push($(this).attr(attr || '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;
-
- if(this.options.tolerance == "pointer" || (this.options.tolerance == "guess" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])) {
- return (y1 + this.offset.click.top > t && y1 + this.offset.click.top < b && x1 + this.offset.click.left > l && x1 + this.offset.click.left < r);
- } 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
-
- }
-
- },
- intersectsWithEdge: 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;
-
- if(this.options.tolerance == "pointer" || (this.options.tolerance == "guess" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])) {
-
- if(!(y1 + this.offset.click.top > t && y1 + this.offset.click.top < b && x1 + this.offset.click.left > l && x1 + this.offset.click.left < r)) return false;
-
- if(this.floating) {
- if(x1 + this.offset.click.left > l && x1 + this.offset.click.left < l + item.width/2) return 2;
- if(x1 + this.offset.click.left > l+item.width/2 && x1 + this.offset.click.left < r) return 1;
- } else {
- if(y1 + this.offset.click.top > t && y1 + this.offset.click.top < t + item.height/2) return 2;
- if(y1 + this.offset.click.top > t+item.height/2 && y1 + this.offset.click.top < b) return 1;
- }
-
- } else {
-
- if (!(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 )) return false; // Top Half
-
- if(this.floating) {
- if(x2 > l && x1 < l) return 2; //Crosses left edge
- if(x1 < r && x2 > r) return 1; //Crosses right edge
- } else {
- if(y2 > t && y1 < t) return 1; //Crosses top edge
- if(y1 < b && y2 > b) return 2; //Crosses bottom edge
- }
-
- }
-
- return false;
-
- },
- refresh: function() {
- this.refreshItems();
- this.refreshPositions();
- },
- refreshItems: function() {
-
- this.items = [];
- this.containers = [this];
- var items = this.items;
- var queries = [$.isFunction(this.options.items) ? this.options.items.call(this.element) : $(this.options.items, this.element)];
-
- if(this.options.connectWith) {
- for (var i = this.options.connectWith.length - 1; i >= 0; i--){
- var cur = $(this.options.connectWith[i]);
- for (var j = cur.length - 1; j >= 0; j--){
- var inst = $.data(cur[j], 'sortable');
- if(inst && !inst.options.disabled) {
- queries.push($.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element));
- this.containers.push(inst);
- }
- };
- };
- }
-
- for (var i = queries.length - 1; i >= 0; i--){
- queries[i].each(function() {
- $.data(this, 'sortable-item', true); // Data for target checking (mouse manager)
- items.push({
- item: $(this),
- width: 0, height: 0,
- left: 0, top: 0
- });
- });
- };
-
- },
- refreshPositions: function(fast) {
- for (var i = this.items.length - 1; i >= 0; i--){
- var t = this.items[i].item;
- if(!fast) this.items[i].width = (this.options.toleranceElement ? $(this.options.toleranceElement, t) : t).outerWidth();
- if(!fast) this.items[i].height = (this.options.toleranceElement ? $(this.options.toleranceElement, t) : t).outerHeight();
- var p = (this.options.toleranceElement ? $(this.options.toleranceElement, t) : t).offset();
- this.items[i].left = p.left;
- this.items[i].top = p.top;
- };
- 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();
- };
- },
- 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");
- },
- createPlaceholder: function(that) {
-
- var self = that || this, o = self.options;
-
- if(o.placeholder.constructor == String) {
- var className = o.placeholder;
- o.placeholder = {
- element: function() {
- return $('<div></div>').addClass(className)[0];
- },
- update: function(i, p) {
- p.css(i.offset()).css({ width: i.outerWidth(), height: i.outerHeight() });
- }
- };
- }
-
- self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)).appendTo('body').css({ position: 'absolute' });
- o.placeholder.update.call(self.element, self.currentItem, self.placeholder);
- },
- contactContainers: function(e) {
- for (var i = this.containers.length - 1; i >= 0; i--){
-
- if(this.intersectsWith(this.containers[i].containerCache)) {
- if(!this.containers[i].containerCache.over) {
-
-
- if(this.currentContainer != this.containers[i]) {
-
- //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[i].floating ? 'left' : 'top'];
- for (var j = this.items.length - 1; j >= 0; j--) {
- if(!contains(this.containers[i].element[0], this.items[j].item[0])) continue;
- var cur = this.items[j][this.containers[i].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
- continue;
-
- //We also need to exchange the placeholder
- if(this.placeholder) this.placeholder.remove();
- if(this.containers[i].options.placeholder) {
- this.containers[i].createPlaceholder(this);
- } else {
- this.placeholder = null;;
- }
-
-
- itemWithLeastDistance ? this.rearrange(e, itemWithLeastDistance) : this.rearrange(e, null, this.containers[i].element);
- this.propagate("change", e); //Call plugins and callbacks
- this.containers[i].propagate("change", e, this); //Call plugins and callbacks
- this.currentContainer = this.containers[i];
-
- }
-
- this.containers[i].propagate("over", e, this);
- this.containers[i].containerCache.over = 1;
- }
- } else {
- if(this.containers[i].containerCache.over) {
- this.containers[i].propagate("out", e, this);
- this.containers[i].containerCache.over = 0;
- }
- }
-
- };
- },
- mouseStart: function(e, overrideHandle, noActivation) {
-
- var o = this.options;
- this.currentContainer = this;
-
- if(this.options.disabled || this.options.type == 'static') return false;
-
- //Find out if the clicked node (or one of its parents) is a actual item in this.items
- var currentItem = null, nodes = $(e.target).parents().each(function() {
- if($.data(this, 'sortable-item')) {
- currentItem = $(this);
- return false;
- }
- });
- if($.data(e.target, 'sortable-item')) currentItem = $(e.target);
-
- if(!currentItem) return false;
- if(this.options.handle && !overrideHandle) {
- var validHandle = false;
- $(this.options.handle, currentItem).each(function() { if(this == e.target) validHandle = true; });
- if(!validHandle) return false;
- }
-
- this.currentItem = currentItem;
-
- this.refresh();
-
- //Create and append the visible helper
- this.helper = typeof o.helper == 'function' ? $(o.helper.apply(this.element[0], [e, this.currentItem])) : this.currentItem.clone();
- if(!this.helper.parents('body').length) this.helper.appendTo((o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)); //Add the helper to the DOM if that didn't happen already
- this.helper.css({ position: 'absolute', clear: 'both' }).addClass('ui-sortable-helper'); //Position it absolutely and add a helper class
-
- /*
- * - Position generation -
- * This block generates everything position related - it's the core of draggables.
- */
-
- this.margins = { //Cache the margins
- left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
- top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
- };
-
- this.offset = this.currentItem.offset(); //The element's absolute position on the page
- this.offset = { //Substract the margins from the element's absolute offset
- top: this.offset.top - this.margins.top,
- left: this.offset.left - this.margins.left
- };
-
- this.offset.click = { //Where the click happened, relative to the element
- left: e.pageX - this.offset.left,
- top: e.pageY - this.offset.top
- };
-
- this.offsetParent = this.helper.offsetParent(); var po = this.offsetParent.offset(); //Get the offsetParent and cache its position
-
- this.offset.parent = { //Store its position plus border
- top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
- left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
- };
-
- this.originalPosition = this.generatePosition(e); //Generate the original position
- this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() };//Cache the helper size
-
- if(o.cursorAt) {
- if(o.cursorAt.left != undefined) this.offset.click.left = o.cursorAt.left;
- if(o.cursorAt.right != undefined) this.offset.click.left = this.helperProportions.width - o.cursorAt.right;
- if(o.cursorAt.top != undefined) this.offset.click.top = o.cursorAt.top;
- if(o.cursorAt.bottom != undefined) this.offset.click.top = this.helperProportions.height - o.cursorAt.bottom;
- }
-
- this.domPosition = this.currentItem.prev()[0]; //Cache the former DOM position
-
- /*
- * - Position constraining -
- * Here we prepare position constraining like grid and containment.
- */
-
- if(o.containment) {
- if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
- if(o.containment == 'document') this.containment = [0,0,$(document).width(), ($(document).height() || document.body.parentNode.scrollHeight)];
- if(!(/^(document|window|parent)$/).test(o.containment)) {
- var ce = $(o.containment)[0];
- var co = $(o.containment).offset();
-
- this.containment = [
- co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) - this.offset.parent.left,
- co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) - this.offset.parent.top,
- co.left+Math.max(ce.scrollWidth,ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - this.offset.parent.left - this.helperProportions.width - this.margins.left - (parseInt(this.currentItem.css("marginRight"),10) || 0),
- co.top+Math.max(ce.scrollHeight,ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - this.offset.parent.top - this.helperProportions.height - this.margins.top - (parseInt(this.currentItem.css("marginBottom"),10) || 0)
- ];
- }
- }
-
- //If o.placeholder is used, create a new element at the given position with the class
- if(o.placeholder) this.createPlaceholder();
-
- //Call plugins and callbacks
- this.propagate("start", e);
- this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() };//Recache the helper size
-
- if(this.options.placeholder != 'clone') this.currentItem.css('visibility', 'hidden'); //Set the original element visibility to hidden to still fill out the white space
-
- if(!noActivation) {
- for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i].propagate("activate", e, this); } //Post 'activate' events to possible containers
- }
-
- //Prepare possible droppables
- if($.ui.ddmanager) $.ui.ddmanager.current = this;
- if ($.ui.ddmanager && !o.dropBehaviour) $.ui.ddmanager.prepareOffsets(this, e);
-
- this.dragging = true;
-
- this.mouseDrag(e); //Execute the drag once - this causes the helper not to be visible before getting its correct position
- return true;
-
-
- },
- convertPositionTo: function(d, pos) {
- if(!pos) pos = this.position;
- var mod = d == "absolute" ? 1 : -1;
- return {
- top: (
- pos.top // the calculated relative position
- + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border)
- - (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) * mod // The offsetParent's scroll position
- + this.margins.top * mod //Add the margin (you don't want the margin counting in intersection methods)
- ),
- left: (
- pos.left // the calculated relative position
- + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border)
- - (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft) * mod // The offsetParent's scroll position
- + this.margins.left * mod //Add the margin (you don't want the margin counting in intersection methods)
- )
- };
- },
- generatePosition: function(e) {
-
- var o = this.options;
- var position = {
- top: (
- e.pageY // The absolute mouse position
- - this.offset.click.top // Click offset (relative to the element)
- - this.offset.parent.top // The offsetParent's offset without borders (offset + border)
- + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) // The offsetParent's scroll position, not if the element is fixed
- ),
- left: (
- e.pageX // The absolute mouse position
- - this.offset.click.left // Click offset (relative to the element)
- - this.offset.parent.left // The offsetParent's offset without borders (offset + border)
- + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft) // The offsetParent's scroll position, not if the element is fixed
- )
- };
-
- if(!this.originalPosition) return position; //If we are not dragging yet, we won't check for options
-
- /*
- * - Position constraining -
- * Constrain the position to a mix of grid, containment.
- */
- if(this.containment) {
- if(position.left < this.containment[0]) position.left = this.containment[0];
- if(position.top < this.containment[1]) position.top = this.containment[1];
- if(position.left > this.containment[2]) position.left = this.containment[2];
- if(position.top > this.containment[3]) position.top = this.containment[3];
- }
-
- if(o.grid) {
- var top = this.originalPosition.top + Math.round((position.top - this.originalPosition.top) / o.grid[1]) * o.grid[1];
- position.top = this.containment ? (!(top < this.containment[1] || top > this.containment[3]) ? top : (!(top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
- var left = this.originalPosition.left + Math.round((position.left - this.originalPosition.left) / o.grid[0]) * o.grid[0];
- position.left = this.containment ? (!(left < this.containment[0] || left > this.containment[2]) ? left : (!(left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
- }
-
- return position;
- },
- mouseDrag: function(e) {
-
-
- //Compute the helpers position
- this.position = this.generatePosition(e);
- this.positionAbs = this.convertPositionTo("absolute");
-
- //Rearrange
- for (var i = this.items.length - 1; i >= 0; i--) {
- var intersection = this.intersectsWithEdge(this.items[i]);
- if(!intersection) continue;
-
- if(this.items[i].item[0] != this.currentItem[0] //cannot intersect with itself
- && this.currentItem[intersection == 1 ? "next" : "prev"]()[0] != this.items[i].item[0] //no useless actions that have been done before
- && !contains(this.currentItem[0], this.items[i].item[0]) //no action if the item moved is the parent of the item checked
- && (this.options.type == 'semi-dynamic' ? !contains(this.element[0], this.items[i].item[0]) : true)
- ) {
-
- this.direction = intersection == 1 ? "down" : "up";
- this.rearrange(e, this.items[i]);
- this.propagate("change", e); //Call plugins and callbacks
- break;
- }
- }
-
- //Post events to containers
- this.contactContainers(e);
-
- //Call plugins and callbacks
- this.propagate("sort", e);
-
- if(!this.options.axis || this.options.axis == "x") this.helper[0].style.left = this.position.left+'px';
- if(!this.options.axis || this.options.axis == "y") this.helper[0].style.top = this.position.top+'px';
-
- //Interconnect with droppables
- if($.ui.ddmanager) $.ui.ddmanager.drag(this, e);
-
- return false;
-
- },
- mouseStop: function(e, noPropagation) {
-
- //If we are using droppables, inform the manager about the drop
- if ($.ui.ddmanager && !this.options.dropBehaviour)
- $.ui.ddmanager.drop(this, e);
-
- if(this.options.revert) {
- var self = this;
- var cur = self.currentItem.offset();
-
- //Also animate the placeholder if we have one
- if(self.placeholder) self.placeholder.animate({ opacity: 'hide' }, (parseInt(this.options.revert, 10) || 500)-50);
-
- $(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.propagate("stop", e, null, noPropagation);
- self.clear(e);
- });
- } else {
- this.propagate("stop", e, null, noPropagation);
- this.clear(e, noPropagation);
- }
-
- return false;
-
- },
- clear: function(e, noPropagation) {
-
- if(this.domPosition != this.currentItem.prev().not(".ui-sortable-helper")[0]) this.propagate("update", e, null, noPropagation); //Trigger update callback if the DOM position has changed
- if(!contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element
- if(this.domPosition == this.currentItem.prev().not(".ui-sortable-helper")[0]) this.propagate("update", e, null, noPropagation); //Trigger update callback, if it wasn't triggered before, because that is definitely an update
- this.propagate("remove", e, null, noPropagation);
- for (var i = this.containers.length - 1; i >= 0; i--){
- if(contains(this.containers[i].element[0], this.currentItem[0])) {
- this.containers[i].propagate("update", e, this, noPropagation);
- this.containers[i].propagate("receive", e, this, noPropagation);
- }
- };
- };
-
- //Post events to containers
- for (var i = this.containers.length - 1; i >= 0; i--){
- this.containers[i].propagate("deactivate", e, this, noPropagation);
- if(this.containers[i].containerCache.over) {
- this.containers[i].propagate("out", e, this);
- this.containers[i].containerCache.over = 0;
- }
- }
-
- this.dragging = false;
- if(this.cancelHelperRemoval) return false;
- $(this.currentItem).css('visibility', '');
- if(this.placeholder) this.placeholder.remove();
- this.helper.remove();
-
- return true;
-
- },
- rearrange: function(e, i, a) {
- a ? a.append(this.currentItem) : i.item[this.direction == 'down' ? 'before' : 'after'](this.currentItem);
- this.refreshPositions(true); //Precompute after each DOM insertion, NOT on mousemove
- if(this.options.placeholder) this.options.placeholder.update.call(this.element, this.currentItem, this.placeholder);
- }
-}));
-
-$.extend($.ui.sortable, {
- getter: "serialize toArray",
- defaults: {
- tolerance: "guess",
- distance: 0,
- delay: 0,
- cancel: ":input,button",
- items: '> *',
- zIndex: 1000,
- dropOnEmpty: true,
- appendTo: "parent"
- }
-});
-
-/*
- * Sortable Extensions
- */
-
-$.ui.plugin.add("sortable", "cursor", {
- start: function(e, ui) {
- var t = $('body');
- if (t.css("cursor")) ui.options._cursor = t.css("cursor");
- t.css("cursor", ui.options.cursor);
- },
- stop: function(e, ui) {
- if (ui.options._cursor) $('body').css("cursor", ui.options._cursor);
- }
-});
-
-$.ui.plugin.add("sortable", "zIndex", {
- start: function(e, ui) {
- var t = ui.helper;
- if(t.css("zIndex")) ui.options._zIndex = t.css("zIndex");
- t.css('zIndex', ui.options.zIndex);
- },
- stop: function(e, ui) {
- if(ui.options._zIndex) $(ui.helper).css('zIndex', ui.options._zIndex);
- }
-});
-
-$.ui.plugin.add("sortable", "opacity", {
- start: function(e, ui) {
- var t = ui.helper;
- if(t.css("opacity")) ui.options._opacity = t.css("opacity");
- t.css('opacity', ui.options.opacity);
- },
- stop: function(e, ui) {
- if(ui.options._opacity) $(ui.helper).css('opacity', ui.options._opacity);
- }
-});
-
-$.ui.plugin.add("sortable", "scroll", {
- start: function(e, ui) {
- var o = ui.options;
- var i = $(this).data("sortable");
- o.scrollSensitivity = o.scrollSensitivity || 20;
- o.scrollSpeed = o.scrollSpeed || 20;
-
- i.overflowY = function(el) {
- do { if(/auto|scroll/.test(el.css('overflow')) || (/auto|scroll/).test(el.css('overflow-y'))) return el; el = el.parent(); } while (el[0].parentNode);
- return $(document);
- }(i.currentItem);
- i.overflowX = function(el) {
- do { if(/auto|scroll/.test(el.css('overflow')) || (/auto|scroll/).test(el.css('overflow-x'))) return el; el = el.parent(); } while (el[0].parentNode);
- return $(document);
- }(i.currentItem);
-
- if(i.overflowY[0] != document && i.overflowY[0].tagName != 'HTML') i.overflowYOffset = i.overflowY.offset();
- if(i.overflowX[0] != document && i.overflowX[0].tagName != 'HTML') i.overflowXOffset = i.overflowX.offset();
-
- },
- sort: function(e, ui) {
-
- var o = ui.options;
- var i = $(this).data("sortable");
-
- if(i.overflowY[0] != document && i.overflowY[0].tagName != 'HTML') {
- if((i.overflowYOffset.top + i.overflowY[0].offsetHeight) - e.pageY < o.scrollSensitivity)
- i.overflowY[0].scrollTop = i.overflowY[0].scrollTop + o.scrollSpeed;
- if(e.pageY - i.overflowYOffset.top < o.scrollSensitivity)
- i.overflowY[0].scrollTop = i.overflowY[0].scrollTop - o.scrollSpeed;
- } else {
- if(e.pageY - $(document).scrollTop() < o.scrollSensitivity)
- $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
- if($(window).height() - (e.pageY - $(document).scrollTop()) < o.scrollSensitivity)
- $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
- }
-
- if(i.overflowX[0] != document && i.overflowX[0].tagName != 'HTML') {
- if((i.overflowXOffset.left + i.overflowX[0].offsetWidth) - e.pageX < o.scrollSensitivity)
- i.overflowX[0].scrollLeft = i.overflowX[0].scrollLeft + o.scrollSpeed;
- if(e.pageX - i.overflowXOffset.left < o.scrollSensitivity)
- i.overflowX[0].scrollLeft = i.overflowX[0].scrollLeft - o.scrollSpeed;
- } else {
- if(e.pageX - $(document).scrollLeft() < o.scrollSensitivity)
- $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
- if($(window).width() - (e.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
- $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
- }
-
- }
-});
-
-})(jQuery);
diff --git a/ui/source/ui.tabs.js b/ui/source/ui.tabs.js
deleted file mode 100644
index 0f4ca1be3..000000000
--- a/ui/source/ui.tabs.js
+++ /dev/null
@@ -1,595 +0,0 @@
-/*
- * jQuery UI Tabs
- *
- * Copyright (c) 2007, 2008 Klaus Hartl (stilbuero.de)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- * ui.core.js
- *
- * Revision: $Id: ui.tabs.js 5641 2008-05-20 02:53:23Z scott.gonzalez $
- */
-(function($) {
-
-$.widget("ui.tabs", {
- init: function() {
- this.options.event += '.tabs'; // namespace event
-
- // create tabs
- this.tabify(true);
- },
- setData: function(key, value) {
- if ((/^selected/).test(key))
- this.select(value);
- else {
- this.options[key] = value;
- this.tabify();
- }
- },
- length: function() {
- return this.$tabs.length;
- },
- tabId: function(a) {
- return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '')
- || this.options.idPrefix + $.data(a);
- },
- ui: function(tab, panel) {
- return {
- instance: this,
- options: this.options,
- tab: tab,
- panel: panel
- };
- },
- tabify: function(init) {
-
- this.$lis = $('li:has(a[href])', this.element);
- this.$tabs = this.$lis.map(function() { return $('a', this)[0]; });
- this.$panels = $([]);
-
- var self = this, o = this.options;
-
- this.$tabs.each(function(i, a) {
- // inline tab
- if (a.hash && a.hash.replace('#', '')) // Safari 2 reports '#' for an empty hash
- self.$panels = self.$panels.add(a.hash);
- // remote tab
- else if ($(a).attr('href') != '#') { // prevent loading the page itself if href is just "#"
- $.data(a, 'href.tabs', a.href); // required for restore on destroy
- $.data(a, 'load.tabs', a.href); // mutable
- var id = self.tabId(a);
- a.href = '#' + id;
- var $panel = $('#' + id);
- if (!$panel.length) {
- $panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass)
- .insertAfter( self.$panels[i - 1] || self.element );
- $panel.data('destroy.tabs', true);
- }
- self.$panels = self.$panels.add( $panel );
- }
- // invalid tab href
- else
- o.disabled.push(i + 1);
- });
-
- if (init) {
-
- // attach necessary classes for styling if not present
- this.element.addClass(o.navClass);
- this.$panels.each(function() {
- var $this = $(this);
- $this.addClass(o.panelClass);
- });
-
- // 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.$tabs.each(function(i, a) {
- if (a.hash == location.hash) {
- o.selected = i;
- // prevent page scroll to fragment
- if ($.browser.msie || $.browser.opera) { // && !o.remote
- var $toShow = $(location.hash), toShowId = $toShow.attr('id');
- $toShow.attr('id', '');
- setTimeout(function() {
- $toShow.attr('id', toShowId); // restore id
- }, 500);
- }
- scrollTo(0, 0);
- return false; // break
- }
- });
- }
- else if (o.cookie) {
- var index = parseInt($.cookie('ui-tabs' + $.data(self.element)),10);
- if (index && self.$tabs[index])
- o.selected = index;
- }
- else if (self.$lis.filter('.' + o.selectedClass).length)
- o.selected = self.$lis.index( self.$lis.filter('.' + o.selectedClass)[0] );
- }
- o.selected = o.selected === null || o.selected !== undefined ? o.selected : 0; // first tab selected by default
-
- // 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('.' + o.disabledClass),
- 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(o.hideClass);
- this.$lis.removeClass(o.selectedClass);
- if (o.selected !== null) {
- this.$panels.eq(o.selected).show().removeClass(o.hideClass); // use show and remove class to show in any case no matter how it has been hidden before
- this.$lis.eq(o.selected).addClass(o.selectedClass);
-
- // seems to be expected behavior that the show callback is fired
- var onShow = function() {
- $(self.element).triggerHandler('tabsshow',
- [self.ui(self.$tabs[o.selected], self.$panels[o.selected])], o.show);
- };
-
- // load if remote tab
- if ($.data(this.$tabs[o.selected], 'load.tabs'))
- this.load(o.selected, onShow);
- // just trigger show event
- else
- onShow();
-
- }
-
- // clean up to avoid memory leaks in certain versions of IE 6
- $(window).bind('unload', function() {
- self.$tabs.unbind('.tabs');
- self.$lis = self.$tabs = self.$panels = null;
- });
-
- }
-
- // disable tabs
- for (var i = 0, li; li = this.$lis[i]; i++)
- $(li)[$.inArray(i, o.disabled) != -1 && !$(li).hasClass(o.selectedClass) ? 'addClass' : 'removeClass'](o.disabledClass);
-
- // reset cache if switching from cached to not cached
- if (o.cache === false)
- this.$tabs.removeData('cache.tabs');
-
- // set up animations
- var hideFx, showFx, baseFx = { 'min-width': 0, duration: 1 }, baseDuration = 'normal';
- if (o.fx && o.fx.constructor == Array)
- hideFx = o.fx[0] || baseFx, showFx = o.fx[1] || baseFx;
- else
- hideFx = showFx = o.fx || baseFx;
-
- // reset some styles to maintain print style sheets etc.
- var resetCSS = { display: '', overflow: '', height: '' };
- if (!$.browser.msie) // not in IE to prevent ClearType font issue
- resetCSS.opacity = '';
-
- // Hide a tab, animation prevents browser scrolling to fragment,
- // $show is optional.
- function hideTab(clicked, $hide, $show) {
- $hide.animate(hideFx, hideFx.duration || baseDuration, function() { //
- $hide.addClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.
- if ($.browser.msie && hideFx.opacity)
- $hide[0].style.filter = '';
- if ($show)
- showTab(clicked, $show, $hide);
- });
- }
-
- // Show a tab, animation prevents browser scrolling to fragment,
- // $hide is optional.
- function showTab(clicked, $show, $hide) {
- if (showFx === baseFx)
- $show.css('display', 'block'); // prevent occasionally occuring flicker in Firefox cause by gap between showing and hiding the tab panels
- $show.animate(showFx, showFx.duration || baseDuration, function() {
- $show.removeClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.
- if ($.browser.msie && showFx.opacity)
- $show[0].style.filter = '';
-
- // callback
- $(self.element).triggerHandler('tabsshow',
- [self.ui(clicked, $show[0])], o.show);
-
- });
- }
-
- // switch a tab
- function switchTab(clicked, $li, $hide, $show) {
- /*if (o.bookmarkable && trueClick) { // add to history only if true click occured, not a triggered click
- $.ajaxHistory.update(clicked.hash);
- }*/
- $li.addClass(o.selectedClass)
- .siblings().removeClass(o.selectedClass);
- hideTab(clicked, $hide, $show);
- }
-
- // attach tab event handler, unbind to avoid duplicates from former tabifying...
- this.$tabs.unbind('.tabs').bind(o.event, function() {
-
- //var trueClick = e.clientX; // add to history only if true click occured, not a triggered click
- var $li = $(this).parents('li:eq(0)'),
- $hide = self.$panels.filter(':visible'),
- $show = $(this.hash);
-
- // If tab is already selected and not unselectable 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(o.selectedClass) && !o.unselect)
- || $li.hasClass(o.disabledClass)
- || $(this).hasClass(o.loadingClass)
- || $(self.element).triggerHandler('tabsselect', [self.ui(this, $show[0])], o.select) === false
- ) {
- this.blur();
- return false;
- }
-
- self.options.selected = self.$tabs.index(this);
-
- // if tab may be closed
- if (o.unselect) {
- if ($li.hasClass(o.selectedClass)) {
- self.options.selected = null;
- $li.removeClass(o.selectedClass);
- self.$panels.stop();
- hideTab(this, $hide);
- this.blur();
- return false;
- } else if (!$hide.length) {
- self.$panels.stop();
- var a = this;
- self.load(self.$tabs.index(this), function() {
- $li.addClass(o.selectedClass).addClass(o.unselectClass);
- showTab(a, $show);
- });
- this.blur();
- return false;
- }
- }
-
- if (o.cookie)
- $.cookie('ui-tabs' + $.data(self.element), self.options.selected, o.cookie);
-
- // stop possibly running animations
- self.$panels.stop();
-
- // show new tab
- if ($show.length) {
-
- // prevent scrollbar scrolling to 0 and than back in IE7, happens only if bookmarking/history is enabled
- /*if ($.browser.msie && o.bookmarkable) {
- var showId = this.hash.replace('#', '');
- $show.attr('id', '');
- setTimeout(function() {
- $show.attr('id', showId); // restore id
- }, 0);
- }*/
-
- var a = this;
- self.load(self.$tabs.index(this), $hide.length ?
- function() {
- switchTab(a, $li, $hide, $show);
- } :
- function() {
- $li.addClass(o.selectedClass);
- showTab(a, $show);
- }
- );
-
- // Set scrollbar to saved position - need to use timeout with 0 to prevent browser scroll to target of hash
- /*var scrollX = window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft || 0;
- var scrollY = window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop || 0;
- setTimeout(function() {
- scrollTo(scrollX, scrollY);
- }, 0);*/
-
- } 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 in modern
- // browsers via CSS, also blur removes focus from address bar in Firefox
- // which can become a usability and annoying problem with tabsRotate.
- if ($.browser.msie)
- this.blur();
-
- //return o.bookmarkable && !!trueClick; // convert trueClick == undefined to Boolean required in IE
- return false;
-
- });
-
- // disable click if event is configured to something else
- if (!(/^click/).test(o.event))
- this.$tabs.bind('click.tabs', function() { return false; });
-
- },
- add: function(url, label, index) {
- if (index == undefined)
- index = this.$tabs.length; // append by default
-
- var o = this.options;
- var $li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label));
- $li.data('destroy.tabs', true);
-
- var id = url.indexOf('#') == 0 ? url.replace('#', '') : this.tabId( $('a:first-child', $li)[0] );
-
- // try to find an existing element before creating a new one
- var $panel = $('#' + id);
- if (!$panel.length) {
- $panel = $(o.panelTemplate).attr('id', id)
- .addClass(o.hideClass)
- .data('destroy.tabs', true);
- }
- $panel.addClass(o.panelClass);
- if (index >= this.$lis.length) {
- $li.appendTo(this.element);
- $panel.appendTo(this.element[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.$tabs.length == 1) {
- $li.addClass(o.selectedClass);
- $panel.removeClass(o.hideClass);
- var href = $.data(this.$tabs[0], 'load.tabs');
- if (href)
- this.load(index, href);
- }
-
- // callback
- this.element.triggerHandler('tabsadd',
- [this.ui(this.$tabs[index], this.$panels[index])], o.add
- );
- },
- remove: function(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(o.selectedClass) && this.$tabs.length > 1)
- this.select(index + (index + 1 < this.$tabs.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();
-
- // callback
- this.element.triggerHandler('tabsremove',
- [this.ui($li.find('a')[0], $panel[0])], o.remove
- );
- },
- enable: function(index) {
- var o = this.options;
- if ($.inArray(index, o.disabled) == -1)
- return;
-
- var $li = this.$lis.eq(index).removeClass(o.disabledClass);
- if ($.browser.safari) { // fix disappearing tab (that used opacity indicating disabling) after enabling in Safari 2...
- $li.css('display', 'inline-block');
- setTimeout(function() {
- $li.css('display', 'block');
- }, 0);
- }
-
- o.disabled = $.grep(o.disabled, function(n, i) { return n != index; });
-
- // callback
- this.element.triggerHandler('tabsenable',
- [this.ui(this.$tabs[index], this.$panels[index])], o.enable
- );
-
- },
- disable: function(index) {
- var self = this, o = this.options;
- if (index != o.selected) { // cannot disable already selected tab
- this.$lis.eq(index).addClass(o.disabledClass);
-
- o.disabled.push(index);
- o.disabled.sort();
-
- // callback
- this.element.triggerHandler('tabsdisable',
- [this.ui(this.$tabs[index], this.$panels[index])], o.disable
- );
- }
- },
- select: function(index) {
- if (typeof index == 'string')
- index = this.$tabs.index( this.$tabs.filter('[href$=' + index + ']')[0] );
- this.$tabs.eq(index).trigger(this.options.event);
- },
- load: function(index, callback) { // callback is for internal usage only
-
- var self = this, o = this.options, $a = this.$tabs.eq(index), a = $a[0],
- bypassCache = callback == undefined || callback === false, url = $a.data('load.tabs');
-
- callback = callback || function() {};
-
- // no remote or from cache - just finish with callback
- if (!url || !bypassCache && $.data(a, 'cache.tabs')) {
- callback();
- return;
- }
-
- // load remote from here on
-
- var inner = function(parent) {
- var $parent = $(parent), $inner = $parent.find('*:last');
- return $inner.length && $inner || $parent;
- };
- var cleanup = function() {
- self.$tabs.filter('.' + o.loadingClass).removeClass(o.loadingClass)
- .each(function() {
- if (o.spinner)
- inner(this).parent().html(inner(this).data('label.tabs'));
- });
- self.xhr = null;
- };
-
- if (o.spinner) {
- var label = inner(a).html();
- inner(a).wrapInner('<em></em>')
- .find('em').data('label.tabs', label).html(o.spinner);
- }
-
- var ajaxOptions = $.extend({}, o.ajaxOptions, {
- url: url,
- success: function(r, s) {
- $(a.hash).html(r);
- cleanup();
-
- if (o.cache)
- $.data(a, 'cache.tabs', true); // if loaded once do not load them again
-
- // callbacks
- $(self.element).triggerHandler('tabsload',
- [self.ui(self.$tabs[index], self.$panels[index])], o.load
- );
- o.ajaxOptions.success && o.ajaxOptions.success(r, s);
-
- // This callback is required because the switch has to take
- // place after loading has completed. Call last in order to
- // fire load before show callback...
- callback();
- }
- });
- if (this.xhr) {
- // terminate pending requests from other tabs and restore tab label
- this.xhr.abort();
- cleanup();
- }
- $a.addClass(o.loadingClass);
- setTimeout(function() { // timeout is again required in IE, "wait" for id being restored
- self.xhr = $.ajax(ajaxOptions);
- }, 0);
-
- },
- url: function(index, url) {
- this.$tabs.eq(index).removeData('cache.tabs').data('load.tabs', url);
- },
- destroy: function() {
- var o = this.options;
- this.element.unbind('.tabs')
- .removeClass(o.navClass).removeData('tabs');
- this.$tabs.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.add(this.$panels).each(function() {
- if ($.data(this, 'destroy.tabs'))
- $(this).remove();
- else
- $(this).removeClass([o.selectedClass, o.unselectClass,
- o.disabledClass, o.panelClass, o.hideClass].join(' '));
- });
- }
-});
-
-$.ui.tabs.defaults = {
- // basic setup
- unselect: false,
- event: 'click',
- disabled: [],
- cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
- // TODO history: false,
-
- // Ajax
- spinner: 'Loading&#8230;',
- cache: false,
- idPrefix: 'ui-tabs-',
- ajaxOptions: {},
-
- // animations
- fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-
- // templates
- tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>',
- panelTemplate: '<div></div>',
-
- // CSS classes
- navClass: 'ui-tabs-nav',
- selectedClass: 'ui-tabs-selected',
- unselectClass: 'ui-tabs-unselect',
- disabledClass: 'ui-tabs-disabled',
- panelClass: 'ui-tabs-panel',
- hideClass: 'ui-tabs-hide',
- loadingClass: 'ui-tabs-loading'
-};
-
-$.ui.tabs.getter = "length";
-
-/*
- * Tabs Extensions
- */
-
-/*
- * Rotate
- */
-$.extend($.ui.tabs.prototype, {
- rotation: null,
- rotate: function(ms, continuing) {
-
- continuing = continuing || false;
-
- var self = this, t = this.options.selected;
-
- function start() {
- self.rotation = setInterval(function() {
- t = ++t < self.$tabs.length ? t : 0;
- self.select(t);
- }, ms);
- }
-
- function stop(e) {
- if (!e || e.clientX) { // only in case of a true click
- clearInterval(self.rotation);
- }
- }
-
- // start interval
- if (ms) {
- start();
- if (!continuing)
- this.$tabs.bind(this.options.event, stop);
- else
- this.$tabs.bind(this.options.event, function() {
- stop();
- t = self.options.selected;
- start();
- });
- }
- // stop interval
- else {
- stop();
- this.$tabs.unbind(this.options.event, stop);
- }
- }
-});
-
-})(jQuery);
diff --git a/ui/tests/accordion.html b/ui/tests/accordion.html
deleted file mode 100644
index 66913ba2b..000000000
--- a/ui/tests/accordion.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>jQuery UI Accordion Test Suite</title>
-
- <link rel="stylesheet" href="../../qunit/testsuite.css" type="text/css" media="screen">
- <script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
-
- <script type="text/javascript" src="../source/ui.core.js"></script>
- <script type="text/javascript" src="../source/ui.accordion.js"></script>
-
- <script type="text/javascript" src="../../qunit/testrunner.js"></script>
-
- <script type="text/javascript" src="accordion.js"></script>
- <style type="text/css">
- .xerror, .error { display: none }
- </style>
-
-</head>
-<body class="flora">
- <h1>jQuery UI Accordion Test Suite</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <ol id="tests"></ol>
-
-<div id="main" style="position:absolute;top:-2000000px;">
-
- <fieldset>
- <legend>Standard, container is a div, header is h3 and content p</legend>
-
- <div id="list1">
- <a>There is one obvious advantage:</a>
- <div>
- <p>
- You've seen it coming!<br/>
- Buy now and get nothing for free!<br/>
- Well, at least no free beer. Perhaps a bear, if you can afford it.
- </p>
- </div>
- <a>Now that you've got...</a>
- <div>
- <p>
- your bear, you have to admit it!<br/>
- No, we aren't selling bears.
- </p>
- <p>
- We could talk about renting one.
- </p>
- </div>
- <a>Rent one bear, ...</a>
- <div>
- <p>
- get two for three beer.
- </p>
- <p>
- And now, for something completely different.
- </p>
- </div>
- </div>
-
- </fieldset>
-
- <fieldset>
- <legend>Navigation - Unordered List with anchors and nested lists.</legend>
- <p>The first item is cloned to allow the user to select it. The
- active element is choosen based on location.hash: Open Drums and click
- the first item ('Drums'), then reload the page.</p>
-
- <ul id="navigation">
- <li>
- <a class="head" href="?p=1.1.1">Guitar</a>
- <ul>
- <li><a href="?p=1.1.1.1">Electric</a></li>
- <li><a href="?p=1.1.1.2">Acoustic</a></li>
- <li><a href="?p=1.1.1.3">Amps</a></li>
- <li><a href="?p=1.1.1.4">Effects</a></li>
- <li><a href="?p=1.1.1.5">Accessories</a></li>
- </ul>
- </li>
- <li>
- <a class="head" href="?p=1.1.2">Bass</a>
- <ul>
- <li><a href="?p=1.1.2.1">Electric</a></li>
- <li><a href="?p=1.1.2.2">Acoustic</a></li>
- <li><a href="?p=1.1.2.3">Amps</a></li>
- <li><a href="?p=1.1.2.4">Effects</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- </ul>
- </li>
- <li>
- <a class="head" href="?p=1.1.3">Drums</a>
- <ul>
- <li><a href="?p=1.1.3.2">Acoustic Drums</a></li>
- <li><a href="?p=1.1.3.3">Electronic Drums</a></li>
- <li><a href="?p=1.1.3.6">Accessories</a></li>
- </ul>
- </li>
- </ul>
-
- </fieldset>
-
- <fieldset>
- <legend>With options, container is a definition list, header dt, content dd</legend>
-
- <dl id="list2">
- <dt class="red">Red</dt>
- <dd>
- Fancy stuff about red thingies.
- </dd>
- <dt class="green selected">Green</dt>
- <dd>
- Green! Green! Green!
- </dd>
- <dt class="blue">Blue</dt>
- <dd>
- Cool kids are blue.
- </dd>
- </dl>
-
- </fieldset>
-
- <fieldset>
- <legend>Divitus structure, div container, div header (class title), div
- content, no active on startup and can be completely closed</legend>
-
- <div id="list3">
- <div>
- <div class="title">Tennis</div>
- <div>
- One ball, two players. Lots of fun.
- </div>
- </div>
- <div>
- <div class="title">Soccer</div>
- <div>
- One ball, 22 players. Lots of fun.
- </div>
- </div>
- <div>
- <div class="title">Baseball</div>
- <div>
- Well, one ball, some guys running around, some guys hitting others with a stick.<br/>
- Sounds like fun, doesn't it?
- </div>
- <div>
- Well, apart from the running part.
- </div>
- </div>
- </div>
-
- </fieldset>
-
- <div id="switch">
- <select>
- <option>Switch to...</option>
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- </select>
- <button id="close">Close all</button>
- Activate via selector, eg. ':first' or 'a:first': <input id="switch2" />
- </div>
-
- <div id="log"><div><strong>Log of the 2nd accordion</strong></div></div>
-</div>
- </body>
-</html> \ No newline at end of file
diff --git a/ui/tests/accordion.js b/ui/tests/accordion.js
deleted file mode 100644
index c0e3edfc5..000000000
--- a/ui/tests/accordion.js
+++ /dev/null
@@ -1,78 +0,0 @@
-module("accordion");
-
-jQuery.ui.accordion.defaults.animated = false;
-
-function state(accordion) {
- var args = $.makeArray(arguments).slice(1);
- $.each(args, function(i, n) {
- equals(n, accordion.find("div").eq(i).is(":visible"));
- });
-}
-
-test("basics", function() {
- state($('#list1').accordion(), 1, 0, 0);
-});
-
-test("autoheight", function() {
- $('#navigation').accordion({ header: '.head', autoHeight: false });
- equals( 90, $('#navigation ul:first').height() );
- equals( 126, $('#navigation ul:eq(1)').height() );
- equals( 54, $('#navigation ul:last').height() );
- $('#navigation').accordion("destroy").accordion({ header: '.head', autoHeight: true });
- equals( 126, $('#navigation ul:first').height() );
- equals( 126, $('#navigation ul:eq(1)').height() );
- equals( 126, $('#navigation ul:last').height() );
-});
-
-test("activate, numeric", function() {
- var ac = $('#list1').accordion({ active: 1 });
- state(ac, 0, 1, 0);
- ac.accordion("activate", 2);
- state(ac, 0, 0, 1);
- ac.accordion("activate", 0);
- state(ac, 1, 0, 0);
- ac.accordion("activate", 1);
- state(ac, 0, 1, 0);
- ac.accordion("activate", 2);
- state(ac, 0, 0, 1);
- ac.accordion("activate", -1);
- state(ac, 0, 0, 1);
-});
-
-test("activate, boolean and numeric, alwaysOpen:false", function() {
- var ac = $('#list1').accordion({alwaysOpen: false}).accordion("activate", 2);
- state(ac, 0, 0, 1);
- ok("x", "----");
- ac.accordion("activate", 0);
- state(ac, 1, 0, 0);
- ok("x", "----");
- ac.accordion("activate", -1);
- state(ac, 0, 0, 0);
-});
-
-test("activate, boolean, alwaysOpen:true", function() {
- var ac = $('#list1').accordion().accordion("activate", 2);
- state(ac, 0, 0, 1);
- ac.accordion("activate", -1);
- state(ac, 0, 0, 1);
-});
-
-test("activate, string expression", function() {
- var ac = $('#list1').accordion({ active: ":last" });
- state(ac, 0, 0, 1);
- ac.accordion("activate", ":first");
- state(ac, 1, 0, 0);
- ac.accordion("activate", ":eq(1)");
- state(ac, 0, 1, 0);
- ac.accordion("activate", ":last");
- state(ac, 0, 0, 1);
-});
-
-test("activate, jQuery or DOM element", function() {
- var ac = $('#list1').accordion({ active: $("#list1 a:last") });
- state(ac, 0, 0, 1);
- ac.accordion("activate", $("#list1 a:first"));
- state(ac, 1, 0, 0);
- ac.accordion("activate", $("#list1 a")[1]);
- state(ac, 0, 1, 0);
-}); \ No newline at end of file
diff --git a/ui/tests/all.html b/ui/tests/all.html
deleted file mode 100644
index 82000437d..000000000
--- a/ui/tests/all.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>jQuery UI All Tests</title>
- <link rel="stylesheet" href="../../qunit/testsuite.css" type="text/css" media="screen">
- <script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
-
- <script type="text/javascript" src="../source/ui.core.js"></script>
- <script type="text/javascript" src="../source/ui.accordion.js"></script>
- <script type="text/javascript" src="../source/ui.slider.js"></script>
-
- <script type="text/javascript" src="../../qunit/testrunner.js"></script>
-
- <script type="text/javascript" src="accordion.js"></script>
- <script type="text/javascript" src="slider.js"></script>
- <style type="text/css">
- .xerror, .error { display: none }
- </style>
-
-</head>
-<body class="flora">
- <h1>jQuery UI All Tests</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <h4>Run individual testsuites or doubleclick a test below</h4>
- <ul>
- <li><a href="accordion.html">Accordion</a></li>
- <li><a href="slider.html">Slider</a></li>
- </ul>
-
- <ol id="tests"></ol>
-
-<div id="main" style="position:absolute;top:-2000000px;">
-
- <div id='slider1'></div>
- <div id='slider3' style="position: relative; margin: 40px; width: 217px; height: 28px; background: url(http://developer.yahoo.com/yui/examples/slider/assets/bg-fader.gif) no-repeat scroll 5px 0px;">
- <div class='ui-slider-handle' style='position: absolute; height: 21px; left: 0px; bottom: 0px; width: 17px; background-image: url(http://developer.yahoo.com/yui/examples/slider/assets/thumb-n.gif);'></div>
- </div>
-
- <fieldset>
- <legend>Standard, container is a div, header is h3 and content p</legend>
-
- <div id="list1">
- <a>There is one obvious advantage:</a>
- <div>
- <p>
- You've seen it coming!<br/>
- Buy now and get nothing for free!<br/>
- Well, at least no free beer. Perhaps a bear, if you can afford it.
- </p>
- </div>
- <a>Now that you've got...</a>
- <div>
- <p>
- your bear, you have to admit it!<br/>
- No, we aren't selling bears.
- </p>
- <p>
- We could talk about renting one.
- </p>
- </div>
- <a>Rent one bear, ...</a>
- <div>
- <p>
- get two for three beer.
- </p>
- <p>
- And now, for something completely different.
- </p>
- </div>
- </div>
-
- </fieldset>
-
- <fieldset>
- <legend>Navigation - Unordered List with anchors and nested lists.</legend>
- <p>The first item is cloned to allow the user to select it. The
- active element is choosen based on location.hash: Open Drums and click
- the first item ('Drums'), then reload the page.</p>
-
- <ul id="navigation">
- <li>
- <a class="head" href="?p=1.1.1">Guitar</a>
- <ul>
- <li><a href="?p=1.1.1.1">Electric</a></li>
- <li><a href="?p=1.1.1.2">Acoustic</a></li>
- <li><a href="?p=1.1.1.3">Amps</a></li>
- <li><a href="?p=1.1.1.4">Effects</a></li>
- <li><a href="?p=1.1.1.5">Accessories</a></li>
- </ul>
- </li>
- <li>
- <a class="head" href="?p=1.1.2">Bass</a>
- <ul>
- <li><a href="?p=1.1.2.1">Electric</a></li>
- <li><a href="?p=1.1.2.2">Acoustic</a></li>
- <li><a href="?p=1.1.2.3">Amps</a></li>
- <li><a href="?p=1.1.2.4">Effects</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- <li><a href="?p=1.1.2.5">Accessories</a></li>
- </ul>
- </li>
- <li>
- <a class="head" href="?p=1.1.3">Drums</a>
- <ul>
- <li><a href="?p=1.1.3.2">Acoustic Drums</a></li>
- <li><a href="?p=1.1.3.3">Electronic Drums</a></li>
- <li><a href="?p=1.1.3.6">Accessories</a></li>
- </ul>
- </li>
- </ul>
-
- </fieldset>
-
- <fieldset>
- <legend>With options, container is a definition list, header dt, content dd</legend>
-
- <dl id="list2">
- <dt class="red">Red</dt>
- <dd>
- Fancy stuff about red thingies.
- </dd>
- <dt class="green selected">Green</dt>
- <dd>
- Green! Green! Green!
- </dd>
- <dt class="blue">Blue</dt>
- <dd>
- Cool kids are blue.
- </dd>
- </dl>
-
- </fieldset>
-
- <fieldset>
- <legend>Divitus structure, div container, div header (class title), div
- content, no active on startup and can be completely closed</legend>
-
- <div id="list3">
- <div>
- <div class="title">Tennis</div>
- <div>
- One ball, two players. Lots of fun.
- </div>
- </div>
- <div>
- <div class="title">Soccer</div>
- <div>
- One ball, 22 players. Lots of fun.
- </div>
- </div>
- <div>
- <div class="title">Baseball</div>
- <div>
- Well, one ball, some guys running around, some guys hitting others with a stick.<br/>
- Sounds like fun, doesn't it?
- </div>
- <div>
- Well, apart from the running part.
- </div>
- </div>
- </div>
-
- </fieldset>
-
- <div id="switch">
- <select>
- <option>Switch to...</option>
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- </select>
- <button id="close">Close all</button>
- Activate via selector, eg. ':first' or 'a:first': <input id="switch2" />
- </div>
-
- <div id="log"><div><strong>Log of the 2nd accordion</strong></div></div>
-</div>
- </body>
-</html> \ No newline at end of file
diff --git a/ui/tests/autodrag.html b/ui/tests/autodrag.html
deleted file mode 100644
index acc17fb4c..000000000
--- a/ui/tests/autodrag.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <title>jQuery UI - Automated Tests</title>
- <script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
- <script type="text/javascript" src="../../ui/source/ui.core.js"></script>
- <script type="text/javascript" src="../../ui/source/ui.draggable.js"></script>
- <script type="text/javascript" src="../../ui/source/ui.selectable.js"></script>
-
- <script type="text/javascript" src="jquery.simulate.js"></script>
- <script type="text/javascript" src="ui.testmouse.js"></script>
-
-<style type="text/css">
-
-html, body { height: 100%; }
-#main { height: 100%; }
-
-#foo { position: relative; margin: 10px; padding: 10px; border: 3px solid gray; width: 200px; height: 200px; background: #eef; text-align: center; }
-#foo * { margin: 4px; }
-.ui-draggable .msg-missing-class { display: none !important; background: red; color: white; font-weight: bold; }
-.ui-draggable .msg-enabled { display: block; }
-.ui-draggable .msg-disabled { display: none; }
-.ui-draggable-disabled .msg-enabled { display: none !important; }
-.ui-draggable-disabled .msg-disabled { display: block !important; }
-.ui-selectable .msg-missing-class { display: none !important; background: red; color: white; font-weight: bold; }
-.ui-selectable .msg-enabled { display: block; }
-.ui-selectable .msg-disabled { display: none; }
-.ui-selectable-disabled .msg-enabled { display: none !important; }
-.ui-selectable-disabled .msg-disabled { display: block !important; }
-//.ui-selectee { border: 1px solid white; }
-.ui-selecting { background: Highlight; color: HighlightText; outline: 1px dotted white; }
-.ui-selected { background: Highlight; color: HighlightText; outline: 1px dotted black; }
-
-</style>
-
-<script type="text/javascript">
-$(function() {
-
- var speed = "fast";
-
- var queue;
- var start = function() {
- queue = tests.slice().reverse(); // clone
- $("#status").text("Running...");
- nextTest();
- }
- var stop = function() {
- $("#status").text("Ready");
- teardown();
- }
-
- var tests = [];
- var nextTest = function() {
- if (queue.length) {
- var nTest = queue.pop();
- teardown(function() {
- setupAndRun(nTest);
- });
- } else {
- stop();
- }
- }
-
- var num = 0;
-
- var addTest = function(fn) {
- num += 1;
- tests.push({
- num: num,
- fn: fn
- });
- }
-
- var setupAndRun = function(nTest) {
- $('#testnum').text(nTest.num);
- $('#sandbox').hide()
- .append('<ul id="foo">' +
- '<li class="msg-missing-class">THIS TEXT SHOULD NOT BE VISIBLE</li>' +
- '<li class="msg-enabled">enabled</li>' +
- '<li class="msg-disabled">disabled</li>' +
- '<li>Item 2</li>' +
- '<li>Item 3</li>' +
- '<li>Item 4</li>' +
- '<li>Item 5</li>' +
- '<li>Item 6</li>' +
- '<li>Item 7</li>' +
- '<li>Item 8</li>' +
- '</ul>')
- $('#foo').testMouse({
- speed: speed,
- complete: nextTest
- });
- $('#sandbox').show();
- nTest.fn.apply(nTest.fn);
- }
-
- var teardown = function(fn) {
- $('#sandbox').hide();
- $('#foo').remove();
- if ($.isFunction(fn)) fn.apply();
- }
- var plugin = "draggable";
- //plugin = "selectable"
- var testFn = "testMouse";
- var testArgs = ["drag", 40, 50];
- //1
- addTest(function() { $("#foo")[plugin]()[testFn].apply($("#foo"), testArgs); });
- //2
- addTest(function() { $("#foo")[plugin]({ disabled: true })[testFn].apply($("#foo"), testArgs); });
- addTest(function() { $("#foo")[plugin]({ disabled: false })[testFn].apply($("#foo"), testArgs); });
- //4
- addTest(function() { $("#foo")[plugin]()[plugin]('disable')[testFn].apply($("#foo"), testArgs); });
- addTest(function() { $("#foo")[plugin]()[plugin]('enable')[testFn].apply($("#foo"), testArgs); });
- //6
- addTest(function() { $("#foo")[plugin]()[plugin]('enable')[plugin]('disable')[testFn].apply($("#foo"), testArgs); });
- addTest(function() { $("#foo")[plugin]()[plugin]('disable')[plugin]('enable')[testFn].apply($("#foo"), testArgs); });
- //8
- addTest(function() { $("#foo")[plugin]({ disabled: false })[plugin]('disable')[testFn].apply($("#foo"), testArgs); });
- addTest(function() { $("#foo")[plugin]({ disabled: true })[plugin]('enable')[testFn].apply($("#foo"), testArgs); });
- //10
- addTest(function() { $("#foo")[plugin]({ disabled: false }).data('disabled.' + plugin, true)[testFn].apply($("#foo"), testArgs); });
- addTest(function() { $("#foo")[plugin]({ disabled: true }).data('disabled.' + plugin, false)[testFn].apply($("#foo"), testArgs); });
-
- $('#begin').click(function() {
- start();
- });
-
-});
-</script>
-
-</head>
-<body>
-
-<div id="main">
-
- <h1>jQuery UI - Automated Tests</h1>
-
- <div>
- Status: <span id="status">Ready</span>
- </div>
-
- <div>
- Test: <span id="testnum"></span>
- </div>
-
- <div style="height: 3em;"><button id="begin">Run Test</button></div>
-
- <div id="sandbox">
-
- </div>
-
-</div>
-
-</body>
-</html>
diff --git a/ui/tests/cursors/linux/auto.png b/ui/tests/cursors/linux/auto.png
deleted file mode 100644
index 03ac2f281..000000000
--- a/ui/tests/cursors/linux/auto.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/crosshair.png b/ui/tests/cursors/linux/crosshair.png
deleted file mode 100644
index 30904f933..000000000
--- a/ui/tests/cursors/linux/crosshair.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/default.png b/ui/tests/cursors/linux/default.png
deleted file mode 100644
index 03ac2f281..000000000
--- a/ui/tests/cursors/linux/default.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/e-resize.png b/ui/tests/cursors/linux/e-resize.png
deleted file mode 100644
index b4c40ff17..000000000
--- a/ui/tests/cursors/linux/e-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/help.png b/ui/tests/cursors/linux/help.png
deleted file mode 100644
index a6b5836d6..000000000
--- a/ui/tests/cursors/linux/help.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/move.png b/ui/tests/cursors/linux/move.png
deleted file mode 100644
index 39ae04520..000000000
--- a/ui/tests/cursors/linux/move.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/n-resize.png b/ui/tests/cursors/linux/n-resize.png
deleted file mode 100644
index afef5b438..000000000
--- a/ui/tests/cursors/linux/n-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/ne-resize.png b/ui/tests/cursors/linux/ne-resize.png
deleted file mode 100644
index 8c5e970e1..000000000
--- a/ui/tests/cursors/linux/ne-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/none.cur b/ui/tests/cursors/linux/none.cur
deleted file mode 100644
index 4f7970a9f..000000000
--- a/ui/tests/cursors/linux/none.cur
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/none.png b/ui/tests/cursors/linux/none.png
deleted file mode 100644
index 3b34811c5..000000000
--- a/ui/tests/cursors/linux/none.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/nw-resize.png b/ui/tests/cursors/linux/nw-resize.png
deleted file mode 100644
index 7c17be53e..000000000
--- a/ui/tests/cursors/linux/nw-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/pointer.png b/ui/tests/cursors/linux/pointer.png
deleted file mode 100644
index b39fcef8f..000000000
--- a/ui/tests/cursors/linux/pointer.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/s-resize.png b/ui/tests/cursors/linux/s-resize.png
deleted file mode 100644
index afef5b438..000000000
--- a/ui/tests/cursors/linux/s-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/se-resize.png b/ui/tests/cursors/linux/se-resize.png
deleted file mode 100644
index 7c17be53e..000000000
--- a/ui/tests/cursors/linux/se-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/sw-resize.png b/ui/tests/cursors/linux/sw-resize.png
deleted file mode 100644
index 8c5e970e1..000000000
--- a/ui/tests/cursors/linux/sw-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/text.png b/ui/tests/cursors/linux/text.png
deleted file mode 100644
index 85a54fcb7..000000000
--- a/ui/tests/cursors/linux/text.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/linux/w-resize.png b/ui/tests/cursors/linux/w-resize.png
deleted file mode 100644
index b4c40ff17..000000000
--- a/ui/tests/cursors/linux/w-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/auto.png b/ui/tests/cursors/mac/auto.png
deleted file mode 100644
index 65b21e435..000000000
--- a/ui/tests/cursors/mac/auto.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/crosshair.png b/ui/tests/cursors/mac/crosshair.png
deleted file mode 100644
index b4f165b6a..000000000
--- a/ui/tests/cursors/mac/crosshair.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/default.png b/ui/tests/cursors/mac/default.png
deleted file mode 100644
index 65b21e435..000000000
--- a/ui/tests/cursors/mac/default.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/e-resize.png b/ui/tests/cursors/mac/e-resize.png
deleted file mode 100644
index 583ce1862..000000000
--- a/ui/tests/cursors/mac/e-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/help.png b/ui/tests/cursors/mac/help.png
deleted file mode 100644
index 5e8ee5870..000000000
--- a/ui/tests/cursors/mac/help.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/move.png b/ui/tests/cursors/mac/move.png
deleted file mode 100644
index cf7608539..000000000
--- a/ui/tests/cursors/mac/move.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/n-resize.png b/ui/tests/cursors/mac/n-resize.png
deleted file mode 100644
index 1242980a4..000000000
--- a/ui/tests/cursors/mac/n-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/ne-resize.png b/ui/tests/cursors/mac/ne-resize.png
deleted file mode 100644
index da3f6d05f..000000000
--- a/ui/tests/cursors/mac/ne-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/none.cur b/ui/tests/cursors/mac/none.cur
deleted file mode 100644
index 4f7970a9f..000000000
--- a/ui/tests/cursors/mac/none.cur
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/none.png b/ui/tests/cursors/mac/none.png
deleted file mode 100644
index 3b34811c5..000000000
--- a/ui/tests/cursors/mac/none.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/nw-resize.png b/ui/tests/cursors/mac/nw-resize.png
deleted file mode 100644
index b6c5e3956..000000000
--- a/ui/tests/cursors/mac/nw-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/pointer.png b/ui/tests/cursors/mac/pointer.png
deleted file mode 100644
index 45fbd2b77..000000000
--- a/ui/tests/cursors/mac/pointer.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/s-resize.png b/ui/tests/cursors/mac/s-resize.png
deleted file mode 100644
index 1242980a4..000000000
--- a/ui/tests/cursors/mac/s-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/se-resize.png b/ui/tests/cursors/mac/se-resize.png
deleted file mode 100644
index b6c5e3956..000000000
--- a/ui/tests/cursors/mac/se-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/sw-resize.png b/ui/tests/cursors/mac/sw-resize.png
deleted file mode 100644
index da3f6d05f..000000000
--- a/ui/tests/cursors/mac/sw-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/text.png b/ui/tests/cursors/mac/text.png
deleted file mode 100644
index 2257903e9..000000000
--- a/ui/tests/cursors/mac/text.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/mac/w-resize.png b/ui/tests/cursors/mac/w-resize.png
deleted file mode 100644
index 583ce1862..000000000
--- a/ui/tests/cursors/mac/w-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/auto.png b/ui/tests/cursors/win/auto.png
deleted file mode 100644
index b2c5c858c..000000000
--- a/ui/tests/cursors/win/auto.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/crosshair.png b/ui/tests/cursors/win/crosshair.png
deleted file mode 100644
index 02c99b7fd..000000000
--- a/ui/tests/cursors/win/crosshair.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/default.png b/ui/tests/cursors/win/default.png
deleted file mode 100644
index b2c5c858c..000000000
--- a/ui/tests/cursors/win/default.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/e-resize.png b/ui/tests/cursors/win/e-resize.png
deleted file mode 100644
index 056eb699f..000000000
--- a/ui/tests/cursors/win/e-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/help.png b/ui/tests/cursors/win/help.png
deleted file mode 100644
index b8034bb7b..000000000
--- a/ui/tests/cursors/win/help.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/move.png b/ui/tests/cursors/win/move.png
deleted file mode 100644
index 627e79937..000000000
--- a/ui/tests/cursors/win/move.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/n-resize.png b/ui/tests/cursors/win/n-resize.png
deleted file mode 100644
index d06244cbb..000000000
--- a/ui/tests/cursors/win/n-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/ne-resize.png b/ui/tests/cursors/win/ne-resize.png
deleted file mode 100644
index 79f6c3ae3..000000000
--- a/ui/tests/cursors/win/ne-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/none.cur b/ui/tests/cursors/win/none.cur
deleted file mode 100644
index 4f7970a9f..000000000
--- a/ui/tests/cursors/win/none.cur
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/none.png b/ui/tests/cursors/win/none.png
deleted file mode 100644
index 1764445c9..000000000
--- a/ui/tests/cursors/win/none.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/nw-resize.png b/ui/tests/cursors/win/nw-resize.png
deleted file mode 100644
index af48a12d2..000000000
--- a/ui/tests/cursors/win/nw-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/pointer.png b/ui/tests/cursors/win/pointer.png
deleted file mode 100644
index 7d07182a9..000000000
--- a/ui/tests/cursors/win/pointer.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/s-resize.png b/ui/tests/cursors/win/s-resize.png
deleted file mode 100644
index d06244cbb..000000000
--- a/ui/tests/cursors/win/s-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/se-resize.png b/ui/tests/cursors/win/se-resize.png
deleted file mode 100644
index af48a12d2..000000000
--- a/ui/tests/cursors/win/se-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/sw-resize.png b/ui/tests/cursors/win/sw-resize.png
deleted file mode 100644
index 79f6c3ae3..000000000
--- a/ui/tests/cursors/win/sw-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/text.png b/ui/tests/cursors/win/text.png
deleted file mode 100644
index ce8dc22ee..000000000
--- a/ui/tests/cursors/win/text.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/cursors/win/w-resize.png b/ui/tests/cursors/win/w-resize.png
deleted file mode 100644
index 056eb699f..000000000
--- a/ui/tests/cursors/win/w-resize.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/draggable.html b/ui/tests/draggable.html
deleted file mode 100644
index a70fb0df7..000000000
--- a/ui/tests/draggable.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Language" content="en" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Draggable Test Page</title>
-<link rel="stylesheet" href="../../qunit/testsuite.css" type="text/css" media="screen">
-
-<script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
-<script type="text/javascript" src="../source/ui.core.js"></script>
-<script type="text/javascript" src="../source/ui.draggable.js"></script>
-
-<script type="text/javascript" src="../../qunit/testrunner.js"></script>
-<script type="text/javascript" src="draggable.js"></script>
-<script type="text/javascript" src="jquery.simulate.js"></script>
-
-<style>
- html { border: 0; }
- #main {
- position:absolute !important;
- top: -1000px !important;
- left: -1000px !important;
- }
-</style>
-
-</head>
-<body>
-
- <h1 id="header">Draggable Test Suite</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <div id="main" style="border: 1px solid black; padding: 10px; margin: 10px;">
- <div id='draggable1' style="background: green; width: 200px; height: 100px;">Static</div>
- <div id='draggable2' style="background: green; width: 200px; height: 100px; position: absolute; top: 10px; left: 10px;"><span>Absolute</span></div>
- </div>
-
- <ol id="tests"></ol>
-
-</body>
-</html>
diff --git a/ui/tests/draggable.js b/ui/tests/draggable.js
deleted file mode 100644
index 299017b90..000000000
--- a/ui/tests/draggable.js
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * draggable unit tests
- */
-
-//
-// Draggable Test Helper Functions
-//
-var el, offsetBefore, offsetAfter, dragged;
-
-var drag = function(handle, dx, dy) {
- var element = el.data("draggable").element;
- offsetBefore = el.offset();
- $(handle).simulate("drag", {
- dx: dx || 0,
- dy: dy || 0
- });
- dragged = { dx: dx, dy: dy };
- offsetAfter = el.offset();
-}
-
-var moved = function (dx, dy, msg) {
- msg = msg ? msg + "." : "";
- var actual = { left: offsetAfter.left, top: offsetAfter.top };
- var expected = { left: offsetBefore.left + dx, top: offsetAfter.top };
- compare2(actual, expected, 'dragged[' + dragged.dx + ', ' + dragged.dy + '] ' + msg);
-}
-
-function shouldmove(why) {
- drag(el, 50, 50);
- moved(50, 50, why);
-}
-
-function shouldnotmove(why) {
- drag(el, 50, 50);
- moved(0, 0, why);
-}
-
-var border = function(el, side) { return parseInt(el.css('border-' + side + '-width')); }
-
-var margin = function(el, side) { return parseInt(el.css('margin-' + side)); }
-
-// Draggable Tests
-module("Draggable");
-
-test("init", function() {
- expect(6);
-
- el = $("#draggable1").draggable();
- ok(true, '.draggable() called on element');
-
- $([]).draggable();
- ok(true, '.draggable() called on empty collection');
-
- $("<div/>").draggable();
- ok(true, '.draggable() called on disconnected DOMElement');
-
- $("<div/>").draggable().draggable("foo");
- ok(true, 'arbitrary method called after init');
-
- $("<div/>").draggable().data("foo.draggable");
- ok(true, 'arbitrary option getter after init');
-
- $("<div/>").draggable().data("foo.draggable", "bar");
- ok(true, 'arbitrary option setter after init');
-});
-
-test("destroy", function() {
- expect(6);
-
- $("#draggable1").draggable().draggable("destroy");
- ok(true, '.draggable("destroy") called on element');
-
- $([]).draggable().draggable("destroy");
- ok(true, '.draggable("destroy") called on empty collection');
-
- $("<div/>").draggable().draggable("destroy");
- ok(true, '.draggable("destroy") called on disconnected DOMElement');
-
- $("<div/>").draggable().draggable("destroy").draggable("foo");
- ok(true, 'arbitrary method called after destroy');
-
- $("<div/>").draggable().draggable("destroy").data("foo.draggable");
- ok(true, 'arbitrary option getter after destroy');
-
- $("<div/>").draggable().draggable("destroy").data("foo.draggable", "bar");
- ok(true, 'arbitrary option setter after destroy');
-});
-
-test("enable", function() {
- expect(6);
- el = $("#draggable2").draggable({ disabled: true });
- shouldnotmove('.draggable({ disabled: true })');
- el.draggable("enable");
- shouldmove('.draggable("enable")');
- equals(el.data("disabled.draggable"), false, "disabled.draggable getter");
-
- el.draggable("destroy");
- el.draggable({ disabled: true });
- shouldnotmove('.draggable({ disabled: true })');
- el.data("disabled.draggable", false);
- equals(el.data("disabled.draggable"), false, "disabled.draggable setter");
- shouldmove('.data("disabled.draggable", false)');
-});
-
-test("disable", function() {
- expect(6);
- el = $("#draggable2").draggable({ disabled: false });
- shouldmove('.draggable({ disabled: false })');
- el.draggable("disable");
- shouldnotmove('.draggable("disable")');
- equals(el.data("disabled.draggable"), true, "disabled.draggable getter");
-
- el.draggable("destroy");
-
- el.draggable({ disabled: false });
- shouldmove('.draggable({ disabled: false })');
- el.data("disabled.draggable", true);
- equals(el.data("disabled.draggable"), true, "disabled.draggable setter");
- shouldnotmove('.data("disabled.draggable", true)');
-});
-
-test("element types", function() {
- var typeNames = ('p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form'
- + ',table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr'
- + ',acronym,code,samp,kbd,var,img,object,hr'
- + ',input,button,label,select,iframe').split(',');
-
- $.each(typeNames, function(i) {
- var typeName = typeNames[i];
- el = $(document.createElement(typeName)).appendTo('body');
- (typeName == 'table' && el.append("<tr><td>content</td></tr>"));
- el.draggable({ cancel: '' });
- drag(el, 50, 50);
- moved(50, 50, "&lt;" + typeName + "&gt;");
- el.draggable("destroy");
- el.remove();
- });
-});
-
-test("defaults", function() {
- el = $("#draggable1").draggable();
- equals(el.data("appendTo.draggable"), "parent", "appendTo");
- equals(el.data("axis.draggable"), false, "axis");
- equals(el.data("cancel.draggable"), ":input,button", "cancel");
- equals(el.data("delay.draggable"), 0, "delay");
- equals(el.data("disabled.draggable"), false, "disabled");
- equals(el.data("distance.draggable"), 0, "distance");
- equals(el.data("helper.draggable"), "original", "helper");
-});
-
-test("No options, relative", function() {
- el = $("#draggable1").draggable();
- drag(el, 50, 50);
- moved(50, 50);
-});
-
-test("No options, absolute", function() {
- el = $("#draggable2").draggable();
- drag(el, 50, 50);
- moved(50, 50);
-});
-
-module("Draggable Options");
-
-test("{ axis: false }, default", function() {
- el = $("#draggable2").draggable({ axis: false });
- drag(el, 50, 50);
- moved(50, 50);
-});
-
-test("{ axis: 'x' }", function() {
- el = $("#draggable2").draggable({ axis: "x" });
- drag(el, 50, 50);
- moved(50, 0);
-});
-
-test("{ axis: 'y' }", function() {
- el = $("#draggable2").draggable({ axis: "y" });
- drag(el, 50, 50);
- moved(0, 50);
-});
-
-test("{ axis: ? }, unexpected", function() {
- var unexpected = {
- "true": true,
- "{}": {},
- "[]": [],
- "null": null,
- "undefined": undefined,
- "function() {}": function() {}
- };
- $.each(unexpected, function(key, val) {
- el = $("#draggable2").draggable({ axis: val });
- drag(el, 50, 50);
- moved(50, 50, "axis: " + key);
- el.draggable("destroy");
- })
-});
-
-test("{ cancel: 'span' }", function() {
- el = $("#draggable2").draggable();
- drag("#draggable2 span", 50, 50);
- moved(50, 50);
-
- el.draggable("destroy");
-
- el = $("#draggable2").draggable({ cancel: 'span' });
- drag("#draggable2 span", 50, 50);
- moved(0, 0);
-});
-
-test("{ cancel: ? }, unexpected", function() {
- var unexpected = {
- "true": true,
- "false": false,
- "{}": {},
- "[]": [],
- "null": null,
- "undefined": undefined,
- "function() {return '';}": function() {return '';},
- "function() {return true;}": function() {return true;},
- "function() {return false;}": function() {return false;}
- };
- $.each(unexpected, function(key, val) {
- el = $("#draggable2").draggable({ cancel: val });
- drag(el, 50, 50);
- var expected = [50, 50];
- switch(key) {
- case "true":
- expected = [0, 0]
- break;
- }
- moved(expected[0], expected[1], "cancel: " + key);
- el.draggable("destroy");
- })
-});
-
-test("{ containment: 'parent' }, relative", function() {
- el = $("#draggable1").draggable({ containment: 'parent' });
- var p = el.parent(), po = p.offset();
- drag(el, -100, -100);
- var expected = {
- left: po.left + border(p, 'left') + margin(el, 'left'),
- top: po.top + border(p, 'top') + margin(el, 'top')
- }
- compare2(offsetAfter, expected, 'compare offset to parent');
-});
-
-test("{ containment: 'parent' }, absolute", function() {
- el = $("#draggable2").draggable({ containment: 'parent' });
- var p = el.parent(), po = p.offset();
- drag(el, -100, -100);
- var expected = {
- left: po.left + border(p, 'left') + margin(el, 'left'),
- top: po.top + border(p, 'top') + margin(el, 'top')
- }
- compare2(offsetAfter, expected, 'compare offset to parent');
-});
-
-test("{ cursor: 'move' }", function() {
-
- function getCursor() { return $("body").css("cursor"); }
-
- expect(2);
-
- var expected = "move", actual, before, after;
-
- el = $("#draggable2").draggable({
- cursor: expected,
- start: function(e, ui) {
- actual = getCursor();
- }
- });
-
- before = getCursor();
- drag("#draggable2", -1, -1);
- after = getCursor();
-
- equals(actual, expected, "start callback: cursor '" + expected + "'");
- equals(after, before, "after drag: cursor restored");
-
-});
-
-test("{ cursorAt: { left: -5, top: -5 } }", function() {
-
- expect(4);
-
- var dx = -3, dy = -3;
- var ox = 5, oy = 5;
- var cax = -5, cay = -5;
-
- var actual = null;
- $("#draggable2").draggable({
- cursorAt: { left: cax, top: cay },
- drag: function(e, ui) {
- actual = ui.absolutePosition;
- }
- });
- var el = $("#draggable2").data("draggable").element;
-
- var before = el.offset();
- var pos = { clientX: before.left + ox, clientY: before.top + oy };
- $("#draggable2").simulate("mousedown", pos);
- pos = { clientX: pos.clientX + dx, clientY: pos.clientY + dy };
- $(document).simulate("mousemove", pos);
- $(document).simulate("mousemove", pos);
- $("#draggable2").simulate("mouseup", pos);
- var expected = {
- left: before.left + ox - cax + dx,
- top: before.top + oy - cay + dy
- };
-
- equals(actual.left, expected.left, "Absolute: -1px left");
- equals(actual.top, expected.top, "Absolute: -1px top");
-
- var actual = null;
- $("#draggable1").draggable({
- cursorAt: { left: cax, top: cay },
- drag: function(e, ui) {
- actual = ui.absolutePosition;
- }
- });
- var el = $("#draggable2").data("draggable").element;
-
- var before = el.offset();
- var pos = { clientX: before.left + ox, clientY: before.top + oy };
- $("#draggable2").simulate("mousedown", pos);
- pos = { clientX: pos.clientX + dx, clientY: pos.clientY + dy };
- $(document).simulate("mousemove", pos);
- $(document).simulate("mousemove", pos);
- $("#draggable2").simulate("mouseup", pos);
- var expected = {
- left: before.left + ox - cax + dx,
- top: before.top + oy - cay + dy
- };
-
- equals(actual.left, expected.left, "Relative: -1px left");
- equals(actual.top, expected.top, "Relative: -1px top");
-
-});
-
-test("{ distance: 10 }", function() {
-
- el = $("#draggable2").draggable({ distance: 10 });
- drag(el, -9, -9);
- moved(0, 0, 'distance not met');
-
- drag(el, -10, -10);
- moved(-10, -10, 'distance met');
-
- drag(el, 9, 9);
- moved(0, 0, 'distance not met');
-
-});
-
-test("{ grid: [50, 50] }, relative", function() {
- el = $("#draggable1").draggable({ grid: [50, 50] });
- drag(el, 24, 24);
- moved(0, 0);
- drag(el, 26, 25);
- moved(50, 50);
-});
-
-test("{ grid: [50, 50] }, absolute", function() {
- el = $("#draggable2").draggable({ grid: [50, 50] });
- drag(el, 24, 24);
- moved(0, 0);
- drag(el, 26, 25);
- moved(50, 50);
-});
-
-test("{ handle: 'span' }", function() {
- el = $("#draggable2").draggable({ handle: 'span' });
-
- drag("#draggable2 span", 50, 50);
- moved(50, 50, "drag span");
-
- drag("#draggable2", 50, 50);
- moved(0, 0, "drag element");
-});
-
-test("{ helper: 'clone' }, relative", function() {
- el = $("#draggable1").draggable({ helper: "clone" });
- drag(el, 50, 50);
- moved(0, 0);
-});
-
-test("{ helper: 'clone' }, absolute", function() {
- el = $("#draggable2").draggable({ helper: "clone" });
- drag(el, 50, 50);
- moved(0, 0);
-});
-
-test("{ opacity: 0.5 }", function() {
-
- expect(1);
-
- var opacity = null;
- el = $("#draggable2").draggable({
- opacity: 0.5,
- start: function(e, ui) {
- opacity = $(this).css("opacity");
- }
- });
-
- drag("#draggable2", -1, -1);
-
- equals(opacity, 0.5, "start callback: opacity is");
-
-});
-
-test("{ zIndex: 10 }", function() {
-
- expect(1);
-
- var expected = 10, actual;
-
- var zIndex = null;
- el = $("#draggable2").draggable({
- zIndex: expected,
- start: function(e, ui) {
- actual = $(this).css("zIndex");
- }
- });
-
- drag("#draggable2", -1, -1);
-
- equals(actual, expected, "start callback: zIndex is");
-
-});
-
-module("Draggable Callbacks");
-
-test("callbacks occurance count", function() {
-
- expect(3);
-
- var start = 0, stop = 0, dragc = 0;
- el = $("#draggable2").draggable({
- start: function() { start++; },
- drag: function() { dragc++; },
- stop: function() { stop++; }
- });
-
- drag(el, 10, 10);
-
- equals(start, 1, "start callback should happen exactly once");
- equals(dragc, 2 + 1, "drag callback should happen exactly once per mousemove + 1");
- equals(stop, 1, "stop callback should happen exactly once");
-
-});
-
-module("Tickets");
-
-test("#2965 cursorAt with margin", function() {
-
- expect(2);
-
- var ox = 0, oy = 0;
-
- var actual, expected;
- $("#draggable2").draggable({
- cursorAt: { left: ox, top: oy },
- drag: function(e, ui) {
- actual = ui.absolutePosition;
- }
- });
- var el = $("#draggable2").data("draggable").element;
-
- $("#draggable2").css('margin', '0px !important');
-
- var before = el.offset();
- var pos = { clientX: before.left + ox, clientY: before.top + oy };
- $("#draggable2").simulate("mousedown", pos);
- $(document).simulate("mousemove", pos);
- $(document).simulate("mousemove", pos);
- $("#draggable2").simulate("mouseup", pos);
- var expected = actual;
- actual = undefined;
-
- var marg = 13;
-
- $("#draggable2").css('margin', marg + 'px !important');
- var before = el.offset();
- var pos = { clientX: before.left + ox - marg, clientY: before.top + oy - marg };
- $("#draggable2").simulate("mousedown", pos);
- $(document).simulate("mousemove", pos);
- $(document).simulate("mousemove", pos);
- $("#draggable2").simulate("mouseup", pos);
-
- equals(actual.left, expected.left, "10px margin. left");
- equals(actual.top, expected.top, "10px margin. top");
-
-});
diff --git a/ui/tests/images/click.png b/ui/tests/images/click.png
deleted file mode 100644
index 2b32f8d84..000000000
--- a/ui/tests/images/click.png
+++ /dev/null
Binary files differ
diff --git a/ui/tests/images/test.jpg b/ui/tests/images/test.jpg
deleted file mode 100644
index 7d8ec0996..000000000
--- a/ui/tests/images/test.jpg
+++ /dev/null
Binary files differ
diff --git a/ui/tests/jquery.useraction.js b/ui/tests/jquery.useraction.js
deleted file mode 100644
index 82ec0cd22..000000000
--- a/ui/tests/jquery.useraction.js
+++ /dev/null
@@ -1,347 +0,0 @@
-/* Copyright (c) 2007 Eduardo Lundgren (eduardolundgren@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.
- *
- * Version: 0.1a
- * Date: May, 2008
- * Requires jQuery 1.2.x+
- * Docs: http://docs.jquery.com/Plugins/userAction
- * Greetings: Richard Worth
- */
-
-;(function($) {
-
-$.fn.extend({
- userAction: function(type) {
- var args = arguments, opts = {}, a1 = args[1], a2 = args[2];
-
- // transfer center offset
- if (a1 && a1.length) {
- opts.center = [a1[0], a1[1]];
- }
- // set x and y
- else if (typeof a1 == StringPool.NUMBER) {
- opts.x = a1; opts.y = a2;
- }
- // extend options
- else {
- $.extend(opts, a1);
- }
-
- return this.each(function() {
- new $.userAction(this, type, opts);
- });
- }
-});
-
-$.userAction = function(el, type, options) {
- this.type = type;
- this.options = $.extend({}, $.userAction.defaults, options || {});
- this.target = $(this.options.target || el)[0];
-
- var self = this, o = this.options, c = o.center, center = { x: 0, y: 0 };
-
- if (!o.x && !o.y) {
- center = this.findCenter(
- c && c.length ? c : [0, 0]
- )
- }
-
- // if x and y not set, get the center of the element
- o.x = o.x || center.x; o.y = o.y || center.y;
-
- var EVENT_DEFAULT = {
- target: this.target,
- view: window,
- bubbles: o.bubbles || true,
- cancelable: o.cancelable || false,
- ctrlKey: o.ctrlKey || false,
- altKey: o.altKey || false,
- shiftKey: o.shiftKey || false,
- metaKey: o.metaKey || false
- };
-
- // Simulating drag and drop event
- if (/^drag$/i.test(type)) {
- var self = this, t = this.target, queue = $.data(t, StringPool.DATA_QUEUE),
- data = [options.dx || options.x, options.dy || options.y, this];
-
- var fire = function() {
- self.drag(options.dx || options.x, options.dy || options.y);
- };
-
- if (/^sync$/i.test(o.speed)) {
- fire(); return;
- }
-
- if (!queue) {
- $.data(t, StringPool.DATA_QUEUE, [data]); fire(); return;
- }
- // queuing drags...
- if (queue && queue.length) {
- queue.push(data);
- }
- // if drag, stop here.
- return;
- }
-
- var isMouse = /^mouse(over|out|down|up|move)|(dbl)?click$/i.test(type),
- isKeyboard = /^textevent|key(up|down|press)$/i.test(type),
-
- EVT = isMouse ?
- $.extend({}, EVENT_DEFAULT, {
- clientX: o.x, clientY: o.y,
- screenX: o.screenX || 0, screenY: o.screenY || 0,
- relatedTarget: $(o.relatedTarget)[0] || null, detail: 0,
- button: o.button || ($.browser.msie ? 1 : 0), isTrusted: false
- }) :
- $.extend({}, EVENT_DEFAULT, {
- keyCode: o.keyCode || 0, charCode: o.charCode || 0
- });
-
- // avoid e.type == undefined before dispatchment
- EVT.type = type;
-
- if (o.before) o.before.apply(this.target, [$.event.fix(EVT), o.x, o.y, this]);
-
- // check event type for mouse events
- if (isMouse) {
- // simulating mouse event
- EVT = this.mouseEvent(EVT)
- }
-
- // check event type for key events
- if (isKeyboard) {
- // simulating keuboard event
- EVT = this.keyboardEvent(EVT);
- }
-
- if (o.after) o.after.apply(this.target, [$.event.fix(EVT), o.x, o.y, this]);
-};
-
-$.extend($.userAction.prototype, {
-
- down: function(target) {
- $(target).userAction(StringPool.MOUSEOVER).userAction(StringPool.MOUSEDOWN)
- .userAction(StringPool.MOUSEMOVE);
- },
-
- up: function(target) {
- $(target).userAction(StringPool.MOUSEUP).userAction(StringPool.MOUSEOUT);
- },
-
- move: function(target, x, y, after) {
- $(target).userAction(StringPool.MOUSEMOVE, { x: x, y: y, after: after });
- },
-
- drag: function(dx, dy) {
- // drag helper function, thanks Richard Worth's testmouse api.
- var self = this, o = this.options, center = this.findCenter(),
- target = $(this.target), lastx = center.x, lasty = center.y,
- fake = $(StringPool.FAKE_CURSOR_EXP),
- speed = o.speed || StringPool.SLOW,
- easing = o.easing || StringPool.SWING;
-
- var complete = function() {
- // fire complete or after cb
- if (o.after||o.complete) (o.after||o.complete).apply(self.target, [o, self]);
- };
-
- // drag synchronously
- if (/^sync$/i.test(o.speed)) {
- self.down(target);
-
- var mdx = Math.abs(dx)||0, mdy = Math.abs(dy)||0, range = Math.max(mdx, mdy),
- sx = dx/mdx||1, sy = dy/mdy||1;
-
- for (var dt = 1; dt <= range; dt++) {
- var x = center.x + sx*(dt <= mdx ? dt : 0), y = center.y + sy*(dt <= mdy ? dt : 0);
- this.move(target, x, y, o.drag);
- }
- self.up(target);
- complete();
- return;
- }
-
- // drag asynchronously - animated
- fake = fake.size() ? fake :
- $(StringPool.FAKE_CURSOR_DIV)
- .css({ position: StringPool.ABSOLUTE }).appendTo(document.body);
-
- fake
- .animate({ left: center.x, top: center.y }, speed, easing, function(){
- self.down(target);
- })
- .animate({ left: center.x + (dx||0), top: center.y + (dy||0) }, {
- speed: speed,
- easing: easing,
- step: function(i, anim) {
- lastx = anim.prop == StringPool.LEFT ? i : lastx;
- lasty = anim.prop == StringPool.TOP ? i : lasty;
- self.move(target, lastx, lasty, o.drag);
- },
- complete: function() {
-
- self.up(target);
-
- // remove fake cursor
- $(this).remove();
-
- complete();
-
- // trigger drag queue
- var queue = $.data(self.target, StringPool.DATA_QUEUE);
- if (queue) queue.shift();
-
- if (queue && queue[0]) {
- // trigger drag on correct instance
- queue[0][2].drag(queue[0][0], queue[0][1]);
- }
- else
- $.removeData(self.target, StringPool.DATA_QUEUE);
- }
- });
- },
-
- mouseEvent: function(EVT) {
- var evt, type = this.type, o = this.options;
-
- //check for DOM-compliant browsers
- if ($.isFunction(document.createEvent)) {
- evt = document.createEvent(StringPool.MOUSE_EVENTS);
-
- //Safari 2.x doesn't implement initMouseEvent()
- if ($.isFunction(evt.initMouseEvent)) {
- evt.initMouseEvent(type,
- EVT.bubbles, EVT.cancelable, EVT.view, EVT.detail,
- EVT.screenX, EVT.screenY, EVT.clientX, EVT.clientY,
- EVT.ctrlKey, EVT.altKey, EVT.shiftKey, EVT.metaKey,
- EVT.button, EVT.relatedTarget);
- } else {
- // Safari
- evt = document.createEvent(StringPool.UI_EVENTS);
- customEvent.initEvent(type, EVT.bubbles, EVT.cancelable);
- $.extend(evt, EVT);
- }
-
- // check to see if relatedTarget has been assigned
- if (EVT.relatedTarget && !evt.relatedTarget){
- if (type == StringPool.MOUSEOUT) {
- evt.toElement = EVT.relatedTarget;
- } else if (type == StringPool.MOUSEOVER) {
- evt.fromElement = EVT.relatedTarget;
- }
- }
- // fire the event
- this.target.dispatchEvent(evt);
-
- } else if (document.createEventObject) {
- evt = document.createEventObject();
-
- // assign available properties
- $.extend(evt, EVT)
-
- // IE won't allow assignment to toElement or fromElement
- evt.relatedTarget = EVT.relatedTarget;
-
- // fix for 2 pixels bug from mousecords
- evt.pageX = o.x; evt.pageY = o.y;
-
- // fire the event
- this.target.fireEvent(StringPool.ON + type, evt);
- }
-
- return evt;
- },
-
- keyboardEvent: function(EVT) {
- var evt, type = this.type, o = this.options;
-
- // check for DOM-compliant browsers first
- if ($.isFunction(document.createEvent)) {
-
- try {
- // try to create key event
- evt = document.createEvent(StringPool.KEY_EVENTS);
-
- evt.initKeyEvent(type,
- EVT.bubbles, EVT.cancelable, EVT.view, EVT.ctrlKey,
- EVT.altKey, EVT.shiftKey, EVT.metaKey, EVT.keyCode, EVT.charCode);
-
- } catch (err) {
- // we need another try-catch for Safari 2.x
- try {
- // generic event for opera and webkit nightlies, will fail in Safari 2.x
- evt = document.createEvent(StringPool.EVENTS);
- } catch (ierr){
- // Safari 2.x - create a UIEvent
- evt = document.createEvent(StringPool.UI_EVENTS);
- } finally {
- evt.initEvent(type, EVT.bubbles, EVT.cancelable);
-
- // initializing
- $.each(EVT, function(k, v) {
- // using try-catch for avoiding Opera NO_MODIFICATION_ALLOWED_ERR
- try { evt[k] = v; } catch(e) { }
- });
- }
- }
-
- // fire the event
- this.target.dispatchEvent(evt);
-
- } else if (document.createEventObject) {
- // create an IE event object
- evt = document.createEventObject();
-
- // assign available properties
- $.extend(evt, EVT);
-
- // IE doesn't support charCode explicitly
- evt.keyCode = (EVT.charCode > 0) ? EVT.charCode : EVT.keyCode;
-
- // fire the event
- this.target.fireEvent(StringPool.ON + type, evt);
- }
-
- return evt;
- },
-
- findCenter: function(offset) {
- var el = $(this.target), o = el.offset();
- return {
- x: o.left + (((offset||[0, 0])[0]) || 0) + el.outerWidth() / 2,
- y: o.top + (((offset||[0, 0])[1]) || 0) + el.outerHeight() / 2
- };
- }
-});
-
-$.extend($.userAction, {
- defaults: {
- center: true
- }
-});
-
-var StringPool = {
- ON: 'on',
- NUMBER: 'number',
- MOUSEOVER: 'mouseover',
- MOUSEOUT: 'mouseout',
- MOUSEDOWN: 'mousedown',
- MOUSEUP: 'mouseup',
- MOUSEMOVE: 'mousemove',
- MOUSE_EVENTS: 'MouseEvents',
- UI_EVENTS: 'UIEvents',
- KEY_EVENTS: 'KeyEvents',
- EVENTS: 'Events',
- FAKE_CURSOR_EXP: 'div.ui-fake-cursor',
- FAKE_CURSOR_DIV: '<div class="ui-fake-cursor"/>',
- ABSOLUTE: 'absolute',
- DATA_QUEUE: 'ua-drag-queue',
- TOP: 'top',
- LEFT: 'left',
- SLOW: 'slow',
- SWING: 'swing'
-};
-
-})(jQuery); \ No newline at end of file
diff --git a/ui/tests/resizable.html b/ui/tests/resizable.html
deleted file mode 100644
index 685ec88c9..000000000
--- a/ui/tests/resizable.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Language" content="en" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Resizable Test Page</title>
-<link rel="stylesheet" href="../../qunit/testsuite.css" type="text/css" media="screen">
-
-<script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
-<script type="text/javascript" src="../source/ui.core.js"></script>
-<script type="text/javascript" src="../source/ui.resizable.js"></script>
-
-<script type="text/javascript" src="../../qunit/testrunner.js"></script>
-<script type="text/javascript" src="resizable.js"></script>
-<script type="text/javascript" src="jquery.simulate.js"></script>
-
-</head>
-
-<style>
- #main {
- position: absolute !important;
- top: -1000px !important;
- left: -1000px !important;
- }
-</style>
-
-<body>
-
- <h1 id="header">jQuery Test Suite</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <div id="main" style="border: 1px solid black; padding: 10px; margin: 10px;">
- <div id='resizable1' style="background: green; width: 100px; height: 100px;">I'm a resizable.</div>
- <img src="images/test.jpg" id='resizable2' style="width: 100px; height: 100px;"/>
- </div>
-
- <ol id="tests"></ol>
- <div class="ui-fake-cursor"/>
-</body>
-</html>
diff --git a/ui/tests/resizable.js b/ui/tests/resizable.js
deleted file mode 100644
index 48582e016..000000000
--- a/ui/tests/resizable.js
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * resizable tests
- */
-
-var drag = function(el, dx, dy, complete) {
-
- // speed = sync -> Drag syncrhonously.
- // speed = fast|slow -> Drag asyncrhonously - animated.
-
- return $(el).simulate("drag", {
- dx: dx||0, dy: dy||0, speed: 'sync', complete: complete
- });
-};
-
-module("Simple Resize");
-
-test("ui-resizable-e resize x", function() {
-
- var handle = '.ui-resizable-e', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(2);
-
- drag(handle, 50);
-
- equals( target.width(), 150, "compare width");
-
- drag(handle, -50);
-
- equals( target.width(), 100, "compare width" );
-
-});
-
-test("ui-resizable-w resize x", function() {
-
- var handle = '.ui-resizable-w', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(2);
-
- drag(handle, -50);
-
- equals( target.width(), 150, "compare width" );
-
- drag(handle, 50);
-
- equals( target.width(), 100, "compare width" );
-
-});
-
-test("ui-resizable-n resize y", function() {
-
- var handle = '.ui-resizable-n', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(2);
-
- drag(handle, 0, -50);
-
- equals( target.height(), 150, "compare height" );
-
- drag(handle, 0, 50);
-
- equals( target.height(), 100, "compare height" );
-
-});
-
-test("ui-resizable-s resize y", function() {
-
- var handle = '.ui-resizable-s', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(2);
-
- drag(handle, 0, 50);
-
- equals( target.height(), 150, "compare height" );
-
- drag(handle, 0, -50);
-
- equals( target.height(), 100, "compare height" );
-
-});
-
-test("ui-resizable-se resize xy", function() {
-
- var handle = '.ui-resizable-se', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(4);
-
- drag(handle, 50, 50);
-
- equals( target.width(), 150, "compare width" );
- equals( target.height(), 150, "compare height" );
-
- drag(handle, -50, -50);
-
- equals( target.width(), 100, "compare width" );
- equals( target.height(), 100, "compare height" );
-
-});
-
-test("ui-resizable-sw resize xy", function() {
-
- var handle = '.ui-resizable-sw', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(4);
-
- drag(handle, -50, -50);
-
- equals( target.width(), 150, "compare width" );
- equals( target.height(), 50, "compare height" );
-
- drag(handle, 50, 50);
-
- equals( target.width(), 100, "compare width" );
- equals( target.height(), 100, "compare height" );
-
-});
-
-test("ui-resizable-ne resize xy", function() {
-
- var handle = '.ui-resizable-ne', target = $('#resizable1').css({ overflow: 'hidden' }).resizable({ handles: 'all' });
-
- expect(4);
-
- drag(handle, -50, -50);
-
- equals( target.width(), 50, "compare width" );
- equals( target.height(), 150, "compare height" );
-
- drag(handle, 50, 50);
-
- equals( target.width(), 100, "compare width" );
- equals( target.height(), 100, "compare height" );
-
-});
-
-test("ui-resizable-nw resize xy", function() {
-
- var handle = '.ui-resizable-nw', target = $('#resizable1').resizable({ handles: 'all' });
-
- expect(4);
-
- drag(handle, -50, -50);
-
- equals( target.width(), 150, "compare width" );
- equals( target.height(), 150, "compare height" );
-
- drag(handle, 50, 50);
-
- equals( target.width(), 100, "compare width" );
- equals( target.height(), 100, "compare height" );
-
-});
-
-/**
- * Conditional Resize
- * min/max Height/Width
- */
-
-module("Dimensions limit");
-
-test("ui-resizable-se { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 }", function() {
-
- var handle = '.ui-resizable-se', target = $('#resizable1').resizable({ handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 });
-
- expect(4);
-
- drag(handle, -50, -50);
-
- equals( target.width(), 60, "compare minWidth" );
- equals( target.height(), 60, "compare minHeight" );
-
- drag(handle, 70, 70);
-
- equals( target.width(), 100, "compare maxWidth" );
- equals( target.height(), 100, "compare maxHeight" );
-
-});
-
-test("ui-resizable-sw { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 }", function() {
-
- var handle = '.ui-resizable-sw', target = $('#resizable1').resizable({ handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 });
-
- expect(4);
-
- drag(handle, 50, -50);
-
- equals( target.width(), 60, "compare minWidth" );
- equals( target.height(), 60, "compare minHeight" );
-
- drag(handle, -70, 70);
-
- equals( target.width(), 100, "compare maxWidth" );
- equals( target.height(), 100, "compare maxHeight" );
-
-});
-
-test("ui-resizable-ne { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 }", function() {
-
- var handle = '.ui-resizable-ne', target = $('#resizable1').resizable({ handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 });
-
- expect(4);
-
- drag(handle, -50, 50);
-
- equals( target.width(), 60, "compare minWidth" );
- equals( target.height(), 60, "compare minHeight" );
-
- drag(handle, 70, -70);
-
- equals( target.width(), 100, "compare maxWidth" );
- equals( target.height(), 100, "compare maxHeight" );
-
-});
-
-test("ui-resizable-nw { handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 }", function() {
-
- var handle = '.ui-resizable-nw', target = $('#resizable1').resizable({ handles: 'all', minWidth: 60, minHeight: 60, maxWidth: 100, maxHeight: 100 });
-
- expect(4);
-
- drag(handle, 70, 70);
-
- equals( target.width(), 60, "compare minWidth" );
- equals( target.height(), 60, "compare minHeight" );
-
- drag(handle, -70, -70);
-
- equals( target.width(), 100, "compare maxWidth" );
- equals( target.height(), 100, "compare maxHeight" );
-
-});
-
-/**
- * Respecting ratio resize with dimensions limit
- */
-
-module("Respecting ratio resize with dimensions limits");
-
-test("ui-resizable-e { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-e', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, 80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, -130);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-test("ui-resizable-w { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-w', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, -80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, 130);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-test("ui-resizable-n { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-n', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, 0, -80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, 0, 80);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-test("ui-resizable-s { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-s', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, 0, 80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, 0, -80);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-test("ui-resizable-se { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-se', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, 80, 80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, -80, -80);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-test("ui-resizable-sw { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-sw', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, -80, 80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, 80, -80);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-test("ui-resizable-ne { aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 }", function() {
-
- var handle = '.ui-resizable-ne', target = $('#resizable1').resizable({ aspectRatio: 'preserve', handles: 'all', minWidth: 70, minHeight: 50, maxWidth: 150, maxHeight: 130 });
-
- expect(4);
-
- drag(handle, 80, -80);
-
- equals( target.width(), 130, "compare maxWidth");
- equals( target.height(), 130, "compare maxHeight");
-
- drag(handle, -80, 80);
-
- equals( target.width(), 70, "compare minWidth");
- equals( target.height(), 70, "compare minHeight");
-
-});
-
-module("Options");
-
-test("ui-resizable-se { handles: 'all', grid: [0, 20] }", function() {
-
- var handle = '.ui-resizable-se', target = $('#resizable1').resizable({ handles: 'all', grid: [0, 20] });
-
- expect(4);
-
- drag(handle, 3, 9);
-
- equals( target.width(), 103, "compare width");
- equals( target.height(), 100, "compare height");
-
- drag(handle, 15, 11);
-
- equals( target.width(), 118, "compare width");
- equals( target.height(), 120, "compare height");
-
-});
-
-test("ui-resizable-se { handles: 'all', grid: [0, 20] } wrapped", function() {
-
- var handle = '.ui-resizable-se', target = $('#resizable2').resizable({ handles: 'all', grid: [0, 20] });
-
- expect(4);
-
- drag(handle, 3, 9);
-
- equals( target.width(), 103, "compare width");
- equals( target.height(), 100, "compare height");
-
- drag(handle, 15, 11);
-
- equals( target.width(), 118, "compare width");
- equals( target.height(), 120, "compare height");
-
-});
diff --git a/ui/tests/simulate/jquery.simulate.js b/ui/tests/simulate/jquery.simulate.js
deleted file mode 100644
index f5168bf3b..000000000
--- a/ui/tests/simulate/jquery.simulate.js
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * jquery.simulate - simulate browser mouse and keyboard events
- *
- * Copyright (c) 2007 Eduardo Lundgren (eduardolundgren@gmail.com)
- * and Richard D. Worth (rdworth@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.
- *
- */
-
-;(function($) {
-
-$.fn.extend({
- simulate: function(type, options) {
- return this.each(function() {
- var opt = $.extend({}, $.simulate.defaults, options || {});
- new $.simulate(this, type, opt);
- });
- }
-});
-
-$.simulate = function(el, type, options) {
- this.target = el;
- this.options = options;
-
- if (/^drag$/.test(type)) {
- this[type].apply(this, [this.target, options]);
- } else {
- this.simulateEvent(el, type, options);
- }
-}
-
-$.extend($.simulate.prototype, {
- simulateEvent: function(el, type, options) {
- var evt = this.createEvent(type, options);
- this.dispatchEvent(el, type, evt, options);
- return evt;
- },
- createEvent: function(type, options) {
- if (/^mouse(over|out|down|up|move)|(dbl)?click$/.test(type)) {
- return this.mouseEvent(type, options);
- } else if (/^key(up|down|press)$/.test(type)) {
- return this.keyboardEvent(type, options);
- }
- },
- mouseEvent: function(type, options) {
- var evt;
- var e = $.extend({
- bubbles: true, cancelable: (type != "mousemove"), view: window, detail: 0,
- screenX: 0, screenY: 0, clientX: 0, clientY: 0,
- ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
- button: 0, relatedTarget: undefined
- }, options);
-
- var relatedTarget = $(e.relatedTarget)[0];
-
- if ($.isFunction(document.createEvent)) {
- evt = document.createEvent("MouseEvents");
- evt.initMouseEvent(type, e.bubbles, e.cancelable, e.view, e.detail,
- e.screenX, e.screenY, e.clientX, e.clientY,
- e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
- e.button, e.relatedTarget || document.body.parentNode);
- } else if (document.createEventObject) {
- evt = document.createEventObject();
- $.extend(evt, e);
- evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button;
- }
- return evt;
- },
- keyboardEvent: function(type, options) {
- var evt;
-
- var e = $.extend({ bubbles: true, cancelable: true, view: window,
- ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
- keyCode: 0, charCode: 0
- }, options);
-
- if ($.isFunction(document.createEvent)) {
- try {
- evt = document.createEvent("KeyEvents");
- evt.initKeyEvent(type, e.bubbles, e.cancelable, e.view,
- e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
- e.keyCode, e.charCode);
- } catch(err) {
- evt = document.createEvent("Events");
- evt.initEvent(type, e.bubbles, e.cancelable);
- $.extend(evt, { view: e.view,
- ctrlKey: e.ctrlKey, altKey: e.altKey, shiftKey: e.shiftKey, metaKey: e.metaKey,
- keyCode: e.keyCode, charCode: e.charCode
- });
- }
- } else if (document.createEventObject) {
- evt = document.createEventObject();
- $.extend(evt, e);
- }
- if ($.browser.msie || $.browser.opera) {
- evt.keyCode = (e.charCode > 0) ? e.charCode : e.keyCode;
- evt.charCode = undefined;
- }
- return evt;
- },
-
- dispatchEvent: function(el, type, evt) {
- if (el.dispatchEvent) {
- el.dispatchEvent(evt);
- } else if (el.fireEvent) {
- el.fireEvent('on' + type, evt);
- }
- return evt;
- },
-
- drag: function(el) {
- var self = this, center = this.findCenter(this.target),
- options = this.options, x = Math.floor(center.x), y = Math.floor(center.y),
- dx = options.dx || 0, dy = options.dy || 0, target = this.target;
- var coord = { clientX: x, clientY: y };
- this.simulateEvent(target, "mouseover");
- this.simulateEvent(target, "mousedown", coord);
- coord = { clientX: x + dx, clientY: y + dy };
- this.simulateEvent(document, "mousemove", coord);
- this.simulateEvent(document, "mousemove", coord);
- this.simulateEvent(target, "mouseup", coord);
- this.simulateEvent(target, "mouseout");
- },
- findCenter: function(el) {
- var el = $(this.target), o = el.offset();
- return {
- x: o.left + el.outerWidth() / 2,
- y: o.top + el.outerHeight() / 2
- };
- }
-});
-
-$.extend($.simulate, {
- defaults: {
- speed: 'sync'
- }
-});
-
-})(jQuery);
diff --git a/ui/tests/slider.html b/ui/tests/slider.html
deleted file mode 100644
index 090cfd2bf..000000000
--- a/ui/tests/slider.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-<meta http-equiv="Content-Language" content="en" />
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Slider Test Page</title>
-<link rel="stylesheet" href="../../qunit/testsuite.css" type="text/css" media="screen">
-
-<script type="text/javascript" src="../../jquery/jquery-1.2.6.js"></script>
-<script type="text/javascript" src="../source/ui.core.js"></script>
-<script type="text/javascript" src="../source/ui.slider.js"></script>
-
-<script type="text/javascript" src="../../qunit/testrunner.js"></script>
-<script type="text/javascript" src="slider.js"></script>
-<script type="text/javascript" src="jquery.simulate.js"></script>
-</head>
-<body>
-
- <h1 id="header">jQuery Test Suite</h1>
- <h2 id="banner"></h2>
- <h2 id="userAgent"></h2>
-
- <div id="main" style="position:absolute;top:-20000px">
- <div id='slider1'></div>
- <div id='slider3' style="position: relative; margin: 40px; width: 217px; height: 28px; background: url(http://developer.yahoo.com/yui/examples/slider/assets/bg-fader.gif) no-repeat scroll 5px 0px;">
- <div class='ui-slider-handle' style='position: absolute; height: 21px; left: 0px; bottom: 0px; width: 17px; background-image: url(http://developer.yahoo.com/yui/examples/slider/assets/thumb-n.gif);'></div>
- </div>
- </div>
-
- <ol id="tests"></ol>
-
-</body>
-</html>
diff --git a/ui/tests/slider.js b/ui/tests/slider.js
deleted file mode 100644
index 7b6d095a5..000000000
--- a/ui/tests/slider.js
+++ /dev/null
@@ -1,110 +0,0 @@
-
-var keyCodes = {
- leftArrow: 37,
- upArrow: 38,
- rightArrow: 39,
- downArrow: 40
-};
-
-$.each(keyCodes, function(key, val) {
- $.fn[key] = function() {
- return this.simulate("keydown", { keyCode: val });
- }
-});
-
-function assertChange(stepping, start, result, action) {
- return function() {
- expect(1);
- var slider = $("#slider3").slider({
- stepping: stepping,
- startValue: start,
- min: 0,
- max: 1000,
- change: function(e, ui) {
- equals(ui.value, result, "changed to " + ui.value);
- }
- });
- action.apply(slider);
- }
-}
-
-module("slider: single handle")
-
-test("change one step via keydown", assertChange(1, undefined, 1, function() {
- this.find("a").rightArrow();
-}))
-test("change - 10 steps via keydown", assertChange(10, 20, 10, function() {
- this.find("a").leftArrow();
-}))
-test("change +10 steps via keydown", assertChange(10, 20, 30, function() {
- this.find("a").rightArrow();
-}))
-
-test("moveTo, absolute value", assertChange(1, 1, 10, function() {
- this.slider("moveTo", 10);
-}))
-
-test("moveTo, absolute value as string", assertChange(1, 1, 10, function() {
- this.slider("moveTo", "10");
-}))
-
-test("moveTo, absolute value, below min", assertChange(1, 1, 0, function() {
- this.slider("moveTo", -10);
-}))
-
-test("moveTo, relative positive value", assertChange(1, 1, 11, function() {
- this.slider("moveTo", "+=10");
-}))
-
-test("moveTo, relative positive value, above max", assertChange(1, 10, 1000, function() {
- this.slider("moveTo", "+=2000");
-}))
-
-test("moveTo, relative negative value", assertChange(1, 20, 10, function() {
- this.slider("moveTo", "-=10");
-}))
-
-test("options update min/max", function() {
- expect(2);
- var slider = $("#slider3").slider({
- stepping: 1,
- startValue: 1
- });
- slider.slider("moveTo", "-=10");
- equals(slider.slider("value"), 0);
- slider.data("min.slider", -10);
- slider.slider("moveTo", "-=20");
- equals(slider.slider("value"), -10);
-})
-
-module("slider: setup and teardown");
-
-test("destroy and recreate", function() {
- expect(3)
- var slider = $("#slider3").slider();
- slider.slider("moveTo", "+=20");
- equals(slider.slider("value"), 20);
- slider.slider("destroy");
-
- slider.slider("moveTo", "+=30");
- ok(true, "nothing happens after slider is destroyed");
-
- slider.slider().slider("moveTo", "30");
-
- equals(Math.round(slider.slider("value")), 30);
-})
-
-test("handle creation", function() {
- var slider = $("#slider1");
- equals(slider.children().size(), 0);
- slider.slider({
- handles: [
- { start: 0 },
- { start: 10 }
- ]
- });
- equals(slider.children().size(), 2);
- var instance = $.data(slider[0], "slider")
- equals(instance.handle.length, 2);
- ok(instance.handle.jquery, "handle must be a jquery object")
-}) \ No newline at end of file
diff --git a/ui/tests/ui.testmouse.js b/ui/tests/ui.testmouse.js
deleted file mode 100644
index 5c4d41204..000000000
--- a/ui/tests/ui.testmouse.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * jQuery UI testMouse
- *
- * Copyright (c) 2008 Richard D. Worth (rdworth.org)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * Revision: $Id: $
- */
-;(function($) {
-
- var mouseX = 0;
- var mouseY = 0;
-
- $(function() {
- $(document).mousemove(function(e) {
- if (e.isTrusted !== false) {
- mouseX = e.pageX;
- mouseY = e.pageY;
- }
- });
- });
-
- $.widget("ui.testMouse", {
- trackMouse: function() {},
- init: function() {
- },
- destroy: function() {
- },
- center: function(offset) {
- var o = this.element.offset();
- return {
- x: (o.left + (offset || [0, 0])[0] || 0) + this.element.width() / 2,
- y: (o.top + (offset || [0, 0])[1] || 0) + this.element.height() / 2
- };
- },
- drag: function(dx, dy) {
- var self = this;
-
- var center = this.center();
- this.left = center.x;
- this.top = center.y;
-
- var OS = (/(win|mac|linux)/i.exec(navigator.platform) || ['other'])[0].toLowerCase();
-
- var defaultUrl = ['cursors', OS == 'other' ? 'win' : OS, 'default.png'].join('/');
- var cursorUrl = function() {
- return ['cursors', OS == 'other' ? 'win' : OS, self.element.css('cursor') + '.png'].join('/');
- }
- var noneUrl = ['cursors', OS == 'other' ? 'win' : OS, 'none' + ($.browser.safari ? '.png' : '.cur')].join('/');
-
- var fakemouse = $('<img src="' + defaultUrl + '" />');
- var realmouse = $('<img src="' + defaultUrl + '" />');
- if ($.browser.msie && $.browser.version == 6) {
- fakemouse = $('<div style="height:32;width:32;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + defaultUrl + '\', sizingMethod=\'scale\');" ></div>');
- realmouse = $('<div><div style="height:32;width:32;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + defaultUrl + '\', sizingMethod=\'scale\');" ></div></div>');
- }
- var mousescreen = $('<div/>');
-
- var updateCursor = function() {
- if ($.browser.msie && $.browser.version == 6) {
- fakemouse.css('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + cursorUrl() + '\', sizingMethod=\'scale\'');
- } else {
- fakemouse.attr('src', cursorUrl());
- }
- }
- var resetCursor = function() {
- if ($.browser.msie && $.browser.version == 6) {
- fakemouse.css('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + defaultUrl + '\', sizingMethod=\'scale\'');
- } else {
- fakemouse.attr('src', defaultUrl);
- }
- }
-
- var testStart = function() {
- self.element.bind("mouseover", updateCursor).bind("mouseout", resetCursor);
- fakemouse.appendTo('body').css({ position: 'absolute', left: mouseX, top: mouseY, zIndex: 5000 });
- realmouse.appendTo('body').css({ position: 'absolute', left: mouseX, top: mouseY, zIndex: 5000, opacity: 0.1 });
- mousescreen.appendTo('body').css({ width: '100%', height: '100%', position: 'absolute', top: 0, left: 0, zIndex: 5000 })
- .mousemove(function(e) { realmouse.css({ left: e.pageX, top: e.pageY }); return false; })
- .mousedown(function() { return false; })
- .mouseup(function() { return false; });
- mousescreen.css('cursor', 'url(' + noneUrl + '), crosshair');
- ($.browser.opera && mousescreen.css('cursor', 'crosshair'));
- }
- var testStop = function() {
- self.element.unbind("mouseover", updateCursor).unbind("mouseout", resetCursor);
- mousescreen.remove();
- mouseX = realmouse.css("left");
- mouseY = realmouse.css("top");
- realmouse.remove();
- fakemouse.remove();
- self.options.complete.apply();
- }
-
- testStart();
-
- this.lastX = null;
-
- var before = function() {
- self.element.triggerHandler('mouseover');
- self.element.simulate("mousedown", { clientX: self.left, clientY: self.top });
- self.element.simulate("mousemove", { clientX: self.left, clientY: self.top });
- }
-
- var during = function(xory) {
- if (!self.lastX) {
- self.lastX = xory;
- } else {
- var x = self.lastX, y = xory;
- self.element.simulate("mousemove", { clientX: x, clientY: y });
- self.lastX = null;
- }
- }
-
- var after = function() {
- self.element.triggerHandler('mouseout');
- self.element.simulate("mouseup", { clientX: 0, clientY: 0 });
- testStop();
- }
-
- fakemouse
- .animate({ left: this.left, top: this.top }, this.options.speed, before)
- .animate({ left: this.left + dx, top: this.top + dy }, {
- speed: this.options.speed,
- easing: "swing",
- step: during
- })
- .animate({ left: this.left + dx, top: this.top + dy }, {
- speed: this.options.speed,
- easing: "swing",
- complete: after
- });
-
- }
- });
-
- $.ui.testMouse.defaults = {
- speed: "slow"
- }
-
-})(jQuery);
diff --git a/ui/themes/flora/flora.accordion.css b/ui/themes/flora/flora.accordion.css
deleted file mode 100644
index 3f23a806e..000000000
--- a/ui/themes/flora/flora.accordion.css
+++ /dev/null
@@ -1,39 +0,0 @@
-.ui-accordion { margin: 0; padding: 0; list-style-type: none; }
-.ui-accordion li { margin: 0; margin-bottom: 2px; padding: 0; }
-.ui-accordion li .ui-accordion-header {
- display: block;
- padding-left: 5px;
- margin-right: 3px;
- height: 28px;
- background-image: url(i/accordion-middle.png);
- color: #000;
- text-decoration: none;
- line-height: 28px;
- position: relative;
- left: 3px;
-}
-.ui-accordion li .ui-accordion-right {
- display: block;
- background-image: url(i/accordion-right.png);
- position: absolute;
- top: 0px;
- right: -3px;
- height: 28px;
- width: 3px;
-}
-.ui-accordion li .ui-accordion-left {
- display: block;
- background-image: url(i/accordion-left.png);
- background-repeat: no-repeat;
- position: absolute;
- height: 28px;
- width: 3px;
-}
-
-.ui-accordion li:hover .ui-accordion-left { background-image: url(i/accordion-left-over.png); }
-.ui-accordion li:hover .ui-accordion-header { background-image: url(i/accordion-middle-over.png); }
-.ui-accordion li:hover .ui-accordion-right { background-image: url(i/accordion-right-over.png); }
-
-.ui-accordion li.selected .ui-accordion-left { background-image: url(i/accordion-left-act.png); }
-.ui-accordion li.selected .ui-accordion-header { background-image: url(i/accordion-middle-act.png); }
-.ui-accordion li.selected .ui-accordion-right { background-image: url(i/accordion-right-act.png); }
diff --git a/ui/themes/flora/flora.all.css b/ui/themes/flora/flora.all.css
deleted file mode 100644
index 5a63cf190..000000000
--- a/ui/themes/flora/flora.all.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@import "flora.css";
-@import "flora.accordion.css";
-@import "flora.datepicker.css";
-@import "flora.dialog.css";
-@import "flora.resizable.css";
-@import "flora.slider.css";
-@import "flora.tabs.css";
diff --git a/ui/themes/flora/flora.css b/ui/themes/flora/flora.css
deleted file mode 100644
index f67bb3f8c..000000000
--- a/ui/themes/flora/flora.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.ui-wrapper { border: 1px solid #50A029; }
-.ui-wrapper input, .ui-wrapper textarea { border: 0; } \ No newline at end of file
diff --git a/ui/themes/flora/flora.datepicker.css b/ui/themes/flora/flora.datepicker.css
deleted file mode 100644
index 79575a55a..000000000
--- a/ui/themes/flora/flora.datepicker.css
+++ /dev/null
@@ -1,179 +0,0 @@
-/* Main Flora Style Sheet for jQuery UI ui-datepicker */
-#ui-datepicker-div, .ui-datepicker-inline {
- font-family: Arial,Helvetica,sans-serif;
- font-size: 14px;
- padding: 0;
- margin: 0;
- background: #DDD;
- width: 185px;
-}
-#ui-datepicker-div {
- display: none;
- border: 1px solid #FF9900;
- z-index: 10;
-}
-.ui-datepicker-inline {
- float: left;
- display: block;
- border: 0;
-}
-.ui-datepicker-dialog {
- padding: 5px !important;
- border: 4px ridge #DDD !important;
-}
-button.ui-datepicker-trigger {
- width: 25px;
-}
-img.ui-datepicker-trigger {
- margin: 2px;
- vertical-align: middle;
-}
-.ui-datepicker-prompt {
- float: left;
- padding: 2px;
- background: #DDD;
- color: #000;
-}
-*html .ui-datepicker-prompt {
- width: 185px;
-}
-.ui-datepicker-control, .ui-datepicker-links, .ui-datepicker-header, .ui-datepicker {
- clear: both;
- float: left;
- width: 100%;
- color: #FFF;
-}
-.ui-datepicker-control {
- background: #FF9900;
- padding: 2px 0px;
-}
-.ui-datepicker-links {
- background: #E0F4D7;
- padding: 2px 0px;
-}
-.ui-datepicker-control, .ui-datepicker-links {
- font-weight: bold;
- font-size: 80%;
- letter-spacing: 1px;
-}
-.ui-datepicker-links label {
- padding: 2px 5px;
- color: #888;
-}
-.ui-datepicker-clear, .ui-datepicker-prev {
- float: left;
- width: 34%;
-}
-.ui-datepicker-current {
- float: left;
- width: 30%;
- text-align: center;
-}
-.ui-datepicker-close, .ui-datepicker-next {
- float: right;
- width: 34%;
- text-align: right;
-}
-.ui-datepicker-header {
- padding: 1px 0 3px;
- background: #83C948;
- text-align: center;
- font-weight: bold;
- height: 1.3em;
-}
-.ui-datepicker-header select {
- background: #83C948;
- color: #000;
- border: 0px;
- font-weight: bold;
-}
-.ui-datepicker {
- background: #CCC;
- text-align: center;
- font-size: 100%;
-}
-.ui-datepicker a {
- display: block;
- width: 100%;
-}
-.ui-datepicker .ui-datepicker-title-row {
- background: #B1DB87;
- color: #000;
-}
-.ui-datepicker .ui-datepicker-days-row {
- background: #FFF;
- color: #666;
-}
-.ui-datepicker-week-col {
- background: #B1DB87;
- color: #000;
-}
-.ui-datepicker .ui-datepicker-days-cell {
- color: #000;
- border: 1px solid #DDD;
-}
-#ui-datepicker .ui-datepicker-days-cell a {
- display: block;
-}
-.ui-datepicker .ui-datepicker-week-end-cell {
- background: #E0F4D7;
-}
-.ui-datepicker .ui-datepicker-days-cell-over {
- background: #FFF;
- border: 1px solid #777;
-}
-.ui-datepicker .ui-datepicker-unselectable {
- color: #888;
-}
-.ui-datepicker-today {
- background: #B1DB87 !important;
-}
-.ui-datepicker-current-day {
- background: #83C948 !important;
-}
-#ui-datepicker-div a, .ui-datepicker-inline a {
- cursor: pointer;
- margin: 0;
- padding: 0;
- background: none;
- color: #000;
-}
-.ui-datepicker-inline .ui-datepicker-links a {
- padding: 0 5px !important;
-}
-.ui-datepicker-control a, .ui-datepicker-links a {
- padding: 2px 5px !important;
- color: #000 !important;
-}
-.ui-datepicker-title-row a {
- color: #000 !important;
-}
-.ui-datepicker-control a:hover {
- background: #FDD !important;
- color: #333 !important;
-}
-.ui-datepicker-links a:hover, .ui-datepicker-title-row a:hover {
- background: #FFF !important;
- color: #333 !important;
-}
-.ui-datepicker-multi .ui-datepicker {
- border: 1px solid #83C948;
-}
-.ui-datepicker-one-month {
- float: left;
- width: 185px;
-}
-.ui-datepicker-new-row {
- clear: left;
-}
-.ui-datepicker-cover {
- display: none;
- display/**/: block;
- position: absolute;
- z-index: -1;
- filter: mask();
- top: -4px;
- left: -4px;
- width: 193px;
- height: 200px;
-}
diff --git a/ui/themes/flora/flora.dialog.css b/ui/themes/flora/flora.dialog.css
deleted file mode 100644
index 10d1b63b6..000000000
--- a/ui/themes/flora/flora.dialog.css
+++ /dev/null
@@ -1,95 +0,0 @@
-/* This file skins dialog */
-
-.flora .ui-dialog,
-.flora.ui-dialog {
- background-color: #e6f7d4;
-}
-
-.flora .ui-dialog .ui-dialog-titlebar,
-.flora.ui-dialog .ui-dialog-titlebar {
- border-bottom: 1px solid #d8d2aa;
- background: #ff9900 url(i/dialog-title.gif) repeat-x;
- padding: 0px;
- height: 28px;
- _height: 29px;
-}
-
-.flora .ui-dialog.ui-draggable .ui-dialog-titlebar,
-.flora.ui-dialog.ui-draggable .ui-dialog-titlebar {
- cursor: move;
-}
-
-.flora .ui-dialog .ui-dialog-titlebar-close,
-.flora.ui-dialog .ui-dialog-titlebar-close {
- width: 16px;
- height: 16px;
- background: url(i/dialog-titlebar-close.png) no-repeat;
- position:absolute;
- top: 6px;
- right: 7px;
- cursor: default;
-}
-
-.flora .ui-dialog .ui-dialog-titlebar-close span,
-.flora.ui-dialog .ui-dialog-titlebar-close span {
- display: none;
-}
-
-.flora .ui-dialog .ui-dialog-titlebar-close-hover,
-.flora.ui-dialog .ui-dialog-titlebar-close-hover {
- background: url(i/dialog-titlebar-close-hover.png) no-repeat;
-}
-
-.flora .ui-dialog .ui-dialog-title,
-.flora.ui-dialog .ui-dialog-title {
- margin-left: 5px;
- color: white;
- font-weight: bold;
- position: relative;
- top: 7px;
- left: 4px;
-}
-
-.flora .ui-dialog .ui-dialog-content,
-.flora.ui-dialog .ui-dialog-content {
- margin: 1.2em;
-}
-
-.flora .ui-dialog .ui-dialog-buttonpane,
-.flora.ui-dialog .ui-dialog-buttonpane {
- position: absolute;
- bottom: 8px;
- right: 12px;
- width: 100%;
- text-align: right;
-}
-
-.flora .ui-dialog .ui-dialog-buttonpane button,
-.flora.ui-dialog .ui-dialog-buttonpane button {
- margin: 6px;
-}
-
-/* Dialog handle styles */
-.flora .ui-dialog .ui-resizable-n,
-.flora.ui-dialog .ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(i/dialog-n.gif) repeat scroll center top; }
-
-.flora .ui-dialog .ui-resizable-s,
-.flora.ui-dialog .ui-resizable-s { cursor: s-resize; height: 8px; width: 100%; bottom: 0px; left: 0px; background: transparent url(i/dialog-s.gif) repeat scroll center top; }
-
-.flora .ui-dialog .ui-resizable-e,
-.flora.ui-dialog .ui-resizable-e { cursor: e-resize; width: 7px; right: 0px; top: 0px; height: 100%; background: transparent url(i/dialog-e.gif) repeat scroll right center; }
-
-.flora .ui-dialog .ui-resizable-w,
-.flora.ui-dialog .ui-resizable-w { cursor: w-resize; width: 7px; left: 0px; top: 0px; height: 100%; background: transparent url(i/dialog-w.gif) repeat scroll right center; }
-
-.flora .ui-dialog .ui-resizable-se,
-.flora.ui-dialog .ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(i/dialog-se.gif); }
-
-.flora .ui-dialog .ui-resizable-sw,
-.flora.ui-dialog .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(i/dialog-sw.gif); }
-
-.flora .ui-dialog .ui-resizable-nw,
-.flora.ui-dialog .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 29px; left: 0px; top: 0px; background: transparent url(i/dialog-nw.gif); }
-
-.flora .ui-dialog .ui-resizable-ne,
-.flora.ui-dialog .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 29px; right: 0px; top: 0px; background: transparent url(i/dialog-ne.gif); }
diff --git a/ui/themes/flora/flora.resizable.css b/ui/themes/flora/flora.resizable.css
deleted file mode 100644
index 9c9a5433d..000000000
--- a/ui/themes/flora/flora.resizable.css
+++ /dev/null
@@ -1,20 +0,0 @@
-/* This file skins resizables */
-
-.ui-resizable { position: relative; }
-
-/* Global handle styles */
-.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; }
-.ui-resizable .ui-resizable-handle { display: block; }
-body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
-body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */
-
-.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(i/resizable-n.gif) repeat scroll center top; }
-.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(i/resizable-s.gif) repeat scroll center top; }
-
-.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(i/resizable-e.gif) repeat scroll right center; }
-.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(i/resizable-w.gif) repeat scroll right center; }
-
-.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(i/resizable-se.gif); }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(i/resizable-sw.gif); }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(i/resizable-nw.gif); }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(i/resizable-ne.gif); } \ No newline at end of file
diff --git a/ui/themes/flora/flora.slider.css b/ui/themes/flora/flora.slider.css
deleted file mode 100644
index 4e9ca8069..000000000
--- a/ui/themes/flora/flora.slider.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/* This file skins sliders */
-
-.ui-slider { width: 200px; height: 23px; position: relative; background-repeat: no-repeat; background-position: center center; }
-.ui-slider-handle { position: absolute; z-index: 1; height: 23px; width: 12px; top: 0px; left: 0px; background-image: url(i/slider-handle.gif); }
-.ui-slider-handle-active { border: 1px dotted black; }
-.ui-slider-disabled .ui-slider-handle { opacity: 0.5; filter: alpha(opacity=50); }
-.ui-slider-range { position: absolute; background: #50A029; opacity: 0.3; filter: alpha(opacity=30); width: 100%; height: 100%; }
-
-/* Default slider backgrounds */
-.ui-slider, .ui-slider-1 { background-image: url(i/slider-bg-1.png); }
-.ui-slider-2 { background-image: url(i/slider-bg-2.png); }
diff --git a/ui/themes/flora/flora.tabs.css b/ui/themes/flora/flora.tabs.css
deleted file mode 100644
index c79a17e63..000000000
--- a/ui/themes/flora/flora.tabs.css
+++ /dev/null
@@ -1,105 +0,0 @@
-@import "flora.css";
-
-/* Caution! Ensure accessibility in print and other media types... */
-@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
- .ui-tabs-hide {
- display: none;
- }
-}
-
-/* Hide useless elements in print layouts... */
-@media print {
- .ui-tabs-nav {
- display: none;
- }
-}
-
-/* Skin */
-.ui-tabs-nav, .ui-tabs-panel {
- font-family: "Trebuchet MS", Trebuchet, Verdana, Helvetica, Arial, sans-serif;
- font-size: 12px;
-}
-.ui-tabs-nav {
- list-style: none;
- margin: 0;
- padding: 0 0 0 3px;
-}
-.ui-tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
- display: block;
- clear: both;
- content: " ";
-}
-.ui-tabs-nav li {
- float: left;
- margin: 0 0 0 2px;
- font-weight: bold;
-}
-.ui-tabs-nav a, .ui-tabs-nav a span {
- float: left; /* fixes dir=ltr problem and other quirks IE */
- padding: 0 12px;
- background: url(i/tabs.png) no-repeat;
-}
-.ui-tabs-nav a {
- margin: 5px 0 0; /* position: relative makes opacity fail for disabled tab in IE */
- padding-left: 0;
- background-position: 100% 0;
- text-decoration: none;
- white-space: nowrap; /* @ IE 6 */
- outline: 0; /* @ Firefox, prevent dotted border after click */
-}
-.ui-tabs-nav a:link, .ui-tabs-nav a:visited {
- color: #fff;
-}
-.ui-tabs-nav .ui-tabs-selected a {
- position: relative;
- top: 1px;
- z-index: 2;
- margin-top: 0;
- background-position: 100% -23px;
-}
-.ui-tabs-nav a span {
- padding-top: 1px;
- padding-right: 0;
- height: 20px;
- background-position: 0 0;
- line-height: 20px;
-}
-.ui-tabs-nav .ui-tabs-selected a span {
- padding-top: 0;
- height: 27px;
- background-position: 0 -23px;
- line-height: 27px;
-}
-.ui-tabs-nav .ui-tabs-selected a:link, .ui-tabs-nav .ui-tabs-selected a:visited,
-.ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
- cursor: text;
-}
-.ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active,
-.ui-tabs-nav .ui-tabs-unselect a:hover, .ui-tabs-nav .ui-tabs-unselect a:focus, .ui-tabs-nav .ui-tabs-unselect a:active { /* @ Opera, we need to be explicit again here now... */
- cursor: pointer;
-}
-.ui-tabs-disabled {
- opacity: .4;
- filter: alpha(opacity=40);
-}
-.ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited {
- color: #000;
-}
-.ui-tabs-panel {
- border: 1px solid #519e2d;
- padding: 10px;
- background: #fff; /* declare background color for container to avoid distorted fonts in IE while fading */
-}
-/*.ui-tabs-loading em {
- padding: 0 0 0 20px;
- background: url(loading.gif) no-repeat 0 50%;
-}*/
-
-/* Additional IE specific bug fixes... */
-* html .ui-tabs-nav { /* auto clear @ IE 6 & IE 7 Quirks Mode */
- display: inline-block;
-}
-*:first-child+html .ui-tabs-nav { /* auto clear @ IE 7 Standards Mode - do not group selectors, otherwise IE 6 will ignore complete rule (because of the unknown + combinator)... */
- display: inline-block;
-}
-
diff --git a/ui/themes/flora/i/accordion-left-act.png b/ui/themes/flora/i/accordion-left-act.png
deleted file mode 100644
index bf6ee995b..000000000
--- a/ui/themes/flora/i/accordion-left-act.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-left-over.png b/ui/themes/flora/i/accordion-left-over.png
deleted file mode 100644
index 66378e0e6..000000000
--- a/ui/themes/flora/i/accordion-left-over.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-left.png b/ui/themes/flora/i/accordion-left.png
deleted file mode 100644
index 13344fc9f..000000000
--- a/ui/themes/flora/i/accordion-left.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-middle-act.png b/ui/themes/flora/i/accordion-middle-act.png
deleted file mode 100644
index cecf4f150..000000000
--- a/ui/themes/flora/i/accordion-middle-act.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-middle-over.png b/ui/themes/flora/i/accordion-middle-over.png
deleted file mode 100644
index 251ad11f9..000000000
--- a/ui/themes/flora/i/accordion-middle-over.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-middle.png b/ui/themes/flora/i/accordion-middle.png
deleted file mode 100644
index 5238fd414..000000000
--- a/ui/themes/flora/i/accordion-middle.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-right-act.png b/ui/themes/flora/i/accordion-right-act.png
deleted file mode 100644
index 1fa479280..000000000
--- a/ui/themes/flora/i/accordion-right-act.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-right-over.png b/ui/themes/flora/i/accordion-right-over.png
deleted file mode 100644
index d676dad80..000000000
--- a/ui/themes/flora/i/accordion-right-over.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/accordion-right.png b/ui/themes/flora/i/accordion-right.png
deleted file mode 100644
index 543991a2b..000000000
--- a/ui/themes/flora/i/accordion-right.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-e.gif b/ui/themes/flora/i/dialog-e.gif
deleted file mode 100644
index 3b8b52189..000000000
--- a/ui/themes/flora/i/dialog-e.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-n.gif b/ui/themes/flora/i/dialog-n.gif
deleted file mode 100644
index 70887b89b..000000000
--- a/ui/themes/flora/i/dialog-n.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-ne.gif b/ui/themes/flora/i/dialog-ne.gif
deleted file mode 100644
index ab9c38e57..000000000
--- a/ui/themes/flora/i/dialog-ne.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-nw.gif b/ui/themes/flora/i/dialog-nw.gif
deleted file mode 100644
index e93407333..000000000
--- a/ui/themes/flora/i/dialog-nw.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-s.gif b/ui/themes/flora/i/dialog-s.gif
deleted file mode 100644
index d5f6b99b0..000000000
--- a/ui/themes/flora/i/dialog-s.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-se.gif b/ui/themes/flora/i/dialog-se.gif
deleted file mode 100644
index 186a8640a..000000000
--- a/ui/themes/flora/i/dialog-se.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-sw.gif b/ui/themes/flora/i/dialog-sw.gif
deleted file mode 100644
index 025dfda84..000000000
--- a/ui/themes/flora/i/dialog-sw.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-title.gif b/ui/themes/flora/i/dialog-title.gif
deleted file mode 100644
index 156c59b99..000000000
--- a/ui/themes/flora/i/dialog-title.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-titlebar-close-hover.png b/ui/themes/flora/i/dialog-titlebar-close-hover.png
deleted file mode 100644
index 67c1303e9..000000000
--- a/ui/themes/flora/i/dialog-titlebar-close-hover.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-titlebar-close.png b/ui/themes/flora/i/dialog-titlebar-close.png
deleted file mode 100644
index cec974c89..000000000
--- a/ui/themes/flora/i/dialog-titlebar-close.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/dialog-w.gif b/ui/themes/flora/i/dialog-w.gif
deleted file mode 100644
index 931ff4abe..000000000
--- a/ui/themes/flora/i/dialog-w.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-e.gif b/ui/themes/flora/i/resizable-e.gif
deleted file mode 100644
index 7acf24836..000000000
--- a/ui/themes/flora/i/resizable-e.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-n.gif b/ui/themes/flora/i/resizable-n.gif
deleted file mode 100644
index 59110f677..000000000
--- a/ui/themes/flora/i/resizable-n.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-ne.gif b/ui/themes/flora/i/resizable-ne.gif
deleted file mode 100644
index 515a3f88d..000000000
--- a/ui/themes/flora/i/resizable-ne.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-nw.gif b/ui/themes/flora/i/resizable-nw.gif
deleted file mode 100644
index 665f31890..000000000
--- a/ui/themes/flora/i/resizable-nw.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-s.gif b/ui/themes/flora/i/resizable-s.gif
deleted file mode 100644
index da2fb3512..000000000
--- a/ui/themes/flora/i/resizable-s.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-se.gif b/ui/themes/flora/i/resizable-se.gif
deleted file mode 100644
index 6c258ef2a..000000000
--- a/ui/themes/flora/i/resizable-se.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-sw.gif b/ui/themes/flora/i/resizable-sw.gif
deleted file mode 100644
index 2fd8de4dc..000000000
--- a/ui/themes/flora/i/resizable-sw.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/resizable-w.gif b/ui/themes/flora/i/resizable-w.gif
deleted file mode 100644
index 34b875b95..000000000
--- a/ui/themes/flora/i/resizable-w.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/slider-bg-1.png b/ui/themes/flora/i/slider-bg-1.png
deleted file mode 100644
index b7d806ed6..000000000
--- a/ui/themes/flora/i/slider-bg-1.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/slider-bg-2.png b/ui/themes/flora/i/slider-bg-2.png
deleted file mode 100644
index 8b24cf091..000000000
--- a/ui/themes/flora/i/slider-bg-2.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/slider-handle.gif b/ui/themes/flora/i/slider-handle.gif
deleted file mode 100644
index 9b89f2664..000000000
--- a/ui/themes/flora/i/slider-handle.gif
+++ /dev/null
Binary files differ
diff --git a/ui/themes/flora/i/tabs.png b/ui/themes/flora/i/tabs.png
deleted file mode 100644
index 8018e41c8..000000000
--- a/ui/themes/flora/i/tabs.png
+++ /dev/null
Binary files differ
diff --git a/ui/themes/ui.datepicker.css b/ui/themes/ui.datepicker.css
deleted file mode 100644
index 408bd1e11..000000000
--- a/ui/themes/ui.datepicker.css
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Main Style Sheet for jQuery UI date picker */
-#ui-datepicker-div, .ui-datepicker-inline {
- font-family: Arial, Helvetica, sans-serif;
- font-size: 14px;
- padding: 0;
- margin: 0;
- background: #ddd;
- width: 185px;
-}
-#ui-datepicker-div {
- display: none;
- border: 1px solid #777;
- z-index: 9999; /*must have*/
-}
-.ui-datepicker-inline {
- float: left;
- display: block;
- border: 0;
-}
-.ui-datepicker-rtl {
- direction: rtl;
-}
-.ui-datepicker-dialog {
- padding: 5px !important;
- border: 4px ridge #ddd !important;
-}
-button.ui-datepicker-trigger {
- width: 25px;
-}
-img.ui-datepicker-trigger {
- margin: 2px;
- vertical-align: middle;
-}
-.ui-datepicker-prompt {
- float: left;
- padding: 2px;
- background: #ddd;
- color: #000;
-}
-* html .ui-datepicker-prompt {
- width: 185px;
-}
-.ui-datepicker-control, .ui-datepicker-links, .ui-datepicker-header, .ui-datepicker {
- clear: both;
- float: left;
- width: 100%;
- color: #fff;
-}
-.ui-datepicker-control {
- background: #400;
- padding: 2px 0px;
-}
-.ui-datepicker-links {
- background: #000;
- padding: 2px 0px;
-}
-.ui-datepicker-control, .ui-datepicker-links {
- font-weight: bold;
- font-size: 80%;
-}
-.ui-datepicker-links label { /* disabled links */
- padding: 2px 5px;
- color: #888;
-}
-.ui-datepicker-clear, .ui-datepicker-prev {
- float: left;
- width: 34%;
-}
-.ui-datepicker-rtl .ui-datepicker-clear, .ui-datepicker-rtl .ui-datepicker-prev {
- float: right;
- text-align: right;
-}
-.ui-datepicker-current {
- float: left;
- width: 30%;
- text-align: center;
-}
-.ui-datepicker-close, .ui-datepicker-next {
- float: right;
- width: 34%;
- text-align: right;
-}
-.ui-datepicker-rtl .ui-datepicker-close, .ui-datepicker-rtl .ui-datepicker-next {
- float: left;
- text-align: left;
-}
-.ui-datepicker-header {
- padding: 1px 0 3px;
- background: #333;
- text-align: center;
- font-weight: bold;
- height: 1.3em;
-}
-.ui-datepicker-header select {
- background: #333;
- color: #fff;
- border: 0px;
- font-weight: bold;
-}
-.ui-datepicker {
- background: #ccc;
- text-align: center;
- font-size: 100%;
-}
-.ui-datepicker a {
- display: block;
- width: 100%;
-}
-.ui-datepicker-title-row {
- background: #777;
-}
-.ui-datepicker-days-row {
- background: #eee;
- color: #666;
-}
-.ui-datepicker-week-col {
- background: #777;
- color: #fff;
-}
-.ui-datepicker-days-cell {
- color: #000;
- border: 1px solid #ddd;
-}
-.ui-datepicker-days-cell a{
- display: block;
-}
-.ui-datepicker-week-end-cell {
- background: #ddd;
-}
-.ui-datepicker-title-row .ui-datepicker-week-end-cell {
- background: #777;
-}
-.ui-datepicker-days-cell-over {
- background: #fff;
- border: 1px solid #777;
-}
-.ui-datepicker-unselectable {
- color: #888;
-}
-.ui-datepicker-today {
- background: #fcc !important;
-}
-.ui-datepicker-current-day {
- background: #999 !important;
-}
-.ui-datepicker-status {
- background: #ddd;
- width: 100%;
- font-size: 80%;
- text-align: center;
-}
-
-/* ________ Datepicker Links _______
-
-** Reset link properties and then override them with !important */
-#ui-datepicker-div a, .ui-datepicker-inline a {
- cursor: pointer;
- margin: 0;
- padding: 0;
- background: none;
- color: #000;
-}
-.ui-datepicker-inline .ui-datepicker-links a {
- padding: 0 5px !important;
-}
-.ui-datepicker-control a, .ui-datepicker-links a {
- padding: 2px 5px !important;
- color: #eee !important;
-}
-.ui-datepicker-title-row a {
- color: #eee !important;
-}
-.ui-datepicker-control a:hover {
- background: #fdd !important;
- color: #333 !important;
-}
-.ui-datepicker-links a:hover, .ui-datepicker-title-row a:hover {
- background: #ddd !important;
- color: #333 !important;
-}
-
-/* ___________ MULTIPLE MONTHS _________*/
-
-.ui-datepicker-multi .ui-datepicker {
- border: 1px solid #777;
-}
-.ui-datepicker-one-month {
- float: left;
- width: 185px;
-}
-.ui-datepicker-new-row {
- clear: left;
-}
-
-/* ___________ IE6 IFRAME FIX ________ */
-
-.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/ui/version.txt b/ui/version.txt
deleted file mode 100644
index d881885ea..000000000
--- a/ui/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-1.5rc1 \ No newline at end of file