From 7bc0e463054e683ed9a631ee6182b91132cdbc13 Mon Sep 17 00:00:00 2001 From: Vladislav Khorev Date: Fri, 21 Nov 2014 08:26:20 +0000 Subject: [PATCH] trunk --- yii/assets/14c4eb31/pager.css | 66 + yii/assets/254ed3a0/css/ie.css | 35 + yii/assets/254ed3a0/css/main.css | 528 + yii/assets/254ed3a0/css/print.css | 29 + yii/assets/254ed3a0/css/screen.css | 235 + yii/assets/254ed3a0/images/logo.png | Bin 0 -> 7207 bytes yii/assets/254ed3a0/js/fancybox/blank.gif | Bin 0 -> 43 bytes .../254ed3a0/js/fancybox/fancy_close.png | Bin 0 -> 1075 bytes .../254ed3a0/js/fancybox/fancy_loading.png | Bin 0 -> 8132 bytes .../254ed3a0/js/fancybox/fancy_nav_left.png | Bin 0 -> 1029 bytes .../254ed3a0/js/fancybox/fancy_nav_right.png | Bin 0 -> 1034 bytes .../254ed3a0/js/fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes .../254ed3a0/js/fancybox/fancy_shadow_n.png | Bin 0 -> 101 bytes .../254ed3a0/js/fancybox/fancy_shadow_ne.png | Bin 0 -> 313 bytes .../254ed3a0/js/fancybox/fancy_shadow_nw.png | Bin 0 -> 310 bytes .../254ed3a0/js/fancybox/fancy_shadow_s.png | Bin 0 -> 107 bytes .../254ed3a0/js/fancybox/fancy_shadow_se.png | Bin 0 -> 330 bytes .../254ed3a0/js/fancybox/fancy_shadow_sw.png | Bin 0 -> 317 bytes .../254ed3a0/js/fancybox/fancy_shadow_w.png | Bin 0 -> 99 bytes .../254ed3a0/js/fancybox/fancy_title_left.png | Bin 0 -> 496 bytes .../254ed3a0/js/fancybox/fancy_title_main.png | Bin 0 -> 96 bytes .../254ed3a0/js/fancybox/fancy_title_over.png | Bin 0 -> 68 bytes .../js/fancybox/fancy_title_right.png | Bin 0 -> 495 bytes .../254ed3a0/js/fancybox/fancybox-x.png | Bin 0 -> 159 bytes .../254ed3a0/js/fancybox/fancybox-y.png | Bin 0 -> 128 bytes yii/assets/254ed3a0/js/fancybox/fancybox.png | Bin 0 -> 14353 bytes .../js/fancybox/jquery.fancybox-1.3.1.css | 363 + .../js/fancybox/jquery.fancybox-1.3.1.pack.js | 44 + yii/assets/254ed3a0/js/main.js | 79 + yii/assets/254ed3a0/js/tooltip.js | 364 + .../7b3570a4/autocomplete/indicator.gif | Bin 0 -> 1553 bytes .../autocomplete/jquery.autocomplete.css | 48 + yii/assets/7b3570a4/jquery.ajaxqueue.js | 116 + yii/assets/7b3570a4/jquery.autocomplete.js | 813 ++ yii/assets/7b3570a4/jquery.ba-bbq.js | 1378 +++ yii/assets/7b3570a4/jquery.ba-bbq.min.js | 18 + yii/assets/7b3570a4/jquery.bgiframe.js | 39 + yii/assets/7b3570a4/jquery.cookie.js | 92 + yii/assets/7b3570a4/jquery.history.js | 1 + yii/assets/7b3570a4/jquery.js | 9472 +++++++++++++++++ yii/assets/7b3570a4/jquery.maskedinput.js | 338 + yii/assets/7b3570a4/jquery.maskedinput.min.js | 7 + yii/assets/7b3570a4/jquery.metadata.js | 148 + yii/assets/7b3570a4/jquery.min.js | 2 + yii/assets/7b3570a4/jquery.multifile.js | 536 + yii/assets/7b3570a4/jquery.rating.js | 376 + yii/assets/7b3570a4/jquery.treeview.async.js | 110 + yii/assets/7b3570a4/jquery.treeview.edit.js | 37 + yii/assets/7b3570a4/jquery.treeview.js | 256 + yii/assets/7b3570a4/jquery.yii.js | 52 + yii/assets/7b3570a4/jquery.yiiactiveform.js | 438 + yii/assets/7b3570a4/jquery.yiitab.js | 49 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 86 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 75 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 144 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 99 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 142 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 137 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 140 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 86 bytes .../base/images/ui-icons_222222_256x240.png | Bin 0 -> 3800 bytes .../base/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 3800 bytes .../base/images/ui-icons_454545_256x240.png | Bin 0 -> 3800 bytes .../base/images/ui-icons_888888_256x240.png | Bin 0 -> 3800 bytes .../base/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 3800 bytes .../7b3570a4/jui/css/base/jquery-ui.css | 10 + .../jui/css/base/jquery.ui.accordion.css | 5 + .../jui/css/base/jquery.ui.autocomplete.css | 5 + .../jui/css/base/jquery.ui.button.css | 5 + .../7b3570a4/jui/css/base/jquery.ui.core.css | 5 + .../jui/css/base/jquery.ui.datepicker.css | 5 + .../jui/css/base/jquery.ui.dialog.css | 5 + .../7b3570a4/jui/css/base/jquery.ui.menu.css | 5 + .../jui/css/base/jquery.ui.progressbar.css | 5 + .../jui/css/base/jquery.ui.resizable.css | 5 + .../jui/css/base/jquery.ui.selectable.css | 5 + .../jui/css/base/jquery.ui.slider.css | 5 + .../jui/css/base/jquery.ui.spinner.css | 5 + .../7b3570a4/jui/css/base/jquery.ui.tabs.css | 5 + .../7b3570a4/jui/css/base/jquery.ui.theme.css | 5 + .../jui/css/base/jquery.ui.tooltip.css | 5 + .../7b3570a4/jui/js/jquery-ui-i18n.min.js | 5 + yii/assets/7b3570a4/jui/js/jquery-ui.min.js | 6 + yii/assets/7b3570a4/punycode.js | 510 + yii/assets/7b3570a4/punycode.min.js | 2 + yii/assets/7b3570a4/rating/delete.gif | Bin 0 -> 752 bytes yii/assets/7b3570a4/rating/jquery.rating.css | 12 + yii/assets/7b3570a4/rating/star.gif | Bin 0 -> 815 bytes .../7b3570a4/treeview/images/ajax-loader.gif | Bin 0 -> 847 bytes yii/assets/7b3570a4/treeview/images/file.gif | Bin 0 -> 110 bytes .../treeview/images/folder-closed.gif | Bin 0 -> 105 bytes .../7b3570a4/treeview/images/folder.gif | Bin 0 -> 106 bytes yii/assets/7b3570a4/treeview/images/minus.gif | Bin 0 -> 837 bytes yii/assets/7b3570a4/treeview/images/plus.gif | Bin 0 -> 841 bytes .../treeview/images/treeview-black-line.gif | Bin 0 -> 1877 bytes .../treeview/images/treeview-black.gif | Bin 0 -> 1216 bytes .../treeview/images/treeview-default-line.gif | Bin 0 -> 1993 bytes .../treeview/images/treeview-default.gif | Bin 0 -> 1222 bytes .../images/treeview-famfamfam-line.gif | Bin 0 -> 807 bytes .../treeview/images/treeview-famfamfam.gif | Bin 0 -> 1280 bytes .../treeview/images/treeview-gray-line.gif | Bin 0 -> 1877 bytes .../treeview/images/treeview-gray.gif | Bin 0 -> 1230 bytes .../treeview/images/treeview-red-line.gif | Bin 0 -> 1877 bytes .../7b3570a4/treeview/images/treeview-red.gif | Bin 0 -> 1230 bytes .../7b3570a4/treeview/jquery.treeview.css | 74 + yii/assets/7b3570a4/yiitab/jquery.yiitab.css | 58 + yii/assets/a409c9d2/detailview/styles.css | 44 + yii/assets/a409c9d2/gridview/bg.gif | Bin 0 -> 243 bytes yii/assets/a409c9d2/gridview/delete.png | Bin 0 -> 715 bytes yii/assets/a409c9d2/gridview/down.gif | Bin 0 -> 55 bytes .../a409c9d2/gridview/jquery.yiigridview.js | 475 + yii/assets/a409c9d2/gridview/loading.gif | Bin 0 -> 1849 bytes yii/assets/a409c9d2/gridview/styles.css | 125 + yii/assets/a409c9d2/gridview/up.gif | Bin 0 -> 54 bytes yii/assets/a409c9d2/gridview/update.png | Bin 0 -> 713 bytes yii/assets/a409c9d2/gridview/view.png | Bin 0 -> 803 bytes yii/assets/a409c9d2/listview/down.gif | Bin 0 -> 55 bytes .../a409c9d2/listview/jquery.yiilistview.js | 181 + yii/assets/a409c9d2/listview/loading.gif | Bin 0 -> 1849 bytes yii/assets/a409c9d2/listview/styles.css | 56 + yii/assets/a409c9d2/listview/up.gif | Bin 0 -> 54 bytes yii/css/bg.gif | Bin 0 -> 243 bytes yii/css/form.css | 164 + yii/css/ie.css | 36 + yii/css/main.css | 229 + yii/css/print.css | 29 + yii/css/screen.css | 238 + yii/index-test.php | 15 + yii/index.php | 13 + yii/protected/.htaccess | 1 + yii/protected/components/Controller.php | 23 + yii/protected/components/UserIdentity.php | 37 + yii/protected/config/console.php | 37 + yii/protected/config/main.php | 87 + yii/protected/config/test.php | 17 + yii/protected/controllers/SiteController.php | 185 + yii/protected/data/schema.mysql.sql | 8 + yii/protected/models/AddPostForm.php | 25 + yii/protected/models/LoginForm.php | 77 + yii/protected/models/Post.php | 15 + yii/protected/models/RegisterForm.php | 45 + yii/protected/models/User.php | 23 + yii/protected/runtime/application.log | 323 + yii/protected/runtime/gii-1.1.15/FormCode.php | 5 + yii/protected/tests/WebTestCase.php | 25 + yii/protected/tests/bootstrap.php | 10 + yii/protected/tests/functional/SiteTest.php | 47 + yii/protected/tests/phpunit.xml | 13 + yii/protected/views/layouts/column1.php | 6 + yii/protected/views/layouts/column2.php | 22 + yii/protected/views/layouts/main.php | 59 + yii/protected/views/site/_view.php | 13 + yii/protected/views/site/addPost.php | 47 + yii/protected/views/site/error.php | 15 + yii/protected/views/site/index.php | 14 + yii/protected/views/site/login.php | 52 + yii/protected/views/site/pages/about.php | 12 + yii/protected/views/site/register.php | 47 + yii/protected/yiic | 4 + yii/protected/yiic.bat | 16 + yii/protected/yiic.php | 7 + yii/themes/classic/views/.htaccess | 1 + 162 files changed, 19744 insertions(+) create mode 100644 yii/assets/14c4eb31/pager.css create mode 100644 yii/assets/254ed3a0/css/ie.css create mode 100644 yii/assets/254ed3a0/css/main.css create mode 100644 yii/assets/254ed3a0/css/print.css create mode 100644 yii/assets/254ed3a0/css/screen.css create mode 100644 yii/assets/254ed3a0/images/logo.png create mode 100644 yii/assets/254ed3a0/js/fancybox/blank.gif create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_close.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_loading.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_nav_left.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_nav_right.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_e.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_n.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_ne.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_nw.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_s.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_se.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_sw.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_shadow_w.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_title_left.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_title_main.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_title_over.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancy_title_right.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancybox-x.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancybox-y.png create mode 100644 yii/assets/254ed3a0/js/fancybox/fancybox.png create mode 100644 yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.css create mode 100644 yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.pack.js create mode 100644 yii/assets/254ed3a0/js/main.js create mode 100644 yii/assets/254ed3a0/js/tooltip.js create mode 100644 yii/assets/7b3570a4/autocomplete/indicator.gif create mode 100644 yii/assets/7b3570a4/autocomplete/jquery.autocomplete.css create mode 100644 yii/assets/7b3570a4/jquery.ajaxqueue.js create mode 100644 yii/assets/7b3570a4/jquery.autocomplete.js create mode 100644 yii/assets/7b3570a4/jquery.ba-bbq.js create mode 100644 yii/assets/7b3570a4/jquery.ba-bbq.min.js create mode 100644 yii/assets/7b3570a4/jquery.bgiframe.js create mode 100644 yii/assets/7b3570a4/jquery.cookie.js create mode 100644 yii/assets/7b3570a4/jquery.history.js create mode 100644 yii/assets/7b3570a4/jquery.js create mode 100644 yii/assets/7b3570a4/jquery.maskedinput.js create mode 100644 yii/assets/7b3570a4/jquery.maskedinput.min.js create mode 100644 yii/assets/7b3570a4/jquery.metadata.js create mode 100644 yii/assets/7b3570a4/jquery.min.js create mode 100644 yii/assets/7b3570a4/jquery.multifile.js create mode 100644 yii/assets/7b3570a4/jquery.rating.js create mode 100644 yii/assets/7b3570a4/jquery.treeview.async.js create mode 100644 yii/assets/7b3570a4/jquery.treeview.edit.js create mode 100644 yii/assets/7b3570a4/jquery.treeview.js create mode 100644 yii/assets/7b3570a4/jquery.yii.js create mode 100644 yii/assets/7b3570a4/jquery.yiiactiveform.js create mode 100644 yii/assets/7b3570a4/jquery.yiitab.js create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-icons_222222_256x240.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-icons_2e83ff_256x240.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-icons_454545_256x240.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-icons_888888_256x240.png create mode 100644 yii/assets/7b3570a4/jui/css/base/images/ui-icons_cd0a0a_256x240.png create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery-ui.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.accordion.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.autocomplete.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.button.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.core.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.datepicker.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.dialog.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.menu.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.progressbar.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.resizable.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.selectable.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.slider.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.spinner.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.tabs.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.theme.css create mode 100644 yii/assets/7b3570a4/jui/css/base/jquery.ui.tooltip.css create mode 100644 yii/assets/7b3570a4/jui/js/jquery-ui-i18n.min.js create mode 100644 yii/assets/7b3570a4/jui/js/jquery-ui.min.js create mode 100644 yii/assets/7b3570a4/punycode.js create mode 100644 yii/assets/7b3570a4/punycode.min.js create mode 100644 yii/assets/7b3570a4/rating/delete.gif create mode 100644 yii/assets/7b3570a4/rating/jquery.rating.css create mode 100644 yii/assets/7b3570a4/rating/star.gif create mode 100644 yii/assets/7b3570a4/treeview/images/ajax-loader.gif create mode 100644 yii/assets/7b3570a4/treeview/images/file.gif create mode 100644 yii/assets/7b3570a4/treeview/images/folder-closed.gif create mode 100644 yii/assets/7b3570a4/treeview/images/folder.gif create mode 100644 yii/assets/7b3570a4/treeview/images/minus.gif create mode 100644 yii/assets/7b3570a4/treeview/images/plus.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-black-line.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-black.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-default-line.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-default.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-famfamfam-line.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-famfamfam.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-gray-line.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-gray.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-red-line.gif create mode 100644 yii/assets/7b3570a4/treeview/images/treeview-red.gif create mode 100644 yii/assets/7b3570a4/treeview/jquery.treeview.css create mode 100644 yii/assets/7b3570a4/yiitab/jquery.yiitab.css create mode 100644 yii/assets/a409c9d2/detailview/styles.css create mode 100644 yii/assets/a409c9d2/gridview/bg.gif create mode 100644 yii/assets/a409c9d2/gridview/delete.png create mode 100644 yii/assets/a409c9d2/gridview/down.gif create mode 100644 yii/assets/a409c9d2/gridview/jquery.yiigridview.js create mode 100644 yii/assets/a409c9d2/gridview/loading.gif create mode 100644 yii/assets/a409c9d2/gridview/styles.css create mode 100644 yii/assets/a409c9d2/gridview/up.gif create mode 100644 yii/assets/a409c9d2/gridview/update.png create mode 100644 yii/assets/a409c9d2/gridview/view.png create mode 100644 yii/assets/a409c9d2/listview/down.gif create mode 100644 yii/assets/a409c9d2/listview/jquery.yiilistview.js create mode 100644 yii/assets/a409c9d2/listview/loading.gif create mode 100644 yii/assets/a409c9d2/listview/styles.css create mode 100644 yii/assets/a409c9d2/listview/up.gif create mode 100644 yii/css/bg.gif create mode 100644 yii/css/form.css create mode 100644 yii/css/ie.css create mode 100644 yii/css/main.css create mode 100644 yii/css/print.css create mode 100644 yii/css/screen.css create mode 100644 yii/index-test.php create mode 100644 yii/index.php create mode 100644 yii/protected/.htaccess create mode 100644 yii/protected/components/Controller.php create mode 100644 yii/protected/components/UserIdentity.php create mode 100644 yii/protected/config/console.php create mode 100644 yii/protected/config/main.php create mode 100644 yii/protected/config/test.php create mode 100644 yii/protected/controllers/SiteController.php create mode 100644 yii/protected/data/schema.mysql.sql create mode 100644 yii/protected/models/AddPostForm.php create mode 100644 yii/protected/models/LoginForm.php create mode 100644 yii/protected/models/Post.php create mode 100644 yii/protected/models/RegisterForm.php create mode 100644 yii/protected/models/User.php create mode 100644 yii/protected/runtime/application.log create mode 100644 yii/protected/runtime/gii-1.1.15/FormCode.php create mode 100644 yii/protected/tests/WebTestCase.php create mode 100644 yii/protected/tests/bootstrap.php create mode 100644 yii/protected/tests/functional/SiteTest.php create mode 100644 yii/protected/tests/phpunit.xml create mode 100644 yii/protected/views/layouts/column1.php create mode 100644 yii/protected/views/layouts/column2.php create mode 100644 yii/protected/views/layouts/main.php create mode 100644 yii/protected/views/site/_view.php create mode 100644 yii/protected/views/site/addPost.php create mode 100644 yii/protected/views/site/error.php create mode 100644 yii/protected/views/site/index.php create mode 100644 yii/protected/views/site/login.php create mode 100644 yii/protected/views/site/pages/about.php create mode 100644 yii/protected/views/site/register.php create mode 100644 yii/protected/yiic create mode 100644 yii/protected/yiic.bat create mode 100644 yii/protected/yiic.php create mode 100644 yii/themes/classic/views/.htaccess diff --git a/yii/assets/14c4eb31/pager.css b/yii/assets/14c4eb31/pager.css new file mode 100644 index 0000000..e7c222e --- /dev/null +++ b/yii/assets/14c4eb31/pager.css @@ -0,0 +1,66 @@ +/** + * CSS styles for CLinkPager. + * + * @author Qiang Xue + * @link http://www.yiiframework.com/ + * @copyright 2008-2010 Yii Software LLC + * @license http://www.yiiframework.com/license/ + * @since 1.0 + */ + +ul.yiiPager +{ + font-size:11px; + border:0; + margin:0; + padding:0; + line-height:100%; + display:inline; +} + +ul.yiiPager li +{ + display:inline; +} + +ul.yiiPager a:link, +ul.yiiPager a:visited +{ + border:solid 1px #9aafe5; + font-weight:bold; + color:#0e509e; + padding:1px 6px; + text-decoration:none; +} + +ul.yiiPager .page a +{ + font-weight:normal; +} + +ul.yiiPager a:hover +{ + border:solid 1px #0e509e; +} + +ul.yiiPager .selected a +{ + background:#2e6ab1; + color:#FFFFFF; + font-weight:bold; +} + +ul.yiiPager .hidden a +{ + border:solid 1px #DEDEDE; + color:#888888; +} + +/** + * Hide first and last buttons by default. + */ +ul.yiiPager .first, +ul.yiiPager .last +{ + display:none; +} \ No newline at end of file diff --git a/yii/assets/254ed3a0/css/ie.css b/yii/assets/254ed3a0/css/ie.css new file mode 100644 index 0000000..f336f0e --- /dev/null +++ b/yii/assets/254ed3a0/css/ie.css @@ -0,0 +1,35 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 0.9 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* ie.css */ +body {text-align:center;} +.container {text-align:left;} +* html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {display:inline;overflow-x:hidden;} +* html legend {margin:0px -8px 16px 0;padding:0;} +sup {vertical-align:text-top;} +sub {vertical-align:text-bottom;} +html>body p code {*white-space:normal;} +hr {margin:-8px auto 11px;} +img {-ms-interpolation-mode:bicubic;} +.clearfix, .container {display:inline-block;} +* html .clearfix, * html .container {height:1%;} +fieldset {padding-top:0;} +textarea {overflow:auto;} +input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} +input.text:focus, input.title:focus {border-color:#666;} +input.text, input.title, textarea, select {margin:0.5em 0;} +input.checkbox, input.radio {position:relative;top:.25em;} +form.inline div, form.inline p {vertical-align:middle;} +form.inline label {position:relative;top:-0.25em;} +form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} +button, input.button {position:relative;top:0.25em;} \ No newline at end of file diff --git a/yii/assets/254ed3a0/css/main.css b/yii/assets/254ed3a0/css/main.css new file mode 100644 index 0000000..f67b1a3 --- /dev/null +++ b/yii/assets/254ed3a0/css/main.css @@ -0,0 +1,528 @@ +body +{ + margin: 0; + padding: 0; + color: #555; + font: normal 10pt Arial,Helvetica,Verdana,"DejaVu Sans","Bitstream Vera Sans",Geneva,sans-serif; + background: #EFEFEF; +} + +h1 +{ + font-size: 1.6em; + color: #666; +} + +h2 +{ + font-size: 1.4em; + color: #666; +} + +h3 +{ + font-size: 1.2em; + color: #666; +} + +#page +{ + margin-top: 5px; + margin-bottom: 5px; + background: white; + border: 1px solid #C9E0ED; +} + +#header +{ + padding: 0px; + margin: 0px 20px; + border-bottom: 1px solid #C9E0ED; +} + +#content +{ + padding: 20px; + min-height: 400px; +} + +#sidebar +{ + padding: 20px 0 20px 20px; +} + +#footer +{ + margin: 0 auto; + width: 950px; + font-size: 0.8em; + text-align: center; +} + +#logo +{ + padding: 5px 0px; +} + +#logo a +{ + text-decoration: none; +} + +#header .top-menus +{ + margin: 20px 0px; + float: right; +} + +div.flash-error, div.flash-notice, div.flash-success +{ + padding:.8em; + margin-bottom:1em; + border:2px solid #ddd; +} + +div.flash-error +{ + background:#FBE3E4; + color:#8a1f11; + border-color:#FBC2C4; +} + +div.flash-notice +{ + background:#FFF6BF; + color:#514721; + border-color:#FFD324; +} + +div.flash-success +{ + background:#E6EFC2; + color:#264409; + border-color:#C6D880; +} + +div.flash-error a +{ + color:#8a1f11; +} + +div.flash-notice a +{ + color:#514721; +} + +div.flash-success a +{ + color:#264409; +} + +div.view +{ + padding: 10px; + margin: 10px 0; + border: 1px solid #C9E0ED; +} + +div.breadcrumbs +{ + font-size: 0.9em; + padding: 5px 20px; +} + +div.breadcrumbs span +{ + font-weight: bold; +} + +div.search-form +{ + padding: 10px; + margin: 10px 0; + background: #eee; +} + +.portlet +{ + +} + +.portlet-decoration +{ + padding: 3px 8px; + background: #79B4DC; + border-left: 5px solid #6293B3; +} + +.portlet-title +{ + font-size: 12px; + font-weight: bold; + padding: 0; + margin: 0; + color: white; +} + +.portlet-content +{ + font-size:0.9em; + margin: 0 0 15px 0; + padding: 5px 8px; + background:#EFFDFF; +} + +.portlet-content ul +{ + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin: 0; + padding: 0; +} + +.portlet-content li +{ + padding: 2px 0 4px 0px; +} + +div.form +{ +} + +div.form input, +div.form textarea, +div.form select +{ + margin: 0.2em 0 0.5em 0; +} + +div.form fieldset +{ + border: 1px solid #DDD; + padding: 10px; + margin: 0 0 10px 0; + -moz-border-radius:7px; +} + +div.form label +{ + font-weight: bold; + font-size: 0.9em; + display: block; +} + +div.form .row +{ + margin: 5px 0; +} + +div.form .row.buttons +{ + padding: 5px; + margin: 10px 0; +} + +div.form .row.buttons input +{ + margin: 0; +} + +div.form .hint +{ + margin: 0; + padding: 0; + color: #999; +} + +div.form .note +{ + font-style: italic; +} + +div.form span.required +{ + color: red; +} + +div.form div.error label, +div.form label.error, +div.form span.error +{ + color: #C00; +} + +div.form div.error input, +div.form div.error textarea, +div.form div.error select, +div.form input.error, +div.form textarea.error, +div.form select.error +{ + background: #FEE; + border-color: #C00; +} + +div.form div.success input, +div.form div.success textarea, +div.form div.success select, +div.form input.success, +div.form textarea.success, +div.form select.success +{ + background: #E6EFC2; + border-color: #C6D880; +} + + +div.form .errorSummary +{ + border: 2px solid #C00; + padding: 7px 7px 12px 7px; + margin: 0 0 20px 0; + background: #FEE; + font-size: 0.9em; +} + +div.form .errorMessage +{ + color: red; + font-size: 0.9em; +} + +div.form .errorSummary p +{ + margin: 0; + padding: 5px; +} + +div.form .errorSummary ul +{ + margin: 0; + padding: 0 0 0 20px; +} + +div.wide.form label +{ + float: left; + margin-right: 10px; + position: relative; + text-align: right; + width: 100px; +} + +div.wide.form .row +{ + clear: left; +} + +div.wide.form .buttons, div.wide.form .hint, div.wide.form .errorMessage +{ + clear: left; + padding-left: 110px; +} + +div.form .tooltip +{ + display: none; + background-color:#EFFDFF; + border:1px solid #79B4DC; + padding: 10px; + width: 300px; +} + +div.form .tooltip ul +{ + margin: 0; + padding: 10px 0 0 20px; +} + +div.form .tooltip code +{ + color: #CA0EE3; + font-size:0.9em; +} + +div.form.login +{ + border: 1px solid #C9E0ED; + width: 200px; + margin: 0 auto; + margin-top: 50px; + margin-bottom: 50px; + padding: 20px 10px 10px 10px; + text-align: center; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +div.form.login p +{ + margin: 0 0 10px 0; +} + +div.form.gii .row.sticky .value, span.sticky +{ + padding: 3px; + background: lightyellow; +} + +div.form.gii .row.template select +{ + width: 420px; +} + +div.form.gii table.preview +{ + border-collapse: collapse; +} + +div.form.gii table.preview th +{ + text-align: center; +} + +div.form.gii table.preview th.confirm +{ + text-align: right; +} + +div.form.gii table.preview th.confirm label +{ + display: inline; +} + +div.form.gii table.preview td.confirm +{ + width: 80px; + text-align: right; +} + +div.form.gii table.preview td.confirm input +{ + margin:0; +} + +div.form.gii table.preview td.confirm label +{ + display: inline; + font-weight: normal; +} + +div.form.gii table.preview, +div.form.gii table.preview th, +div.form.gii table.preview td +{ + border: 1px solid #529EC6; +} + +div.form.gii table.preview tr.skip +{ + background-color: #eee; +} + +div.form.gii table.preview tr.new +{ + background-color: #C5FBBD; +} + +div.form.gii table.preview tr.overwrite +{ + background-color: #FFE0E1; +} + +div.form.gii pre.results +{ + overflow: auto; + background-color: gray; + max-height: 300px; + color: white; + padding: 10px; +} + +div.form.gii div.success +{ + background: #C5FBBD; + border: 1px solid #76C376; + padding: 10px; + margin: 10px 0; +} + +div.form.gii div.error +{ + background: #FFE0E1; + border: 1px solid #FFA0A2; + padding: 10px; + margin: 10px 0; +} + +div.form.gii div.success code +{ + overflow: auto; + display: block; + padding: 5px; + font-size: 12px; + background: white; +} + +div.form.gii pre.results span.error +{ + background: #FFE0E1; + color: black; + padding: 1px; +} + +#fancybox-inner .error +{ + color: red; +} + +#fancybox-inner .title +{ + font-size: 12px; + font-weight: bold; + text-decoration: underline; +} + +#fancybox-inner .buttons +{ + float: right; + padding: 0 10px 0 0; +} + +#fancybox-inner .content +{ + background: #F0F4FF; + text-align: left; +} + +#fancybox-inner pre.diff +{ + margin:0; +} + +#fancybox-inner pre.diff del +{ + background: pink; +} + +#fancybox-inner pre.diff ins +{ + background: lightgreen; + text-decoration: none; +} + +#fancybox-wrap #tip7-title +{ + text-align: left; +} + +#fancybox-wrap #tip7-title b +{ + display: block; +} + +#fancybox-wrap #tip7-title span +{ + float: right; +} diff --git a/yii/assets/254ed3a0/css/print.css b/yii/assets/254ed3a0/css/print.css new file mode 100644 index 0000000..fdb8220 --- /dev/null +++ b/yii/assets/254ed3a0/css/print.css @@ -0,0 +1,29 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 0.9 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* print.css */ +body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} +.container {background:none;} +hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} +hr.space {background:#fff;color:#fff;visibility:hidden;} +h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} +code {font:.9em "Courier New", Monaco, Courier, monospace;} +a img {border:none;} +p img.top {margin-top:0;} +blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} +.small {font-size:.9em;} +.large {font-size:1.1em;} +.quiet {color:#999;} +.hide {display:none;} +a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} +a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} \ No newline at end of file diff --git a/yii/assets/254ed3a0/css/screen.css b/yii/assets/254ed3a0/css/screen.css new file mode 100644 index 0000000..98eef32 --- /dev/null +++ b/yii/assets/254ed3a0/css/screen.css @@ -0,0 +1,235 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 0.9 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* reset.css */ +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;} +body {line-height:1.5;} +table {border-collapse:separate;border-spacing:0;} +caption, th, td {text-align:left;font-weight:normal;} +table, td, th {vertical-align:middle;} +blockquote:before, blockquote:after, q:before, q:after {content:"";} +blockquote, q {quotes:"" "";} +a img {border:none;} + +/* typography.css */ +html {font-size:100.01%;} +body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;} +h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} +h1 {font-size:2em;line-height:1;margin-bottom:0.5em;} +h2 {font-size:1.6em;margin-bottom:0.75em;} +h3 {font-size:1.4em;line-height:1;margin-bottom:1em;} +h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;} +h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} +h6 {font-size:1em;font-weight:bold;} +h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} +p {margin:0 0 1.5em;} +p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;} +p img.right {float:right;margin:1.5em 0 1.5em 1.5em;} +a:focus, a:hover {color:#000;} +a {color:#009;text-decoration:underline;} +blockquote {margin:1.5em;color:#666;font-style:italic;} +strong {font-weight:bold;} +em, dfn {font-style:italic;} +dfn {font-weight:bold;} +sup, sub {line-height:0;} +abbr, acronym {border-bottom:1px dotted #666;} +address {margin:0 0 1.5em;font-style:italic;} +del {color:#666;} +pre {margin:1.5em 0;white-space:pre;} +pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;} +li ul, li ol {margin:0;} +ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;} +ul {list-style-type:disc;} +ol {list-style-type:decimal;} +dl {margin:0 0 1.5em 0;} +dl dt {font-weight:bold;} +dd {margin-left:1.5em;} +table {margin-bottom:1.4em;width:100%;} +th {font-weight:bold;} +thead th {background:#c3d9ff;} +th, td, caption {padding:4px 10px 4px 5px;} +tfoot {font-style:italic;} +caption {background:#eee;} +.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} +.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} +.hide {display:none;} +.quiet {color:#666;} +.loud {color:#000;} +.highlight {background:#ff0;} +.added {background:#060;color:#fff;} +.removed {background:#900;color:#fff;} +.first {margin-left:0;padding-left:0;} +.last {margin-right:0;padding-right:0;} +.top {margin-top:0;padding-top:0;} +.bottom {margin-bottom:0;padding-bottom:0;} + +/* grid.css */ +.container {width:950px;margin:0 auto;} +.showgrid {background:url(src/grid.png);} +.column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;} +.last, div.last {margin-right:0;} +.span-1 {width:30px;} +.span-2 {width:70px;} +.span-3 {width:110px;} +.span-4 {width:150px;} +.span-5 {width:190px;} +.span-6 {width:230px;} +.span-7 {width:270px;} +.span-8 {width:310px;} +.span-9 {width:350px;} +.span-10 {width:390px;} +.span-11 {width:430px;} +.span-12 {width:470px;} +.span-13 {width:510px;} +.span-14 {width:550px;} +.span-15 {width:590px;} +.span-16 {width:630px;} +.span-17 {width:670px;} +.span-18 {width:710px;} +.span-19 {width:750px;} +.span-20 {width:790px;} +.span-21 {width:830px;} +.span-22 {width:870px;} +.span-23 {width:910px;} +.span-24, div.span-24 {width:950px;margin-right:0;} +input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;} +input.span-1, textarea.span-1 {width:18px!important;} +input.span-2, textarea.span-2 {width:58px!important;} +input.span-3, textarea.span-3 {width:98px!important;} +input.span-4, textarea.span-4 {width:138px!important;} +input.span-5, textarea.span-5 {width:178px!important;} +input.span-6, textarea.span-6 {width:218px!important;} +input.span-7, textarea.span-7 {width:258px!important;} +input.span-8, textarea.span-8 {width:298px!important;} +input.span-9, textarea.span-9 {width:338px!important;} +input.span-10, textarea.span-10 {width:378px!important;} +input.span-11, textarea.span-11 {width:418px!important;} +input.span-12, textarea.span-12 {width:458px!important;} +input.span-13, textarea.span-13 {width:498px!important;} +input.span-14, textarea.span-14 {width:538px!important;} +input.span-15, textarea.span-15 {width:578px!important;} +input.span-16, textarea.span-16 {width:618px!important;} +input.span-17, textarea.span-17 {width:658px!important;} +input.span-18, textarea.span-18 {width:698px!important;} +input.span-19, textarea.span-19 {width:738px!important;} +input.span-20, textarea.span-20 {width:778px!important;} +input.span-21, textarea.span-21 {width:818px!important;} +input.span-22, textarea.span-22 {width:858px!important;} +input.span-23, textarea.span-23 {width:898px!important;} +input.span-24, textarea.span-24 {width:938px!important;} +.append-1 {padding-right:40px;} +.append-2 {padding-right:80px;} +.append-3 {padding-right:120px;} +.append-4 {padding-right:160px;} +.append-5 {padding-right:200px;} +.append-6 {padding-right:240px;} +.append-7 {padding-right:280px;} +.append-8 {padding-right:320px;} +.append-9 {padding-right:360px;} +.append-10 {padding-right:400px;} +.append-11 {padding-right:440px;} +.append-12 {padding-right:480px;} +.append-13 {padding-right:520px;} +.append-14 {padding-right:560px;} +.append-15 {padding-right:600px;} +.append-16 {padding-right:640px;} +.append-17 {padding-right:680px;} +.append-18 {padding-right:720px;} +.append-19 {padding-right:760px;} +.append-20 {padding-right:800px;} +.append-21 {padding-right:840px;} +.append-22 {padding-right:880px;} +.append-23 {padding-right:920px;} +.prepend-1 {padding-left:40px;} +.prepend-2 {padding-left:80px;} +.prepend-3 {padding-left:120px;} +.prepend-4 {padding-left:160px;} +.prepend-5 {padding-left:200px;} +.prepend-6 {padding-left:240px;} +.prepend-7 {padding-left:280px;} +.prepend-8 {padding-left:320px;} +.prepend-9 {padding-left:360px;} +.prepend-10 {padding-left:400px;} +.prepend-11 {padding-left:440px;} +.prepend-12 {padding-left:480px;} +.prepend-13 {padding-left:520px;} +.prepend-14 {padding-left:560px;} +.prepend-15 {padding-left:600px;} +.prepend-16 {padding-left:640px;} +.prepend-17 {padding-left:680px;} +.prepend-18 {padding-left:720px;} +.prepend-19 {padding-left:760px;} +.prepend-20 {padding-left:800px;} +.prepend-21 {padding-left:840px;} +.prepend-22 {padding-left:880px;} +.prepend-23 {padding-left:920px;} +div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;} +div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;} +.pull-1 {margin-left:-40px;} +.pull-2 {margin-left:-80px;} +.pull-3 {margin-left:-120px;} +.pull-4 {margin-left:-160px;} +.pull-5 {margin-left:-200px;} +.pull-6 {margin-left:-240px;} +.pull-7 {margin-left:-280px;} +.pull-8 {margin-left:-320px;} +.pull-9 {margin-left:-360px;} +.pull-10 {margin-left:-400px;} +.pull-11 {margin-left:-440px;} +.pull-12 {margin-left:-480px;} +.pull-13 {margin-left:-520px;} +.pull-14 {margin-left:-560px;} +.pull-15 {margin-left:-600px;} +.pull-16 {margin-left:-640px;} +.pull-17 {margin-left:-680px;} +.pull-18 {margin-left:-720px;} +.pull-19 {margin-left:-760px;} +.pull-20 {margin-left:-800px;} +.pull-21 {margin-left:-840px;} +.pull-22 {margin-left:-880px;} +.pull-23 {margin-left:-920px;} +.pull-24 {margin-left:-960px;} +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;} +.push-1 {margin:0 -40px 1.5em 40px;} +.push-2 {margin:0 -80px 1.5em 80px;} +.push-3 {margin:0 -120px 1.5em 120px;} +.push-4 {margin:0 -160px 1.5em 160px;} +.push-5 {margin:0 -200px 1.5em 200px;} +.push-6 {margin:0 -240px 1.5em 240px;} +.push-7 {margin:0 -280px 1.5em 280px;} +.push-8 {margin:0 -320px 1.5em 320px;} +.push-9 {margin:0 -360px 1.5em 360px;} +.push-10 {margin:0 -400px 1.5em 400px;} +.push-11 {margin:0 -440px 1.5em 440px;} +.push-12 {margin:0 -480px 1.5em 480px;} +.push-13 {margin:0 -520px 1.5em 520px;} +.push-14 {margin:0 -560px 1.5em 560px;} +.push-15 {margin:0 -600px 1.5em 600px;} +.push-16 {margin:0 -640px 1.5em 640px;} +.push-17 {margin:0 -680px 1.5em 680px;} +.push-18 {margin:0 -720px 1.5em 720px;} +.push-19 {margin:0 -760px 1.5em 760px;} +.push-20 {margin:0 -800px 1.5em 800px;} +.push-21 {margin:0 -840px 1.5em 840px;} +.push-22 {margin:0 -880px 1.5em 880px;} +.push-23 {margin:0 -920px 1.5em 920px;} +.push-24 {margin:0 -960px 1.5em 960px;} +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;} +.prepend-top {margin-top:1.5em;} +.append-bottom {margin-bottom:1.5em;} +.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;} +hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;} +hr.space {background:#fff;color:#fff;visibility:hidden;} +.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;} +.clearfix, .container {display:block;} +.clear {clear:both;} \ No newline at end of file diff --git a/yii/assets/254ed3a0/images/logo.png b/yii/assets/254ed3a0/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a92024118dfd06aabcdf39afb6721477bf2254ae GIT binary patch literal 7207 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 literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/blank.gif b/yii/assets/254ed3a0/js/fancybox/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_close.png b/yii/assets/254ed3a0/js/fancybox/fancy_close.png new file mode 100644 index 0000000000000000000000000000000000000000..20bf87018168f0de5bf0e14f58de3e898a2abcd3 GIT binary patch literal 1075 zcmV-31kC%1P)R3*c`G9I!-vl=CHX@+-L&Z*}I?^AV7q5^`d>AkCqRFdTNe7HN3XT-|2tH z*I7~Fgq6Jl4D+KVSSp;Yo{uBnCjLE=y-cd)u0HtW{H84dpPN5mfvFTXGHP31wyk=k zIr*iAO&0DHNR@|QtPZa6x+K^bH$EQK?sLBs8h^fUhbTKUoNY}bsc2K`!|e17Td$qp z(O50HU{|8+sBN)39y;Al8KQ6Ufhh&kwKnxjo``)f)-Gqxa{pCOi0?Os15Sd`WoAi}xC`)c!puZg2Fx}cuS5+#4c6Ico-Q%1lD>tc6H-DjOd zse(^UxFNM+wr0;%muxS>=Hx_<=)1RlE8&I}0>g0Fz1y1q{G8}`RskX@VmXun11nM! z+^k{M(=8L-yMTIB!3h(Xm!uVmw)8ckb!xQ0RGJigWf3JB%qVdARGv>|EeN6vW-wn~ z8QI)H^r)a$_gq@R9~IFvIlU9tGeie^7S&=2tbpkBgq!xhMszE$fEq3{rlXpE#qg;k zjwewG8^iXh$okG+qTloXpX|LE1%5X(*M64a6UWd1FB}ZR>scS`A-bQRi%u5Nyjr^s z|1?eXX20!eEK^}|ZLll*50N$~X=+lfb(32Aep&lf9_EPZUlC{FDzPcN>-I&W*VQZQ z(ps%r>rUqsxRno+zhMU&wX{8Abk+8wpRze;PiphrFAK8|<4{J+>0*lL+&OH4+Atm! z>MRLg@5EJQo(t=4t~dF2`2n<{P8pQ|2|-iL-L-d^Sawe@gl2)eorH;a3h2kVVCQ@%!oW9|19%xSnf{@UBF>k6MRcw2HF~e3)P4s&S~}9hA=9fdFK0rHxAxN zTv|4cQ4FD%J#j?&mcEAc1<1G`5ybEU_TUZlnFdUQ7&HwS`}nkntuglcp)SCZ)eDKM zsX-JmJd3U9z)scKp1$ba=Pi}+v9Nu~e*002ovPDHLkV1gEs|G5AF literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_loading.png b/yii/assets/254ed3a0/js/fancybox/fancy_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..86759eab5c0d56127922546ecd989f5c3df0b3d4 GIT binary patch literal 8132 zcmYkBWmFVEyv3uK~h>mK)Q1Y zX?VPMUVWPRIA_kC`~TfLvHB1VQX)noEG#TiElpL!hm{8l3wwzG?_n1#yBUv#^*CNj zRmsTDY9I9mX7L+w=#D646dO5_8>trPkB~F}37na+Y4^b)0NOo^>;V6wfU{xa;Au*- zQEYL&h&j4esFi;g#&<$m)rc@gndCMRIU9I8Ar=y@je+v<|nY5Umwf+x)R2 zhPS)OCg+*9>qSRv_^7&oXW9h~h7yw>j-i}C;o-43uFbv>U1s-#i%a=+J|b#zTqC2f zRpvnAHN0QuP}QGJUe7vWck+r)TO*8i;&^{eSk6`Fr={PR{NyjY6x`x-2jw9J1*eY^ z_9Nl%&?9m@ykIsZN5VPItW$!jynpu@`9S=;?Th}%`x7!Hjis0R*KGtcu9F1?$*9T)K;+M$O;uG`)8b**N8_7MrFO zyhC9x$Dr{=zxIjo2;y1n6SQ~qv!$cMlU5lF>IrSrsc$9>HhH1q)|O zZxT{H>eY*{BK+A29}aRD4Rv0^zdvhre>Bw}IU(lAx(%Z-AuP!H7Uj663{MKUo2_(Y z?^S>N_;zfDMM+lN*H#T2GxM~jbBjtR1CWjk%Zg;J)Y+oWzCfCWDxA>u8!;l396KwX zE-0}vmrMo}>1G5YQ`iO?PJ2FNoVJ|q6`L@gJ|+&Gh+h|?gi(t)uOkd`b0NElA_?ku zdFOwZP#t{pQD91F|F0q0MBWHTYlR8WcZ&3QgbU6%rxRD(_O;tZUfqlL+^b^>BTDX! zC>_aT+R5%i7)^DgXzW+}^!Qst-bipvUaZUV^|}kbP=!hJY@1qTo&ttfPXaYU!o$ZQ z`xNPEF9_{4dpAsRkS8FL+%W9jZr)8Xj2I^~Q2=WA5aDWz`(pCn5e}2^HGh6|dn>Xm zmdaOzDtr3Ug{(#0jL&f*S^>wf*jfI%B~y%_0#C>U;Mpz+9WZ5wSLAuowoz3qnY}4D z599``0uo3Ws3voGvtXpt0>c4KA{~vy^k6PJ_~u4x^yNlv1#q;~S16 zY<|?ngk%StBPlH!IYSquIe℞OdG(?k0wG+D1Z=P4aEX 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 aQe=p)8fcce3w-#U$I?=RsFo?)!2bgv|Fsza literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_nav_left.png b/yii/assets/254ed3a0/js/fancybox/fancy_nav_left.png new file mode 100644 index 0000000000000000000000000000000000000000..69ebc3edc436008704212435320170b9fbf5cc9c GIT binary patch literal 1029 zcmV+g1p51lP)&v>w=VmAC%O!iBFTLlSU(fqN zSyVs=-Bx{@>^Jy~!`4xo-{3d2$y@bmIoB3K10~2XZCG{C`9b55Z(!Z=C&o6ld!nAV z-O=i58%&TPq2l3G4`a2h%lTp8o5;V%vX@Cj?&|%I&Of`O!R_EbFhZ~8I;Q5v%ANJ& z9f>m};_v+3Jc*e7Y=d{B%dWu8Tvy(!#qD^>H}zcpE>U)IEZdbrVkz5`?`P*1x%Ark z-EH-X9Tw61GBvMugngg)P=@I1g@!psCE1kxd4Y)QUTkV)ZZ2>MMkp=b_qrFRi6*lW z18qu)cQYzK-Q)5=VIir!0y1oCT(5TA|4Qw(oZ5>uDtbqxTZBBptf!By`FRVyKe#!XsG3(=~ftj(TF0eToBl@if^ISQePHDI7 zEaTA=XoU+_#&9_|hX#o5Evz_Skw4B8y%{$@iM0aDo4kG5e~8?3rJJPXQerko)bfhF zjO*lf|K2+niC#}LTakCA_`3Xx-DnfThEoo%-*x&Ji-)~V-Oy8NjB2OaDG{UWl9s}_V!H#+a5$0jV%p;gkzIf)l zBR7xSj9gkfg$axx#x-FCxmEEqB)EmS2LXieJoe)a4C;sU!x+{N=?3|0KbMBM)&ubX zYMx#wsKq)25yCdSfL`q3?B!qE7zVkf7TTv*^sdg`3OhGxzM+bsC literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_nav_right.png b/yii/assets/254ed3a0/js/fancybox/fancy_nav_right.png new file mode 100644 index 0000000000000000000000000000000000000000..99cb3dd41469455069c0d0a71ba51b23bba5fba8 GIT binary patch literal 1034 zcmV+l1oiugP)Y_^$Yb7Ej!h$ic3qBsm8Oc4rXL6d2sv5=5VlW7KS zB8C8&ahrZKCQ9b~;s+$6lZZxOVnT>SmN-LHNJiK9-5pO$Uw3PE&X@K+=hx@0_h4D5 zpoV&@rcHEfUAke@X|r4F*0zaTHBfV^kPjskAVR-k)uHP58;4x|>rOm2x~bg}bi8E` zR#lmyhX?_x@>By|mAR|>1J5^se~u?FQ8rRn?tOUv=^YJrEB}BF8YNdVH8fW2tRL$L zf1YD^z{`>kF>QXXM*N$)(X`R}|p~*&cZ>8C&9~SI_Tm ztCuV=GFKH-!)mMF^;r)kh`wHISYT9=O_84$iFoY!rbgz50vDiz)Z%=%dvTU%A}KIX zrVxH7k>+Q6Yz{~)1m;jdgn5na<&Jw_rDrWr%YtRu3eF^n!av{<)WXb44XB}CZS8FS zI7k$c?M3B-i5a<+Yr}IXqHo`{KMX7M5E#Q`wC(Kp;}fD&$>P%aC8FiLFHZFD1+<_J zW@x}(k{$|lN3Rk+5iQ28ku;xQYK;_dxH>OLSjOla=_j1kvIC zRZUm}Js_H^-R%coA-cJ!JY#2MMlR)FGCq6U^eAdzU~H`OYz~Hqeq*f6C!@qMyOhJ{ z7@t0gR@h)-3|sYPUq8`Z#^o12BRlgm{}>~BW6J^}xYV;@B5sST?srQ!=0Q zIRxR${Ylg?p$=Z5r{>6+OdA+Tl%soMai-Ik5yEzOvwu&i|B+a_hMvTNz}pvztATgJ2d&{P2z~l*Aip#vG`AMz8sFbb0ZgU z41Ms!lY1re%>WK;L_p{>4r2V|_rKquqL{rkaao+eAkzR><(omi4Z(tXc;V+|g$yGY zm%e!FyQ9~SUJp#Koy0gs5aJO(yj)e(hH~7<+yM`KcozHd8U{2&nqdrUhSUT6Z9hNt z@u&mY2B>JgkWhi_@% literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_shadow_e.png b/yii/assets/254ed3a0/js/fancybox/fancy_shadow_e.png new file mode 100644 index 0000000000000000000000000000000000000000..e29ddbac00e7163ac46df836273e9d8160346b63 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQbwLGjv*3LlSRZuwVbVfJX)&1P7s7;H^pbv%AMXm5=-Vqajgo_OA6g`PTET(C=?g z|6BE^ldACr3kGnj`iU#xR4u_aE*Pi;_Z5&92f!sIAcUSWiv>G`_{GC&IFNRei?T~M zrsTr<0J?qJMvi&0kZ{Y3nMr~f7;sG51TJKe1}@kPz#9=A8J3>T&GKx!u>8GZ;sdz& zCZ%HV0!`T6=N<%sl_?eA?E5FmhabpL5(EmV&0bRKH@2*53!w{(U|SsLgaFZAVFLS_ z0Ahwv0W<+<^#j(5Q%Vgxni97&Pe7JUxtSk;0&$bd41HQZm!tCnr?Pfxjr}Yx00000 LNkvXXu0mjfzP^JC literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_shadow_nw.png b/yii/assets/254ed3a0/js/fancybox/fancy_shadow_nw.png new file mode 100644 index 0000000000000000000000000000000000000000..a17c0fe7a3fbcfb488947e8975a47bb29428f7ba GIT binary patch literal 310 zcmV-60m=S}P)v->w372)0@g7``RDU7eC_*By;lwCJfARJH}lLp z-otQd7FV6pp=xT-`2iUiL@F{nq=vhiq2uupDvaACp`j<^(}c^UF&80S%n(?Z9nBlk z9n$y)In^);5(FvpP#rX^51SpFCGaa!rZn7;%^{SW*lZ*^KXQj0YHl>;hd|S$U5bQQ zf^9mGC~#NtuKSibvjXK^A{CQ0gt(cZVZkI|#$-WLM=oxPMRedMv?8f31@VzMRh6k| zhA{mWS(V(T)dutga@-|6f!lqXW|TN@Pk)=Ve_a}OT6F~2-tX&nRMNnWf&c&j07*qo IM6N<$f>k|*2><{9 literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_shadow_s.png b/yii/assets/254ed3a0/js/fancybox/fancy_shadow_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ceba06b7643422e9256891e249d4e67c5966b52a GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{H!3HFK_`(+gDI-r8#}J9B$pYe{rpZYO2|xIi z{xx;j7l<|e=63nh(*3u&TX9EE!cm?C29qh0I*iX484~&US9~=5Rs__|;OXk;vd$@? F2>?3@9ufcm literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_shadow_se.png b/yii/assets/254ed3a0/js/fancybox/fancy_shadow_se.png new file mode 100644 index 0000000000000000000000000000000000000000..567f2e7120f879462fbeee3d8860eb4848b97344 GIT binary patch literal 330 zcmV-Q0k!^#P)+Ti@?@btKoHfQ!C?yjP+_dvf9>!AM?9;!4w8f8cya@PKG~95*Tl=X#zD(s3rw z$dWb4$d4#-GLFZb5mr-8laRNU!l5w-0%RQd4Uh07$rEH9Er`_PM~EP7h=fL>L7F1G zkS~ry#e+p(9B1ks5gsaB$c~JvF==Y~OJB#(m=g}9#qTWo2%LWKmXvKR0E;cpIkv^!%;^BI5k+9dv6F!;ro%h| zwB|ffz!_;Cw$4%rWFZHIG~Nz@6xXOYXO>6cubLpNS23afdbqzo!2dkoBkX)z2=`ZX P00000NkvXXu0mjf|AK~^ literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_shadow_w.png b/yii/assets/254ed3a0/js/fancybox/fancy_shadow_w.png new file mode 100644 index 0000000000000000000000000000000000000000..7843c2ab0edbe876866232b16b406421a29a11d0 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQd*uajv*3LlT#X)3IhY(6pr#7 xQJBT4b%rU`*xAr}3R`Ef!&8SDqO1CO86-6rY8DCC9|r1T@O1TaS?83{1OO?*843UZ literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_title_left.png b/yii/assets/254ed3a0/js/fancybox/fancy_title_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2a68d05a4c7626bd9d791e2aa2865bdb2fc382e2 GIT binary patch literal 496 zcmV+)0005ENklz?n`0)yNh}n! z&?SR}I#xQU*bry~6>BjN10Pkz z$c2|m{O`l5+4HT-{X*!W0w2NCbupt5R#LO`GMf~+k?o6ErZ1fj4Qi7y%{l%*nC3tq z04A*4om9AXW*jOqF%H~RP_xi`eJ-+iq97kTDZ@|WpB<4;Sq=)Z<{AWNqas(gp<^rd z;wQAbBC@HuMc7F>0mA98BC(7WyD(@VlKmypk+NbpKAP#d%867TmBLlD&~Jx5RMX1f zzl;{Q#XpkTnr-ooxDIC9+Vd%0%j2ImgE6xAO_yr37M=~veOCnc9kH?NoCDufSz z%MOcAQcoLE#u9rLIhY4+qLX1JCgb0KYmLv@w<;z~IZ(?Zx_H3^b6@twjC?T#XyFM% zjPkC1^U}=wYCQ mztlw3(LjjSdn|a5f$soX;S$L4aUhcb0000J-`tuAq|`lK9780gCZ{B%rwF9}`7hrh ukvFM-ftpWh%88_ug7lONY?7xB@G-<1Np1VLZci7-5Q(YD2@yOD49ggnH0q`p Q1BDqpUHx3vIVCg!09pzRO#lD@ literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancy_title_right.png b/yii/assets/254ed3a0/js/fancybox/fancy_title_right.png new file mode 100644 index 0000000000000000000000000000000000000000..fa9318e17af7ab6e267559040ce77f0bb83821ae GIT binary patch literal 495 zcmV+)0005DNklprW#)$V_D=RthPl*kETlD`h20p=_qo#FA8qX^JU= zj2c0n^D?IYy)XAJ&$;*ibKbdt1+g&0gc!C#r6L(NBp{A7lR|kpe%kO)EI5z?D=Fq* z6cMSrRb+EdA}l&WL%e*PdKA)2#k<0aF1x`B`;w_9i6wt%izu-m`BbBhx^2Z>WQGzsB z41ev!r-4;rYo0%rmt9I*I!2`%iY@VHi}x}VvmW%KHfpLq z4&Flyz==}id_M`pG#K0p$+@Fzw+F*$M-}p;4=N(HdyGkfov1+(GNN%ffAIR3yyeRn zLqFP3O}$y#FwJpl6hr7i3*{6NOpNw?~OW8F!Tl+5ZHYo78aBKKo zuxM%C(f!+E&fBpFVdQ I&MBb@0CmMU$^ZZW literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/fancybox-y.png b/yii/assets/254ed3a0/js/fancybox/fancybox-y.png new file mode 100644 index 0000000000000000000000000000000000000000..9f6301d63e3c68660e53c3ca4456308dc2de00b7 GIT binary patch literal 128 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 U&Cnn4rG5Zq`FCHq)$ literal 0 HcmV?d00001 diff --git a/yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.css b/yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.css new file mode 100644 index 0000000..28bbb13 --- /dev/null +++ b/yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.css @@ -0,0 +1,363 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * + * Version: 1.3.1 (05/03/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + height: 40px; + width: 40px; + margin-top: -20px; + margin-left: -20px; + cursor: pointer; + overflow: hidden; + z-index: 1104; + display: none; +} + +* html #fancybox-loading { /* IE6 */ + position: absolute; + margin-top: 0; +} + +#fancybox-loading div { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 480px; + background-image: url('fancybox.png'); +} + +#fancybox-overlay { + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: #000; + z-index: 1100; + display: none; +} + +* html #fancybox-overlay { /* IE6 */ + position: absolute; + width: 100%; +} + +#fancybox-tmp { + padding: 0; + margin: 0; + border: 0; + overflow: auto; + display: none; +} + +#fancybox-wrap { + position: absolute; + top: 0; + left: 0; + margin: 0; + padding: 20px; + z-index: 1101; + display: none; +} + +#fancybox-outer { + position: relative; + width: 100%; + height: 100%; + background: #FFF; +} + +#fancybox-inner { + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 1px; + padding: 0; + margin: 0; + outline: none; + overflow: hidden; +} + +#fancybox-hide-sel-frame { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: transparent; +} + +#fancybox-close { + position: absolute; + top: -15px; + right: -15px; + width: 30px; + height: 30px; + background-image: url('fancybox.png'); + background-position: -40px 0px; + cursor: pointer; + z-index: 1103; + display: none; +} + +#fancybox_error { + color: #444; + font: normal 12px/20px Arial; + padding: 7px; + margin: 0; +} + +#fancybox-content { + height: auto; + width: auto; + padding: 0; + margin: 0; +} + +#fancybox-img { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + border: none; + outline: none; + line-height: 0; + vertical-align: top; + -ms-interpolation-mode: bicubic; +} + +#fancybox-frame { + position: relative; + width: 100%; + height: 100%; + border: none; + display: block; +} + +#fancybox-title { + position: absolute; + bottom: 0; + left: 0; + font-family: Arial; + font-size: 12px; + z-index: 1102; +} + +.fancybox-title-inside { + padding: 10px 0; + text-align: center; + color: #333; +} + +.fancybox-title-outside { + padding-top: 5px; + color: #FFF; + text-align: center; + font-weight: bold; +} + +.fancybox-title-over { + color: #FFF; + text-align: left; +} + +#fancybox-title-over { + padding: 10px; + background-image: url('fancy_title_over.png'); + display: block; +} + +#fancybox-title-wrap { + display: inline-block; +} + +#fancybox-title-wrap span { + height: 32px; + float: left; +} + +#fancybox-title-left { + padding-left: 15px; + background-image: url('fancybox.png'); + background-position: -40px -90px; + background-repeat: no-repeat; +} + +#fancybox-title-main { + font-weight: bold; + line-height: 29px; + background-image: url('fancybox-x.png'); + background-position: 0px -40px; + color: #FFF; +} + +#fancybox-title-right { + padding-left: 15px; + background-image: url('fancybox.png'); + background-position: -55px -90px; + background-repeat: no-repeat; +} + +#fancybox-left, #fancybox-right { + position: absolute; + bottom: 0px; + height: 100%; + width: 35%; + cursor: pointer; + outline: none; + background-image: url('blank.gif'); + z-index: 1102; + display: none; +} + +#fancybox-left { + left: 0px; +} + +#fancybox-right { + right: 0px; +} + +#fancybox-left-ico, #fancybox-right-ico { + position: absolute; + top: 50%; + left: -9999px; + width: 30px; + height: 30px; + margin-top: -15px; + cursor: pointer; + z-index: 1102; + display: block; +} + +#fancybox-left-ico { + background-image: url('fancybox.png'); + background-position: -40px -30px; +} + +#fancybox-right-ico { + background-image: url('fancybox.png'); + background-position: -40px -60px; +} + +#fancybox-left:hover, #fancybox-right:hover { + visibility: visible; /* IE6 */ +} + +#fancybox-left:hover span { + left: 20px; +} + +#fancybox-right:hover span { + left: auto; + right: 20px; +} + +.fancy-bg { + position: absolute; + padding: 0; + margin: 0; + border: 0; + width: 20px; + height: 20px; + z-index: 1001; +} + +#fancy-bg-n { + top: -20px; + left: 0; + width: 100%; + background-image: url('fancybox-x.png'); +} + +#fancy-bg-ne { + top: -20px; + right: -20px; + background-image: url('fancybox.png'); + background-position: -40px -162px; +} + +#fancy-bg-e { + top: 0; + right: -20px; + height: 100%; + background-image: url('fancybox-y.png'); + background-position: -20px 0px; +} + +#fancy-bg-se { + bottom: -20px; + right: -20px; + background-image: url('fancybox.png'); + background-position: -40px -182px; +} + +#fancy-bg-s { + bottom: -20px; + left: 0; + width: 100%; + background-image: url('fancybox-x.png'); + background-position: 0px -20px; +} + +#fancy-bg-sw { + bottom: -20px; + left: -20px; + background-image: url('fancybox.png'); + background-position: -40px -142px; +} + +#fancy-bg-w { + top: 0; + left: -20px; + height: 100%; + background-image: url('fancybox-y.png'); +} + +#fancy-bg-nw { + top: -20px; + left: -20px; + background-image: url('fancybox.png'); + background-position: -40px -122px; +} + +/* IE */ + +#fancybox-loading.fancybox-ie div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); } + +.fancybox-ie #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } +.fancybox-ie #fancybox-title-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-title-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-title-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); } + +.fancybox-ie #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); } + +.fancybox-ie .fancy-bg { background: transparent !important; } + +.fancybox-ie #fancy-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); } diff --git a/yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.pack.js b/yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.pack.js new file mode 100644 index 0000000..8421d53 --- /dev/null +++ b/yii/assets/254ed3a0/js/fancybox/jquery.fancybox-1.3.1.pack.js @@ -0,0 +1,44 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * + * Version: 1.3.1 (05/03/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +(function(b){var m,u,x,g,D,i,z,A,B,p=0,e={},q=[],n=0,c={},j=[],E=null,s=new Image,G=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,S=/[^\.]\.(swf)\s*$/i,H,I=1,k,l,h=false,y=b.extend(b("
")[0],{prop:0}),v=0,O=!b.support.opacity&&!window.XMLHttpRequest,J=function(){u.hide();s.onerror=s.onload=null;E&&E.abort();m.empty()},P=function(){b.fancybox('

The requested content cannot be loaded.
Please try again later.

',{scrolling:"no",padding:20,transitionIn:"none",transitionOut:"none"})}, +K=function(){return[b(window).width(),b(window).height(),b(document).scrollLeft(),b(document).scrollTop()]},T=function(){var a=K(),d={},f=c.margin,o=c.autoScale,t=(20+f)*2,w=(20+f)*2,r=c.padding*2;if(c.width.toString().indexOf("%")>-1){d.width=a[0]*parseFloat(c.width)/100-40;o=false}else d.width=c.width+r;if(c.height.toString().indexOf("%")>-1){d.height=a[1]*parseFloat(c.height)/100-40;o=false}else d.height=c.height+r;if(o&&(d.width>a[0]-t||d.height>a[1]-w))if(e.type=="image"||e.type=="swf"){t+=r; +w+=r;o=Math.min(Math.min(a[0]-t,c.width)/c.width,Math.min(a[1]-w,c.height)/c.height);d.width=Math.round(o*(d.width-r))+r;d.height=Math.round(o*(d.height-r))+r}else{d.width=Math.min(d.width,a[0]-t);d.height=Math.min(d.height,a[1]-w)}d.top=a[3]+(a[1]-(d.height+40))*0.5;d.left=a[2]+(a[0]-(d.width+40))*0.5;if(c.autoScale===false){d.top=Math.max(a[3]+f,d.top);d.left=Math.max(a[2]+f,d.left)}return d},U=function(a){if(a&&a.length)switch(c.titlePosition){case "inside":return a;case "over":return''+ +a+"";default:return''+a+''}return false},V=function(){var a=c.title,d=l.width-c.padding*2,f="fancybox-title-"+c.titlePosition;b("#fancybox-title").remove();v=0;if(c.titleShow!==false){a=b.isFunction(c.titleFormat)?c.titleFormat(a,j,n,c):U(a);if(!(!a||a==="")){b('
').css({width:d,paddingLeft:c.padding, +paddingRight:c.padding}).html(a).appendTo("body");switch(c.titlePosition){case "inside":v=b("#fancybox-title").outerHeight(true)-c.padding;l.height+=v;break;case "over":b("#fancybox-title").css("bottom",c.padding);break;default:b("#fancybox-title").css("bottom",b("#fancybox-title").outerHeight(true)*-1);break}b("#fancybox-title").appendTo(D).hide()}}},W=function(){b(document).unbind("keydown.fb").bind("keydown.fb",function(a){if(a.keyCode==27&&c.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if(a.keyCode== +37){a.preventDefault();b.fancybox.prev()}else if(a.keyCode==39){a.preventDefault();b.fancybox.next()}});if(b.fn.mousewheel){g.unbind("mousewheel.fb");j.length>1&&g.bind("mousewheel.fb",function(a,d){a.preventDefault();h||d===0||(d>0?b.fancybox.prev():b.fancybox.next())})}if(c.showNavArrows){if(c.cyclic&&j.length>1||n!==0)A.show();if(c.cyclic&&j.length>1||n!=j.length-1)B.show()}},X=function(){var a,d;if(j.length-1>n){a=j[n+1].href;if(typeof a!=="undefined"&&a.match(G)){d=new Image;d.src=a}}if(n>0){a= +j[n-1].href;if(typeof a!=="undefined"&&a.match(G)){d=new Image;d.src=a}}},L=function(){i.css("overflow",c.scrolling=="auto"?c.type=="image"||c.type=="iframe"||c.type=="swf"?"hidden":"auto":c.scrolling=="yes"?"auto":"visible");if(!b.support.opacity){i.get(0).style.removeAttribute("filter");g.get(0).style.removeAttribute("filter")}b("#fancybox-title").show();c.hideOnContentClick&&i.one("click",b.fancybox.close);c.hideOnOverlayClick&&x.one("click",b.fancybox.close);c.showCloseButton&&z.show();W();b(window).bind("resize.fb", +b.fancybox.center);c.centerOnScroll?b(window).bind("scroll.fb",b.fancybox.center):b(window).unbind("scroll.fb");b.isFunction(c.onComplete)&&c.onComplete(j,n,c);h=false;X()},M=function(a){var d=Math.round(k.width+(l.width-k.width)*a),f=Math.round(k.height+(l.height-k.height)*a),o=Math.round(k.top+(l.top-k.top)*a),t=Math.round(k.left+(l.left-k.left)*a);g.css({width:d+"px",height:f+"px",top:o+"px",left:t+"px"});d=Math.max(d-c.padding*2,0);f=Math.max(f-(c.padding*2+v*a),0);i.css({width:d+"px",height:f+ +"px"});if(typeof l.opacity!=="undefined")g.css("opacity",a<0.5?0.5:a)},Y=function(a){var d=a.offset();d.top+=parseFloat(a.css("paddingTop"))||0;d.left+=parseFloat(a.css("paddingLeft"))||0;d.top+=parseFloat(a.css("border-top-width"))||0;d.left+=parseFloat(a.css("border-left-width"))||0;d.width=a.width();d.height=a.height();return d},Q=function(){var a=e.orig?b(e.orig):false,d={};if(a&&a.length){a=Y(a);d={width:a.width+c.padding*2,height:a.height+c.padding*2,top:a.top-c.padding-20,left:a.left-c.padding- +20}}else{a=K();d={width:1,height:1,top:a[3]+a[1]*0.5,left:a[2]+a[0]*0.5}}return d},N=function(){u.hide();if(g.is(":visible")&&b.isFunction(c.onCleanup))if(c.onCleanup(j,n,c)===false){b.event.trigger("fancybox-cancel");h=false;return}j=q;n=p;c=e;i.get(0).scrollTop=0;i.get(0).scrollLeft=0;if(c.overlayShow){O&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"}); +x.css({"background-color":c.overlayColor,opacity:c.overlayOpacity}).unbind().show()}l=T();V();if(g.is(":visible")){b(z.add(A).add(B)).hide();var a=g.position(),d;k={top:a.top,left:a.left,width:g.width(),height:g.height()};d=k.width==l.width&&k.height==l.height;i.fadeOut(c.changeFade,function(){var f=function(){i.html(m.contents()).fadeIn(c.changeFade,L)};b.event.trigger("fancybox-change");i.empty().css("overflow","hidden");if(d){i.css({top:c.padding,left:c.padding,width:Math.max(l.width-c.padding* +2,1),height:Math.max(l.height-c.padding*2-v,1)});f()}else{i.css({top:c.padding,left:c.padding,width:Math.max(k.width-c.padding*2,1),height:Math.max(k.height-c.padding*2,1)});y.prop=0;b(y).animate({prop:1},{duration:c.changeSpeed,easing:c.easingChange,step:M,complete:f})}})}else{g.css("opacity",1);if(c.transitionIn=="elastic"){k=Q();i.css({top:c.padding,left:c.padding,width:Math.max(k.width-c.padding*2,1),height:Math.max(k.height-c.padding*2,1)}).html(m.contents());g.css(k).show();if(c.opacity)l.opacity= +0;y.prop=0;b(y).animate({prop:1},{duration:c.speedIn,easing:c.easingIn,step:M,complete:L})}else{i.css({top:c.padding,left:c.padding,width:Math.max(l.width-c.padding*2,1),height:Math.max(l.height-c.padding*2-v,1)}).html(m.contents());g.css(l).fadeIn(c.transitionIn=="none"?0:c.speedIn,L)}}},F=function(){m.width(e.width);m.height(e.height);if(e.width=="auto")e.width=m.width();if(e.height=="auto")e.height=m.height();N()},Z=function(){h=true;e.width=s.width;e.height=s.height;b("").attr({id:"fancybox-img", +src:s.src,alt:e.title}).appendTo(m);N()},C=function(){J();var a=q[p],d,f,o,t,w;e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));o=a.title||b(a).title||e.title||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(o===""&&e.orig)o=e.orig.attr("alt");d=a.nodeName&&/^(?:javascript|#)/i.test(a.href)?e.href||null:e.href||a.href||null;if(e.type){f=e.type;if(!d)d=e.content}else if(e.content)f="html";else if(d)if(d.match(G))f= +"image";else if(d.match(S))f="swf";else if(b(a).hasClass("iframe"))f="iframe";else if(d.match(/#/)){a=d.substr(d.indexOf("#"));f=b(a).length>0?"inline":"ajax"}else f="ajax";else f="inline";e.type=f;e.href=d;e.title=o;if(e.autoDimensions&&e.type!=="iframe"&&e.type!=="swf"){e.width="auto";e.height="auto"}if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=false;e.enableEscapeButton=false;e.showCloseButton=false}if(b.isFunction(e.onStart))if(e.onStart(q,p,e)===false){h=false; +return}m.css("padding",20+e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(i.children())});switch(f){case "html":m.html(e.content);F();break;case "inline":b('
').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(i.children())}).bind("fancybox-cancel",function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity(); +s=new Image;s.onerror=function(){P()};s.onload=function(){s.onerror=null;s.onload=null;Z()};s.src=d;break;case "swf":t='';w="";b.each(e.swf,function(r,R){t+='';w+=" "+r+'="'+R+'"'});t+='";m.html(t); +F();break;case "ajax":a=d.split("#",2);f=e.ajax.data||{};if(a.length>1){d=a[0];if(typeof f=="string")f+="&selector="+a[1];else f.selector=a[1]}h=false;b.fancybox.showActivity();E=b.ajax(b.extend(e.ajax,{url:d,data:f,error:P,success:function(r){if(E.status==200){m.html(r);F()}}}));break;case "iframe":b('').appendTo(m);N();break}},$=function(){if(u.is(":visible")){b("div", +u).css("top",I*-40+"px");I=(I+1)%12}else clearInterval(H)},aa=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('
'),u=b('
'),x=b('
'),g=b('
'));if(!b.support.opacity){g.addClass("fancybox-ie");u.addClass("fancybox-ie")}D=b('
').append('
').appendTo(g); +D.append(i=b('
'),z=b(''),A=b(''),B=b(''));z.click(b.fancybox.close);u.click(b.fancybox.cancel);A.click(function(a){a.preventDefault();b.fancybox.prev()});B.click(function(a){a.preventDefault();b.fancybox.next()});if(O){x.get(0).style.setExpression("height", +"document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");u.get(0).style.setExpression("top","(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");D.prepend('')}}}; +b.fn.fancybox=function(a){b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(d){d.preventDefault();if(!h){h=true;b(this).blur();q=[];p=0;d=b(this).attr("rel")||"";if(!d||d==""||d==="nofollow")q.push(this);else{q=b("a[rel="+d+"], area[rel="+d+"]");p=q.index(this)}C();return false}});return this};b.fancybox=function(a,d){if(!h){h=true;d=typeof d!=="undefined"?d:{};q=[];p=d.index||0;if(b.isArray(a)){for(var f=0,o=a.length;fq.length||p<0)p=0;C()}};b.fancybox.showActivity=function(){clearInterval(H);u.show();H=setInterval($,66)};b.fancybox.hideActivity=function(){u.hide()};b.fancybox.next=function(){return b.fancybox.pos(n+1)};b.fancybox.prev=function(){return b.fancybox.pos(n- +1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a,10);if(a>-1&&j.length>a){p=a;C()}if(c.cyclic&&j.length>1&&a<0){p=j.length-1;C()}if(c.cyclic&&j.length>1&&a>=j.length){p=0;C()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");J();e&&b.isFunction(e.onCancel)&&e.onCancel(q,p,e);h=false}};b.fancybox.close=function(){function a(){x.fadeOut("fast");g.hide();b.event.trigger("fancybox-cleanup");i.empty();b.isFunction(c.onClosed)&&c.onClosed(j,n,c);j=e=[];n=p=0;c=e={};h=false} +if(!(h||g.is(":hidden"))){h=true;if(c&&b.isFunction(c.onCleanup))if(c.onCleanup(j,n,c)===false){h=false;return}J();b(z.add(A).add(B)).hide();b("#fancybox-title").remove();g.add(i).add(x).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");i.css("overflow","hidden");if(c.transitionOut=="elastic"){k=Q();var d=g.position();l={top:d.top,left:d.left,width:g.width(),height:g.height()};if(c.opacity)l.opacity=1;y.prop=1;b(y).animate({prop:0},{duration:c.speedOut,easing:c.easingOut, +step:M,complete:a})}else g.fadeOut(c.transitionOut=="none"?0:c.speedOut,a)}};b.fancybox.resize=function(){var a,d;if(!(h||g.is(":hidden"))){h=true;a=i.wrapInner("
").children();d=a.height();g.css({height:d+c.padding*2+v});i.css({height:d});a.replaceWith(a.children());b.fancybox.center()}};b.fancybox.center=function(){h=true;var a=K(),d=c.margin,f={};f.top=a[3]+(a[1]-(g.height()-v+40))*0.5;f.left=a[2]+(a[0]-(g.width()+40))*0.5;f.top=Math.max(a[3]+d,f.top);f.left=Math.max(a[2]+ +d,f.left);g.css(f);h=false};b.fn.fancybox.defaults={padding:10,margin:20,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.3,overlayColor:"#666",titleShow:true,titlePosition:"outside",titleFormat:null,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast", +easingIn:"swing",easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,onStart:null,onCancel:null,onComplete:null,onCleanup:null,onClosed:null};b(document).ready(function(){aa()})})(jQuery); \ No newline at end of file diff --git a/yii/assets/254ed3a0/js/main.js b/yii/assets/254ed3a0/js/main.js new file mode 100644 index 0000000..6cac4c0 --- /dev/null +++ b/yii/assets/254ed3a0/js/main.js @@ -0,0 +1,79 @@ +$(document).ready(function() { + if($('div.form.login').length) { // in login page + $('input#LoginForm_password').focus(); + } + + $('table.preview input[name="checkAll"]').click(function() { + $('table.preview .confirm input').prop('checked', this.checked); + }); + + $('table.preview td.confirm input').click(function() { + $('table.preview input[name="checkAll"]').prop('checked', !$('table.preview td.confirm input:not(:checked)').length); + }); + $('table.preview input[name="checkAll"]').prop('checked', !$('table.preview td.confirm input:not(:checked)').length); + + $('.form .row.sticky input:not(.error), .form .row.sticky select:not(.error), .form .row.sticky textarea:not(.error)').each(function(){ + var value; + if(this.tagName=='SELECT') + value=this.options[this.selectedIndex].text; + else if(this.tagName=='TEXTAREA') + value=$(this).html(); + else + value=$(this).val(); + if(value=='') + value='[empty]'; + $(this).before('
'+value+'
').hide(); + }); + + $(document).on('click', '.form.gii .row.sticky .value', function(){ + $(this).hide(); + $(this).next().show().get(0).focus(); + }); + + + $('.form.gii .row input, .form.gii .row textarea, .form.gii .row select, .with-tooltip').not('.no-tooltip, .no-tooltip *').tooltip2({ + position: "center right", + offset: [-2, 10] + }); + + $('.form.gii .row input').change(function(){ + $('.form.gii .feedback').hide(); + $('.form.gii input[name="generate"]').hide(); + }); + + $('.form.gii .view-code').click(function(){ + var title=$(this).attr('rel'); + $.fancybox.showActivity(); + $.ajax({ + type: 'POST', + cache: false, + url: $(this).attr('href'), + data: $('.form.gii form').serializeArray(), + success: function(data){ + $.fancybox(data, { + 'title': title, + 'titlePosition': 'inside', + 'titleFormat': function(title, currentArray, currentIndex, currentOpts) { + return '
close' + (title && title.length ? '' + title + '' : '' ) + '
'; + }, + 'showCloseButton': false, + 'autoDimensions': false, + 'width': 900, + 'height': 'auto', + 'onComplete':function(){ + $('#fancybox-inner').scrollTop(0); + } + }); + }, + error: function(XMLHttpRequest, textStatus, errorThrown) { + $.fancybox('
'+XMLHttpRequest.responseText+'
'); + } + }); + return false; + }); + + $(document).on('click', '#fancybox-inner .close-code', function(){ + $.fancybox.close(); + return false; + }); +}); \ No newline at end of file diff --git a/yii/assets/254ed3a0/js/tooltip.js b/yii/assets/254ed3a0/js/tooltip.js new file mode 100644 index 0000000..13c7ba1 --- /dev/null +++ b/yii/assets/254ed3a0/js/tooltip.js @@ -0,0 +1,364 @@ +/** + * CHANGES MADE BY YII DEVELOPERS, READ CAREFULLY BEFORE UPGRADING THIS FILE: + * 1. This commit has been used: + * https://github.com/jquerytools/jquerytools/commit/4f3f3f14e83b0ff276a795e9f45400930904adff#src/tooltip/tooltip.js + * 2. Original `$.fn.tooltip` has been changed to `$.fn.tooltip2` to prevent conflict between jQuery UI Tooltip and + * jQuery Tools Tooltip. + * + * @license + * jQuery Tools @VERSION Tooltip - UI essentials + * + * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. + * + * http://flowplayer.org/tools/tooltip/ + * + * Since: November 2008 + * Date: @DATE + */ +(function($) { + // static constructs + $.tools = $.tools || {version: '@VERSION'}; + + $.tools.tooltip = { + + conf: { + + // default effect variables + effect: 'toggle', + fadeOutSpeed: "fast", + predelay: 0, + delay: 30, + opacity: 1, + tip: 0, + fadeIE: false, // enables fade effect in IE + + // 'top', 'bottom', 'right', 'left', 'center' + position: ['top', 'center'], + offset: [0, 0], + relative: false, + cancelDefault: true, + + // type to event mapping + events: { + def: "mouseenter,mouseleave", + input: "focus,blur", + widget: "focus mouseenter,blur mouseleave", + tooltip: "mouseenter,mouseleave" + }, + + // 1.2 + layout: '
', + tipClass: 'tooltip' + }, + + addEffect: function(name, loadFn, hideFn) { + effects[name] = [loadFn, hideFn]; + } + }; + + + var effects = { + toggle: [ + function(done) { + var conf = this.getConf(), tip = this.getTip(), o = conf.opacity; + if (o < 1) { tip.css({opacity: o}); } + tip.show(); + done.call(); + }, + + function(done) { + this.getTip().hide(); + done.call(); + } + ], + + fade: [ + function(done) { + var conf = this.getConf(); + if (!$.browser.msie || conf.fadeIE) { + this.getTip().fadeTo(conf.fadeInSpeed, conf.opacity, done); + } + else { + this.getTip().show(); + done(); + } + }, + function(done) { + var conf = this.getConf(); + if (!$.browser.msie || conf.fadeIE) { + this.getTip().fadeOut(conf.fadeOutSpeed, done); + } + else { + this.getTip().hide(); + done(); + } + } + ] + }; + + + /* calculate tip position relative to the trigger */ + function getPosition(trigger, tip, conf) { + + + // get origin top/left position + var top = conf.relative ? trigger.position().top : trigger.offset().top, + left = conf.relative ? trigger.position().left : trigger.offset().left, + pos = conf.position[0]; + + top -= tip.outerHeight() - conf.offset[0]; + left += trigger.outerWidth() + conf.offset[1]; + + // iPad position fix + if (/iPad/i.test(navigator.userAgent)) { + top -= $(window).scrollTop(); + } + + // adjust Y + var height = tip.outerHeight() + trigger.outerHeight(); + if (pos == 'center') { top += height / 2; } + if (pos == 'bottom') { top += height; } + + + // adjust X + pos = conf.position[1]; + var width = tip.outerWidth() + trigger.outerWidth(); + if (pos == 'center') { left -= width / 2; } + if (pos == 'left') { left -= width; } + + return {top: top, left: left}; + } + + + + function Tooltip(trigger, conf) { + + var self = this, + fire = trigger.add(self), + tip, + timer = 0, + pretimer = 0, + title = trigger.attr("title"), + tipAttr = trigger.attr("data-tooltip"), + effect = effects[conf.effect], + shown, + + // get show/hide configuration + isInput = trigger.is(":input"), + isWidget = isInput && trigger.is(":checkbox, :radio, select, :button, :submit"), + type = trigger.attr("type"), + evt = conf.events[type] || conf.events[isInput ? (isWidget ? 'widget' : 'input') : 'def']; + + + // check that configuration is sane + if (!effect) { throw "Nonexistent effect \"" + conf.effect + "\""; } + + evt = evt.split(/,\s*/); + if (evt.length != 2) { throw "Tooltip: bad events configuration for " + type; } + + + // trigger --> show + trigger.on(evt[0], function(e) { + + clearTimeout(timer); + if (conf.predelay) { + pretimer = setTimeout(function() { self.show(e); }, conf.predelay); + + } else { + self.show(e); + } + + // trigger --> hide + }).on(evt[1], function(e) { + clearTimeout(pretimer); + if (conf.delay) { + timer = setTimeout(function() { self.hide(e); }, conf.delay); + + } else { + self.hide(e); + } + + }); + + + // remove default title + if (title && conf.cancelDefault) { + trigger.removeAttr("title"); + trigger.data("title", title); + } + + $.extend(self, { + + show: function(e) { + + // tip not initialized yet + if (!tip) { + + // data-tooltip + if (tipAttr) { + tip = $(tipAttr); + + // single tip element for all + } else if (conf.tip) { + tip = $(conf.tip).eq(0); + + // autogenerated tooltip + } else if (title) { + tip = $(conf.layout).addClass(conf.tipClass).appendTo(document.body) + .hide().append(title); + + // manual tooltip + } else { + tip = trigger.next(); + if (!tip.length) { tip = trigger.parent().next(); } + } + + if (!tip.length) { throw "Cannot find tooltip for " + trigger; } + } + + if (self.isShown()) { return self; } + + // stop previous animation + tip.stop(true, true); + + // get position + var pos = getPosition(trigger, tip, conf); + + // restore title for single tooltip element + if (conf.tip) { + tip.html(trigger.data("title")); + } + + // onBeforeShow + e = $.Event(); + e.type = "onBeforeShow"; + fire.trigger(e, [pos]); + if (e.isDefaultPrevented()) { return self; } + + + // onBeforeShow may have altered the configuration + pos = getPosition(trigger, tip, conf); + + // set position + tip.css({position:'absolute', top: pos.top, left: pos.left}); + + shown = true; + + // invoke effect + effect[0].call(self, function() { + e.type = "onShow"; + shown = 'full'; + fire.trigger(e); + }); + + + // tooltip events + var event = conf.events.tooltip.split(/,\s*/); + + if (!tip.data("__set")) { + + tip.off(event[0]).on(event[0], function() { + clearTimeout(timer); + clearTimeout(pretimer); + }); + + if (event[1] && !trigger.is("input:not(:checkbox, :radio), textarea")) { + tip.off(event[1]).on(event[1], function(e) { + + // being moved to the trigger element + if (e.relatedTarget != trigger[0]) { + trigger.trigger(evt[1].split(" ")[0]); + } + }); + } + + // bind agein for if same tip element + if (!conf.tip) tip.data("__set", true); + } + + return self; + }, + + hide: function(e) { + + if (!tip || !self.isShown()) { return self; } + + // onBeforeHide + e = $.Event(); + e.type = "onBeforeHide"; + fire.trigger(e); + if (e.isDefaultPrevented()) { return; } + + shown = false; + + effects[conf.effect][1].call(self, function() { + e.type = "onHide"; + fire.trigger(e); + }); + + return self; + }, + + isShown: function(fully) { + return fully ? shown == 'full' : shown; + }, + + getConf: function() { + return conf; + }, + + getTip: function() { + return tip; + }, + + getTrigger: function() { + return trigger; + } + + }); + + // callbacks + $.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","), function(i, name) { + + // configuration + if ($.isFunction(conf[name])) { + $(self).on(name, conf[name]); + } + + // API + self[name] = function(fn) { + if (fn) { $(self).on(name, fn); } + return self; + }; + }); + + } + + + // jQuery plugin implementation + $.fn.tooltip2 = function(conf) { + + // return existing instance + var api = this.data("tooltip"); + if (api) { return api; } + + conf = $.extend(true, {}, $.tools.tooltip.conf, conf); + + // position can also be given as string + if (typeof conf.position == 'string') { + conf.position = conf.position.split(/,?\s/); + } + + // install tooltip for each entry in jQuery object + this.each(function() { + api = new Tooltip($(this), conf); + $(this).data("tooltip", api); + }); + + return conf.api ? api: this; + }; + +}) (jQuery); + + + diff --git a/yii/assets/7b3570a4/autocomplete/indicator.gif b/yii/assets/7b3570a4/autocomplete/indicator.gif new file mode 100644 index 0000000000000000000000000000000000000000..085ccaecaf5fa5c34bc14cd2c2ed5cbbd8e25dcb GIT binary patch literal 1553 zcma)+TTl~c6vwlh>nb99Af5rT)t{mCEg5urg=A(g z{C|6SPb~9Xage|wB`SrZk2FOMYM!buln2sX?5Y+T78iB(Zu9cS7|LZyZ++}u$^oi1 z_j@S}bW9OzU2R+RMy&~OT>X-oZ98$jq#ogNfJ!BM-42wHGZk*6s2KD}U*IA%epmxb zm}|6BK9YoIF;*xSL!+z@<64lB7->LTW2Vi4ostCA(z&2XniwNIv}fFo-`MbG;)u4G z^p@F!)|9HhZprHd_vXjDoxs6WkK-6P0@lfxnGT>*p(QHoUV=u1FAqb@b%*W=a3{`LsH5k^AvQNL>6fPpy#oU(&MuH(*aEX4b35*} zn4n7)`I2U%=+Z=?BVZQ?vjQFW4gD@~XSOO6b{qu81`4&LFuU2(ilxW+1|ZkNMnWe79C$gs zWT?Ele|HR{JGPe)5BTW>0Ey?-Ls6S#GoV0tbt6ku7B&*0 z;i9QM$W1Rj*rRIdceL)rAOSl+sDe3LkB87<%){;ZdHp6|SNlopDXRx< zxBDF9-lTo&v`8$humFygUij@qgT=Qzhj8{ym2-{Xciwqq_Xwk%=O3B-MNAL_6e`3U zyxwmXex4`g0^1RYw~Dth3av3Dl^AAlpO3mG!nLr#&ZZ7c_wUboI+deC+&%TFjK2Lm z!Y&f1h|T_On%RCV&=4bx`!>(YezqGVhl&QpED?N6GV)HmzJ9&rh$x*i?*@o9#6QI< z5ZI_MRX;0+pY8$`j)eF#TlUyG(eE%E7S!rj;mj^M5vhUicPm zVWQ2z+imFyg}SRABmOBY_@osR!>7Ov!ioK`NB6_Rv}7Ud?35ed5Sb@?yND?kv~RCa wqs^a3Sh>&&L4)!LKI?D2&k@))k(LESaga|C278ChSzn3NWVkcuNoY&{0f?~U_5c6? literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/autocomplete/jquery.autocomplete.css b/yii/assets/7b3570a4/autocomplete/jquery.autocomplete.css new file mode 100644 index 0000000..91b6228 --- /dev/null +++ b/yii/assets/7b3570a4/autocomplete/jquery.autocomplete.css @@ -0,0 +1,48 @@ +.ac_results { + padding: 0px; + border: 1px solid black; + background-color: white; + overflow: hidden; + z-index: 99999; +} + +.ac_results ul { + width: 100%; + list-style-position: outside; + list-style: none; + padding: 0; + margin: 0; +} + +.ac_results li { + margin: 0px; + padding: 2px 5px; + cursor: default; + display: block; + /* + if width will be 100% horizontal scrollbar will apear + when scroll mode will be used + */ + /*width: 100%;*/ + font: menu; + font-size: 12px; + /* + it is very important, if line-height not setted or setted + in relative units scroll will be broken in firefox + */ + line-height: 16px; + overflow: hidden; +} + +.ac_loading { + background: white url('indicator.gif') right center no-repeat; +} + +.ac_odd { + background-color: #eee; +} + +.ac_over { + background-color: #0A246A; + color: white; +} diff --git a/yii/assets/7b3570a4/jquery.ajaxqueue.js b/yii/assets/7b3570a4/jquery.ajaxqueue.js new file mode 100644 index 0000000..bdd2e4f --- /dev/null +++ b/yii/assets/7b3570a4/jquery.ajaxqueue.js @@ -0,0 +1,116 @@ +/** + * Ajax Queue Plugin + * + * Homepage: http://jquery.com/plugins/project/ajaxqueue + * Documentation: http://docs.jquery.com/AjaxQueue + */ + +/** + + +
    + + */ +/* + * Queued Ajax requests. + * A new Ajax request won't be started until the previous queued + * request has finished. + */ + +/* + * Synced Ajax requests. + * The Ajax request will happen as soon as you call this method, but + * the callbacks (success/error/complete) won't fire until all previous + * synced requests have been completed. + */ + + +(function($) { + + var ajax = $.ajax; + + var pendingRequests = {}; + + var synced = []; + var syncedData = []; + + $.ajax = function(settings) { + // create settings for compatibility with ajaxSetup + settings = jQuery.extend(settings, jQuery.extend({}, jQuery.ajaxSettings, settings)); + + var port = settings.port; + + switch(settings.mode) { + case "abort": + if ( pendingRequests[port] ) { + pendingRequests[port].abort(); + } + return pendingRequests[port] = ajax.apply(this, arguments); + case "queue": + var _old = settings.complete; + settings.complete = function(){ + if ( _old ) + _old.apply( this, arguments ); + jQuery([ajax]).dequeue("ajax" + port );; + }; + + jQuery([ ajax ]).queue("ajax" + port, function(){ + ajax( settings ); + }); + return; + case "sync": + var pos = synced.length; + + synced[ pos ] = { + error: settings.error, + success: settings.success, + complete: settings.complete, + done: false + }; + + syncedData[ pos ] = { + error: [], + success: [], + complete: [] + }; + + settings.error = function(){ syncedData[ pos ].error = arguments; }; + settings.success = function(){ syncedData[ pos ].success = arguments; }; + settings.complete = function(){ + syncedData[ pos ].complete = arguments; + synced[ pos ].done = true; + + if ( pos == 0 || !synced[ pos-1 ] ) + for ( var i = pos; i < synced.length && synced[i].done; i++ ) { + if ( synced[i].error ) synced[i].error.apply( jQuery, syncedData[i].error ); + if ( synced[i].success ) synced[i].success.apply( jQuery, syncedData[i].success ); + if ( synced[i].complete ) synced[i].complete.apply( jQuery, syncedData[i].complete ); + + synced[i] = null; + syncedData[i] = null; + } + }; + } + return ajax.apply(this, arguments); + }; + +})(jQuery); \ No newline at end of file diff --git a/yii/assets/7b3570a4/jquery.autocomplete.js b/yii/assets/7b3570a4/jquery.autocomplete.js new file mode 100644 index 0000000..324b104 --- /dev/null +++ b/yii/assets/7b3570a4/jquery.autocomplete.js @@ -0,0 +1,813 @@ +/* + * jQuery Autocomplete plugin 1.1 + * + * Modified for Yii Framework: + * - Renamed "autocomplete" to "legacyautocomplete". + * - Fixed IE8 problems (mario.ffranco). + * + * Copyright (c) 2009 Jörn Zaefferer + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $ + */ + +;(function($) { + +$.fn.extend({ + legacyautocomplete: function(urlOrData, options) { + var isUrl = typeof urlOrData == "string"; + options = $.extend({}, $.Autocompleter.defaults, { + url: isUrl ? urlOrData : null, + data: isUrl ? null : urlOrData, + delay: isUrl ? $.Autocompleter.defaults.delay : 10, + max: options && !options.scroll ? 10 : 150 + }, options); + + // if highlight is set to false, replace it with a do-nothing function + options.highlight = options.highlight || function(value) { return value; }; + + // if the formatMatch option is not specified, then use formatItem for backwards compatibility + options.formatMatch = options.formatMatch || options.formatItem; + + return this.each(function() { + new $.Autocompleter(this, options); + }); + }, + result: function(handler) { + return this.bind("result", handler); + }, + search: function(handler) { + return this.trigger("search", [handler]); + }, + flushCache: function() { + return this.trigger("flushCache"); + }, + setOptions: function(options){ + return this.trigger("setOptions", [options]); + }, + unautocomplete: function() { + return this.trigger("unautocomplete"); + } +}); + +$.Autocompleter = function(input, options) { + + var KEY = { + UP: 38, + DOWN: 40, + DEL: 46, + TAB: 9, + RETURN: 13, + ESC: 27, + COMMA: 188, + PAGEUP: 33, + PAGEDOWN: 34, + BACKSPACE: 8 + }; + + // Create $ object for input element + var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass); + + var timeout; + var previousValue = ""; + var cache = $.Autocompleter.Cache(options); + var hasFocus = 0; + var lastKeyPressCode; + var config = { + mouseDownOnSelect: false + }; + var select = $.Autocompleter.Select(options, input, selectCurrent, config); + + var blockSubmit; + + // prevent form submit in opera when selecting with return key + $.browser.opera && $(input.form).bind("submit.autocomplete", function() { + if (blockSubmit) { + blockSubmit = false; + return false; + } + }); + + // only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all + $input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) { + // a keypress means the input has focus + // avoids issue where input had focus before the autocomplete was applied + hasFocus = 1; + // track last key pressed + lastKeyPressCode = event.keyCode; + switch(event.keyCode) { + + case KEY.UP: + event.preventDefault(); + if ( select.visible() ) { + select.prev(); + } else { + onChange(0, true); + } + break; + + case KEY.DOWN: + event.preventDefault(); + if ( select.visible() ) { + select.next(); + } else { + onChange(0, true); + } + break; + + case KEY.PAGEUP: + event.preventDefault(); + if ( select.visible() ) { + select.pageUp(); + } else { + onChange(0, true); + } + break; + + case KEY.PAGEDOWN: + event.preventDefault(); + if ( select.visible() ) { + select.pageDown(); + } else { + onChange(0, true); + } + break; + + // matches also semicolon + case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA: + case KEY.TAB: + case KEY.RETURN: + if( selectCurrent() ) { + // stop default to prevent a form submit, Opera needs special handling + event.preventDefault(); + blockSubmit = true; + return false; + } + break; + + case KEY.ESC: + select.hide(); + break; + + default: + clearTimeout(timeout); + timeout = setTimeout(onChange, options.delay); + break; + } + }).focus(function(){ + // track whether the field has focus, we shouldn't process any + // results if the field no longer has focus + hasFocus++; + }).blur(function() { + hasFocus = 0; + if (!config.mouseDownOnSelect) { + hideResults(); + } + }).click(function() { + // show select when clicking in a focused field + if ( hasFocus++ > 1 && !select.visible() ) { + onChange(0, true); + } + }).bind("search", function() { + // TODO why not just specifying both arguments? + var fn = (arguments.length > 1) ? arguments[1] : null; + function findValueCallback(q, data) { + var result; + if( data && data.length ) { + for (var i=0; i < data.length; i++) { + if( data[i].result.toLowerCase() == q.toLowerCase() ) { + result = data[i]; + break; + } + } + } + if( typeof fn == "function" ) fn(result); + else $input.trigger("result", result && [result.data, result.value]); + } + $.each(trimWords($input.val()), function(i, value) { + request(value, findValueCallback, findValueCallback); + }); + }).bind("flushCache", function() { + cache.flush(); + }).bind("setOptions", function() { + $.extend(options, arguments[1]); + // if we've updated the data, repopulate + if ( "data" in arguments[1] ) + cache.populate(); + }).bind("unautocomplete", function() { + select.unbind(); + $input.unbind(); + $(input.form).unbind(".autocomplete"); + }); + + + function selectCurrent() { + var selected = select.selected(); + if( !selected ) + return false; + + var v = selected.result; + previousValue = v; + + if ( options.multiple ) { + var words = trimWords($input.val()); + if ( words.length > 1 ) { + var seperator = options.multipleSeparator.length; + var cursorAt = $(input).selection().start; + var wordAt, progress = 0; + $.each(words, function(i, word) { + progress += word.length; + if (cursorAt <= progress) { + wordAt = i; + // Following return caused IE8 to set cursor to the start of the line. + // return false; + } + progress += seperator; + }); + words[wordAt] = v; + // TODO this should set the cursor to the right position, but it gets overriden somewhere + //$.Autocompleter.Selection(input, progress + seperator, progress + seperator); + v = words.join( options.multipleSeparator ); + } + v += options.multipleSeparator; + } + + $input.val(v); + hideResultsNow(); + $input.trigger("result", [selected.data, selected.value]); + return true; + } + + function onChange(crap, skipPrevCheck) { + if( lastKeyPressCode == KEY.DEL ) { + select.hide(); + return; + } + + var currentValue = $input.val(); + + if ( !skipPrevCheck && currentValue == previousValue ) + return; + + previousValue = currentValue; + + currentValue = lastWord(currentValue); + if ( currentValue.length >= options.minChars) { + $input.addClass(options.loadingClass); + if (!options.matchCase) + currentValue = currentValue.toLowerCase(); + request(currentValue, receiveData, hideResultsNow); + } else { + stopLoading(); + select.hide(); + } + }; + + function trimWords(value) { + if (!value) + return [""]; + if (!options.multiple) + return [$.trim(value)]; + return $.map(value.split(options.multipleSeparator), function(word) { + return $.trim(value).length ? $.trim(word) : null; + }); + } + + function lastWord(value) { + if ( !options.multiple ) + return value; + var words = trimWords(value); + if (words.length == 1) + return words[0]; + var cursorAt = $(input).selection().start; + if (cursorAt == value.length) { + words = trimWords(value) + } else { + words = trimWords(value.replace(value.substring(cursorAt), "")); + } + return words[words.length - 1]; + } + + // fills in the input box w/the first match (assumed to be the best match) + // q: the term entered + // sValue: the first matching result + function autoFill(q, sValue){ + // autofill in the complete box w/the first match as long as the user hasn't entered in more data + // if the last user key pressed was backspace, don't autofill + if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) { + // fill in the value (keep the case the user has typed) + $input.val($input.val() + sValue.substring(lastWord(previousValue).length)); + // select the portion of the value not typed by the user (so the next character will erase) + $(input).selection(previousValue.length, previousValue.length + sValue.length); + } + }; + + function hideResults() { + clearTimeout(timeout); + timeout = setTimeout(hideResultsNow, 200); + }; + + function hideResultsNow() { + var wasVisible = select.visible(); + select.hide(); + clearTimeout(timeout); + stopLoading(); + if (options.mustMatch) { + // call search and run callback + $input.search( + function (result){ + // if no value found, clear the input box + if( !result ) { + if (options.multiple) { + var words = trimWords($input.val()).slice(0, -1); + $input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") ); + } + else { + $input.val( "" ); + $input.trigger("result", null); + } + } + } + ); + } + }; + + function receiveData(q, data) { + if ( data && data.length && hasFocus ) { + stopLoading(); + select.display(data, q); + autoFill(q, data[0].value); + select.show(); + } else { + hideResultsNow(); + } + }; + + function request(term, success, failure) { + if (!options.matchCase) + term = term.toLowerCase(); + var data = cache.load(term); + // recieve the cached data + if (data && data.length) { + success(term, data); + // if an AJAX url has been supplied, try loading the data now + } else if( (typeof options.url == "string") && (options.url.length > 0) ){ + + var extraParams = { + timestamp: +new Date() + }; + $.each(options.extraParams, function(key, param) { + extraParams[key] = typeof param == "function" ? param() : param; + }); + + $.ajax({ + // try to leverage ajaxQueue plugin to abort previous requests + mode: "abort", + // limit abortion to this input + port: "autocomplete" + input.name, + dataType: options.dataType, + url: options.url, + data: $.extend({ + q: lastWord(term), + limit: options.max + }, extraParams), + success: function(data) { + var parsed = options.parse && options.parse(data) || parse(data); + cache.add(term, parsed); + success(term, parsed); + } + }); + } else { + // if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match + select.emptyList(); + failure(term); + } + }; + + function parse(data) { + var parsed = []; + var rows = data.split("\n"); + for (var i=0; i < rows.length; i++) { + var row = $.trim(rows[i]); + if (row) { + row = row.split("|"); + parsed[parsed.length] = { + data: row, + value: row[0], + result: options.formatResult && options.formatResult(row, row[0]) || row[0] + }; + } + } + return parsed; + }; + + function stopLoading() { + $input.removeClass(options.loadingClass); + }; + +}; + +$.Autocompleter.defaults = { + inputClass: "ac_input", + resultsClass: "ac_results", + loadingClass: "ac_loading", + minChars: 1, + delay: 400, + matchCase: false, + matchSubset: true, + matchContains: false, + cacheLength: 10, + max: 100, + mustMatch: false, + extraParams: {}, + selectFirst: true, + formatItem: function(row) { return row[0]; }, + formatMatch: null, + autoFill: false, + width: 0, + multiple: false, + multipleSeparator: ", ", + highlight: function(value, term) { + return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"); + }, + scroll: true, + scrollHeight: 180 +}; + +$.Autocompleter.Cache = function(options) { + + var data = {}; + var length = 0; + + function matchSubset(s, sub) { + if (!options.matchCase) + s = s.toLowerCase(); + var i = s.indexOf(sub); + if (options.matchContains == "word"){ + i = s.toLowerCase().search("\\b" + sub.toLowerCase()); + } + if (i == -1) return false; + return i == 0 || options.matchContains; + }; + + function add(q, value) { + if (length > options.cacheLength){ + flush(); + } + if (!data[q]){ + length++; + } + data[q] = value; + } + + function populate(){ + if( !options.data ) return false; + // track the matches + var stMatchSets = {}, + nullData = 0; + + // no url was specified, we need to adjust the cache length to make sure it fits the local data store + if( !options.url ) options.cacheLength = 1; + + // track all options for minChars = 0 + stMatchSets[""] = []; + + // loop through the array and create a lookup structure + for ( var i = 0, ol = options.data.length; i < ol; i++ ) { + var rawValue = options.data[i]; + // if rawValue is a string, make an array otherwise just reference the array + rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue; + + var value = options.formatMatch(rawValue, i+1, options.data.length); + if ( value === false ) + continue; + + var firstChar = value.charAt(0).toLowerCase(); + // if no lookup array for this character exists, look it up now + if( !stMatchSets[firstChar] ) + stMatchSets[firstChar] = []; + + // if the match is a string + var row = { + value: value, + data: rawValue, + result: options.formatResult && options.formatResult(rawValue) || value + }; + + // push the current match into the set list + stMatchSets[firstChar].push(row); + + // keep track of minChars zero items + if ( nullData++ < options.max ) { + stMatchSets[""].push(row); + } + }; + + // add the data items to the cache + $.each(stMatchSets, function(i, value) { + // increase the cache size + options.cacheLength++; + // add to the cache + add(i, value); + }); + } + + // populate any existing data + setTimeout(populate, 25); + + function flush(){ + data = {}; + length = 0; + } + + return { + flush: flush, + add: add, + populate: populate, + load: function(q) { + if (!options.cacheLength || !length) + return null; + /* + * if dealing w/local data and matchContains than we must make sure + * to loop through all the data collections looking for matches + */ + if( !options.url && options.matchContains ){ + // track all matches + var csub = []; + // loop through all the data grids for matches + for( var k in data ){ + // don't search through the stMatchSets[""] (minChars: 0) cache + // this prevents duplicates + if( k.length > 0 ){ + var c = data[k]; + $.each(c, function(i, x) { + // if we've got a match, add it to the array + if (matchSubset(x.value, q)) { + csub.push(x); + } + }); + } + } + return csub; + } else + // if the exact item exists, use it + if (data[q]){ + return data[q]; + } else + if (options.matchSubset) { + for (var i = q.length - 1; i >= options.minChars; i--) { + var c = data[q.substr(0, i)]; + if (c) { + var csub = []; + $.each(c, function(i, x) { + if (matchSubset(x.value, q)) { + csub[csub.length] = x; + } + }); + return csub; + } + } + } + return null; + } + }; +}; + +$.Autocompleter.Select = function (options, input, select, config) { + var CLASSES = { + ACTIVE: "ac_over" + }; + + var listItems, + active = -1, + data, + term = "", + needsInit = true, + element, + list; + + // Create results + function init() { + if (!needsInit) + return; + element = $("
    ") + .hide() + .addClass(options.resultsClass) + .css("position", "absolute") + .appendTo(document.body); + + list = $("
      ").appendTo(element).mouseover( function(event) { + if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') { + active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event)); + $(target(event)).addClass(CLASSES.ACTIVE); + } + }).click(function(event) { + $(target(event)).addClass(CLASSES.ACTIVE); + select(); + // TODO provide option to avoid setting focus again after selection? useful for cleanup-on-focus + input.focus(); + return false; + }).mousedown(function() { + config.mouseDownOnSelect = true; + }).mouseup(function() { + config.mouseDownOnSelect = false; + }); + + if( options.width > 0 ) + element.css("width", options.width); + + needsInit = false; + } + + function target(event) { + var element = event.target; + while(element && element.tagName != "LI") + element = element.parentNode; + // more fun with IE, sometimes event.target is empty, just ignore it then + if(!element) + return []; + return element; + } + + function moveSelect(step) { + listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE); + movePosition(step); + var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE); + if(options.scroll) { + var offset = 0; + listItems.slice(0, active).each(function() { + offset += this.offsetHeight; + }); + if((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) { + list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight()); + } else if(offset < list.scrollTop()) { + list.scrollTop(offset); + } + } + }; + + function movePosition(step) { + active += step; + if (active < 0) { + active = listItems.size() - 1; + } else if (active >= listItems.size()) { + active = 0; + } + } + + function limitNumberOfItems(available) { + return options.max && options.max < available + ? options.max + : available; + } + + function fillList() { + list.empty(); + var max = limitNumberOfItems(data.length); + for (var i=0; i < max; i++) { + if (!data[i]) + continue; + var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term); + if ( formatted === false ) + continue; + var li = $("
    • ").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0]; + $.data(li, "ac_data", data[i]); + } + listItems = list.find("li"); + if ( options.selectFirst ) { + listItems.slice(0, 1).addClass(CLASSES.ACTIVE); + active = 0; + } + // apply bgiframe if available + if ( $.fn.bgiframe ) + list.bgiframe(); + } + + return { + display: function(d, q) { + init(); + data = d; + term = q; + fillList(); + }, + next: function() { + moveSelect(1); + }, + prev: function() { + moveSelect(-1); + }, + pageUp: function() { + if (active != 0 && active - 8 < 0) { + moveSelect( -active ); + } else { + moveSelect(-8); + } + }, + pageDown: function() { + if (active != listItems.size() - 1 && active + 8 > listItems.size()) { + moveSelect( listItems.size() - 1 - active ); + } else { + moveSelect(8); + } + }, + hide: function() { + element && element.hide(); + listItems && listItems.removeClass(CLASSES.ACTIVE); + active = -1; + }, + visible : function() { + return element && element.is(":visible"); + }, + current: function() { + return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]); + }, + show: function() { + var offset = $(input).offset(); + element.css({ + width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).width(), + top: offset.top + input.offsetHeight, + left: offset.left + }).show(); + if(options.scroll) { + list.scrollTop(0); + list.css({ + maxHeight: options.scrollHeight, + overflow: 'auto' + }); + + if($.browser.msie && typeof document.body.style.maxHeight === "undefined") { + var listHeight = 0; + listItems.each(function() { + listHeight += this.offsetHeight; + }); + var scrollbarsVisible = listHeight > options.scrollHeight; + list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight ); + if (!scrollbarsVisible) { + // IE doesn't recalculate width when scrollbar disappears + listItems.width( list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")) ); + } + } + + } + }, + selected: function() { + var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE); + return selected && selected.length && $.data(selected[0], "ac_data"); + }, + emptyList: function (){ + list && list.empty(); + }, + unbind: function() { + element && element.remove(); + } + }; +}; + +$.fn.selection = function(start, end) { + if (start !== undefined) { + return this.each(function() { + if( this.createTextRange ){ + var selRange = this.createTextRange(); + if (end === undefined || start == end) { + selRange.move("character", start); + selRange.select(); + } else { + selRange.collapse(true); + selRange.moveStart("character", start); + selRange.moveEnd("character", end); + selRange.select(); + } + } else if( this.setSelectionRange ){ + this.setSelectionRange(start, end); + } else if( this.selectionStart ){ + this.selectionStart = start; + this.selectionEnd = end; + } + }); + } + var field = this[0]; + if ( field.createTextRange ) { + var range = document.selection.createRange(), + orig = field.value, + teststring = "<->", + textLength = range.text.length; + range.text = teststring; + var caretAt = field.value.indexOf(teststring); + field.value = orig; + this.selection(caretAt, caretAt + textLength); + return { + start: caretAt, + end: caretAt + textLength + } + } else if( field.selectionStart !== undefined ){ + return { + start: field.selectionStart, + end: field.selectionEnd + } + } +}; + +})(jQuery); \ No newline at end of file diff --git a/yii/assets/7b3570a4/jquery.ba-bbq.js b/yii/assets/7b3570a4/jquery.ba-bbq.js new file mode 100644 index 0000000..b2e98bc --- /dev/null +++ b/yii/assets/7b3570a4/jquery.ba-bbq.js @@ -0,0 +1,1378 @@ +/*! + * jQuery BBQ: Back Button & Query Library - v1.4pre - 1/15/2013 + * http://benalman.com/projects/jquery-bbq-plugin/ + * + * Copyright (c) 2010-2013 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + +// Script: jQuery BBQ: Back Button & Query Library +// +// *Version: 1.4pre, Last updated: 1/15/2013* +// +// Project Home - http://benalman.com/projects/jquery-bbq-plugin/ +// GitHub - http://github.com/cowboy/jquery-bbq/ +// Source - http://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.js +// (Minified) - http://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.min.js (2.2kb gzipped) +// +// About: License +// +// Copyright (c) 2010-2013 "Cowboy" Ben Alman, +// Dual licensed under the MIT and GPL licenses. +// http://benalman.com/about/license/ +// +// About: Examples +// +// These working examples, complete with fully commented code, illustrate a few +// ways in which this plugin can be used. +// +// Basic AJAX - http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/ +// Advanced AJAX - http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/ +// jQuery UI Tabs - http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/ +// Deparam - http://benalman.com/code/projects/jquery-bbq/examples/deparam/ +// +// About: Support and Testing +// +// Information about what version or versions of jQuery this plugin has been +// tested with, what browsers it has been tested in, and where the unit tests +// reside (so you can test it yourself). +// +// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2 +// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, +// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5. +// Unit Tests - http://benalman.com/code/projects/jquery-bbq/unit/ +// +// About: Release History +// +// 1.4pre - (1/15/2013) Removed $.browser reference to work with jQuery 1.9 +// 1.3pre - (8/26/2010) Integrated v1.3, which adds +// document.title and document.domain support in IE6/7, BlackBerry +// support, better Iframe hiding for accessibility reasons, and the new +// "shortcut" method. Added the +// method which reduces the possibility of +// extraneous hashchange event triggering. Added the +// method which can be used to +// enable Google "AJAX Crawlable mode." +// 1.2.1 - (2/17/2010) Actually fixed the stale window.location Safari bug from +// in BBQ, which was the main reason for the +// previous release! +// 1.2 - (2/16/2010) Integrated v1.2, which fixes a +// Safari bug, the event can now be bound before DOM ready, and IE6/7 +// page should no longer scroll when the event is first bound. Also +// added the method, and reworked the +// internal "add" method to be compatible with +// changes made to the jQuery 1.4.2 special events API. +// 1.1.1 - (1/22/2010) Integrated v1.1, which fixes an +// obscure IE8 EmulateIE7 meta tag compatibility mode bug. +// 1.1 - (1/9/2010) Broke out the jQuery BBQ event.special +// functionality into a separate plugin for users who want just the +// basic event & back button support, without all the extra awesomeness +// that BBQ provides. This plugin will be included as part of jQuery BBQ, +// but also be available separately. See +// plugin for more information. Also added the +// method and added additional examples. +// 1.0.3 - (12/2/2009) Fixed an issue in IE 6 where location.search and +// location.hash would report incorrectly if the hash contained the ? +// character. Also and +// will no longer parse params out of a URL that doesn't contain ? or #, +// respectively. +// 1.0.2 - (10/10/2009) Fixed an issue in IE 6/7 where the hidden IFRAME caused +// a "This page contains both secure and nonsecure items." warning when +// used on an https:// page. +// 1.0.1 - (10/7/2009) Fixed an issue in IE 8. Since both "IE7" and "IE8 +// Compatibility View" modes erroneously report that the browser +// supports the native window.onhashchange event, a slightly more +// robust test needed to be added. +// 1.0 - (10/2/2009) Initial release + +(function($,window){ + '$:nomunge'; // Used by YUI compressor. + + // Some convenient shortcuts. + var undefined, + aps = Array.prototype.slice, + decode = decodeURIComponent, + + // Method / object references. + jq_param = $.param, + jq_param_sorted, + jq_param_fragment, + jq_deparam, + jq_deparam_fragment, + jq_bbq = $.bbq = $.bbq || {}, + jq_bbq_pushState, + jq_bbq_getState, + jq_elemUrlAttr, + special = $.event.special, + + // Reused strings. + str_hashchange = 'hashchange', + str_querystring = 'querystring', + str_fragment = 'fragment', + str_elemUrlAttr = 'elemUrlAttr', + str_href = 'href', + str_src = 'src', + + // Reused RegExp. + re_params_querystring = /^.*\?|#.*$/g, + re_params_fragment, + re_fragment, + re_no_escape, + + ajax_crawlable, + fragment_prefix, + + // Used by jQuery.elemUrlAttr. + elemUrlAttr_cache = {}; + + // A few commonly used bits, broken out to help reduce minified file size. + + function is_string( arg ) { + return typeof arg === 'string'; + }; + + // Why write the same function twice? Let's curry! Mmmm, curry.. + + function curry( func ) { + var args = aps.call( arguments, 1 ); + + return function() { + return func.apply( this, args.concat( aps.call( arguments ) ) ); + }; + }; + + // Get location.hash (or what you'd expect location.hash to be) sans any + // leading #. Thanks for making this necessary, Firefox! + function get_fragment( url ) { + return url.replace( re_fragment, '$2' ); + }; + + // Get location.search (or what you'd expect location.search to be) sans any + // leading #. Thanks for making this necessary, IE6! + function get_querystring( url ) { + return url.replace( /(?:^[^?#]*\?([^#]*).*$)?.*/, '$1' ); + }; + + // Section: Param (to string) + // + // Method: jQuery.param.querystring + // + // Retrieve the query string from a URL or if no arguments are passed, the + // current window.location.href. + // + // Usage: + // + // > jQuery.param.querystring( [ url ] ); + // + // Arguments: + // + // url - (String) A URL containing query string params to be parsed. If url + // is not passed, the current window.location.href is used. + // + // Returns: + // + // (String) The parsed query string, with any leading "?" removed. + // + + // Method: jQuery.param.querystring (build url) + // + // Merge a URL, with or without pre-existing query string params, plus any + // object, params string or URL containing query string params into a new URL. + // + // Usage: + // + // > jQuery.param.querystring( url, params [, merge_mode ] ); + // + // Arguments: + // + // url - (String) A valid URL for params to be merged into. This URL may + // contain a query string and/or fragment (hash). + // params - (String) A params string or URL containing query string params to + // be merged into url. + // params - (Object) A params object to be merged into url. + // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not + // specified, and is as-follows: + // + // * 0: params in the params argument will override any query string + // params in url. + // * 1: any query string params in url will override params in the params + // argument. + // * 2: params argument will completely replace any query string in url. + // + // Returns: + // + // (String) A URL with a urlencoded query string in the format '?a=b&c=d&e=f'. + + // Method: jQuery.param.fragment + // + // Retrieve the fragment (hash) from a URL or if no arguments are passed, the + // current window.location.href. + // + // Usage: + // + // > jQuery.param.fragment( [ url ] ); + // + // Arguments: + // + // url - (String) A URL containing fragment (hash) params to be parsed. If + // url is not passed, the current window.location.href is used. + // + // Returns: + // + // (String) The parsed fragment (hash) string, with any leading "#" removed. + + // Method: jQuery.param.fragment (build url) + // + // Merge a URL, with or without pre-existing fragment (hash) params, plus any + // object, params string or URL containing fragment (hash) params into a new + // URL. + // + // Usage: + // + // > jQuery.param.fragment( url, params [, merge_mode ] ); + // + // Arguments: + // + // url - (String) A valid URL for params to be merged into. This URL may + // contain a query string and/or fragment (hash). + // params - (String) A params string or URL containing fragment (hash) params + // to be merged into url. + // params - (Object) A params object to be merged into url. + // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not + // specified, and is as-follows: + // + // * 0: params in the params argument will override any fragment (hash) + // params in url. + // * 1: any fragment (hash) params in url will override params in the + // params argument. + // * 2: params argument will completely replace any query string in url. + // + // Returns: + // + // (String) A URL with a urlencoded fragment (hash) in the format '#a=b&c=d&e=f'. + + function jq_param_sub( is_fragment, get_func, url, params, merge_mode ) { + var result, + qs, + matches, + url_params, + hash; + + if ( params !== undefined ) { + // Build URL by merging params into url string. + + // matches[1] = url part that precedes params, not including trailing ?/# + // matches[2] = params, not including leading ?/# + // matches[3] = if in 'querystring' mode, hash including leading #, otherwise '' + matches = url.match( is_fragment ? re_fragment : /^([^#?]*)\??([^#]*)(#?.*)/ ); + + // Get the hash if in 'querystring' mode, and it exists. + hash = matches[3] || ''; + + if ( merge_mode === 2 && is_string( params ) ) { + // If merge_mode is 2 and params is a string, merge the fragment / query + // string into the URL wholesale, without converting it into an object. + qs = params.replace( is_fragment ? re_params_fragment : re_params_querystring, '' ); + + } else { + // Convert relevant params in url to object. + url_params = jq_deparam( matches[2] ); + + params = is_string( params ) + + // Convert passed params string into object. + ? jq_deparam[ is_fragment ? str_fragment : str_querystring ]( params ) + + // Passed params object. + : params; + + qs = merge_mode === 2 ? params // passed params replace url params + : merge_mode === 1 ? $.extend( {}, params, url_params ) // url params override passed params + : $.extend( {}, url_params, params ); // passed params override url params + + // Convert params object into a sorted params string. + qs = jq_param_sorted( qs ); + + // Unescape characters specified via $.param.noEscape. Since only hash- + // history users have requested this feature, it's only enabled for + // fragment-related params strings. + if ( is_fragment ) { + qs = qs.replace( re_no_escape, decode ); + } + } + + // Build URL from the base url, querystring and hash. In 'querystring' + // mode, ? is only added if a query string exists. In 'fragment' mode, # + // is always added. + result = matches[1] + ( is_fragment ? fragment_prefix : qs || !matches[1] ? '?' : '' ) + qs + hash; + + } else { + // If URL was passed in, parse params from URL string, otherwise parse + // params from window.location.href. + result = get_func( url !== undefined ? url : location.href ); + } + + return result; + }; + + jq_param[ str_querystring ] = curry( jq_param_sub, 0, get_querystring ); + jq_param[ str_fragment ] = jq_param_fragment = curry( jq_param_sub, 1, get_fragment ); + + // Method: jQuery.param.sorted + // + // Returns a params string equivalent to that returned by the internal + // jQuery.param method, but sorted, which makes it suitable for use as a + // cache key. + // + // For example, in most browsers jQuery.param({z:1,a:2}) returns "z=1&a=2" + // and jQuery.param({a:2,z:1}) returns "a=2&z=1". Even though both the + // objects being serialized and the resulting params strings are equivalent, + // if these params strings were set into the location.hash fragment + // sequentially, the hashchange event would be triggered unnecessarily, since + // the strings are different (even though the data described by them is the + // same). By sorting the params string, unecessary hashchange event triggering + // can be avoided. + // + // Usage: + // + // > jQuery.param.sorted( obj [, traditional ] ); + // + // Arguments: + // + // obj - (Object) An object to be serialized. + // traditional - (Boolean) Params deep/shallow serialization mode. See the + // documentation at http://api.jquery.com/jQuery.param/ for more detail. + // + // Returns: + // + // (String) A sorted params string. + + jq_param.sorted = jq_param_sorted = function( a, traditional ) { + var arr = [], + obj = {}; + + $.each( jq_param( a, traditional ).split( '&' ), function(i,v){ + var key = v.replace( /(?:%5B|=).*$/, '' ), + key_obj = obj[ key ]; + + if ( !key_obj ) { + key_obj = obj[ key ] = []; + arr.push( key ); + } + + key_obj.push( v ); + }); + + return $.map( arr.sort(), function(v){ + return obj[ v ]; + }).join( '&' ); + }; + + // Method: jQuery.param.fragment.noEscape + // + // Specify characters that will be left unescaped when fragments are created + // or merged using , or when the fragment is modified + // using . This option only applies to serialized data + // object fragments, and not set-as-string fragments. Does not affect the + // query string. Defaults to ",/" (comma, forward slash). + // + // Note that this is considered a purely aesthetic option, and will help to + // create URLs that "look pretty" in the address bar or bookmarks, without + // affecting functionality in any way. That being said, be careful to not + // unescape characters that are used as delimiters or serve a special + // purpose, such as the "#?&=+" (octothorpe, question mark, ampersand, + // equals, plus) characters. + // + // Usage: + // + // > jQuery.param.fragment.noEscape( [ chars ] ); + // + // Arguments: + // + // chars - (String) The characters to not escape in the fragment. If + // unspecified, defaults to empty string (escape all characters). + // + // Returns: + // + // Nothing. + + jq_param_fragment.noEscape = function( chars ) { + chars = chars || ''; + var arr = $.map( chars.split(''), encodeURIComponent ); + re_no_escape = new RegExp( arr.join('|'), 'g' ); + }; + + // A sensible default. These are the characters people seem to complain about + // "uglifying up the URL" the most. + jq_param_fragment.noEscape( ',/' ); + + // Method: jQuery.param.fragment.ajaxCrawlable + // + // TODO: DESCRIBE + // + // Usage: + // + // > jQuery.param.fragment.ajaxCrawlable( [ state ] ); + // + // Arguments: + // + // state - (Boolean) TODO: DESCRIBE + // + // Returns: + // + // (Boolean) The current ajaxCrawlable state. + + jq_param_fragment.ajaxCrawlable = function( state ) { + if ( state !== undefined ) { + if ( state ) { + re_params_fragment = /^.*(?:#!|#)/; + re_fragment = /^([^#]*)(?:#!|#)?(.*)$/; + fragment_prefix = '#!'; + } else { + re_params_fragment = /^.*#/; + re_fragment = /^([^#]*)#?(.*)$/; + fragment_prefix = '#'; + } + ajax_crawlable = !!state; + } + + return ajax_crawlable; + }; + + jq_param_fragment.ajaxCrawlable( 0 ); + + // Section: Deparam (from string) + // + // Method: jQuery.deparam + // + // Deserialize a params string into an object, optionally coercing numbers, + // booleans, null and undefined values; this method is the counterpart to the + // internal jQuery.param method. + // + // Usage: + // + // > jQuery.deparam( params [, coerce ] ); + // + // Arguments: + // + // params - (String) A params string to be parsed. + // coerce - (Boolean) If true, coerces any numbers or true, false, null, and + // undefined to their actual value. Defaults to false if omitted. + // + // Returns: + // + // (Object) An object representing the deserialized params string. + + $.deparam = jq_deparam = function( params, coerce ) { + var obj = {}, + coerce_types = { 'true': !0, 'false': !1, 'null': null }; + + // Iterate over all name=value pairs. + $.each( params.replace( /\+/g, ' ' ).split( '&' ), function(j,v){ + var param = v.split( '=' ), + key = decode( param[0] ), + val, + cur = obj, + i = 0, + + // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it + // into its component parts. + keys = key.split( '][' ), + keys_last = keys.length - 1; + + // If the first keys part contains [ and the last ends with ], then [] + // are correctly balanced. + if ( /\[/.test( keys[0] ) && /\]$/.test( keys[ keys_last ] ) ) { + // Remove the trailing ] from the last keys part. + keys[ keys_last ] = keys[ keys_last ].replace( /\]$/, '' ); + + // Split first keys part into two parts on the [ and add them back onto + // the beginning of the keys array. + keys = keys.shift().split('[').concat( keys ); + + keys_last = keys.length - 1; + } else { + // Basic 'foo' style key. + keys_last = 0; + } + + // Are we dealing with a name=value pair, or just a name? + if ( param.length === 2 ) { + val = decode( param[1] ); + + // Coerce values. + if ( coerce ) { + val = val && !isNaN(val) ? +val // number + : val === 'undefined' ? undefined // undefined + : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null + : val; // string + } + + if ( keys_last ) { + // Complex key, build deep object structure based on a few rules: + // * The 'cur' pointer starts at the object top-level. + // * [] = array push (n is set to array length), [n] = array if n is + // numeric, otherwise object. + // * If at the last keys part, set the value. + // * For each keys part, if the current level is undefined create an + // object or array based on the type of the next keys part. + // * Move the 'cur' pointer to the next level. + // * Rinse & repeat. + for ( ; i <= keys_last; i++ ) { + key = keys[i] === '' ? cur.length : keys[i]; + cur = cur[key] = i < keys_last + ? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] ) + : val; + } + + } else { + // Simple key, even simpler rules, since only scalars and shallow + // arrays are allowed. + + if ( $.isArray( obj[key] ) ) { + // val is already an array, so push on the next value. + obj[key].push( val ); + + } else if ( obj[key] !== undefined ) { + // val isn't an array, but since a second value has been specified, + // convert val into an array. + obj[key] = [ obj[key], val ]; + + } else { + // val is a scalar. + obj[key] = val; + } + } + + } else if ( key ) { + // No value was defined, so set something meaningful. + obj[key] = coerce + ? undefined + : ''; + } + }); + + return obj; + }; + + // Method: jQuery.deparam.querystring + // + // Parse the query string from a URL or the current window.location.href, + // deserializing it into an object, optionally coercing numbers, booleans, + // null and undefined values. + // + // Usage: + // + // > jQuery.deparam.querystring( [ url ] [, coerce ] ); + // + // Arguments: + // + // url - (String) An optional params string or URL containing query string + // params to be parsed. If url is omitted, the current + // window.location.href is used. + // coerce - (Boolean) If true, coerces any numbers or true, false, null, and + // undefined to their actual value. Defaults to false if omitted. + // + // Returns: + // + // (Object) An object representing the deserialized params string. + + // Method: jQuery.deparam.fragment + // + // Parse the fragment (hash) from a URL or the current window.location.href, + // deserializing it into an object, optionally coercing numbers, booleans, + // null and undefined values. + // + // Usage: + // + // > jQuery.deparam.fragment( [ url ] [, coerce ] ); + // + // Arguments: + // + // url - (String) An optional params string or URL containing fragment (hash) + // params to be parsed. If url is omitted, the current window.location.href + // is used. + // coerce - (Boolean) If true, coerces any numbers or true, false, null, and + // undefined to their actual value. Defaults to false if omitted. + // + // Returns: + // + // (Object) An object representing the deserialized params string. + + function jq_deparam_sub( is_fragment, url_or_params, coerce ) { + if ( url_or_params === undefined || typeof url_or_params === 'boolean' ) { + // url_or_params not specified. + coerce = url_or_params; + url_or_params = jq_param[ is_fragment ? str_fragment : str_querystring ](); + } else { + url_or_params = is_string( url_or_params ) + ? url_or_params.replace( is_fragment ? re_params_fragment : re_params_querystring, '' ) + : url_or_params; + } + + return jq_deparam( url_or_params, coerce ); + }; + + jq_deparam[ str_querystring ] = curry( jq_deparam_sub, 0 ); + jq_deparam[ str_fragment ] = jq_deparam_fragment = curry( jq_deparam_sub, 1 ); + + // Section: Element manipulation + // + // Method: jQuery.elemUrlAttr + // + // Get the internal "Default URL attribute per tag" list, or augment the list + // with additional tag-attribute pairs, in case the defaults are insufficient. + // + // In the and methods, this list + // is used to determine which attribute contains the URL to be modified, if + // an "attr" param is not specified. + // + // Default Tag-Attribute List: + // + // a - href + // base - href + // iframe - src + // img - src + // input - src + // form - action + // link - href + // script - src + // + // Usage: + // + // > jQuery.elemUrlAttr( [ tag_attr ] ); + // + // Arguments: + // + // tag_attr - (Object) An object containing a list of tag names and their + // associated default attribute names in the format { tag: 'attr', ... } to + // be merged into the internal tag-attribute list. + // + // Returns: + // + // (Object) An object containing all stored tag-attribute values. + + // Only define function and set defaults if function doesn't already exist, as + // the urlInternal plugin will provide this method as well. + $[ str_elemUrlAttr ] || ($[ str_elemUrlAttr ] = function( obj ) { + return $.extend( elemUrlAttr_cache, obj ); + })({ + a: str_href, + base: str_href, + iframe: str_src, + img: str_src, + input: str_src, + form: 'action', + link: str_href, + script: str_src + }); + + jq_elemUrlAttr = $[ str_elemUrlAttr ]; + + // Method: jQuery.fn.querystring + // + // Update URL attribute in one or more elements, merging the current URL (with + // or without pre-existing query string params) plus any params object or + // string into a new URL, which is then set into that attribute. Like + // , but for all elements in a jQuery + // collection. + // + // Usage: + // + // > jQuery('selector').querystring( [ attr, ] params [, merge_mode ] ); + // + // Arguments: + // + // attr - (String) Optional name of an attribute that will contain a URL to + // merge params or url into. See for a list of default + // attributes. + // params - (Object) A params object to be merged into the URL attribute. + // params - (String) A URL containing query string params, or params string + // to be merged into the URL attribute. + // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not + // specified, and is as-follows: + // + // * 0: params in the params argument will override any params in attr URL. + // * 1: any params in attr URL will override params in the params argument. + // * 2: params argument will completely replace any query string in attr + // URL. + // + // Returns: + // + // (jQuery) The initial jQuery collection of elements, but with modified URL + // attribute values. + + // Method: jQuery.fn.fragment + // + // Update URL attribute in one or more elements, merging the current URL (with + // or without pre-existing fragment/hash params) plus any params object or + // string into a new URL, which is then set into that attribute. Like + // , but for all elements in a jQuery + // collection. + // + // Usage: + // + // > jQuery('selector').fragment( [ attr, ] params [, merge_mode ] ); + // + // Arguments: + // + // attr - (String) Optional name of an attribute that will contain a URL to + // merge params into. See for a list of default + // attributes. + // params - (Object) A params object to be merged into the URL attribute. + // params - (String) A URL containing fragment (hash) params, or params + // string to be merged into the URL attribute. + // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not + // specified, and is as-follows: + // + // * 0: params in the params argument will override any params in attr URL. + // * 1: any params in attr URL will override params in the params argument. + // * 2: params argument will completely replace any fragment (hash) in attr + // URL. + // + // Returns: + // + // (jQuery) The initial jQuery collection of elements, but with modified URL + // attribute values. + + function jq_fn_sub( mode, force_attr, params, merge_mode ) { + if ( !is_string( params ) && typeof params !== 'object' ) { + // force_attr not specified. + merge_mode = params; + params = force_attr; + force_attr = undefined; + } + + return this.each(function(){ + var that = $(this), + + // Get attribute specified, or default specified via $.elemUrlAttr. + attr = force_attr || jq_elemUrlAttr()[ ( this.nodeName || '' ).toLowerCase() ] || '', + + // Get URL value. + url = attr && that.attr( attr ) || ''; + + // Update attribute with new URL. + that.attr( attr, jq_param[ mode ]( url, params, merge_mode ) ); + }); + + }; + + $.fn[ str_querystring ] = curry( jq_fn_sub, str_querystring ); + $.fn[ str_fragment ] = curry( jq_fn_sub, str_fragment ); + + // Section: History, hashchange event + // + // Method: jQuery.bbq.pushState + // + // Adds a 'state' into the browser history at the current position, setting + // location.hash and triggering any bound callbacks + // (provided the new state is different than the previous state). + // + // If no arguments are passed, an empty state is created, which is just a + // shortcut for jQuery.bbq.pushState( {}, 2 ). + // + // Usage: + // + // > jQuery.bbq.pushState( [ params [, merge_mode ] ] ); + // + // Arguments: + // + // params - (String) A serialized params string or a hash string beginning + // with # to merge into location.hash. + // params - (Object) A params object to merge into location.hash. + // merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not + // specified (unless a hash string beginning with # is specified, in which + // case merge behavior defaults to 2), and is as-follows: + // + // * 0: params in the params argument will override any params in the + // current state. + // * 1: any params in the current state will override params in the params + // argument. + // * 2: params argument will completely replace current state. + // + // Returns: + // + // Nothing. + // + // Additional Notes: + // + // * Setting an empty state may cause the browser to scroll. + // * Unlike the fragment and querystring methods, if a hash string beginning + // with # is specified as the params agrument, merge_mode defaults to 2. + + jq_bbq.pushState = jq_bbq_pushState = function( params, merge_mode ) { + if ( is_string( params ) && /^#/.test( params ) && merge_mode === undefined ) { + // Params string begins with # and merge_mode not specified, so completely + // overwrite window.location.hash. + merge_mode = 2; + } + + var has_args = params !== undefined, + // Merge params into window.location using $.param.fragment. + url = jq_param_fragment( location.href, + has_args ? params : {}, has_args ? merge_mode : 2 ); + + // Set new window.location.href. Note that Safari 3 & Chrome barf on + // location.hash = '#' so the entire URL is set. + location.href = url; + }; + + // Method: jQuery.bbq.getState + // + // Retrieves the current 'state' from the browser history, parsing + // location.hash for a specific key or returning an object containing the + // entire state, optionally coercing numbers, booleans, null and undefined + // values. + // + // Usage: + // + // > jQuery.bbq.getState( [ key ] [, coerce ] ); + // + // Arguments: + // + // key - (String) An optional state key for which to return a value. + // coerce - (Boolean) If true, coerces any numbers or true, false, null, and + // undefined to their actual value. Defaults to false. + // + // Returns: + // + // (Anything) If key is passed, returns the value corresponding with that key + // in the location.hash 'state', or undefined. If not, an object + // representing the entire 'state' is returned. + + jq_bbq.getState = jq_bbq_getState = function( key, coerce ) { + return key === undefined || typeof key === 'boolean' + ? jq_deparam_fragment( key ) // 'key' really means 'coerce' here + : jq_deparam_fragment( coerce )[ key ]; + }; + + // Method: jQuery.bbq.removeState + // + // Remove one or more keys from the current browser history 'state', creating + // a new state, setting location.hash and triggering any bound + // callbacks (provided the new state is different than + // the previous state). + // + // If no arguments are passed, an empty state is created, which is just a + // shortcut for jQuery.bbq.pushState( {}, 2 ). + // + // Usage: + // + // > jQuery.bbq.removeState( [ key [, key ... ] ] ); + // + // Arguments: + // + // key - (String) One or more key values to remove from the current state, + // passed as individual arguments. + // key - (Array) A single array argument that contains a list of key values + // to remove from the current state. + // + // Returns: + // + // Nothing. + // + // Additional Notes: + // + // * Setting an empty state may cause the browser to scroll. + + jq_bbq.removeState = function( arr ) { + var state = {}; + + // If one or more arguments is passed.. + if ( arr !== undefined ) { + + // Get the current state. + state = jq_bbq_getState(); + + // For each passed key, delete the corresponding property from the current + // state. + $.each( $.isArray( arr ) ? arr : arguments, function(i,v){ + delete state[ v ]; + }); + } + + // Set the state, completely overriding any existing state. + jq_bbq_pushState( state, 2 ); + }; + + // Event: hashchange event (BBQ) + // + // Usage in jQuery 1.4 and newer: + // + // In jQuery 1.4 and newer, the event object passed into any hashchange event + // callback is augmented with a copy of the location.hash fragment at the time + // the event was triggered as its event.fragment property. In addition, the + // event.getState method operates on this property (instead of location.hash) + // which allows this fragment-as-a-state to be referenced later, even after + // window.location may have changed. + // + // Note that event.fragment and event.getState are not defined according to + // W3C (or any other) specification, but will still be available whether or + // not the hashchange event exists natively in the browser, because of the + // utility they provide. + // + // The event.fragment property contains the output of + // and the event.getState method is equivalent to the + // method. + // + // > $(window).bind( 'hashchange', function( event ) { + // > var hash_str = event.fragment, + // > param_obj = event.getState(), + // > param_val = event.getState( 'param_name' ), + // > param_val_coerced = event.getState( 'param_name', true ); + // > ... + // > }); + // + // Usage in jQuery 1.3.2: + // + // In jQuery 1.3.2, the event object cannot to be augmented as in jQuery 1.4+, + // so the fragment state isn't bound to the event object and must instead be + // parsed using the and methods. + // + // > $(window).bind( 'hashchange', function( event ) { + // > var hash_str = $.param.fragment(), + // > param_obj = $.bbq.getState(), + // > param_val = $.bbq.getState( 'param_name' ), + // > param_val_coerced = $.bbq.getState( 'param_name', true ); + // > ... + // > }); + // + // Additional Notes: + // + // * Due to changes in the special events API, jQuery BBQ v1.2 or newer is + // required to enable the augmented event object in jQuery 1.4.2 and newer. + // * See for more detailed information. + + special[ str_hashchange ] = $.extend( special[ str_hashchange ], { + + // Augmenting the event object with the .fragment property and .getState + // method requires jQuery 1.4 or newer. Note: with 1.3.2, everything will + // work, but the event won't be augmented) + add: function( handleObj ) { + var old_handler; + + function new_handler(e) { + // e.fragment is set to the value of location.hash (with any leading # + // removed) at the time the event is triggered. + var hash = e[ str_fragment ] = jq_param_fragment(); + + // e.getState() works just like $.bbq.getState(), but uses the + // e.fragment property stored on the event object. + e.getState = function( key, coerce ) { + return key === undefined || typeof key === 'boolean' + ? jq_deparam( hash, key ) // 'key' really means 'coerce' here + : jq_deparam( hash, coerce )[ key ]; + }; + + old_handler.apply( this, arguments ); + }; + + // This may seem a little complicated, but it normalizes the special event + // .add method between jQuery 1.4/1.4.1 and 1.4.2+ + if ( $.isFunction( handleObj ) ) { + // 1.4, 1.4.1 + old_handler = handleObj; + return new_handler; + } else { + // 1.4.2+ + old_handler = handleObj.handler; + handleObj.handler = new_handler; + } + } + + }); + +})(jQuery,this); + +/*! + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + +// Script: jQuery hashchange event +// +// *Version: 1.3, Last updated: 7/21/2010* +// +// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/ +// GitHub - http://github.com/cowboy/jquery-hashchange/ +// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js +// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (0.8kb gzipped) +// +// About: License +// +// Copyright (c) 2010 "Cowboy" Ben Alman, +// Dual licensed under the MIT and GPL licenses. +// http://benalman.com/about/license/ +// +// About: Examples +// +// These working examples, complete with fully commented code, illustrate a few +// ways in which this plugin can be used. +// +// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/ +// document.domain - http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/ +// +// About: Support and Testing +// +// Information about what version or versions of jQuery this plugin has been +// tested with, what browsers it has been tested in, and where the unit tests +// reside (so you can test it yourself). +// +// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2 +// Browsers Tested - Internet Explorer 6-8, Firefox 2-4, Chrome 5-6, Safari 3.2-5, +// Opera 9.6-10.60, iPhone 3.1, Android 1.6-2.2, BlackBerry 4.6-5. +// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/ +// +// About: Known issues +// +// While this jQuery hashchange event implementation is quite stable and +// robust, there are a few unfortunate browser bugs surrounding expected +// hashchange event-based behaviors, independent of any JavaScript +// window.onhashchange abstraction. See the following examples for more +// information: +// +// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/ +// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/ +// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/ +// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/ +// +// Also note that should a browser natively support the window.onhashchange +// event, but not report that it does, the fallback polling loop will be used. +// +// About: Release History +// +// 1.3 - (7/21/2010) Reorganized IE6/7 Iframe code to make it more +// "removable" for mobile-only development. Added IE6/7 document.title +// support. Attempted to make Iframe as hidden as possible by using +// techniques from http://www.paciellogroup.com/blog/?p=604. Added +// support for the "shortcut" format $(window).hashchange( fn ) and +// $(window).hashchange() like jQuery provides for built-in events. +// Renamed jQuery.hashchangeDelay to and +// lowered its default value to 50. Added +// and properties plus document-domain.html +// file to address access denied issues when setting document.domain in +// IE6/7. +// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin +// from a page on another domain would cause an error in Safari 4. Also, +// IE6/7 Iframe is now inserted after the body (this actually works), +// which prevents the page from scrolling when the event is first bound. +// Event can also now be bound before DOM ready, but it won't be usable +// before then in IE6/7. +// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug +// where browser version is incorrectly reported as 8.0, despite +// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. +// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special +// window.onhashchange functionality into a separate plugin for users +// who want just the basic event & back button support, without all the +// extra awesomeness that BBQ provides. This plugin will be included as +// part of jQuery BBQ, but also be available separately. + +(function($,window,undefined){ + '$:nomunge'; // Used by YUI compressor. + + // Reused string. + var str_hashchange = 'hashchange', + + // Method / object references. + doc = document, + fake_onhashchange, + special = $.event.special, + + // Does the browser support window.onhashchange? Note that IE8 running in + // IE7 compatibility mode reports true for 'onhashchange' in window, even + // though the event isn't supported, so also test document.documentMode. + doc_mode = doc.documentMode, + supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 ); + + // Get location.hash (or what you'd expect location.hash to be) sans any + // leading #. Thanks for making this necessary, Firefox! + function get_fragment( url ) { + url = url || location.href; + return '#' + url.replace( /^[^#]*#?(.*)$/, '$1' ); + }; + + // Method: jQuery.fn.hashchange + // + // Bind a handler to the window.onhashchange event or trigger all bound + // window.onhashchange event handlers. This behavior is consistent with + // jQuery's built-in event handlers. + // + // Usage: + // + // > jQuery(window).hashchange( [ handler ] ); + // + // Arguments: + // + // handler - (Function) Optional handler to be bound to the hashchange + // event. This is a "shortcut" for the more verbose form: + // jQuery(window).bind( 'hashchange', handler ). If handler is omitted, + // all bound window.onhashchange event handlers will be triggered. This + // is a shortcut for the more verbose + // jQuery(window).trigger( 'hashchange' ). These forms are described in + // the section. + // + // Returns: + // + // (jQuery) The initial jQuery collection of elements. + + // Allow the "shortcut" format $(elem).hashchange( fn ) for binding and + // $(elem).hashchange() for triggering, like jQuery does for built-in events. + $.fn[ str_hashchange ] = function( fn ) { + return fn ? this.bind( str_hashchange, fn ) : this.trigger( str_hashchange ); + }; + + // Property: jQuery.fn.hashchange.delay + // + // The numeric interval (in milliseconds) at which the + // polling loop executes. Defaults to 50. + + // Property: jQuery.fn.hashchange.domain + // + // If you're setting document.domain in your JavaScript, and you want hash + // history to work in IE6/7, not only must this property be set, but you must + // also set document.domain BEFORE jQuery is loaded into the page. This + // property is only applicable if you are supporting IE6/7 (or IE8 operating + // in "IE7 compatibility" mode). + // + // In addition, the property must be set to the + // path of the included "document-domain.html" file, which can be renamed or + // modified if necessary (note that the document.domain specified must be the + // same in both your main JavaScript as well as in this file). + // + // Usage: + // + // jQuery.fn.hashchange.domain = document.domain; + + // Property: jQuery.fn.hashchange.src + // + // If, for some reason, you need to specify an Iframe src file (for example, + // when setting document.domain as in ), you can + // do so using this property. Note that when using this property, history + // won't be recorded in IE6/7 until the Iframe src file loads. This property + // is only applicable if you are supporting IE6/7 (or IE8 operating in "IE7 + // compatibility" mode). + // + // Usage: + // + // jQuery.fn.hashchange.src = 'path/to/file.html'; + + $.fn[ str_hashchange ].delay = 50; + /* + $.fn[ str_hashchange ].domain = null; + $.fn[ str_hashchange ].src = null; + */ + + // Event: hashchange event + // + // Fired when location.hash changes. In browsers that support it, the native + // HTML5 window.onhashchange event is used, otherwise a polling loop is + // initialized, running every milliseconds to + // see if the hash has changed. In IE6/7 (and IE8 operating in "IE7 + // compatibility" mode), a hidden Iframe is created to allow the back button + // and hash-based history to work. + // + // Usage as described in : + // + // > // Bind an event handler. + // > jQuery(window).hashchange( function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).hashchange(); + // + // A more verbose usage that allows for event namespacing: + // + // > // Bind an event handler. + // > jQuery(window).bind( 'hashchange', function(e) { + // > var hash = location.hash; + // > ... + // > }); + // > + // > // Manually trigger the event handler. + // > jQuery(window).trigger( 'hashchange' ); + // + // Additional Notes: + // + // * The polling loop and Iframe are not created until at least one handler + // is actually bound to the 'hashchange' event. + // * If you need the bound handler(s) to execute immediately, in cases where + // a location.hash exists on page load, via bookmark or page refresh for + // example, use jQuery(window).hashchange() or the more verbose + // jQuery(window).trigger( 'hashchange' ). + // * The event can be bound before DOM ready, but since it won't be usable + // before then in IE6/7 (due to the necessary Iframe), recommended usage is + // to bind it inside a DOM ready handler. + + // Override existing $.event.special.hashchange methods (allowing this plugin + // to be defined after jQuery BBQ in BBQ's source code). + special[ str_hashchange ] = $.extend( special[ str_hashchange ], { + + // Called only when the first 'hashchange' event is bound to window. + setup: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to create our own. And we don't want to call this + // until the user binds to the event, just in case they never do, since it + // will create a polling loop and possibly even a hidden Iframe. + $( fake_onhashchange.start ); + }, + + // Called only when the last 'hashchange' event is unbound from window. + teardown: function() { + // If window.onhashchange is supported natively, there's nothing to do.. + if ( supports_onhashchange ) { return false; } + + // Otherwise, we need to stop ours (if possible). + $( fake_onhashchange.stop ); + } + + }); + + // fake_onhashchange does all the work of triggering the window.onhashchange + // event for browsers that don't natively support it, including creating a + // polling loop to watch for hash changes and in IE 6/7 creating a hidden + // Iframe to enable back and forward. + fake_onhashchange = (function(){ + var self = {}, + timeout_id, + + // Remember the initial hash so it doesn't get triggered immediately. + last_hash = get_fragment(), + + fn_retval = function(val){ return val; }, + history_set = fn_retval, + history_get = fn_retval; + + // Start the polling loop. + self.start = function() { + timeout_id || poll(); + }; + + // Stop the polling loop. + self.stop = function() { + timeout_id && clearTimeout( timeout_id ); + timeout_id = undefined; + }; + + // This polling loop checks every $.fn.hashchange.delay milliseconds to see + // if location.hash has changed, and triggers the 'hashchange' event on + // window when necessary. + function poll() { + var hash = get_fragment(), + history_hash = history_get( last_hash ); + + if ( hash !== last_hash ) { + history_set( last_hash = hash, history_hash ); + + $(window).trigger( str_hashchange ); + + } else if ( history_hash !== last_hash ) { + location.href = location.href.replace( /#.*/, '' ) + history_hash; + } + + timeout_id = setTimeout( poll, $.fn[ str_hashchange ].delay ); + }; + + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvv REMOVE IF NOT SUPPORTING IE6/7/8 vvvvvvvvvvvvvvvvvvv + // vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + (navigator.userAgent.match(/MSIE/i) !== null) && !supports_onhashchange && (function(){ + // Not only do IE6/7 need the "magical" Iframe treatment, but so does IE8 + // when running in "IE7 compatibility" mode. + + var iframe, + iframe_src; + + // When the event is bound and polling starts in IE 6/7, create a hidden + // Iframe for history handling. + self.start = function(){ + if ( !iframe ) { + iframe_src = $.fn[ str_hashchange ].src; + iframe_src = iframe_src && iframe_src + get_fragment(); + + // Create hidden Iframe. Attempt to make Iframe as hidden as possible + // by using techniques from http://www.paciellogroup.com/blog/?p=604. + iframe = $('':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='
      ',h="";if(s||!a)h+=''+o[t]+"";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='"}l||(c+=h+(s||!a||!f?" ":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+=''+n+"";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?" ":"")+h),c+="
      ",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&tr?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.2",window["DP_jQuery_"+dpuuid]=$})(jQuery);(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||" ",s,o,u,a,f;s=(this.uiDialog=e("
      ")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),o=(this.uiDialogTitlebar=e("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").bind("mousedown",function(){s.focus()}).prependTo(s),u=e("").addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(o),(this.uiDialogTitlebarCloseText=e("")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u),a=e("").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o),f=(this.uiDialogButtonPane=e("
      ")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),(this.uiButtonSet=e("
      ")).addClass("ui-dialog-buttonset").appendTo(f),s.attr({role:"dialog","aria-labelledby":a.attr("id")}),o.find("*").add(o).disableSelection(),this._hoverable(u),this._focusable(u),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n=this,r=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(r=!0)}),r?(e.each(t,function(t,r){var i,s;r=e.isFunction(r)?{click:r,text:t}:r,r=e.extend({type:"button"},r),s=r.click,r.click=function(){s.apply(n.element[0],arguments)},i=e("",r).appendTo(n.uiButtonSet),e.fn.button&&i.button()}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)):this.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._trigger("dragStop",i,r(s)),e.ui.dialog.overlay.resize()}})},_makeResizable:function(n){function u(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}n=n===t?this.options.resizable:n;var r=this,i=this.options,s=this.uiDialog.css("position"),o=typeof n=="string"?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(t,n){e(this).addClass("ui-dialog-resizing"),r._trigger("resizeStart",t,u(n))},resize:function(e,t){r._trigger("resize",e,u(t))},stop:function(t,n){e(this).removeClass("ui-dialog-resizing"),i.height=e(this).height(),i.width=e(this).width(),r._trigger("resizeStop",t,u(n)),e.ui.dialog.overlay.resize()}}).css("position",s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(t){var n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()},_setOptions:function(t){var n=this,s={},o=!1;e.each(t,function(e,t){n._setOption(e,t),e in r&&(o=!0),e in i&&(s[e]=t)}),o&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,r){var i,s,o=this.uiDialog;switch(t){case"buttons":this._createButtons(r);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+r);break;case"dialogClass":o.removeClass(this.options.dialogClass).addClass(n+r);break;case"disabled":r?o.addClass("ui-dialog-disabled"):o.removeClass("ui-dialog-disabled");break;case"draggable":i=o.is(":data(draggable)"),i&&!r&&o.draggable("destroy"),!i&&r&&this._makeDraggable();break;case"position":this._position(r);break;case"resizable":s=o.is(":data(resizable)"),s&&!r&&o.resizable("destroy"),s&&typeof r=="string"&&o.resizable("option","handles",r),!s&&r!==!1&&this._makeResizable(r);break;case"title":e(".ui-dialog-title",this.uiDialogTitlebar).html(""+(r||" "))}this._super(t,r)},_size:function(){var t,n,r,i=this.options,s=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),n=Math.max(0,i.minHeight-t),i.height==="auto"?e.support.minHeight?this.element.css({minHeight:n,height:"auto"}):(this.uiDialog.show(),r=this.element.css("height","auto").height(),s||this.uiDialog.hide(),this.element.height(Math.max(r,n))):this.element.height(Math.max(i.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),e.extend(e.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){var t=e.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=e.ui.dialog.overlay.create(t)}}),e.extend(e.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(t){this.instances.length===0&&(setTimeout(function(){e.ui.dialog.overlay.instances.length&&e(document).bind(e.ui.dialog.overlay.events,function(t){if(e(t.target).zIndex()").addClass("ui-widget-overlay");return e(document).bind("keydown.dialog-overlay",function(r){var i=e.ui.dialog.overlay.instances;i.length!==0&&i[i.length-1]===n&&t.options.closeOnEscape&&!r.isDefaultPrevented()&&r.keyCode&&r.keyCode===e.ui.keyCode.ESCAPE&&(t.close(r),r.preventDefault())}),n.appendTo(document.body).css({width:this.width(),height:this.height()}),e.fn.bgiframe&&n.bgiframe(),this.instances.push(n),n},destroy:function(t){var n=e.inArray(t,this.instances),r=0;n!==-1&&this.oldInstances.push(this.instances.splice(n,1)[0]),this.instances.length===0&&e([document,window]).unbind(".dialog-overlay"),t.height(0).width(0).remove(),e.each(this.instances,function(){r=Math.max(r,this.css("z-index"))}),this.maxZ=r},height:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),n=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),t
      ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.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";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.leftu[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.topu[3]?f-this.offset.click.topu[2]?l-this.offset.click.left=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s=l&&o<=c||u>=l&&u<=c||oc)&&(i>=a&&i<=f||s>=a&&s<=f||if);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;oe?0:r.max")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[];i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i;if(t&&t.length&&t[0]&&t[t[0]]){i=t.length;while(i--)r=t[i],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.2",save:function(e,t){for(var n=0;n
      ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function a(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,s=t.mode;(r.is(":hidden")?s==="hide":s==="show")?u():o.call(r[0],t,u)}var t=i.apply(this,arguments),r=t.mode,s=t.queue,o=e.effects.effect[t.effect],u=!o&&n&&e.effects[t.effect];return e.fx.off||!o&&!u?r?this[r](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):o?s===!1?this.each(a):this.queue(s||"fx",a):u.call(this,{options:t,duration:t.duration,callback:t.complete,mode:t.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h
      ").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('
      ').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery);(function(e,t){var n=!1;e.widget("ui.menu",{version:"1.9.2",defaultElement:"
        ",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()
      ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);(function(e,t){e.widget("ui.resizable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var t=this,n=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e('
      ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(e(".ui-resizable-handle",this.element).length?{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"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i
    ');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")}).insertAfter(n),n.remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),ie.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r
    ');var r=e.ui.ie6?1:0,i=e.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+i,height:this.element.outerHeight()+i,position:"absolute",left:this.elementOffset.left-r+"px",top:this.elementOffset.top-r+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.rightu||a.bottomi&&a.rights&&a.bottom
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(i.range==="min"||i.range==="max"?" ui-slider-range-"+i.range:""))),r=i.values&&i.values.length||1;for(t=s.length;tn&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);(function(e,t){e.widget("ui.sortable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+fs&&t+le[this.floating?"width":"height"]?c:s0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else{var s=1e4,o=null,u=this.containers[r].floating?"left":"top",a=this.containers[r].floating?"width":"height",f=this.positionAbs[u]+this.offset.click[u];for(var l=this.items.length-1;l>=0;l--){if(!e.contains(this.containers[r].element[0],this.items[l].item[0]))continue;if(this.items[l].item[0]==this.currentItem[0])continue;var c=this.items[l].item.offset()[u],h=!1;Math.abs(c-f)>Math.abs(c+this.items[l][a]-f)&&(h=!0,c+=this.items[l][a]),Math.abs(c-f)this.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.topthis.containment[3]?u-this.offset.click.topthis.containment[2]?a-this.offset.click.left=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e1&&e.href.replace(r,"")===location.href.replace(r,"").replace(/\s/g,"%20")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options,r=n.active,i=location.hash.substring(1);this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(r===null){i&&this.tabs.each(function(t,n){if(e(n).attr("aria-controls")===i)return r=t,!1}),r===null&&(r=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(r===null||r===-1)r=this.tabs.length?0:!1}r!==!1&&(r=this.tabs.index(this.tabs.eq(r)),r===-1&&(r=n.collapsible?!1:0)),n.active=r,!n.collapsible&&n.active===!1&&this.anchors.length&&(n.active=0),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("
    ").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"Loading…"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"
  • #{label}
  • "},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"
    "},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r,i,s=this._superApply(arguments);return s?(e==="beforeActivate"?(r=n.newTab.length?n.newTab:n.oldTab,i=n.newPanel.length?n.newPanel:n.oldPanel,s=this._super("select",t,{tab:r.find(".ui-tabs-anchor")[0],panel:i[0],index:r.closest("li").index()})):e==="activate"&&n.newTab.length&&(s=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),s):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("
    ").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("
    ").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery); \ No newline at end of file diff --git a/yii/assets/7b3570a4/punycode.js b/yii/assets/7b3570a4/punycode.js new file mode 100644 index 0000000..b4a4960 --- /dev/null +++ b/yii/assets/7b3570a4/punycode.js @@ -0,0 +1,510 @@ +/*! http://mths.be/punycode v1.2.0 by @mathias */ +;(function(root) { + + /** + * The `punycode` object. + * @name punycode + * @type Object + */ + var punycode, + + /** Detect free variables `define`, `exports`, `module` and `require` */ + freeDefine = typeof define == 'function' && typeof define.amd == 'object' && + define.amd && define, + freeExports = typeof exports == 'object' && exports, + freeModule = typeof module == 'object' && module, + freeRequire = typeof require == 'function' && require, + + /** Highest positive signed 32-bit float value */ + maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 + + /** Bootstring parameters */ + base = 36, + tMin = 1, + tMax = 26, + skew = 38, + damp = 700, + initialBias = 72, + initialN = 128, // 0x80 + delimiter = '-', // '\x2D' + + /** Regular expressions */ + regexPunycode = /^xn--/, + regexNonASCII = /[^ -~]/, // unprintable ASCII chars + non-ASCII chars + regexSeparators = /\x2E|\u3002|\uFF0E|\uFF61/g, // RFC 3490 separators + + /** Error messages */ + errors = { + 'overflow': 'Overflow: input needs wider integers to process', + 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + while (length--) { + array[length] = fn(array[length]); + } + return array; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings. + * @private + * @param {String} domain The domain name. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + return map(string.split(regexSeparators), fn).join('.'); + } + + /** + * Creates an array containing the decimal code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if ((value & 0xF800) == 0xD800 && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + output.push(value, extra); + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of decimal code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of decimal code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic (decimal) code point. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + return codePoint - 48 < 10 + ? codePoint - 22 + : codePoint - 65 < 26 + ? codePoint - 65 + : codePoint - 97 < 26 + ? codePoint - 97 + : base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if flag is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * http://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a basic code point to lowercase if `flag` is falsy, or to + * uppercase if `flag` is truthy. The code point is unchanged if it's + * caseless. The behavior is undefined if `codePoint` is not a basic code + * point. + * @private + * @param {Number} codePoint The numeric value of a basic code point. + * @returns {Number} The resulting basic code point. + */ + function encodeBasic(codePoint, flag) { + codePoint -= (codePoint - 97 < 26) << 5; + return codePoint + (!flag && codePoint - 65 < 26) << 5; + } + + /** + * Converts a Punycode string of ASCII code points to a string of Unicode + * code points. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII code points. + * @returns {String} The resulting string of Unicode code points. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + length, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode code points to a Punycode string of ASCII + * code points. + * @memberOf punycode + * @param {String} input The string of Unicode code points. + * @returns {String} The resulting Punycode string of ASCII code points. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name to Unicode. Only the + * Punycoded parts of the domain name will be converted, i.e. it doesn't + * matter if you call it on a string that has already been converted to + * Unicode. + * @memberOf punycode + * @param {String} domain The Punycode domain name to convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(domain) { + return mapDomain(domain, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name to Punycode. Only the + * non-ASCII parts of the domain name will be converted, i.e. it doesn't + * matter if you call it with a domain that's already in ASCII. + * @memberOf punycode + * @param {String} domain The domain name to convert, as a Unicode string. + * @returns {String} The Punycode representation of the given domain name. + */ + function toASCII(domain) { + return mapDomain(domain, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.2.0', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to decimal Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + if (freeExports) { + if (freeModule && freeModule.exports == freeExports) { + // in Node.js or Ringo 0.8+ + freeModule.exports = punycode; + } else { + // in Narwhal or Ringo 0.7- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else if (freeDefine) { + // via curl.js or RequireJS + define('punycode', punycode); + } else { + // in a browser or Rhino + root.punycode = punycode; + } + +}(this)); \ No newline at end of file diff --git a/yii/assets/7b3570a4/punycode.min.js b/yii/assets/7b3570a4/punycode.min.js new file mode 100644 index 0000000..7366b1f --- /dev/null +++ b/yii/assets/7b3570a4/punycode.min.js @@ -0,0 +1,2 @@ +/*! http://mths.be/punycode v1.2.0 by @mathias */ +;(function(u){var I,e=typeof define=='function'&&typeof define.amd=='object'&&define.amd&&define,J=typeof exports=='object'&&exports,q=typeof module=='object'&&module,h=typeof require=='function'&&require,o=2147483647,p=36,i=1,H=26,B=38,b=700,m=72,G=128,C='-',E=/^xn--/,t=/[^ -~]/,l=/\x2E|\u3002|\uFF0E|\uFF61/g,s={overflow:'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)','invalid-input':'Invalid input'},v=p-i,g=Math.floor,j=String.fromCharCode,n;function y(K){throw RangeError(s[K])}function z(M,K){var L=M.length;while(L--){M[L]=K(M[L])}return M}function f(K,L){return z(K.split(l),L).join('.')}function D(N){var M=[],L=0,O=N.length,P,K;while(L65535){M-=65536;L+=j(M>>>10&1023|55296);M=56320|M&1023}L+=j(M);return L}).join('')}function c(K){return K-48<10?K-22:K-65<26?K-65:K-97<26?K-97:p}function A(L,K){return L+22+75*(L<26)-((K!=0)<<5)}function w(N,L,M){var K=0;N=M?g(N/b):N>>1;N+=g(N/L);for(;N>v*H>>1;K+=p){N=g(N/v)}return g(K+(v+1)*N/(N+B))}function k(L,K){L-=(L-97<26)<<5;return L+(!K&&L-65<26)<<5}function a(X){var N=[],Q=X.length,S,T=0,M=G,U=m,P,R,V,L,Y,O,W,aa,K,Z;P=X.lastIndexOf(C);if(P<0){P=0}for(R=0;R=128){y('not-basic')}N.push(X.charCodeAt(R))}for(V=P>0?P+1:0;V=Q){y('invalid-input')}W=c(X.charCodeAt(V++));if(W>=p||W>g((o-T)/Y)){y('overflow')}T+=W*Y;aa=O<=U?i:(O>=U+H?H:O-U);if(Wg(o/Z)){y('overflow')}Y*=Z}S=N.length+1;U=w(T-L,S,L==0);if(g(T/S)>o-M){y('overflow')}M+=g(T/S);T%=S;N.splice(T++,0,M)}return F(N)}function d(W){var N,Y,T,L,U,S,O,K,R,aa,X,M=[],Q,P,Z,V;W=D(W);Q=W.length;N=G;Y=0;U=m;for(S=0;S=N&&Xg((o-Y)/P)){y('overflow')}Y+=(O-N)*P;N=O;for(S=0;So){y('overflow')}if(X==N){for(K=Y,R=p;;R+=p){aa=R<=U?i:(R>=U+H?H:R-U);if(Ki+-#|NQy$ zABXln&Q1FL`t{#CH*SY|{oJwc*Qz;h;)0))7aYq9ewP~fc2e)_P3vAY)$9wl{IzJp zy{ydlr;a^HiGHwZ{*SH8FZkJhE{gei`OM?;ir*_{?@ji478&@mD*tSH_`A&5@6Vqe z@G<&xeCOwiq-WvY-eS5f?;vgCP8#IHGBw=+^cY}xvy zx8c*8mDl2ff1W;kCeZrNm9vlQYJg5Caki?(^G9DBs4DA0KlA4-ZT3fl8 z8F_gb*}2-1v>0WWwY1oIg_&Emc-aM+Wn|bpRc1GF^$N-etzA1qr9X*XNNWw_j-BjG zGEKc(x)1gUF{(82E@ad^eMXp9hUxg0Q)f<}lVRDncBb&%dq*yAR+(|l-D@bZwvw%g)cL7VG z)An_f*+XqOetkIP*eg{wS7K(+qJ{-x0ue3?v&y~1d1To>MqD_2keNGNE=Pc|!BJ7b fV_(F^#N=Z_Jo9)pKRPly^YODPxtB5!M# z{q=^=j}*N*e*EQepZ7;K-(U6l^W*)qy-uI5Mx04YJ9FmD@2@w0e|`3BzvYV!svmDJ zy1UBtA9dUx3IVz=bW<9TmSpMHPB|LHc1x92?H@6~*NPV?1P?R#4d zPbMV1-s|#ytJ9}D;U7+0e!n;8#jahi&$Zv4GUd&Fk1akv*Jf&ey1!wEi_7gU#eYv#yB=$CE4*Ha3+f942mV(XO4k$!yUkYI4!^v z(7()>%8M?Gl%7kx>Gn`^RAQF96>H~ zqm`q-QcY~aQ7_g~!8sNO9r=2u3Mlqi#CWtc9T(=ypIRf>c$iT@(<;xV@nLFbqN;ve z&H|wp@2R5NS2`L#KJ=KR(rKEJaLDyUmqb%cL}by=)-=YHmH-A@k7GPXma%d?aC*qL zh)X7I#x;cnUQ^jS^;|kOFmg@Nv0U}W!=<5%L(6DYL1B*CL?*3JjSUV#i&`dVbSiW! SUO9NY!6jXVS5kz7!5RQwc6cV!%D{}G^Q}iNI#p{aB=u^kJ9BqzM)+D@@g7D>_ZH z6>Nk>K2^#dec$f{wU-guk_-ifF85148Cp_DAFNp6pyFD4;K0FaN0~T!rZl8xhzRi< zJfPqp$mMgO;X`tudoz>MmZ#eSOlK(AtTGKv3EZarLTTUP^eF}_#MUiZ*zcGva9-Jw zf!ij)+<@JNlcm9cFOtndi}(JSX|zKPdEhy7ru zZb`FNQ?sj-h`^G=x)&2xbR-;L`YB-8$sw^}x!0m5Y~9sd L;uWgGz+epk&R;19 literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/treeview/images/folder-closed.gif b/yii/assets/7b3570a4/treeview/images/folder-closed.gif new file mode 100644 index 0000000000000000000000000000000000000000..541107888e6739a7b367ad3d208e1efa933f877d GIT binary patch literal 105 zcmZ?wbhEHb6ky4lrdiO0bk3ZcRLy6E?4f Hg~1vCyv-@{ literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/treeview/images/folder.gif b/yii/assets/7b3570a4/treeview/images/folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b31631ca2bfec3a8afb1bfdd4f8ed4c5bcc3a18 GIT binary patch literal 106 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 literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/treeview/images/treeview-gray-line.gif b/yii/assets/7b3570a4/treeview/images/treeview-gray-line.gif new file mode 100644 index 0000000000000000000000000000000000000000..37600447dc002bbc0dd16e1391b711360aae2e34 GIT binary patch literal 1877 zcmeH``8OK|0LL@bF~qSc#n50?JXNI+k>{#)#go3O{g`&sTA06+?`JRv{%1VB*=kSggPTmbZ?E2@Hm10RaqGJr~M_swEK9(fuU z9bXMur@nY#Xn3Qp;v6X2AT> zA>EM+>y@m1^a49s_E1X&+bZH^!_a=e{N6Su)s&U>sDnd!~=b?JFEB#FT8 zioZMFaK52~t&52oqdWW~2MJ1ue%%?en#qCfU7u!nC|sSJi5E`}X3h8)ly{+5*|mp+ zYqNE`8MkZN-)k};oze-j%*tB&sNuZif|=0wM%!=l0sXF(V)Zg+3_ zjbW;EBEX2ytHG=$Dx2Ha{HE%5V3a1hHnd2R32m%R*9#gFWf^4tEW&~!6yIiV)*e*l zireg~b4-8KL1b9Tn<4TQc-aUN7>=bBxE!0Aep)ES$dA>bZ zlac_>GSf$}Amq|xpG2f_X<$)PU0E=BExZ&}FuYP8&bwD%fgJCOsK5%!A}jIpO{>+( zGV75wBp|A>JOyOlNY1dq-7SE-P1iq3bVQx6%Yk<{*5}84F?-+_`Yq}S#U}_=SCzX? zX`+&GsCqhDsvFh7AWWM#ck=(Rps}W(-f3)-hf$w$i>58wymeug)RAsnbE^=j9L-?f zpi-Z);Tuuyqj4L}9YcZxTIWO&p4K%*X3?0-?f4ef8jtm%XgkyEBd6Ds8uOK?%`{)>0D(Cr`A4IcZoG`&U18YKqjoYtzQo|Dt=**7zk597IbK9sJXFyhNi zwtW@gRcSW?gGKMW@kxrlG#OY-do~qJ*-V&3Js8`Y3GYwom_@$iB+g=ml}U5>1u1QR zAzAiA(jrL>&74Uwwqm}`xJ1AT;O_GsONn5#!*ULyhq;oEIkp%2g#mF(6lf@Jxhn4i zV~t87;8y4{2KZG5ao+KL=SUTJlQq*4|E@_PjJ3`!o(GG)^}?JsMpy*)mQYPCf1;Sk`8-A8at@Xm#Gb>oe(v%3b{156)aykj?nu&|IbZfh z!lZx$?iVd}BHwuNSkmco3iwy5Drr$xV-lid6PqT(u95$N>8c#Jm2RMN_SB1WJe9Oq z(x$uU@TQLQX@QVr>U~Sa;vEmbZ_QL7odp^*-BsqVXSqmf)oqYES3tl*66F0YO=#d1 rlgk$~puxAlhuJ^ZHqgioD1o1DVtQEUit~KllU0$5nh)jV0N{TCC3Zqn literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/treeview/images/treeview-gray.gif b/yii/assets/7b3570a4/treeview/images/treeview-gray.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfb8a2f0961b880d9ecc9e59f831d0c0bf9d06db GIT binary patch literal 1230 zcmZ?wbhEHbOkikb_|5F}1vNN-#bFE}n2rob1X65+pkEe*DZwLSXy)sc-G6LrLE|#j%ny@ltx#{|>*k3`b zudj+f+$8$@s#fHh^zF++cYjOsT#=i)PgZ*SBbQFk<=6g7TzYe_x%fYqoR5WW_>5Nf zsIRkcJbHA@c(c>D3XzqU)=k#8J9nngIK5|{y|vw$2$RE?mT4~XtDRLEe|<_~c?_?$ zLGJZ!!S{W4%zp58Z=>w%X})`Qe0&`0sXRUALwVLJuj#KvHA1S2+ow&BYJYdfr2O^1 zna!)!@5=7^`T51=)#j2iwbhrWRX*39_q(R{^Y??#w#k`8!n#b?Ah=gT4^b_6Je!p-pqnUi6)T{Kw4)JLb3tD)cb}Z;R&ALM=NKo^J zQum3S7LQAK7iB!^v-vhdvhxz-&N&k%mqtvOXdV2 literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/treeview/images/treeview-red-line.gif b/yii/assets/7b3570a4/treeview/images/treeview-red-line.gif new file mode 100644 index 0000000000000000000000000000000000000000..df9e749a8f1f58862588efc64988003efad01d51 GIT binary patch literal 1877 zcmeH``BxGK0LPh{$5cGF%CuRcF0W^1+Eb91Y0har@ns%QJPI-bCps}CP-u#GY96he zH{=x}8cR_?6wMSBHp}~@d8B5Ec_ztT`#0A2hwu02&*#0br`JzT&Np-c8>+j2FWJW9 z|J$$i)xiJGfXTkfHvoVFVDp9i%O?Qp3V=f6d5==7Sk4KMl>Ucik`YxtvJ<)$%#TPKR% zdeBegW3Nr-TZ$_DvX!7#=EQu`)|{{_NO4?Hnuz--`I}N3UjF&+?uwLk+=>GJd{B_Tc2OKbjN9H> z96NPSF%oo|+^NT@plDh-RsN>!ws$&N>eV+-RSK`GN-+xQlcpP|{VXMbZmGY?Sg+bE z&yqDeRb-m~Xn;($Rkc9os0lNWR0x7V&viYtFw425?`)O{#Xnxi^Z-rV%z`xuPf1K3U`ignx^9LiY{9RF`M1 z((4&CBBq9gRTxIqvdNQH4XvU-teM=&r#I{BRpE@Mf`UowW*aYDTj; zR~d}wJj7bmv%$EvhL%3@95+YnP@jZFjkyaK?LZqem&Cp}E@#J}7%>obDszfKXbSed{!N zqe%A5h1G9<<|OWgt(pyPNUi%mt_OllWQ$!DHV#9VzJogSLla83`aMi%;zcml$vXr7 zf<%YcL08HgN8s@2tufz(==0;jh0Ny@q4f1T-P5MdE9;FzHSA-Pm3Wn^KX5K-#%-h+YndE*c}A#} z97|nymmXX*xOhw~p_=<#*Rp;q1c;i_)TkyvQ;xgVtY5mTyh_&|ZEzU`%%?)%UDt;N sUpBjNE)^Df<9oQ%i{r+6SwTgJWAz*lYeQMK?>m|{T3!EviV6VoFXq=mv;Y7A literal 0 HcmV?d00001 diff --git a/yii/assets/7b3570a4/treeview/images/treeview-red.gif b/yii/assets/7b3570a4/treeview/images/treeview-red.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bbb3a157f1568d59d6db02b55a3b3fe9a1ff7a7 GIT binary patch literal 1230 zcmZ?wbhEHbOkikb_|5q9rFMYXq;dkzBCUd%AXV z7f->2WoKqf=UU0E5MF-1&C2oHA5RfQ-wyu&du5`wWCYCfT`X0jHDP7Qa?|x$vA=>= zUtbk}xJmT)RjtT1>D!lu?*5kMxgs}ppRDxuM=qV7%dh>Fxb)^;bMb#JIUft%@ENV{ zQD0}@c=YI)@n)xQ6(TDyt(&ZGckWD~aeB`@duzKh5hjN(Ez?}&S39dT{`!=}@)%xg zgWT)eg75q8nEl}G-bUHi(|q^r`1m-~Q+ayKhw`jdUejNTYJ^l3w@;fM)&A~|N%`x2 zGn-ed-<93-^Ye?#tIZ{4YO60#t9-6I?{`h@=kEuf$II8+R(@HSYaUSgyf$2+OgK}0 zZsRjUi+L5dHILtK5edt9=qI|b{eIzIMl<7PRm>?O4!tnstX#kf7!b zrS20uEgqNfF3Nb+XY*}_WalNuopUBkE{&Kl(L5+ZuF(6`HI*Fyu5b4nE$kweHiYk+ hA)Dse=Ki!azG~*1pFZrjzSo!1+8Tx;5Kt##K8 zpn+h6L4@K@7DfgJ83r8?2V^G$YrzAxzKG1Mj9F{fJlz+r6JFwb_s5d=LGRrUD5QAQ zNc8tDnRFnBZ{CHrl2a?9#BZ!gI2~HCzjK3xqn`Y^jOMDdVT&(5-4yZXZ_&=1Ypz<& pbz11_%i7%H?(X8^=xAqWZEay;YHDPpudkz{si~%>tgOgj4FL3OZcYFI literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/gridview/delete.png b/yii/assets/a409c9d2/gridview/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..dc4c12aa002a7d5249c3560c05be12a66e60c6d9 GIT binary patch literal 715 zcmV;+0yO=JP)+^$SLwjJnFwXOPfA8TCw4_)pUQQ;HS3^7i z7H0}_uc%d}Rj-5(ejcouZ_0EI%~Vm6z7Xc&fy|Ad!e+ctdPe^e@!q1p2iO@jM^jr@#YTkC9v2rxgx+}YX5 z5ws*Q2u|R0|BDm`93oEPAWr~3-Ly5?fO0dZwkZHD??(Itfb?gclg@a$(snB5MBtN3KkjCCyw=EAt!5hxIdrO x^-~#ylFUuylGxt%nCr{|kh#TLI-Ons&tElxCVrm3f13aR002ovPDHLkV1klJMTh_Z literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/gridview/down.gif b/yii/assets/a409c9d2/gridview/down.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4933b884179f1c01c101f86f473287367a5c0e9 GIT binary patch literal 55 zcmZ?wbhEHbWM^Pun8*ME|G@yrQ2fcl$iTqFpaT*G$ulr + * @link http://www.yiiframework.com/ + * @copyright 2008-2010 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + +(function ($) { + var selectCheckedRows, methods, + yiiXHR={}, + gridSettings = []; + /** + * 1. Selects rows that have checkbox checked (only checkbox that is connected with selecting a row) + * 2. Check if "check all" need to be checked/unchecked + * @return object the jQuery object + */ + selectCheckedRows = function (gridId) { + var settings = gridSettings[gridId], + table = $('#' + gridId).find('.' + settings.tableClass); + + table.children('tbody').find('input.select-on-check').filter(':checked').each(function () { + $(this).closest('tr').addClass('selected'); + }); + + table.children('thead').find('th input').filter('[type="checkbox"]').each(function () { + var name = this.name.substring(0, this.name.length - 4) + '[]', //.. remove '_all' and add '[]'' + $checks = $("input[name='" + name + "']", table); + this.checked = $checks.length > 0 && $checks.length === $checks.filter(':checked').length; + }); + return this; + }; + + methods = { + /** + * yiiGridView set function. + * @param options map settings for the grid view. Available options are as follows: + * - ajaxUpdate: array, IDs of the containers whose content may be updated by ajax response + * - ajaxVar: string, the name of the request variable indicating the ID of the element triggering the AJAX request + * - ajaxType: string, the type (GET or POST) of the AJAX request + * - pagerClass: string, the CSS class for the pager container + * - tableClass: string, the CSS class for the table + * - selectableRows: integer, the number of rows that can be selected + * - updateSelector: string, the selector for choosing which elements can trigger ajax requests + * - beforeAjaxUpdate: function, the function to be called before ajax request is sent + * - afterAjaxUpdate: function, the function to be called after ajax response is received + * - ajaxUpdateError: function, the function to be called if an ajax error occurs + * - selectionChanged: function, the function to be called after the row selection is changed + * @return object the jQuery object + */ + init: function (options) { + var settings = $.extend({ + ajaxUpdate: [], + ajaxVar: 'ajax', + ajaxType: 'GET', + pagerClass: 'pager', + loadingClass: 'loading', + filterClass: 'filters', + tableClass: 'items', + selectableRows: 1 + // updateSelector: '#id .pager a, '#id .grid thead th a', + // beforeAjaxUpdate: function (id) {}, + // afterAjaxUpdate: function (id, data) {}, + // selectionChanged: function (id) {}, + // url: 'ajax request URL' + }, options || {}); + + settings.tableClass = settings.tableClass.replace(/\s+/g, '.'); + + return this.each(function () { + var eventType, + $grid = $(this), + id = $grid.attr('id'), + pagerSelector = '#' + id + ' .' + settings.pagerClass.replace(/\s+/g, '.') + ' a', + sortSelector = '#' + id + ' .' + settings.tableClass + ' thead th a.sort-link', + inputSelector = '#' + id + ' .' + settings.filterClass + ' input, ' + '#' + id + ' .' + settings.filterClass + ' select'; + + settings.updateSelector = settings.updateSelector + .replace('{page}', pagerSelector) + .replace('{sort}', sortSelector); + settings.filterSelector = settings.filterSelector + .replace('{filter}', inputSelector); + + gridSettings[id] = settings; + + if (settings.ajaxUpdate.length > 0) { + $(document).on('click.yiiGridView', settings.updateSelector, function () { + // Check to see if History.js is enabled for our Browser + if (settings.enableHistory && window.History.enabled) { + // Ajaxify this link + var url = $(this).attr('href').split('?'), + params = $.deparam.querystring('?'+ (url[1] || '')); + + delete params[settings.ajaxVar]; + window.History.pushState(null, document.title, decodeURIComponent($.param.querystring(url[0], params))); + } else { + $('#' + id).yiiGridView('update', {url: $(this).attr('href')}); + } + return false; + }); + } + + $(document).on('change.yiiGridView keydown.yiiGridView', settings.filterSelector, function (event) { + if (event.type === 'keydown') { + if (event.keyCode !== 13) { + return; // only react to enter key + } else { + eventType = 'keydown'; + } + } else { + // prevent processing for both keydown and change events + if (eventType === 'keydown') { + eventType = ''; + return; + } + } + var data = $(settings.filterSelector).serialize(); + if (settings.pageVar !== undefined) { + data += '&' + settings.pageVar + '=1'; + } + if (settings.enableHistory && settings.ajaxUpdate !== false && window.History.enabled) { + // Ajaxify this link + var url = $('#' + id).yiiGridView('getUrl'), + params = $.deparam.querystring($.param.querystring(url, data)); + + delete params[settings.ajaxVar]; + window.History.pushState(null, document.title, decodeURIComponent($.param.querystring(url.substr(0, url.indexOf('?')), params))); + } else { + $('#' + id).yiiGridView('update', {data: data}); + } + return false; + }); + + if (settings.enableHistory && settings.ajaxUpdate !== false && window.History.enabled) { + $(window).bind('statechange', function() { // Note: We are using statechange instead of popstate + var State = window.History.getState(); // Note: We are using History.getState() instead of event.state + $('#' + id).yiiGridView('update', {url: State.url}); + }); + } + + if (settings.selectableRows > 0) { + selectCheckedRows(this.id); + $(document).on('click.yiiGridView', '#' + id + ' .' + settings.tableClass + ' > tbody > tr', function (e) { + var $currentGrid, $row, isRowSelected, $checks, + $target = $(e.target); + + if ($target.closest('td').is('.empty,.button-column') || (e.target.type === 'checkbox' && !$target.hasClass('select-on-check'))) { + return; + } + + $row = $(this); + $currentGrid = $('#' + id); + $checks = $('input.select-on-check', $currentGrid); + isRowSelected = $row.toggleClass('selected').hasClass('selected'); + + if (settings.selectableRows === 1) { + $row.siblings().removeClass('selected'); + $checks.prop('checked', false); + } + $('input.select-on-check', $row).prop('checked', isRowSelected); + $("input.select-on-check-all", $currentGrid).prop('checked', $checks.length === $checks.filter(':checked').length); + + if (settings.selectionChanged !== undefined) { + settings.selectionChanged(id); + } + }); + if (settings.selectableRows > 1) { + $(document).on('click.yiiGridView', '#' + id + ' .select-on-check-all', function () { + var $currentGrid = $('#' + id), + $checks = $('input.select-on-check', $currentGrid), + $checksAll = $('input.select-on-check-all', $currentGrid), + $rows = $currentGrid.find('.' + settings.tableClass).children('tbody').children(); + if (this.checked) { + $rows.addClass('selected'); + $checks.prop('checked', true); + $checksAll.prop('checked', true); + } else { + $rows.removeClass('selected'); + $checks.prop('checked', false); + $checksAll.prop('checked', false); + } + if (settings.selectionChanged !== undefined) { + settings.selectionChanged(id); + } + }); + } + } else { + $(document).on('click.yiiGridView', '#' + id + ' .select-on-check', false); + } + }); + }, + + /** + * Returns the key value for the specified row + * @param row integer the row number (zero-based index) + * @return string the key value + */ + getKey: function (row) { + return this.children('.keys').children('span').eq(row).text(); + }, + + /** + * Returns the URL that generates the grid view content. + * @return string the URL that generates the grid view content. + */ + getUrl: function () { + var sUrl = gridSettings[this.attr('id')].url; + return sUrl || this.children('.keys').attr('title'); + }, + + /** + * Returns the jQuery collection of the cells in the specified row. + * @param row integer the row number (zero-based index) + * @return jQuery the jQuery collection of the cells in the specified row. + */ + getRow: function (row) { + var sClass = gridSettings[this.attr('id')].tableClass; + return this.find('.' + sClass).children('tbody').children('tr').eq(row).children(); + }, + + /** + * Returns the jQuery collection of the cells in the specified column. + * @param column integer the column number (zero-based index) + * @return jQuery the jQuery collection of the cells in the specified column. + */ + getColumn: function (column) { + var sClass = gridSettings[this.attr('id')].tableClass; + return this.find('.' + sClass).children('tbody').children('tr').children('td:nth-child(' + (column + 1) + ')'); + }, + + /** + * Performs an AJAX-based update of the grid view contents. + * @param options map the AJAX request options (see jQuery.ajax API manual). By default, + * the URL to be requested is the one that generates the current content of the grid view. + * @return object the jQuery object + */ + update: function (options) { + var customError; + if (options && options.error !== undefined) { + customError = options.error; + delete options.error; + } + + return this.each(function () { + var $form, + $grid = $(this), + id = $grid.attr('id'), + settings = gridSettings[id]; + + options = $.extend({ + type: settings.ajaxType, + url: $grid.yiiGridView('getUrl'), + success: function (data) { + var $data = $('
    ' + data + '
    '); + $.each(settings.ajaxUpdate, function (i, el) { + var updateId = '#' + el; + $(updateId).replaceWith($(updateId, $data)); + }); + if (settings.afterAjaxUpdate !== undefined) { + settings.afterAjaxUpdate(id, data); + } + if (settings.selectableRows > 0) { + selectCheckedRows(id); + } + }, + complete: function () { + yiiXHR[id] = null; + $grid.removeClass(settings.loadingClass); + }, + error: function (XHR, textStatus, errorThrown) { + var ret, err; + if (XHR.readyState === 0 || XHR.status === 0) { + return; + } + if (customError !== undefined) { + ret = customError(XHR); + if (ret !== undefined && !ret) { + return; + } + } + switch (textStatus) { + case 'timeout': + err = 'The request timed out!'; + break; + case 'parsererror': + err = 'Parser error!'; + break; + case 'error': + if (XHR.status && !/^\s*$/.test(XHR.status)) { + err = 'Error ' + XHR.status; + } else { + err = 'Error'; + } + if (XHR.responseText && !/^\s*$/.test(XHR.responseText)) { + err = err + ': ' + XHR.responseText; + } + break; + } + + if (settings.ajaxUpdateError !== undefined) { + settings.ajaxUpdateError(XHR, textStatus, errorThrown, err); + } else if (err) { + alert(err); + } + } + }, options || {}); + if (options.type === 'GET') { + if (options.data !== undefined) { + options.url = $.param.querystring(options.url, options.data); + options.data = {}; + } + } else { + if (options.data === undefined) { + options.data = $(settings.filterSelector).serialize(); + } + } + if(yiiXHR[id] != null){ + yiiXHR[id].abort(); + } + //class must be added after yiiXHR.abort otherwise ajax.error will remove it + $grid.addClass(settings.loadingClass); + + if (settings.ajaxUpdate !== false) { + if(settings.ajaxVar) { + options.url = $.param.querystring(options.url, settings.ajaxVar + '=' + id); + } + if (settings.beforeAjaxUpdate !== undefined) { + settings.beforeAjaxUpdate(id, options); + } + yiiXHR[id] = $.ajax(options); + } else { // non-ajax mode + if (options.type === 'GET') { + window.location.href = options.url; + } else { // POST mode + $form = $('
    ').appendTo('body'); + if (options.data === undefined) { + options.data = {}; + } + + if (options.data.returnUrl === undefined) { + options.data.returnUrl = window.location.href; + } + + $.each(options.data, function (name, value) { + $form.append($('').attr('name', name).val(value)); + }); + $form.submit(); + } + } + }); + }, + + /** + * Returns the key values of the currently selected rows. + * @return array the key values of the currently selected rows. + */ + getSelection: function () { + var settings = gridSettings[this.attr('id')], + keys = this.find('.keys span'), + selection = []; + this.find('.' + settings.tableClass).children('tbody').children().each(function (i) { + if ($(this).hasClass('selected')) { + selection.push(keys.eq(i).text()); + } + }); + return selection; + }, + + /** + * Returns the key values of the currently checked rows. + * @param column_id string the ID of the column + * @return array the key values of the currently checked rows. + */ + getChecked: function (column_id) { + var settings = gridSettings[this.attr('id')], + keys = this.find('.keys span'), + checked = []; + if (column_id.substring(column_id.length - 2) !== '[]') { + column_id = column_id + '[]'; + } + this.find('.' + settings.tableClass).children('tbody').children('tr').children('td').children('input[name="' + column_id + '"]').each(function (i) { + if (this.checked) { + checked.push(keys.eq(i).text()); + } + }); + return checked; + } + + }; + + $.fn.yiiGridView = function (method) { + if (methods[method]) { + return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } else if (typeof method === 'object' || !method) { + return methods.init.apply(this, arguments); + } else { + $.error('Method ' + method + ' does not exist on jQuery.yiiGridView'); + return false; + } + }; + +/****************************************************************************** + *** DEPRECATED METHODS + *** used before Yii 1.1.9 + ******************************************************************************/ + $.fn.yiiGridView.settings = gridSettings; + /** + * Returns the key value for the specified row + * @param id string the ID of the grid view container + * @param row integer the row number (zero-based index) + * @return string the key value + */ + $.fn.yiiGridView.getKey = function (id, row) { + return $('#' + id).yiiGridView('getKey', row); + }; + + /** + * Returns the URL that generates the grid view content. + * @param id string the ID of the grid view container + * @return string the URL that generates the grid view content. + */ + $.fn.yiiGridView.getUrl = function (id) { + return $('#' + id).yiiGridView('getUrl'); + }; + + /** + * Returns the jQuery collection of the cells in the specified row. + * @param id string the ID of the grid view container + * @param row integer the row number (zero-based index) + * @return jQuery the jQuery collection of the cells in the specified row. + */ + $.fn.yiiGridView.getRow = function (id, row) { + return $('#' + id).yiiGridView('getRow', row); + }; + + /** + * Returns the jQuery collection of the cells in the specified column. + * @param id string the ID of the grid view container + * @param column integer the column number (zero-based index) + * @return jQuery the jQuery collection of the cells in the specified column. + */ + $.fn.yiiGridView.getColumn = function (id, column) { + return $('#' + id).yiiGridView('getColumn', column); + }; + + /** + * Performs an AJAX-based update of the grid view contents. + * @param id string the ID of the grid view container + * @param options map the AJAX request options (see jQuery.ajax API manual). By default, + * the URL to be requested is the one that generates the current content of the grid view. + */ + $.fn.yiiGridView.update = function (id, options) { + $('#' + id).yiiGridView('update', options); + }; + + /** + * Returns the key values of the currently selected rows. + * @param id string the ID of the grid view container + * @return array the key values of the currently selected rows. + */ + $.fn.yiiGridView.getSelection = function (id) { + return $('#' + id).yiiGridView('getSelection'); + }; + + /** + * Returns the key values of the currently checked rows. + * @param id string the ID of the grid view container + * @param column_id string the ID of the column + * @return array the key values of the currently checked rows. + */ + $.fn.yiiGridView.getChecked = function (id, column_id) { + return $('#' + id).yiiGridView('getChecked', column_id); + }; +})(jQuery); diff --git a/yii/assets/a409c9d2/gridview/loading.gif b/yii/assets/a409c9d2/gridview/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b33f7e54f4e55b6b8774d86d96895db9af044b4 GIT binary patch literal 1849 zcma*odr(tX9tZI2z31lM+(&YVk%mZ}5P~KlG2s=WSbGzm0!x7^P##Mnh7t-jP!X0Q zk_SQ}Po-L1tlDK;6l?(>v)e5ZBQx4|Y-Q?nr@Px3?9h(3ZWr3^tj=`TP57gKr87N$ zp2wWee1GRRCwo_xahnw)5cxNPJbCg2L6DV|6`#+yw6v6!mDS$f9-JvFD^n;GQ&UrZ zzh5jCkByB101O60U0q#p_1BM>Cv-vP?&s4@g_((4_1L=L$(a91)0=J91Gas#R{McE znYG^9*0A5YZ>#;~+Wkn(W5B0^yELIYLP!K}mB~<)AM@1&nqekynuaEGqPrzoH|KodRXJy)%+w_fu3nE5>@Bd_b zqC$EQ;{c`T&?EsNO|igL9gC7Ygxv?aQUEXMq?~>wg{EyW;VcJ37CUF#HjrT=KQO_* zS>M9yydXk18D(+QDJ1>r);Lav_uYKp$T?4vr{Q$lTo&pKv^?(>L-)G2*lwH!Ah7k? z7oH<8h-(KTKt5V6$8gF)C7Io&P5=SjTh)=zV=E2EUhQZP##L8S{d%UK>>+y82>+FV+#^BzW7u3F)Bb>=lYQ%%j`F>ASe zo*cw@V#u6T`A2He;70mR(V&iV&-7{qP~=SRf&jm9-T{*ZeZ}$rd0#6c&fLG^xJcf5 z+p<`wJYgW+_s*V{uI$nMB;%8`S_3>PfGOj3Rq}@Cx^+j?rk92fANSFDBYnOqQ>Vdj z)(|$AhP4t&Lb=Gvo2#3Gl%9<=Gv`Mz?Po@P4iLF!x}GUWJICDlFk-hS^Whyh7x~VH z@0vD1>HYD4&e+~yzS*-sFR{9`{QEEZO1zg7>R&7cHts-6j!xHVdA8eI+ZlVzd%`es zJT@$#GX(gvCJ1oJN%yLBK}{V=V;seo;!w|Yte!W1%5qLNFWqvZW>h&IiH+oPT=b@E zPhGzv5=(Un*X>v`>%8h_nj^NdYcE6NHS_ifkCV$*D)Tqrbu`s;<=t<4 zAHNqNV?6(g<1PY-w@#I-WYFViz?9TrkMr)u0g`O`u|>T;k|2sV*YF^punvT;$SuTy{j3Gv)yqD!R_CF>yR)MzmmYS5v+~R zXAdD%ng9?df;wd8GxR#%3O+gz};Vo;)sK%Bj-q>Oq%R7JU-KD?vYu>#2UjaDo z&8$>5xW~?KPD_#XFToU1hIb*VOMidUr6iYiO0N|i-7s`T8!cFT`rN!^1Pt78J93i6 z5HI1wIM$94m{3SLDvISDe6$ZG1;eq_D9RTaaC>=cO{@Bs>$IlPCPJJ$h$)-3vzNUQ6OsN#_zWxey!_9%hxwH2_dEJi=yY|1c7nDm2_Lm!Cof8-R_+9UkS zcBE(o47yE)oMR(Q=dp1a2wTX5KvvGyLqlWTa7V&!A*|w|)ax~1_~aJ0=_Lilg*0iQk7#ZD EAHN$8j{pDw literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/gridview/styles.css b/yii/assets/a409c9d2/gridview/styles.css new file mode 100644 index 0000000..a2e5a55 --- /dev/null +++ b/yii/assets/a409c9d2/gridview/styles.css @@ -0,0 +1,125 @@ +.grid-view-loading +{ + background:url(loading.gif) no-repeat; +} + +.grid-view +{ + padding: 15px 0; +} + +.grid-view table.items +{ + background: white; + border-collapse: collapse; + width: 100%; + border: 1px #D0E3EF solid; +} + +.grid-view table.items th, .grid-view table.items td +{ + font-size: 0.9em; + border: 1px white solid; + padding: 0.3em; +} + +.grid-view table.items th +{ + color: white; + background: url("bg.gif") repeat-x scroll left top white; + text-align: center; +} + +.grid-view table.items th a +{ + color: #EEE; + font-weight: bold; + text-decoration: none; +} + +.grid-view table.items th a:hover +{ + color: #FFF; +} + +.grid-view table.items th a.asc +{ + background:url(up.gif) right center no-repeat; + padding-right: 10px; +} + +.grid-view table.items th a.desc +{ + background:url(down.gif) right center no-repeat; + padding-right: 10px; +} + +.grid-view table.items tr.even +{ + background: #F8F8F8; +} + +.grid-view table.items tr.odd +{ + background: #E5F1F4; +} + +.grid-view table.items tr.selected +{ + background: #BCE774; +} + +.grid-view table.items tr:hover.selected +{ + background: #CCFF66; +} + +.grid-view table.items tbody tr:hover +{ + background: #ECFBD4; +} + +.grid-view .link-column img +{ + border: 0; +} + +.grid-view .button-column +{ + text-align: center; + width: 60px; +} + +.grid-view .button-column img +{ + border: 0; +} + +.grid-view .checkbox-column +{ + width: 15px; +} + +.grid-view .summary +{ + margin: 0 0 5px 0; + text-align: right; +} + +.grid-view .pager +{ + margin: 5px 0 0 0; + text-align: right; +} + +.grid-view .empty +{ + font-style: italic; +} + +.grid-view .filters input, +.grid-view .filters select +{ + width: 100%; + border: 1px solid #ccc; +} \ No newline at end of file diff --git a/yii/assets/a409c9d2/gridview/up.gif b/yii/assets/a409c9d2/gridview/up.gif new file mode 100644 index 0000000000000000000000000000000000000000..890b03882768a83dcee5a2b0afbc69767d3c4eb3 GIT binary patch literal 54 ycmZ?wbhEHbWM^Pun8*ME|G@yrQ2fcl$iTqFpaT*G$ulsqPf6rleVUJ(!5RR0;|yp3 literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/gridview/update.png b/yii/assets/a409c9d2/gridview/update.png new file mode 100644 index 0000000000000000000000000000000000000000..438b7c17574999f9e256bf4d024112f016da713e GIT binary patch literal 713 zcmV;)0yh1LP)QXX1S+Tidn^zr1ETlddPzzmBFX?M z?8TR)Ahw7okwT_ztqt9s)-AS~o&P=t*Jh|QT;R^!bIv_y?&YwCLZL7ekH<$DV@&{D zgy8#reZoA?t5vJjdyeBw_w@8Q0toqh{%|Ulnn)xPX<8g2M8R=^A0$aSST2_@0=O9n zkn;f=X~Qr;4*#RB?ZgYjlgVVfp`qc(x&Xl^A_PJB$DLz5SWFBweA@=CjKmVc6Uqe= zijX}+$I{FsJfC6f@HxnhNw_3L94{geg->~Tik3j(>lZj?1(n$eScM!0F5Lj*dDOu` zAlFDq0xv=!_uRrfd|rmQ_dMjITJl-eNd2 zh7{|9)4vbtW2e#BuD}b$X5k2iZbJW6#pAhgWLKVGRZubcViZ5EJYp^|aN!zS2lv!F zh(_QzhNPUpyX6O1vKP>?WhZ6j;7JDNKHY($D4??f$F}Q*3x9V2fTt(_<0Zb^Ic(n4 z3)gkgk=}*2rY`IsIECg7jYPIUK&@5-V@!+e!0}8d@r~$j-T}k4ptNj5N^HT2!RzSj z9)f9^!8+44VcWJtr}pW3iS)}@Eari&s^~4ghASlSS!zS3{Uo|uccVsR#&H3e0A1Jb zli2ingyo{P`2N)lEcGE+Sw)A*kWr4Ki^!H^foCizjhvxr+8eqDW1XFyzfs5KD_0Ml zJu@=@@%gRA%C`?iO)D46T4kkFD$*#e5UE(AiK?nI*=%+@LI@(%3|-}=)a{DYC-HWR v;u=*Sjt(DQ{UUL)EW6bFY$lUgL!2c{ZT|)00000NkvXXu0mjfE4N80 literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/gridview/view.png b/yii/assets/a409c9d2/gridview/view.png new file mode 100644 index 0000000000000000000000000000000000000000..cadbec3fcce1a9df2751c9423cc05192ae9efb57 GIT binary patch literal 803 zcmV+;1Kj+HP)r{${MHR^rXpL0qKXn36@-W(RA3YsMExwtAd0A>faq7zKYtoQN`yv{ zB@kjnMx+s{r8G>Ek*UKuH}Bkbzj}CaCQ#?)-pl*)oO7Os^InEc1cSjQS(dMeqF4+- z!@nWwx}J!|V*SZvvdic58C+m)Zmu*dE9;5F;V3Z-1OI~{2>ffa*$yl(FB^eC-~}UR zC%Nvm+wCQaqCnF$2o@?d(}ce;O_M(^mkVTen#>etu~-BGqYWfU0*P@V6Eh${Ac79f zP&tvGGnN*X05}-U#Kl1%5u#XVF@&RwNU91PwoJ&@92llXA{rOitThb+cP2&dV3q7x zU0cMfFAp%aFa#Y*QAoN3N(cL@kK*l2H>QF^s4Z&chTBHq z?Laqlq*5u!wj7Gl0)x)!vhZXWW5^I?MB`zY08d9%RYvuU1i-VmW-$1?HTbbOj&NiN zx!HwKHexU}0innO=ELJS=e~ zoNml7O{3@CRV1`^>?u2r)P_c#B}^heqT4&n#>U2Ux7(fQ?d`?z;Acp=b?E8u!sxd_ zWLRaaC4NJeT{z#?jiT&IBvT5d6@TgVdS8RUIy*bd3kwVD{eC~nD!iDSh~dt;KG^aV z1Q!GFsp002ovPDHLkV1igha4P@+ literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/listview/down.gif b/yii/assets/a409c9d2/listview/down.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4933b884179f1c01c101f86f473287367a5c0e9 GIT binary patch literal 55 zcmZ?wbhEHbWM^Pun8*ME|G@yrQ2fcl$iTqFpaT*G$ulr + * @link http://www.yiiframework.com/ + * @copyright 2008-2010 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + +;(function($) { + var yiiXHR = {}; + /** + * yiiListView set function. + * @param options map settings for the list view. Availablel options are as follows: + * - ajaxUpdate: array, IDs of the containers whose content may be updated by ajax response + * - ajaxVar: string, the name of the request variable indicating the ID of the element triggering the AJAX request + * - ajaxType: string, the type (GET or POST) of the AJAX request + * - pagerClass: string, the CSS class for the pager container + * - sorterClass: string, the CSS class for the sorter container + * - updateSelector: string, the selector for choosing which elements can trigger ajax requests + * - beforeAjaxUpdate: function, the function to be called before ajax request is sent + * - afterAjaxUpdate: function, the function to be called after ajax response is received + */ + $.fn.yiiListView = function(options) { + return this.each(function(){ + var settings = $.extend({}, $.fn.yiiListView.defaults, options || {}), + $this = $(this), + id = $this.attr('id'); + + if(settings.updateSelector == undefined) { + settings.updateSelector = '#'+id+' .'+settings.pagerClass.replace(/\s+/g,'.')+' a, #'+id+' .'+settings.sorterClass.replace(/\s+/g,'.')+' a'; + } + $.fn.yiiListView.settings[id] = settings; + + if(settings.ajaxUpdate.length > 0) { + $(document).on('click.yiiListView', settings.updateSelector,function(){ + if(settings.enableHistory && window.History.enabled) { + var url = $(this).attr('href').split('?'), + params = $.deparam.querystring('?'+ (url[1] || '')); + + delete params[settings.ajaxVar]; + window.History.pushState(null, document.title, decodeURIComponent($.param.querystring(url[0], params))); + } else { + $.fn.yiiListView.update(id, {url: $(this).attr('href')}); + } + return false; + }); + + if(settings.enableHistory && window.History.enabled) { + $(window).bind('statechange', function() { // Note: We are using statechange instead of popstate + var State = window.History.getState(); // Note: We are using History.getState() instead of event.state + $.fn.yiiListView.update(id, {url: State.url}); + }); + } + } + }); + }; + + $.fn.yiiListView.defaults = { + ajaxUpdate: [], + ajaxVar: 'ajax', + ajaxType: 'GET', + pagerClass: 'pager', + loadingClass: 'loading', + sorterClass: 'sorter' + // updateSelector: '#id .pager a, '#id .sort a', + // beforeAjaxUpdate: function(id) {}, + // afterAjaxUpdate: function(id, data) {}, + // url: 'ajax request URL' + }; + + $.fn.yiiListView.settings = {}; + + /** + * Returns the key value for the specified row + * @param id string the ID of the list view container + * @param index integer the zero-based index of the data item + * @return string the key value + */ + $.fn.yiiListView.getKey = function(id, index) { + return $('#'+id+' > div.keys > span:eq('+index+')').text(); + }; + + /** + * Returns the URL that generates the list view content. + * @param id string the ID of the list view container + * @return string the URL that generates the list view content. + */ + $.fn.yiiListView.getUrl = function(id) { + var settings = $.fn.yiiListView.settings[id]; + return settings.url || $('#'+id+' > div.keys').attr('title'); + }; + + /** + * Performs an AJAX-based update of the list view contents. + * @param id string the ID of the list view container + * @param options map the AJAX request options (see jQuery.ajax API manual). By default, + * the URL to be requested is the one that generates the current content of the list view. + */ + $.fn.yiiListView.update = function(id, options) { + var customError, + settings = $.fn.yiiListView.settings[id]; + + if (options && options.error !== undefined) { + customError = options.error; + delete options.error; + } + + options = $.extend({ + type: settings.ajaxType, + url: $.fn.yiiListView.getUrl(id), + success: function(data,status) { + $.each(settings.ajaxUpdate, function(i,v) { + var id='#'+v; + $(id).replaceWith($(id,'
    '+data+'
    ')); + }); + if(settings.afterAjaxUpdate != undefined) + settings.afterAjaxUpdate(id, data); + }, + complete: function() { + $('#'+id).removeClass(settings.loadingClass); + yiiXHR[id] = null; + }, + error: function(XHR, textStatus, errorThrown) { + var ret, err; + if (XHR.readyState === 0 || XHR.status === 0) { + return; + } + if (customError !== undefined) { + ret = customError(XHR); + if (ret !== undefined && !ret) { + return; + } + } + switch (textStatus) { + case 'timeout': + err = 'The request timed out!'; + break; + case 'parsererror': + err = 'Parser error!'; + break; + case 'error': + if (XHR.status && !/^\s*$/.test(XHR.status)) { + err = 'Error ' + XHR.status; + } else { + err = 'Error'; + } + if (XHR.responseText && !/^\s*$/.test(XHR.responseText)) { + err = err + ': ' + XHR.responseText; + } + break; + } + + if (settings.ajaxUpdateError !== undefined) { + settings.ajaxUpdateError(XHR, textStatus, errorThrown, err); + } else if (err) { + alert(err); + } + } + }, options || {}); + + if(options.data!=undefined && options.type=='GET') { + options.url = $.param.querystring(options.url, options.data); + options.data = {}; + } + + if(settings.ajaxVar) + options.url = $.param.querystring(options.url, settings.ajaxVar+'='+id); + + if(yiiXHR[id] != null) { + yiiXHR[id].abort(); + } + + $('#'+id).addClass(settings.loadingClass); + + if(settings.beforeAjaxUpdate != undefined) + settings.beforeAjaxUpdate(id); + yiiXHR[id] = $.ajax(options); + }; + +})(jQuery); diff --git a/yii/assets/a409c9d2/listview/loading.gif b/yii/assets/a409c9d2/listview/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..5b33f7e54f4e55b6b8774d86d96895db9af044b4 GIT binary patch literal 1849 zcma*odr(tX9tZI2z31lM+(&YVk%mZ}5P~KlG2s=WSbGzm0!x7^P##Mnh7t-jP!X0Q zk_SQ}Po-L1tlDK;6l?(>v)e5ZBQx4|Y-Q?nr@Px3?9h(3ZWr3^tj=`TP57gKr87N$ zp2wWee1GRRCwo_xahnw)5cxNPJbCg2L6DV|6`#+yw6v6!mDS$f9-JvFD^n;GQ&UrZ zzh5jCkByB101O60U0q#p_1BM>Cv-vP?&s4@g_((4_1L=L$(a91)0=J91Gas#R{McE znYG^9*0A5YZ>#;~+Wkn(W5B0^yELIYLP!K}mB~<)AM@1&nqekynuaEGqPrzoH|KodRXJy)%+w_fu3nE5>@Bd_b zqC$EQ;{c`T&?EsNO|igL9gC7Ygxv?aQUEXMq?~>wg{EyW;VcJ37CUF#HjrT=KQO_* zS>M9yydXk18D(+QDJ1>r);Lav_uYKp$T?4vr{Q$lTo&pKv^?(>L-)G2*lwH!Ah7k? z7oH<8h-(KTKt5V6$8gF)C7Io&P5=SjTh)=zV=E2EUhQZP##L8S{d%UK>>+y82>+FV+#^BzW7u3F)Bb>=lYQ%%j`F>ASe zo*cw@V#u6T`A2He;70mR(V&iV&-7{qP~=SRf&jm9-T{*ZeZ}$rd0#6c&fLG^xJcf5 z+p<`wJYgW+_s*V{uI$nMB;%8`S_3>PfGOj3Rq}@Cx^+j?rk92fANSFDBYnOqQ>Vdj z)(|$AhP4t&Lb=Gvo2#3Gl%9<=Gv`Mz?Po@P4iLF!x}GUWJICDlFk-hS^Whyh7x~VH z@0vD1>HYD4&e+~yzS*-sFR{9`{QEEZO1zg7>R&7cHts-6j!xHVdA8eI+ZlVzd%`es zJT@$#GX(gvCJ1oJN%yLBK}{V=V;seo;!w|Yte!W1%5qLNFWqvZW>h&IiH+oPT=b@E zPhGzv5=(Un*X>v`>%8h_nj^NdYcE6NHS_ifkCV$*D)Tqrbu`s;<=t<4 zAHNqNV?6(g<1PY-w@#I-WYFViz?9TrkMr)u0g`O`u|>T;k|2sV*YF^punvT;$SuTy{j3Gv)yqD!R_CF>yR)MzmmYS5v+~R zXAdD%ng9?df;wd8GxR#%3O+gz};Vo;)sK%Bj-q>Oq%R7JU-KD?vYu>#2UjaDo z&8$>5xW~?KPD_#XFToU1hIb*VOMidUr6iYiO0N|i-7s`T8!cFT`rN!^1Pt78J93i6 z5HI1wIM$94m{3SLDvISDe6$ZG1;eq_D9RTaaC>=cO{@Bs>$IlPCPJJ$h$)-3vzNUQ6OsN#_zWxey!_9%hxwH2_dEJi=yY|1c7nDm2_Lm!Cof8-R_+9UkS zcBE(o47yE)oMR(Q=dp1a2wTX5KvvGyLqlWTa7V&!A*|w|)ax~1_~aJ0=_Lilg*0iQk7#ZD EAHN$8j{pDw literal 0 HcmV?d00001 diff --git a/yii/assets/a409c9d2/listview/styles.css b/yii/assets/a409c9d2/listview/styles.css new file mode 100644 index 0000000..974507c --- /dev/null +++ b/yii/assets/a409c9d2/listview/styles.css @@ -0,0 +1,56 @@ +.list-view-loading +{ + background:url(loading.gif) no-repeat; +} + +.list-view .summary +{ + margin: 0 0 5px 0; + text-align: right; +} + +.list-view .sorter +{ + margin: 0 0 5px 0; + text-align: right; +} + +.list-view .pager +{ + margin: 5px 0 0 0; + text-align: right; +} + +.list-view .sorter +{ + font-size: 0.9em; +} + +.list-view .sorter ul +{ + display: inline; + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin:0; + padding:0; +} + +.list-view .sorter li +{ + display: inline; + margin: 0 0 0 5px; + padding: 0; +} + +.list-view .sorter a.asc +{ + background:url(up.gif) right center no-repeat; + padding-right: 10px; +} + +.list-view .sorter a.desc +{ + background:url(down.gif) right center no-repeat; + padding-right: 10px; +} diff --git a/yii/assets/a409c9d2/listview/up.gif b/yii/assets/a409c9d2/listview/up.gif new file mode 100644 index 0000000000000000000000000000000000000000..890b03882768a83dcee5a2b0afbc69767d3c4eb3 GIT binary patch literal 54 ycmZ?wbhEHbWM^Pun8*ME|G@yrQ2fcl$iTqFpaT*G$ulsqPf6rleVUJ(!5RR0;|yp3 literal 0 HcmV?d00001 diff --git a/yii/css/bg.gif b/yii/css/bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..428398973e1a8a6a1129d9332da6714e59bedba4 GIT binary patch literal 243 zcmZ?wbhEHbWMeR5IKlt||Ns9Fn|mU0@#)m1XEK+c^_h9pch)ig*~bFs91EU%JYxQd z=mjU^7M;pmaW-ewx%@Tfi`HEz-EgsD1pFZrjzSo!1+8Tx;5Kt##K8 zpn+h6L4@K@7DfgJ83r8?2V^G$YrzAxzKG1Mj9F{fJlz+r6JFwb_s5d=LGRrUD5QAQ zNc8tDnRFnBZ{CHrl2a?9#BZ!gI2~HCzjK3xqn`Y^jOMDdVT&(5-4yZXZ_&=1Ypz<& pbz11_%i7%H?(X8^=xAqWZEay;YHDPpudkz{si~%>tgOgj4FL3OZcYFI literal 0 HcmV?d00001 diff --git a/yii/css/form.css b/yii/css/form.css new file mode 100644 index 0000000..7c4d096 --- /dev/null +++ b/yii/css/form.css @@ -0,0 +1,164 @@ +/** + * CSS styles for forms generated by yiic. + * + * The styles can be applied to the following form structure: + * + *
    + *
    + * + * + *

    hint text

    + *
    + *
    + * + * + *

    hint text

    + *
    + *
    + * + * + *

    hint text

    + *
    + *
    + * + * The above code will render the labels and input fields in separate lines. + * In order to render them in the same line, please use the "wide" form as follows, + * + *
    + * ...... + *
    + * + * @author Qiang Xue + * @link http://www.yiiframework.com/ + * @copyright 2008-2010 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + +div.form +{ +} + +div.form input, +div.form textarea, +div.form select +{ + margin: 0.2em 0 0.5em 0; +} + +div.form fieldset +{ + border: 1px solid #DDD; + padding: 10px; + margin: 0 0 10px 0; + -moz-border-radius:7px; +} + +div.form label +{ + font-weight: bold; + font-size: 0.9em; + display: block; +} + +div.form .row +{ + margin: 5px 0; +} + +div.form .hint +{ + margin: 0; + padding: 0; + color: #999; +} + +div.form .note +{ + font-style: italic; +} + +div.form span.required +{ + color: red; +} + +div.form div.error label:first-child, +div.form label.error, +div.form span.error +{ + color: #C00; +} + +div.form div.error input, +div.form div.error textarea, +div.form div.error select, +div.form input.error, +div.form textarea.error, +div.form select.error +{ + background: #FEE; + border-color: #C00; +} + +div.form div.success input, +div.form div.success textarea, +div.form div.success select, +div.form input.success, +div.form textarea.success, +div.form select.success +{ + background: #E6EFC2; + border-color: #C6D880; +} + +div.form div.success label +{ + color: inherit; +} + +div.form .errorSummary +{ + border: 2px solid #C00; + padding: 7px 7px 12px 7px; + margin: 0 0 20px 0; + background: #FEE; + font-size: 0.9em; +} + +div.form .errorMessage +{ + color: red; + font-size: 0.9em; +} + +div.form .errorSummary p +{ + margin: 0; + padding: 5px; +} + +div.form .errorSummary ul +{ + margin: 0; + padding: 0 0 0 20px; +} + +div.wide.form label +{ + float: left; + margin-right: 10px; + position: relative; + text-align: right; + width: 100px; +} + +div.wide.form .row +{ + clear: left; +} + +div.wide.form .buttons, div.wide.form .hint, div.wide.form .errorMessage +{ + clear: left; + padding-left: 110px; +} diff --git a/yii/css/ie.css b/yii/css/ie.css new file mode 100644 index 0000000..f015399 --- /dev/null +++ b/yii/css/ie.css @@ -0,0 +1,36 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 1.0.1 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* ie.css */ +body {text-align:center;} +.container {text-align:left;} +* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 {display:inline;overflow-x:hidden;} +* html legend {margin:0px -8px 16px 0;padding:0;} +sup {vertical-align:text-top;} +sub {vertical-align:text-bottom;} +html>body p code {*white-space:normal;} +hr {margin:-8px auto 11px;} +img {-ms-interpolation-mode:bicubic;} +.clearfix, .container {display:inline-block;} +* html .clearfix, * html .container {height:1%;} +fieldset {padding-top:0;} +legend {margin-top:-0.2em;margin-bottom:1em;margin-left:-0.5em;} +textarea {overflow:auto;} +label {vertical-align:middle;position:relative;top:-0.25em;} +input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} +input.text:focus, input.title:focus {border-color:#666;} +input.text, input.title, textarea, select {margin:0.5em 0;} +input.checkbox, input.radio {position:relative;top:.25em;} +form.inline div, form.inline p {vertical-align:middle;} +form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} +button, input.button {position:relative;top:0.25em;} \ No newline at end of file diff --git a/yii/css/main.css b/yii/css/main.css new file mode 100644 index 0000000..13327b8 --- /dev/null +++ b/yii/css/main.css @@ -0,0 +1,229 @@ +body +{ + margin: 0; + padding: 0; + color: #555; + font: normal 10pt Arial,Helvetica,sans-serif; + background: #EFEFEF; +} + +#page +{ + margin-top: 5px; + margin-bottom: 5px; + background: white; + border: 1px solid #C9E0ED; +} + +#header +{ + margin: 0; + padding: 0; + border-top: 3px solid #C9E0ED; +} + +#content +{ + padding: 20px; +} + +#sidebar +{ + padding: 20px 20px 20px 0; +} + +#footer +{ + padding: 10px; + margin: 10px 20px; + font-size: 0.8em; + text-align: center; + border-top: 1px solid #C9E0ED; +} + +#logo +{ + padding: 10px 20px; + font-size: 200%; +} + +#mainmenu +{ + background:white url(bg.gif) repeat-x left top; +} + +#mainmenu ul +{ + padding:6px 20px 5px 20px; + margin:0px; +} + +#mainmenu ul li +{ + display: inline; +} + +#mainmenu ul li a +{ + color:#ffffff; + background-color:transparent; + font-size:12px; + font-weight:bold; + text-decoration:none; + padding:5px 8px; +} + +#mainmenu ul li a:hover, #mainmenu ul li.active a +{ + color: #6399cd; + background-color:#EFF4FA; + text-decoration:none; +} + +div.flash-error, div.flash-notice, div.flash-success +{ + padding:.8em; + margin-bottom:1em; + border:2px solid #ddd; +} + +div.flash-error +{ + background:#FBE3E4; + color:#8a1f11; + border-color:#FBC2C4; +} + +div.flash-notice +{ + background:#FFF6BF; + color:#514721; + border-color:#FFD324; +} + +div.flash-success +{ + background:#E6EFC2; + color:#264409; + border-color:#C6D880; +} + +div.flash-error a +{ + color:#8a1f11; +} + +div.flash-notice a +{ + color:#514721; +} + +div.flash-success a +{ + color:#264409; +} + +div.form .rememberMe label +{ + display: inline; +} + +div.view +{ + padding: 10px; + margin: 10px 0; + border: 1px solid #C9E0ED; +} + +div.breadcrumbs +{ + font-size: 0.9em; + padding: 5px 20px; +} + +div.breadcrumbs span +{ + font-weight: bold; +} + +div.search-form +{ + padding: 10px; + margin: 10px 0; + background: #eee; +} + +.portlet +{ + +} + +.portlet-decoration +{ + padding: 3px 8px; + background: #B7D6E7; + border-left: 5px solid #6FACCF; +} + +.portlet-title +{ + font-size: 12px; + font-weight: bold; + padding: 0; + margin: 0; + color: #298dcd; +} + +.portlet-content +{ + font-size:0.9em; + margin: 0 0 15px 0; + padding: 5px 8px; + background:#EFFDFF; +} + +.portlet-content ul +{ + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin: 0; + padding: 0; +} + +.portlet-content li +{ + padding: 2px 0 4px 0px; +} + +.operations +{ + list-style-type: none; + margin: 0; + padding: 0; +} + +.operations li +{ + padding-bottom: 2px; +} + +.operations li a +{ + font: bold 12px Arial; + color: #0066A4; + display: block; + padding: 2px 0 2px 8px; + line-height: 15px; + text-decoration: none; +} + +.operations li a:visited +{ + color: #0066A4; +} + +.operations li a:hover +{ + background: #80CFFF; +} \ No newline at end of file diff --git a/yii/css/print.css b/yii/css/print.css new file mode 100644 index 0000000..bd79afd --- /dev/null +++ b/yii/css/print.css @@ -0,0 +1,29 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 1.0.1 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* print.css */ +body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} +.container {background:none;} +hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} +hr.space {background:#fff;color:#fff;visibility:hidden;} +h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} +code {font:.9em "Courier New", Monaco, Courier, monospace;} +a img {border:none;} +p img.top {margin-top:0;} +blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} +.small {font-size:.9em;} +.large {font-size:1.1em;} +.quiet {color:#999;} +.hide {display:none;} +a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} +a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} \ No newline at end of file diff --git a/yii/css/screen.css b/yii/css/screen.css new file mode 100644 index 0000000..7824d07 --- /dev/null +++ b/yii/css/screen.css @@ -0,0 +1,238 @@ +/* ----------------------------------------------------------------------- + + + Blueprint CSS Framework 1.0.1 + http://blueprintcss.org + + * Copyright (c) 2007-Present. See LICENSE for more info. + * See README for instructions on how to use Blueprint. + * For credits and origins, see AUTHORS. + * This is a compressed file. See the sources in the 'src' directory. + +----------------------------------------------------------------------- */ + +/* reset.css */ +html {margin:0;padding:0;border:0;} +body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;} +article, aside, details, figcaption, figure, dialog, footer, header, hgroup, menu, nav, section {display:block;} +body {line-height:1.5;background:white;} +table {border-collapse:separate;border-spacing:0;} +caption, th, td {text-align:left;font-weight:normal;float:none !important;} +table, th, td {vertical-align:middle;} +blockquote:before, blockquote:after, q:before, q:after {content:'';} +blockquote, q {quotes:"" "";} +a img {border:none;} +:focus {outline:0;} + +/* typography.css */ +html {font-size:100.01%;} +body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;} +h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} +h1 {font-size:2em;line-height:1;margin-bottom:0.5em;} +h2 {font-size:1.6em;margin-bottom:0.75em;} +h3 {font-size:1.4em;line-height:1;margin-bottom:1em;} +h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;} +h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} +h6 {font-size:1em;font-weight:bold;} +h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} +p {margin:0 0 1.5em;} +.left {float:left !important;} +p .left {margin:1.5em 1.5em 1.5em 0;padding:0;} +.right {float:right !important;} +p .right {margin:1.5em 0 1.5em 1.5em;padding:0;} +a:focus, a:hover {color:#09f;} +a {color:#06c;text-decoration:underline;} +blockquote {margin:1.5em;color:#666;font-style:italic;} +strong, dfn {font-weight:bold;} +em, dfn {font-style:italic;} +sup, sub {line-height:0;} +abbr, acronym {border-bottom:1px dotted #666;} +address {margin:0 0 1.5em;font-style:italic;} +del {color:#666;} +pre {margin:1.5em 0;white-space:pre;} +pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;} +li ul, li ol {margin:0;} +ul, ol {margin:0 1.5em 1.5em 0;padding-left:1.5em;} +ul {list-style-type:disc;} +ol {list-style-type:decimal;} +dl {margin:0 0 1.5em 0;} +dl dt {font-weight:bold;} +dd {margin-left:1.5em;} +table {margin-bottom:1.4em;width:100%;} +th {font-weight:bold;} +thead th {background:#c3d9ff;} +th, td, caption {padding:4px 10px 4px 5px;} +tfoot {font-style:italic;} +caption {background:#eee;} +.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} +.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} +.hide {display:none;} +.quiet {color:#666;} +.loud {color:#000;} +.highlight {background:#ff0;} +.added {background:#060;color:#fff;} +.removed {background:#900;color:#fff;} +.first {margin-left:0;padding-left:0;} +.last {margin-right:0;padding-right:0;} +.top {margin-top:0;padding-top:0;} +.bottom {margin-bottom:0;padding-bottom:0;} + +/* grid.css */ +.container {width:950px;margin:0 auto;} +.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 {float:left;margin-right:10px;} +.last {margin-right:0;} +.span-1 {width:30px;} +.span-2 {width:70px;} +.span-3 {width:110px;} +.span-4 {width:150px;} +.span-5 {width:190px;} +.span-6 {width:230px;} +.span-7 {width:270px;} +.span-8 {width:310px;} +.span-9 {width:350px;} +.span-10 {width:390px;} +.span-11 {width:430px;} +.span-12 {width:470px;} +.span-13 {width:510px;} +.span-14 {width:550px;} +.span-15 {width:590px;} +.span-16 {width:630px;} +.span-17 {width:670px;} +.span-18 {width:710px;} +.span-19 {width:750px;} +.span-20 {width:790px;} +.span-21 {width:830px;} +.span-22 {width:870px;} +.span-23 {width:910px;} +.span-24 {width:950px;margin-right:0;} +input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px;border-right-width:1px;padding-left:5px;padding-right:5px;} +input.span-1, textarea.span-1 {width:18px;} +input.span-2, textarea.span-2 {width:58px;} +input.span-3, textarea.span-3 {width:98px;} +input.span-4, textarea.span-4 {width:138px;} +input.span-5, textarea.span-5 {width:178px;} +input.span-6, textarea.span-6 {width:218px;} +input.span-7, textarea.span-7 {width:258px;} +input.span-8, textarea.span-8 {width:298px;} +input.span-9, textarea.span-9 {width:338px;} +input.span-10, textarea.span-10 {width:378px;} +input.span-11, textarea.span-11 {width:418px;} +input.span-12, textarea.span-12 {width:458px;} +input.span-13, textarea.span-13 {width:498px;} +input.span-14, textarea.span-14 {width:538px;} +input.span-15, textarea.span-15 {width:578px;} +input.span-16, textarea.span-16 {width:618px;} +input.span-17, textarea.span-17 {width:658px;} +input.span-18, textarea.span-18 {width:698px;} +input.span-19, textarea.span-19 {width:738px;} +input.span-20, textarea.span-20 {width:778px;} +input.span-21, textarea.span-21 {width:818px;} +input.span-22, textarea.span-22 {width:858px;} +input.span-23, textarea.span-23 {width:898px;} +input.span-24, textarea.span-24 {width:938px;} +.append-1 {padding-right:40px;} +.append-2 {padding-right:80px;} +.append-3 {padding-right:120px;} +.append-4 {padding-right:160px;} +.append-5 {padding-right:200px;} +.append-6 {padding-right:240px;} +.append-7 {padding-right:280px;} +.append-8 {padding-right:320px;} +.append-9 {padding-right:360px;} +.append-10 {padding-right:400px;} +.append-11 {padding-right:440px;} +.append-12 {padding-right:480px;} +.append-13 {padding-right:520px;} +.append-14 {padding-right:560px;} +.append-15 {padding-right:600px;} +.append-16 {padding-right:640px;} +.append-17 {padding-right:680px;} +.append-18 {padding-right:720px;} +.append-19 {padding-right:760px;} +.append-20 {padding-right:800px;} +.append-21 {padding-right:840px;} +.append-22 {padding-right:880px;} +.append-23 {padding-right:920px;} +.prepend-1 {padding-left:40px;} +.prepend-2 {padding-left:80px;} +.prepend-3 {padding-left:120px;} +.prepend-4 {padding-left:160px;} +.prepend-5 {padding-left:200px;} +.prepend-6 {padding-left:240px;} +.prepend-7 {padding-left:280px;} +.prepend-8 {padding-left:320px;} +.prepend-9 {padding-left:360px;} +.prepend-10 {padding-left:400px;} +.prepend-11 {padding-left:440px;} +.prepend-12 {padding-left:480px;} +.prepend-13 {padding-left:520px;} +.prepend-14 {padding-left:560px;} +.prepend-15 {padding-left:600px;} +.prepend-16 {padding-left:640px;} +.prepend-17 {padding-left:680px;} +.prepend-18 {padding-left:720px;} +.prepend-19 {padding-left:760px;} +.prepend-20 {padding-left:800px;} +.prepend-21 {padding-left:840px;} +.prepend-22 {padding-left:880px;} +.prepend-23 {padding-left:920px;} +.border {padding-right:4px;margin-right:5px;border-right:1px solid #ddd;} +.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #ddd;} +.pull-1 {margin-left:-40px;} +.pull-2 {margin-left:-80px;} +.pull-3 {margin-left:-120px;} +.pull-4 {margin-left:-160px;} +.pull-5 {margin-left:-200px;} +.pull-6 {margin-left:-240px;} +.pull-7 {margin-left:-280px;} +.pull-8 {margin-left:-320px;} +.pull-9 {margin-left:-360px;} +.pull-10 {margin-left:-400px;} +.pull-11 {margin-left:-440px;} +.pull-12 {margin-left:-480px;} +.pull-13 {margin-left:-520px;} +.pull-14 {margin-left:-560px;} +.pull-15 {margin-left:-600px;} +.pull-16 {margin-left:-640px;} +.pull-17 {margin-left:-680px;} +.pull-18 {margin-left:-720px;} +.pull-19 {margin-left:-760px;} +.pull-20 {margin-left:-800px;} +.pull-21 {margin-left:-840px;} +.pull-22 {margin-left:-880px;} +.pull-23 {margin-left:-920px;} +.pull-24 {margin-left:-960px;} +.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;} +.push-1 {margin:0 -40px 1.5em 40px;} +.push-2 {margin:0 -80px 1.5em 80px;} +.push-3 {margin:0 -120px 1.5em 120px;} +.push-4 {margin:0 -160px 1.5em 160px;} +.push-5 {margin:0 -200px 1.5em 200px;} +.push-6 {margin:0 -240px 1.5em 240px;} +.push-7 {margin:0 -280px 1.5em 280px;} +.push-8 {margin:0 -320px 1.5em 320px;} +.push-9 {margin:0 -360px 1.5em 360px;} +.push-10 {margin:0 -400px 1.5em 400px;} +.push-11 {margin:0 -440px 1.5em 440px;} +.push-12 {margin:0 -480px 1.5em 480px;} +.push-13 {margin:0 -520px 1.5em 520px;} +.push-14 {margin:0 -560px 1.5em 560px;} +.push-15 {margin:0 -600px 1.5em 600px;} +.push-16 {margin:0 -640px 1.5em 640px;} +.push-17 {margin:0 -680px 1.5em 680px;} +.push-18 {margin:0 -720px 1.5em 720px;} +.push-19 {margin:0 -760px 1.5em 760px;} +.push-20 {margin:0 -800px 1.5em 800px;} +.push-21 {margin:0 -840px 1.5em 840px;} +.push-22 {margin:0 -880px 1.5em 880px;} +.push-23 {margin:0 -920px 1.5em 920px;} +.push-24 {margin:0 -960px 1.5em 960px;} +.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:left;position:relative;} +div.prepend-top, .prepend-top {margin-top:1.5em;} +div.append-bottom, .append-bottom {margin-bottom:1.5em;} +.box {padding:1.5em;margin-bottom:1.5em;background:#e5eCf9;} +hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:1px;margin:0 0 17px;border:none;} +hr.space {background:#fff;color:#fff;visibility:hidden;} +.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;} +.clearfix, .container {display:block;} +.clear {clear:both;} diff --git a/yii/index-test.php b/yii/index-test.php new file mode 100644 index 0000000..2272044 --- /dev/null +++ b/yii/index-test.php @@ -0,0 +1,15 @@ +run(); diff --git a/yii/index.php b/yii/index.php new file mode 100644 index 0000000..d512b7c --- /dev/null +++ b/yii/index.php @@ -0,0 +1,13 @@ +run(); diff --git a/yii/protected/.htaccess b/yii/protected/.htaccess new file mode 100644 index 0000000..e019832 --- /dev/null +++ b/yii/protected/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/yii/protected/components/Controller.php b/yii/protected/components/Controller.php new file mode 100644 index 0000000..4d27862 --- /dev/null +++ b/yii/protected/components/Controller.php @@ -0,0 +1,23 @@ +find('username=:username', array('username'=>$this->username)); + + if ($admin === null) + { + $this->errorCode=self::ERROR_USERNAME_INVALID; + return false; + } + + if (crypt($this->password, $admin->password) == $admin->password) + { + $this->errorCode=self::ERROR_NONE; + return true; + } + + $this->errorCode=self::ERROR_PASSWORD_INVALID; + return false; + } +} \ No newline at end of file diff --git a/yii/protected/config/console.php b/yii/protected/config/console.php new file mode 100644 index 0000000..346a976 --- /dev/null +++ b/yii/protected/config/console.php @@ -0,0 +1,37 @@ +dirname(__FILE__).DIRECTORY_SEPARATOR.'..', + 'name'=>'My Console Application', + + // preloading 'log' component + 'preload'=>array('log'), + + // application components + 'components'=>array( + 'db'=>array( + 'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db', + ), + // uncomment the following to use a MySQL database + /* + 'db'=>array( + 'connectionString' => 'mysql:host=localhost;dbname=testdrive', + 'emulatePrepare' => true, + 'username' => 'root', + 'password' => '', + 'charset' => 'utf8', + ), + */ + 'log'=>array( + 'class'=>'CLogRouter', + 'routes'=>array( + array( + 'class'=>'CFileLogRoute', + 'levels'=>'error, warning', + ), + ), + ), + ), +); \ No newline at end of file diff --git a/yii/protected/config/main.php b/yii/protected/config/main.php new file mode 100644 index 0000000..7295e85 --- /dev/null +++ b/yii/protected/config/main.php @@ -0,0 +1,87 @@ +dirname(__FILE__).DIRECTORY_SEPARATOR.'..', + 'name'=>'My Web Application', + + // preloading 'log' component + 'preload'=>array('log'), + + // autoloading model and component classes + 'import'=>array( + 'application.models.*', + 'application.components.*', + ), + + 'modules'=>array( + // uncomment the following to enable the Gii tool + + 'gii'=>array( + 'class'=>'system.gii.GiiModule', + 'password'=>'ChinaJournal55%%%echo', + // If removed, Gii defaults to localhost only. Edit carefully to taste. + 'ipFilters'=>array('127.0.0.1','::1'), + ), + + ), + + // application components + 'components'=>array( + 'user'=>array( + // enable cookie-based authentication + 'allowAutoLogin'=>true, + ), + // uncomment the following to enable URLs in path-format + /* + 'urlManager'=>array( + 'urlFormat'=>'path', + 'rules'=>array( + '/'=>'/view', + '//'=>'/', + '/'=>'/', + ), + ), + */ + // uncomment the following to use a MySQL database + + 'db'=>array( + 'connectionString' => 'mysql:host=localhost;dbname=cjbase', + 'emulatePrepare' => true, + 'username' => 'cjbase', + 'password' => 'sjbase&&LOL7', + 'charset' => 'utf8', + ), + + 'errorHandler'=>array( + // use 'site/error' action to display errors + 'errorAction'=>'site/error', + ), + 'log'=>array( + 'class'=>'CLogRouter', + 'routes'=>array( + array( + 'class'=>'CFileLogRoute', + 'levels'=>'error, warning', + ), + // uncomment the following to show log messages on web pages + /* + array( + 'class'=>'CWebLogRoute', + ), + */ + ), + ), + ), + + // application-level parameters that can be accessed + // using Yii::app()->params['paramName'] + 'params'=>array( + // this is used in contact page + 'adminEmail'=>'webmaster@example.com', + ), +); \ No newline at end of file diff --git a/yii/protected/config/test.php b/yii/protected/config/test.php new file mode 100644 index 0000000..fd7085a --- /dev/null +++ b/yii/protected/config/test.php @@ -0,0 +1,17 @@ +array( + 'fixture'=>array( + 'class'=>'system.test.CDbFixtureManager', + ), + /* uncomment the following to provide test database connection + 'db'=>array( + 'connectionString'=>'DSN for test database', + ), + */ + ), + ) +); diff --git a/yii/protected/controllers/SiteController.php b/yii/protected/controllers/SiteController.php new file mode 100644 index 0000000..c7f2b35 --- /dev/null +++ b/yii/protected/controllers/SiteController.php @@ -0,0 +1,185 @@ +array( + 'class'=>'CCaptchaAction', + 'backColor'=>0xFFFFFF, + ), + // page action renders "static" pages stored under 'protected/views/site/pages' + // They can be accessed via: index.php?r=site/page&view=FileName + 'page'=>array( + 'class'=>'CViewAction', + ), + ); + } + + /** + * This is the default 'index' action that is invoked + * when an action is not explicitly requested by users. + */ + public function actionIndex() + { + + $dataProvider=new CActiveDataProvider('Post', array( + 'criteria'=>array( + 'order'=>'date DESC, id DESC', + ), + 'pagination'=>array( + 'pageSize'=>5, + ), + + )); + + $this->render('index',array( + 'dataProvider'=>$dataProvider, + )); + + } + + /** + * This is the action to handle external exceptions. + */ + public function actionError() + { + if($error=Yii::app()->errorHandler->error) + { + if(Yii::app()->request->isAjaxRequest) + echo $error['message']; + else + $this->render('error', $error); + } + } + + /** + * Displays the login page + */ + public function actionLogin() + { + $model=new LoginForm; + + // if it is ajax validation request + if(isset($_POST['ajax']) && $_POST['ajax']==='login-form') + { + echo CActiveForm::validate($model); + Yii::app()->end(); + } + + // collect user input data + if(isset($_POST['LoginForm'])) + { + $model->attributes=$_POST['LoginForm']; + // validate user input and redirect to the previous page if valid + if($model->validate() && $model->login()) + $this->redirect(Yii::app()->user->returnUrl); + } + // display the login form + $this->render('login',array('model'=>$model)); + } + + public function actionRegister() + { + $model=new RegisterForm('register'); + + if(isset($_POST['RegisterForm'])) + { + $model->attributes=$_POST['RegisterForm']; + if($model->validate()) + { + + $password_hash = $this->better_crypt($model->password); + + $user=new User; + $user->username= $model->username; + $user->email = $model->email; + $user->password= $password_hash; + $user->save(); + + $this->redirect(Yii::app()->user->returnUrl); + + + return; + } + } + $this->render('register',array('model'=>$model)); + } + + /** + * Logs out the current user and redirect to homepage. + */ + public function actionLogout() + { + Yii::app()->user->logout(); + $this->redirect(Yii::app()->homeUrl); + } + + public function actionAddPost() +{ + $model=new AddPostForm('addPost'); + + // uncomment the following code to enable ajax-based validation + /* + if(isset($_POST['ajax']) && $_POST['ajax']==='add-post-form-addPost-form') + { + echo CActiveForm::validate($model); + Yii::app()->end(); + } + */ + + if(isset($_POST['AddPostForm'])) + { + $model->attributes=$_POST['AddPostForm']; + + $model->image=CUploadedFile::getInstance($model,'image'); + + if($model->validate()) + { + + $username = Yii::app()->user->name; + + $user = User::model()->find('username=:username',array(':username'=>$username)); + + $imageFileName = 'uploaded/' . $username . '-' . ($user->postCount + 1) . '.' . $model->image->extensionName; + + $model->image->saveAs('C:/Workplace/Apache2.4/htdocs/cj/' . $imageFileName); + + $user->postCount = $user->postCount + 1; + + $user->save(); + + $post = new Post; + + $post->username = $username; + $post->title = $model->title; + $post->text = $model->text; + $post->imageFileName = $imageFileName; + + $post->save(); + + $this->redirect(Yii::app()->homeUrl); + + + return; + } + } + $this->render('addPost',array('model'=>$model)); +} + + private function better_crypt($input) + { + $salt = ""; + $salt_chars = array_merge(range('A','Z'), range('a','z'), range(0,9)); + for($i=0; $i < 22; $i++) + { + $salt .= $salt_chars[array_rand($salt_chars)]; + } + return crypt($input, '$2y$10$' . $salt); + } +} \ No newline at end of file diff --git a/yii/protected/data/schema.mysql.sql b/yii/protected/data/schema.mysql.sql new file mode 100644 index 0000000..901f80b --- /dev/null +++ b/yii/protected/data/schema.mysql.sql @@ -0,0 +1,8 @@ +CREATE TABLE `cjbase`.`tbl_user` ( + `id` INT NOT NULL AUTO_INCREMENT, + `username` VARCHAR(45) NOT NULL, + `email` VARCHAR(45) NOT NULL, + `password` TEXT NOT NULL, + `level` INT NOT NULL DEFAULT 0, + PRIMARY KEY (`id`)); + diff --git a/yii/protected/models/AddPostForm.php b/yii/protected/models/AddPostForm.php new file mode 100644 index 0000000..8ffebc8 --- /dev/null +++ b/yii/protected/models/AddPostForm.php @@ -0,0 +1,25 @@ +'jpg, gif, png'), + ); + } + + +} diff --git a/yii/protected/models/LoginForm.php b/yii/protected/models/LoginForm.php new file mode 100644 index 0000000..eb36e4a --- /dev/null +++ b/yii/protected/models/LoginForm.php @@ -0,0 +1,77 @@ +'Remember me next time', + ); + } + + /** + * Authenticates the password. + * This is the 'authenticate' validator as declared in rules(). + */ + public function authenticate($attribute,$params) + { + if(!$this->hasErrors()) + { + $this->_identity=new UserIdentity($this->username,$this->password); + if(!$this->_identity->authenticate()) + $this->addError('password','Incorrect username or password.'); + } + } + + /** + * Logs in the user using the given username and password in the model. + * @return boolean whether login is successful + */ + public function login() + { + if($this->_identity===null) + { + $this->_identity=new UserIdentity($this->username,$this->password); + $this->_identity->authenticate(); + } + if($this->_identity->errorCode===UserIdentity::ERROR_NONE) + { + $duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days + Yii::app()->user->login($this->_identity,$duration); + return true; + } + else + return false; + } +} diff --git a/yii/protected/models/Post.php b/yii/protected/models/Post.php new file mode 100644 index 0000000..3391113 --- /dev/null +++ b/yii/protected/models/Post.php @@ -0,0 +1,15 @@ +hasErrors()) + { + $count = user::model()->count('username=:username', array('username'=>$this->username)); + if ($count != 0) + $this->addError('username','Username already exists'); + + $count = user::model()->count('email=:email', array('email'=>$this->email)); + if ($count != 0) + $this->addError('email','Email already exists'); + } + + } + + +} diff --git a/yii/protected/models/User.php b/yii/protected/models/User.php new file mode 100644 index 0000000..bf0f78a --- /dev/null +++ b/yii/protected/models/User.php @@ -0,0 +1,23 @@ +authenticate() +#1 C:\Workplace\yii1.1.15\framework\validators\CInlineValidator.php(42): LoginForm->authenticate('password', Array) +#2 C:\Workplace\yii1.1.15\framework\validators\CValidator.php(213): CInlineValidator->validateAttribute(Object(LoginForm), 'password') +#3 C:\Workplace\yii1.1.15\framework\base\CModel.php(159): CValidator->validate(Object(LoginForm), NULL) +#4 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(68): CModel->validate() +#5 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionLogin() +#6 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#7 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#8 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#9 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('login') +#10 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/login') +#11 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#12 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#13 {main} +REQUEST_URI=/cj/index.php?r=site/login +HTTP_REFERER=http://localhost/cj/index.php?r=site/login +--- +2014/11/20 18:54:18 [error] [php] include(user.php): failed to open stream: No such file or directory (C:\Workplace\yii1.1.15\framework\YiiBase.php:427) +Stack trace: +#0 C:\Workplace\Apache2.4\htdocs\cj\protected\components\UserIdentity.php(20): spl_autoload_call() +#1 C:\Workplace\Apache2.4\htdocs\cj\protected\models\LoginForm.php(52): UserIdentity->authenticate() +#2 C:\Workplace\yii1.1.15\framework\validators\CInlineValidator.php(42): LoginForm->authenticate() +#3 C:\Workplace\yii1.1.15\framework\validators\CValidator.php(213): CInlineValidator->validateAttribute() +#4 C:\Workplace\yii1.1.15\framework\base\CModel.php(159): CInlineValidator->validate() +#5 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(68): LoginForm->validate() +#6 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionLogin() +#7 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams() +#8 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#9 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#10 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#11 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#12 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#13 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/login +in C:\Workplace\Apache2.4\htdocs\cj\protected\components\UserIdentity.php (20) +in C:\Workplace\Apache2.4\htdocs\cj\protected\models\LoginForm.php (52) +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (68) +2014/11/20 19:16:52 [error] [exception.CException] exception 'CException' with message 'SiteController cannot find the requested view "register".' in C:\Workplace\yii1.1.15\framework\web\CController.php:878 +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\web\CController.php(782): CController->renderPartial('register', Array, true) +#1 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(97): CController->render('register', Array) +#2 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionRegister() +#3 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#4 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#5 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#6 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('register') +#7 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/register') +#8 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#9 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#10 {main} +REQUEST_URI=/cj/index.php?r=site/register +HTTP_REFERER=http://localhost/cj/index.php?r=site/login +--- +2014/11/20 20:31:20 [error] [php] Undefined variable: rounds (C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php:127) +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams() +#1 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#2 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#3 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#4 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#5 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#6 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/register +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (127) +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (94) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 20:31:43 [error] [php] Creating default object from empty value (C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php:97) +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#1 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#2 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#3 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#4 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#5 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/register +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (97) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 20:32:20 [error] [php] Undefined variable: post (C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php:99) +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#1 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#2 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#3 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#4 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#5 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/register +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (99) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 20:32:33 [error] [system.db.CDbCommand] CDbCommand::execute() failed: SQLSTATE[HY000]: General error: 1364 Field 'email' doesn't have a default value. The SQL statement executed was: INSERT INTO `tbl_user` (`level`, `username`, `password`) VALUES (:yp0, :yp1, :yp2). +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (99) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 20:32:33 [error] [exception.CDbException] exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1364 Field 'email' doesn't have a default value. The SQL statement executed was: INSERT INTO `tbl_user` (`level`, `username`, `password`) VALUES (:yp0, :yp1, :yp2)' in C:\Workplace\yii1.1.15\framework\db\CDbCommand.php:358 +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\db\ar\CActiveRecord.php(1077): CDbCommand->execute() +#1 C:\Workplace\yii1.1.15\framework\db\ar\CActiveRecord.php(806): CActiveRecord->insert(NULL) +#2 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(99): CActiveRecord->save() +#3 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionRegister() +#4 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#5 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#6 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#7 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('register') +#8 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/register') +#9 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#10 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#11 {main} +REQUEST_URI=/cj/index.php?r=site/register +HTTP_REFERER=http://localhost/cj/index.php?r=site/register +--- +2014/11/20 20:59:07 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 20:59:14 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:00:03 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:00:30 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:01:35 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:08:03 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:09:03 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:11:09 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:11:16 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:11:16 [error] [exception.CException] exception 'CException' with message 'AddPostForm and its behaviors do not have a method or closure named "save".' in C:\Workplace\yii1.1.15\framework\base\CComponent.php:266 +Stack trace: +#0 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(142): CComponent->__call('save', Array) +#1 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(142): AddPostForm->save() +#2 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionAddPost() +#3 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#4 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#5 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#6 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('addPost') +#7 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/addPost') +#8 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#9 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#10 {main} +REQUEST_URI=/cj/index.php?r=site/addPost +HTTP_REFERER=http://localhost/cj/index.php?r=site/addPost +--- +2014/11/20 21:12:48 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 21:15:53 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:12:49 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:12:49 [error] [exception.CException] exception 'CException' with message 'Property "CWebUser.username" is not defined.' in C:\Workplace\yii1.1.15\framework\base\CComponent.php:130 +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\web\auth\CWebUser.php(146): CComponent->__get('username') +#1 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(142): CWebUser->__get('username') +#2 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionAddPost() +#3 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#4 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#5 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#6 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('addPost') +#7 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/addPost') +#8 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#9 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#10 {main} +REQUEST_URI=/cj/index.php?r=site/addPost +HTTP_REFERER=http://localhost/cj/index.php?r=site/addPost +--- +2014/11/20 23:26:09 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:26:10 [error] [exception.CException] exception 'CException' with message 'Property "Post.imageUrl" is not defined.' in C:\Workplace\yii1.1.15\framework\base\CComponent.php:173 +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\db\ar\CActiveRecord.php(161): CComponent->__set('imageUrl', '1.jpg') +#1 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(159): CActiveRecord->__set('imageUrl', '1.jpg') +#2 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionAddPost() +#3 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#4 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#5 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#6 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('addPost') +#7 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/addPost') +#8 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#9 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#10 {main} +REQUEST_URI=/cj/index.php?r=site/addPost +HTTP_REFERER=http://localhost/cj/index.php?r=site/addPost +--- +2014/11/20 23:26:49 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:28:13 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:28:35 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (135) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:40:52 [error] [system.db.CDbCommand] CDbCommand::fetchAll() failed: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'update_time' in 'order clause'. The SQL statement executed was: SELECT * FROM `tbl_post` `t` ORDER BY update_time DESC LIMIT 5. +in C:\Workplace\Apache2.4\htdocs\cj\protected\views\site\index.php (14) +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (44) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:40:52 [error] [exception.CDbException] exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'update_time' in 'order clause'. The SQL statement executed was: SELECT * FROM `tbl_post` `t` ORDER BY update_time DESC LIMIT 5' in C:\Workplace\yii1.1.15\framework\db\CDbCommand.php:543 +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\db\CDbCommand.php(396): CDbCommand->queryInternal('fetchAll', Array, Array) +#1 C:\Workplace\yii1.1.15\framework\db\ar\CActiveRecord.php(1351): CDbCommand->queryAll() +#2 C:\Workplace\yii1.1.15\framework\db\ar\CActiveRecord.php(1470): CActiveRecord->query(Object(CDbCriteria), true) +#3 C:\Workplace\yii1.1.15\framework\web\CActiveDataProvider.php(199): CActiveRecord->findAll(Object(CDbCriteria)) +#4 C:\Workplace\yii1.1.15\framework\web\CDataProvider.php(168): CActiveDataProvider->fetchData() +#5 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(111): CDataProvider->getData() +#6 C:\Workplace\yii1.1.15\framework\zii\widgets\CListView.php(211): CBaseListView->init() +#7 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(147): CListView->init() +#8 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(172): CBaseController->createWidget('zii.widgets.CLi...', Array) +#9 C:\Workplace\Apache2.4\htdocs\cj\protected\views\site\index.php(14): CBaseController->widget('zii.widgets.CLi...', Array) +#10 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(126): require('C:\\Workplace\\Ap...') +#11 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(95): CBaseController->renderInternal('C:\\Workplace\\Ap...', Array, true) +#12 C:\Workplace\yii1.1.15\framework\web\CController.php(869): CBaseController->renderFile('C:\\Workplace\\Ap...', Array, true) +#13 C:\Workplace\yii1.1.15\framework\web\CController.php(782): CController->renderPartial('index', Array, true) +#14 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(44): CController->render('index', Array) +#15 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionIndex() +#16 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams(Array) +#17 C:\Workplace\yii1.1.15\framework\web\CController.php(286): CController->runAction(Object(CInlineAction)) +#18 C:\Workplace\yii1.1.15\framework\web\CController.php(265): CController->runActionWithFilters(Object(CInlineAction), Array) +#19 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): CController->run('index') +#20 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController('site/index') +#21 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#22 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CApplication->run() +#23 {main} +REQUEST_URI=/cj/index.php?r=site/index +HTTP_REFERER=http://localhost/cj/index.php?r=site/index +--- +2014/11/20 23:41:12 [error] [php] require(): Filename cannot be empty (C:\Workplace\yii1.1.15\framework\web\CBaseController.php:130) +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\zii\widgets\CListView.php(291): SiteController->renderFile() +#1 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(167): CListView->renderItems() +#2 unknown(0): CListView->renderSection() +#3 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(150): preg_replace_callback() +#4 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(135): CListView->renderContent() +#5 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(173): CListView->run() +#6 C:\Workplace\Apache2.4\htdocs\cj\protected\views\site\index.php(14): SiteController->widget() +#7 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(126): require() +#8 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(95): SiteController->renderInternal() +#9 C:\Workplace\yii1.1.15\framework\web\CController.php(869): SiteController->renderFile() +#10 C:\Workplace\yii1.1.15\framework\web\CController.php(782): SiteController->renderPartial() +#11 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(40): SiteController->render() +#12 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionIndex() +#13 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams() +#14 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#15 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#16 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#17 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#18 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#19 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/index +in C:\Workplace\Apache2.4\htdocs\cj\protected\views\site\index.php (14) +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (40) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:41:59 [error] [php] require(): Filename cannot be empty (C:\Workplace\yii1.1.15\framework\web\CBaseController.php:130) +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\zii\widgets\CListView.php(291): SiteController->renderFile() +#1 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(167): CListView->renderItems() +#2 unknown(0): CListView->renderSection() +#3 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(150): preg_replace_callback() +#4 C:\Workplace\yii1.1.15\framework\zii\widgets\CBaseListView.php(135): CListView->renderContent() +#5 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(173): CListView->run() +#6 C:\Workplace\Apache2.4\htdocs\cj\protected\views\site\index.php(14): SiteController->widget() +#7 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(126): require() +#8 C:\Workplace\yii1.1.15\framework\web\CBaseController.php(95): SiteController->renderInternal() +#9 C:\Workplace\yii1.1.15\framework\web\CController.php(869): SiteController->renderFile() +#10 C:\Workplace\yii1.1.15\framework\web\CController.php(782): SiteController->renderPartial() +#11 C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php(40): SiteController->render() +#12 C:\Workplace\yii1.1.15\framework\web\actions\CInlineAction.php(49): SiteController->actionIndex() +#13 C:\Workplace\yii1.1.15\framework\web\CController.php(308): CInlineAction->runWithParams() +#14 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#15 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#16 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#17 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#18 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#19 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/index +in C:\Workplace\Apache2.4\htdocs\cj\protected\views\site\index.php (14) +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (40) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:52:47 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:54:09 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:55:01 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:55:24 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/20 23:55:40 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/21 10:46:51 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/21 10:46:52 [error] [php] Undefined variable: path (C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php:159) +Stack trace: +#0 C:\Workplace\yii1.1.15\framework\web\CController.php(286): SiteController->runAction() +#1 C:\Workplace\yii1.1.15\framework\web\CController.php(265): SiteController->runActionWithFilters() +#2 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(282): SiteController->run() +#3 C:\Workplace\yii1.1.15\framework\web\CWebApplication.php(141): CWebApplication->runController() +#4 C:\Workplace\yii1.1.15\framework\base\CApplication.php(180): CWebApplication->processRequest() +#5 C:\Workplace\Apache2.4\htdocs\cj\index.php(13): CWebApplication->run() +REQUEST_URI=/cj/index.php?r=site/addPost +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (159) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) +2014/11/21 10:49:26 [warning] [application] Failed to set unsafe attribute "image" of "AddPostForm". +in C:\Workplace\Apache2.4\htdocs\cj\protected\controllers\SiteController.php (148) +in C:\Workplace\Apache2.4\htdocs\cj\index.php (13) diff --git a/yii/protected/runtime/gii-1.1.15/FormCode.php b/yii/protected/runtime/gii-1.1.15/FormCode.php new file mode 100644 index 0000000..c52eb26 --- /dev/null +++ b/yii/protected/runtime/gii-1.1.15/FormCode.php @@ -0,0 +1,5 @@ + 'default', + 'viewPath' => 'application.views', +); diff --git a/yii/protected/tests/WebTestCase.php b/yii/protected/tests/WebTestCase.php new file mode 100644 index 0000000..d252bba --- /dev/null +++ b/yii/protected/tests/WebTestCase.php @@ -0,0 +1,25 @@ +setBrowserUrl(TEST_BASE_URL); + } +} diff --git a/yii/protected/tests/bootstrap.php b/yii/protected/tests/bootstrap.php new file mode 100644 index 0000000..77361e9 --- /dev/null +++ b/yii/protected/tests/bootstrap.php @@ -0,0 +1,10 @@ +open(''); + $this->assertTextPresent('Welcome'); + } + + public function testContact() + { + $this->open('?r=site/contact'); + $this->assertTextPresent('Contact Us'); + $this->assertElementPresent('name=ContactForm[name]'); + + $this->type('name=ContactForm[name]','tester'); + $this->type('name=ContactForm[email]','tester@example.com'); + $this->type('name=ContactForm[subject]','test subject'); + $this->click("//input[@value='Submit']"); + $this->waitForTextPresent('Body cannot be blank.'); + } + + public function testLoginLogout() + { + $this->open(''); + // ensure the user is logged out + if($this->isTextPresent('Logout')) + $this->clickAndWait('link=Logout (demo)'); + + // test login process, including validation + $this->clickAndWait('link=Login'); + $this->assertElementPresent('name=LoginForm[username]'); + $this->type('name=LoginForm[username]','demo'); + $this->click("//input[@value='Login']"); + $this->waitForTextPresent('Password cannot be blank.'); + $this->type('name=LoginForm[password]','demo'); + $this->clickAndWait("//input[@value='Login']"); + $this->assertTextNotPresent('Password cannot be blank.'); + $this->assertTextPresent('Logout'); + + // test logout process + $this->assertTextNotPresent('Login'); + $this->clickAndWait('link=Logout (demo)'); + $this->assertTextPresent('Login'); + } +} diff --git a/yii/protected/tests/phpunit.xml b/yii/protected/tests/phpunit.xml new file mode 100644 index 0000000..22c96ff --- /dev/null +++ b/yii/protected/tests/phpunit.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/yii/protected/views/layouts/column1.php b/yii/protected/views/layouts/column1.php new file mode 100644 index 0000000..702fd65 --- /dev/null +++ b/yii/protected/views/layouts/column1.php @@ -0,0 +1,6 @@ + +beginContent('//layouts/main'); ?> +
    + +
    +endContent(); ?> \ No newline at end of file diff --git a/yii/protected/views/layouts/column2.php b/yii/protected/views/layouts/column2.php new file mode 100644 index 0000000..b588bf6 --- /dev/null +++ b/yii/protected/views/layouts/column2.php @@ -0,0 +1,22 @@ + +beginContent('//layouts/main'); ?> +
    +
    + +
    +
    +
    + +
    +endContent(); ?> \ No newline at end of file diff --git a/yii/protected/views/layouts/main.php b/yii/protected/views/layouts/main.php new file mode 100644 index 0000000..909d2e2 --- /dev/null +++ b/yii/protected/views/layouts/main.php @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + <?php echo CHtml::encode($this->pageTitle); ?> + + + + +
    + + + + + breadcrumbs)):?> + widget('zii.widgets.CBreadcrumbs', array( + 'links'=>$this->breadcrumbs, + )); ?> + + + + +
    + + + +
    + + + diff --git a/yii/protected/views/site/_view.php b/yii/protected/views/site/_view.php new file mode 100644 index 0000000..a9af29f --- /dev/null +++ b/yii/protected/views/site/_view.php @@ -0,0 +1,13 @@ +pageTitle=Yii::app()->name; +?> + +
    + +

    title; ?>

    +

    username; ?>

    +

    text; ?>

    + + \ No newline at end of file diff --git a/yii/protected/views/site/addPost.php b/yii/protected/views/site/addPost.php new file mode 100644 index 0000000..add432e --- /dev/null +++ b/yii/protected/views/site/addPost.php @@ -0,0 +1,47 @@ + + +
    + +beginWidget('CActiveForm', array( + 'id'=>'add-post-form-addPost-form', + // Please note: When you enable ajax validation, make sure the corresponding + // controller action is handling ajax validation correctly. + // See class documentation of CActiveForm for details on this, + // you need to use the performAjaxValidation()-method described there. + 'enableAjaxValidation'=>false, + 'htmlOptions' => array('enctype' => 'multipart/form-data'), +)); ?> + +

    Fields with * are required.

    + + errorSummary($model); ?> + +
    + labelEx($model,'title'); ?> + textField($model,'title'); ?> + error($model,'title'); ?> +
    + +
    + labelEx($model,'text'); ?> + textArea($model,'text'); ?> + error($model,'text'); ?> +
    + +
    + labelEx($model,'image'); ?> + fileField($model,'image'); ?> + error($model,'image'); ?> +
    + +
    + +
    + +endWidget(); ?> + +
    \ No newline at end of file diff --git a/yii/protected/views/site/error.php b/yii/protected/views/site/error.php new file mode 100644 index 0000000..d0dcb80 --- /dev/null +++ b/yii/protected/views/site/error.php @@ -0,0 +1,15 @@ +pageTitle=Yii::app()->name . ' - Error'; +$this->breadcrumbs=array( + 'Error', +); +?> + +

    Error

    + +
    + +
    \ No newline at end of file diff --git a/yii/protected/views/site/index.php b/yii/protected/views/site/index.php new file mode 100644 index 0000000..d94c660 --- /dev/null +++ b/yii/protected/views/site/index.php @@ -0,0 +1,14 @@ +pageTitle=Yii::app()->name; +?> + +

    Welcome to name); ?>

    + + +widget('zii.widgets.CListView', array( + 'dataProvider'=>$dataProvider, + 'itemView'=>'_view', + 'template'=>"{items}\n{pager}", +)); ?> diff --git a/yii/protected/views/site/login.php b/yii/protected/views/site/login.php new file mode 100644 index 0000000..75463f8 --- /dev/null +++ b/yii/protected/views/site/login.php @@ -0,0 +1,52 @@ +pageTitle=Yii::app()->name . ' - Login'; +$this->breadcrumbs=array( + 'Login', +); +?> + +

    Login

    + +

    Please fill out the following form with your login credentials:

    + +
    +beginWidget('CActiveForm', array( + 'id'=>'login-form', + 'enableClientValidation'=>true, + 'clientOptions'=>array( + 'validateOnSubmit'=>true, + ), +)); ?> + +

    Fields with * are required.

    + +
    + labelEx($model,'username'); ?> + textField($model,'username'); ?> + error($model,'username'); ?> +
    + +
    + labelEx($model,'password'); ?> + passwordField($model,'password'); ?> + error($model,'password'); ?> +
    + +
    + checkBox($model,'rememberMe'); ?> + label($model,'rememberMe'); ?> + error($model,'rememberMe'); ?> +
    + +
    + +
    + +endWidget(); ?> + + +
    diff --git a/yii/protected/views/site/pages/about.php b/yii/protected/views/site/pages/about.php new file mode 100644 index 0000000..d8aa3c5 --- /dev/null +++ b/yii/protected/views/site/pages/about.php @@ -0,0 +1,12 @@ +pageTitle=Yii::app()->name . ' - About'; +$this->breadcrumbs=array( + 'About', +); +?> +

    About

    + +

    This is a "static" page. You may change the content of this page +by updating the file .

    diff --git a/yii/protected/views/site/register.php b/yii/protected/views/site/register.php new file mode 100644 index 0000000..cf62dcd --- /dev/null +++ b/yii/protected/views/site/register.php @@ -0,0 +1,47 @@ + + +
    + +beginWidget('CActiveForm', array( + 'id'=>'register-form-register-form', + // Please note: When you enable ajax validation, make sure the corresponding + // controller action is handling ajax validation correctly. + // See class documentation of CActiveForm for details on this, + // you need to use the performAjaxValidation()-method described there. + 'enableAjaxValidation'=>false, +)); ?> + +

    Fields with * are required.

    + + errorSummary($model); ?> + +
    + labelEx($model,'username'); ?> + textField($model,'username'); ?> + error($model,'username'); ?> +
    + +
    + labelEx($model,'password'); ?> + passwordField($model,'password'); ?> + error($model,'password'); ?> +
    + +
    + labelEx($model,'email'); ?> + emailField($model,'email'); ?> + error($model,'email'); ?> +
    + + +
    + +
    + +endWidget(); ?> + +
    \ No newline at end of file diff --git a/yii/protected/yiic b/yii/protected/yiic new file mode 100644 index 0000000..7f56f54 --- /dev/null +++ b/yii/protected/yiic @@ -0,0 +1,4 @@ +#!/usr/bin/env php +