From e2eabb29ea0825fe89458d33d207d9c0ecc0fbe5 Mon Sep 17 00:00:00 2001 From: Jeffrey Warren Date: Wed, 14 Sep 2011 14:06:31 -0600 Subject: [PATCH] major reorg for knitter-specific fork --- app/controllers/extract_controller.rb | 61 - app/controllers/messages_controller.rb | 62 - app/controllers/node_controller.rb | 35 - app/controllers/way_controller.rb | 76 - app/helpers/extract_helper.rb | 2 - app/helpers/utility_helper.rb | 2 - app/helpers/way_helper.rb | 2 - app/models/message.rb | 91 - app/models/sms.rb | 42 - app/models/tweet.rb | 65 - app/views/utility/geocode.html.erb | 45 - config/environment.rb | 2 +- config/routes.rb | 11 +- public/api/index.html | 57 - public/api/resources/TabCloseMenu.js | 42 - public/api/resources/accordian.gif | Bin 943 -> 0 bytes public/api/resources/block-bg.gif | Bin 834 -> 0 bytes public/api/resources/block-bottom.gif | Bin 3133 -> 0 bytes public/api/resources/block-top.gif | Bin 915 -> 0 bytes public/api/resources/class.gif | Bin 925 -> 0 bytes public/api/resources/cmp.gif | Bin 988 -> 0 bytes public/api/resources/collapse-all.gif | Bin 983 -> 0 bytes public/api/resources/collapse-bg.gif | Bin 1623 -> 0 bytes public/api/resources/collapser.css | 34 - public/api/resources/config.gif | Bin 955 -> 0 bytes public/api/resources/css/ext-all.css | 925 -------- public/api/resources/docs.css | 363 --- public/api/resources/docs.gif | Bin 1016 -> 0 bytes public/api/resources/docs.js | 572 ----- public/api/resources/elbow-end.gif | Bin 844 -> 0 bytes public/api/resources/event.gif | Bin 919 -> 0 bytes public/api/resources/example.gif | Bin 1008 -> 0 bytes public/api/resources/expand-all.gif | Bin 1009 -> 0 bytes public/api/resources/expand-bg-over.gif | Bin 820 -> 0 bytes public/api/resources/expand-bg.gif | Bin 827 -> 0 bytes public/api/resources/expand-members.gif | Bin 981 -> 0 bytes public/api/resources/ext-all.js | 162 -- public/api/resources/ext-base.js | 10 - public/api/resources/extanim32.gif | Bin 3424 -> 0 bytes public/api/resources/extanim64.gif | Bin 6562 -> 0 bytes public/api/resources/extjs.gif | Bin 2093 -> 0 bytes public/api/resources/fav.gif | Bin 954 -> 0 bytes public/api/resources/folder.gif | Bin 1003 -> 0 bytes public/api/resources/folder_open.gif | Bin 997 -> 0 bytes public/api/resources/form.png | Bin 478 -> 0 bytes public/api/resources/forum.gif | Bin 1031 -> 0 bytes public/api/resources/hd-bg.gif | Bin 889 -> 0 bytes public/api/resources/hide-inherited.gif | Bin 919 -> 0 bytes public/api/resources/icon-grid.gif | Bin 917 -> 0 bytes .../images/default/box/corners-blue.gif | Bin 1010 -> 0 bytes .../resources/images/default/box/corners.gif | Bin 1005 -> 0 bytes .../resources/images/default/box/l-blue.gif | Bin 810 -> 0 bytes public/api/resources/images/default/box/l.gif | Bin 810 -> 0 bytes .../resources/images/default/box/r-blue.gif | Bin 810 -> 0 bytes public/api/resources/images/default/box/r.gif | Bin 810 -> 0 bytes .../resources/images/default/box/tb-blue.gif | Bin 851 -> 0 bytes .../api/resources/images/default/box/tb.gif | Bin 839 -> 0 bytes .../images/default/button/btn-arrow.gif | Bin 870 -> 0 bytes .../images/default/button/btn-sprite.gif | Bin 1341 -> 0 bytes .../resources/images/default/dd/drop-add.gif | Bin 1001 -> 0 bytes .../resources/images/default/dd/drop-no.gif | Bin 949 -> 0 bytes .../resources/images/default/dd/drop-yes.gif | Bin 1016 -> 0 bytes .../images/default/editor/tb-sprite.gif | Bin 2072 -> 0 bytes .../images/default/form/checkbox.gif | Bin 2061 -> 0 bytes .../images/default/form/clear-trigger.gif | Bin 1988 -> 0 bytes .../images/default/form/clear-trigger.psd | Bin 11804 -> 0 bytes .../images/default/form/date-trigger.gif | Bin 1603 -> 0 bytes .../images/default/form/date-trigger.psd | Bin 12377 -> 0 bytes .../images/default/form/error-tip-corners.gif | Bin 4183 -> 0 bytes .../images/default/form/exclamation.gif | Bin 996 -> 0 bytes .../resources/images/default/form/radio.gif | Bin 1746 -> 0 bytes .../images/default/form/search-trigger.gif | Bin 2182 -> 0 bytes .../images/default/form/search-trigger.psd | Bin 15601 -> 0 bytes .../resources/images/default/form/text-bg.gif | Bin 819 -> 0 bytes .../images/default/form/trigger-tpl.gif | Bin 1487 -> 0 bytes .../resources/images/default/form/trigger.gif | Bin 1816 -> 0 bytes .../resources/images/default/form/trigger.psd | Bin 10829 -> 0 bytes .../resources/images/default/gradient-bg.gif | Bin 1472 -> 0 bytes .../images/default/grid/arrow-left-white.gif | Bin 825 -> 0 bytes .../images/default/grid/arrow-right-white.gif | Bin 825 -> 0 bytes .../images/default/grid/col-move-bottom.gif | Bin 868 -> 0 bytes .../images/default/grid/col-move-top.gif | Bin 869 -> 0 bytes .../resources/images/default/grid/columns.gif | Bin 962 -> 0 bytes .../resources/images/default/grid/dirty.gif | Bin 832 -> 0 bytes .../resources/images/default/grid/done.gif | Bin 133 -> 0 bytes .../resources/images/default/grid/drop-no.gif | Bin 947 -> 0 bytes .../images/default/grid/drop-yes.gif | Bin 860 -> 0 bytes .../images/default/grid/footer-bg.gif | Bin 834 -> 0 bytes .../images/default/grid/grid-blue-hd.gif | Bin 829 -> 0 bytes .../images/default/grid/grid-blue-split.gif | Bin 817 -> 0 bytes .../images/default/grid/grid-hrow.gif | Bin 855 -> 0 bytes .../images/default/grid/grid-loading.gif | Bin 701 -> 0 bytes .../images/default/grid/grid-split.gif | Bin 817 -> 0 bytes .../images/default/grid/grid-vista-hd.gif | Bin 829 -> 0 bytes .../images/default/grid/grid3-hd-btn.gif | Bin 1229 -> 0 bytes .../images/default/grid/grid3-hrow-over.gif | Bin 823 -> 0 bytes .../images/default/grid/grid3-hrow.gif | Bin 836 -> 0 bytes .../default/grid/grid3-special-col-bg.gif | Bin 837 -> 0 bytes .../default/grid/grid3-special-col-sel-bg.gif | Bin 843 -> 0 bytes .../images/default/grid/group-by.gif | Bin 917 -> 0 bytes .../default/grid/group-expand-sprite.gif | Bin 955 -> 0 bytes .../resources/images/default/grid/hd-pop.gif | Bin 839 -> 0 bytes .../images/default/grid/hmenu-asc.gif | Bin 931 -> 0 bytes .../images/default/grid/hmenu-desc.gif | Bin 930 -> 0 bytes .../images/default/grid/hmenu-lock.gif | Bin 955 -> 0 bytes .../images/default/grid/hmenu-lock.png | Bin 648 -> 0 bytes .../images/default/grid/hmenu-unlock.gif | Bin 971 -> 0 bytes .../images/default/grid/hmenu-unlock.png | Bin 697 -> 0 bytes .../images/default/grid/invalid_line.gif | Bin 815 -> 0 bytes .../resources/images/default/grid/loading.gif | Bin 771 -> 0 bytes .../resources/images/default/grid/mso-hd.gif | Bin 875 -> 0 bytes .../resources/images/default/grid/nowait.gif | Bin 884 -> 0 bytes .../default/grid/page-first-disabled.gif | Bin 925 -> 0 bytes .../images/default/grid/page-first.gif | Bin 925 -> 0 bytes .../default/grid/page-last-disabled.gif | Bin 923 -> 0 bytes .../images/default/grid/page-last.gif | Bin 923 -> 0 bytes .../default/grid/page-next-disabled.gif | Bin 875 -> 0 bytes .../images/default/grid/page-next.gif | Bin 875 -> 0 bytes .../default/grid/page-prev-disabled.gif | Bin 879 -> 0 bytes .../images/default/grid/page-prev.gif | Bin 879 -> 0 bytes .../images/default/grid/pick-button.gif | Bin 1036 -> 0 bytes .../resources/images/default/grid/refresh.gif | Bin 977 -> 0 bytes .../images/default/grid/row-check-sprite.gif | Bin 1083 -> 0 bytes .../images/default/grid/row-expand-sprite.gif | Bin 955 -> 0 bytes .../images/default/grid/row-over.gif | Bin 823 -> 0 bytes .../resources/images/default/grid/row-sel.gif | Bin 823 -> 0 bytes .../images/default/grid/sort_asc.gif | Bin 830 -> 0 bytes .../images/default/grid/sort_desc.gif | Bin 833 -> 0 bytes .../resources/images/default/grid/wait.gif | Bin 1100 -> 0 bytes .../images/default/layout/collapse.gif | Bin 842 -> 0 bytes .../images/default/layout/expand.gif | Bin 842 -> 0 bytes .../images/default/layout/gradient-bg.gif | Bin 1472 -> 0 bytes .../images/default/layout/mini-bottom.gif | Bin 856 -> 0 bytes .../images/default/layout/mini-left.gif | Bin 871 -> 0 bytes .../images/default/layout/mini-right.gif | Bin 872 -> 0 bytes .../images/default/layout/mini-top.gif | Bin 856 -> 0 bytes .../images/default/layout/ns-collapse.gif | Bin 842 -> 0 bytes .../images/default/layout/ns-expand.gif | Bin 843 -> 0 bytes .../images/default/layout/panel-close.gif | Bin 829 -> 0 bytes .../images/default/layout/panel-title-bg.gif | Bin 838 -> 0 bytes .../default/layout/panel-title-light-bg.gif | Bin 835 -> 0 bytes .../resources/images/default/layout/stick.gif | Bin 874 -> 0 bytes .../resources/images/default/layout/stuck.gif | Bin 92 -> 0 bytes .../images/default/layout/tab-close-on.gif | Bin 880 -> 0 bytes .../images/default/layout/tab-close.gif | Bin 859 -> 0 bytes .../resources/images/default/menu/checked.gif | Bin 959 -> 0 bytes .../images/default/menu/group-checked.gif | Bin 891 -> 0 bytes .../images/default/menu/item-over.gif | Bin 820 -> 0 bytes .../images/default/menu/menu-parent.gif | Bin 854 -> 0 bytes .../resources/images/default/menu/menu.gif | Bin 834 -> 0 bytes .../images/default/menu/unchecked.gif | Bin 941 -> 0 bytes .../images/default/panel/corners-sprite.gif | Bin 1418 -> 0 bytes .../images/default/panel/left-right.gif | Bin 815 -> 0 bytes .../images/default/panel/light-hd.gif | Bin 827 -> 0 bytes .../images/default/panel/tool-sprite-tpl.gif | Bin 971 -> 0 bytes .../images/default/panel/tool-sprites.gif | Bin 4158 -> 0 bytes .../default/panel/tools-sprites-trans.gif | Bin 2640 -> 0 bytes .../images/default/panel/top-bottom.gif | Bin 875 -> 0 bytes .../images/default/panel/top-bottom.png | Bin 218 -> 0 bytes .../default/panel/white-corners-sprite.gif | Bin 1366 -> 0 bytes .../images/default/panel/white-left-right.gif | Bin 815 -> 0 bytes .../images/default/panel/white-top-bottom.gif | Bin 872 -> 0 bytes .../images/default/progress/progress-bg.gif | Bin 834 -> 0 bytes .../api/resources/images/default/qtip/bg.gif | Bin 1091 -> 0 bytes .../resources/images/default/qtip/close.gif | Bin 972 -> 0 bytes .../images/default/qtip/tip-sprite.gif | Bin 4271 -> 0 bytes public/api/resources/images/default/s.gif | Bin 43 -> 0 bytes .../api/resources/images/default/shadow-c.png | Bin 118 -> 0 bytes .../api/resources/images/default/shadow-c.psd | Bin 23266 -> 0 bytes .../resources/images/default/shadow-lr.png | Bin 135 -> 0 bytes .../api/resources/images/default/shadow.png | Bin 311 -> 0 bytes .../images/default/shared/blue-loading.gif | Bin 3236 -> 0 bytes .../images/default/shared/calendar.gif | Bin 979 -> 0 bytes .../images/default/shared/glass-bg.gif | Bin 873 -> 0 bytes .../images/default/shared/hd-sprite.gif | Bin 1099 -> 0 bytes .../images/default/shared/large-loading.gif | Bin 3236 -> 0 bytes .../images/default/shared/left-btn.gif | Bin 870 -> 0 bytes .../images/default/shared/loading-balls.gif | Bin 2118 -> 0 bytes .../images/default/shared/right-btn.gif | Bin 871 -> 0 bytes .../images/default/shared/warning.gif | Bin 960 -> 0 bytes .../images/default/sizer/e-handle-dark.gif | Bin 1062 -> 0 bytes .../images/default/sizer/e-handle.gif | Bin 1586 -> 0 bytes .../images/default/sizer/ne-handle-dark.gif | Bin 839 -> 0 bytes .../images/default/sizer/ne-handle.gif | Bin 854 -> 0 bytes .../images/default/sizer/nw-handle-dark.gif | Bin 839 -> 0 bytes .../images/default/sizer/nw-handle.gif | Bin 853 -> 0 bytes .../images/default/sizer/s-handle-dark.gif | Bin 1060 -> 0 bytes .../images/default/sizer/s-handle.gif | Bin 1318 -> 0 bytes .../images/default/sizer/se-handle-dark.gif | Bin 838 -> 0 bytes .../images/default/sizer/se-handle.gif | Bin 853 -> 0 bytes .../resources/images/default/sizer/square.gif | Bin 864 -> 0 bytes .../images/default/sizer/sw-handle-dark.gif | Bin 839 -> 0 bytes .../images/default/sizer/sw-handle.gif | Bin 855 -> 0 bytes .../images/default/slider/slider-bg.png | Bin 300 -> 0 bytes .../images/default/slider/slider-thumb.png | Bin 933 -> 0 bytes .../images/default/slider/slider-v-bg.png | Bin 288 -> 0 bytes .../images/default/slider/slider-v-thumb.png | Bin 883 -> 0 bytes .../images/default/tabs/scroll-left.gif | Bin 1295 -> 0 bytes .../images/default/tabs/scroll-right.gif | Bin 1300 -> 0 bytes .../images/default/tabs/scroller-bg.gif | Bin 1100 -> 0 bytes .../default/tabs/tab-btm-inactive-left-bg.gif | Bin 886 -> 0 bytes .../tabs/tab-btm-inactive-right-bg.gif | Bin 1386 -> 0 bytes .../images/default/tabs/tab-btm-left-bg.gif | Bin 863 -> 0 bytes .../images/default/tabs/tab-btm-right-bg.gif | Bin 1402 -> 0 bytes .../images/default/tabs/tab-close.gif | Bin 896 -> 0 bytes .../images/default/tabs/tab-strip-bg.gif | Bin 835 -> 0 bytes .../images/default/tabs/tab-strip-bg.png | Bin 259 -> 0 bytes .../images/default/tabs/tab-strip-btm-bg.gif | Bin 826 -> 0 bytes .../images/default/tabs/tabs-sprite.gif | Bin 2120 -> 0 bytes .../resources/images/default/toolbar/bg.gif | Bin 904 -> 0 bytes .../default/toolbar/btn-arrow-light.gif | Bin 916 -> 0 bytes .../images/default/toolbar/btn-arrow.gif | Bin 919 -> 0 bytes .../images/default/toolbar/btn-over-bg.gif | Bin 837 -> 0 bytes .../images/default/toolbar/gray-bg.gif | Bin 832 -> 0 bytes .../images/default/toolbar/tb-bg.gif | Bin 862 -> 0 bytes .../images/default/toolbar/tb-btn-sprite.gif | Bin 1127 -> 0 bytes .../resources/images/default/tree/arrows.gif | Bin 1024 -> 0 bytes .../images/default/tree/drop-add.gif | Bin 1001 -> 0 bytes .../images/default/tree/drop-between.gif | Bin 907 -> 0 bytes .../resources/images/default/tree/drop-no.gif | Bin 949 -> 0 bytes .../images/default/tree/drop-over.gif | Bin 911 -> 0 bytes .../images/default/tree/drop-under.gif | Bin 911 -> 0 bytes .../images/default/tree/drop-yes.gif | Bin 1016 -> 0 bytes .../default/tree/elbow-end-minus-nl.gif | Bin 898 -> 0 bytes .../images/default/tree/elbow-end-minus.gif | Bin 905 -> 0 bytes .../images/default/tree/elbow-end-plus-nl.gif | Bin 900 -> 0 bytes .../images/default/tree/elbow-end-plus.gif | Bin 907 -> 0 bytes .../images/default/tree/elbow-end.gif | Bin 844 -> 0 bytes .../images/default/tree/elbow-line.gif | Bin 846 -> 0 bytes .../images/default/tree/elbow-minus-nl.gif | Bin 898 -> 0 bytes .../images/default/tree/elbow-minus.gif | Bin 908 -> 0 bytes .../images/default/tree/elbow-plus-nl.gif | Bin 900 -> 0 bytes .../images/default/tree/elbow-plus.gif | Bin 910 -> 0 bytes .../resources/images/default/tree/elbow.gif | Bin 850 -> 0 bytes .../images/default/tree/folder-open.gif | Bin 956 -> 0 bytes .../resources/images/default/tree/folder.gif | Bin 952 -> 0 bytes .../resources/images/default/tree/leaf.gif | Bin 945 -> 0 bytes .../resources/images/default/tree/loading.gif | Bin 771 -> 0 bytes .../api/resources/images/default/tree/s.gif | Bin 43 -> 0 bytes .../images/default/window/icon-error.gif | Bin 1669 -> 0 bytes .../images/default/window/icon-info.gif | Bin 1586 -> 0 bytes .../images/default/window/icon-question.gif | Bin 1607 -> 0 bytes .../images/default/window/icon-warning.gif | Bin 1483 -> 0 bytes .../images/default/window/left-corners.png | Bin 272 -> 0 bytes .../images/default/window/left-corners.psd | Bin 15576 -> 0 bytes .../images/default/window/left-right.png | Bin 135 -> 0 bytes .../images/default/window/left-right.psd | Bin 25060 -> 0 bytes .../images/default/window/right-corners.png | Bin 340 -> 0 bytes .../images/default/window/right-corners.psd | Bin 15530 -> 0 bytes .../images/default/window/top-bottom.png | Bin 211 -> 0 bytes .../images/default/window/top-bottom.psd | Bin 32214 -> 0 bytes public/api/resources/inherited.gif | Bin 881 -> 0 bytes public/api/resources/member-collapsed.gif | Bin 856 -> 0 bytes public/api/resources/member-expanded.gif | Bin 845 -> 0 bytes public/api/resources/member-hover.gif | Bin 861 -> 0 bytes public/api/resources/method.gif | Bin 931 -> 0 bytes public/api/resources/minus.gif | Bin 904 -> 0 bytes public/api/resources/pkg-closed.gif | Bin 1037 -> 0 bytes public/api/resources/pkg-open.gif | Bin 1040 -> 0 bytes public/api/resources/pkg.gif | Bin 936 -> 0 bytes public/api/resources/plus.gif | Bin 912 -> 0 bytes public/api/resources/print.css | 206 -- public/api/resources/print.gif | Bin 1032 -> 0 bytes public/api/resources/prop.gif | Bin 923 -> 0 bytes public/api/resources/reset.css | 7 - public/api/resources/s.gif | Bin 43 -> 0 bytes public/api/resources/static.gif | Bin 962 -> 0 bytes public/api/resources/style.css | 360 --- public/api/resources/tabs.gif | Bin 917 -> 0 bytes public/api/resources/tree-bg.gif | Bin 1925 -> 0 bytes public/api/resources/wel-bg.gif | Bin 991 -> 0 bytes public/api/resources/welcome-bg.gif | Bin 1925 -> 0 bytes public/api/resources/welcome.css | 25 - public/api/src/src_cartagen.js.html | 405 ---- public/api/src/src_config_config.js.html | 83 - public/api/src/src_config_style.js.html | 236 -- public/api/src/src_data_coastline.js.html | 297 --- public/api/src/src_data_feature.js.html | 143 -- public/api/src/src_data_importer.js.html | 302 --- public/api/src/src_glop_canvas.js.html | 426 ---- public/api/src/src_glop_canvastext.js.html | 195 -- public/api/src/src_glop_events.js.html | 293 --- public/api/src/src_glop_glop.js.html | 225 -- public/api/src/src_glop_tasks.js.html | 250 -- public/api/src/src_glop_timer.js.html | 84 - .../src/src_interface_context_menu.js.html | 45 - .../api/src/src_interface_interface.js.html | 73 - public/api/src/src_interface_keyboard.js.html | 23 - public/api/src/src_interface_mouse.js.html | 68 - public/api/src/src_interface_pan.js.html | 50 - public/api/src/src_interface_pen.js.html | 56 - public/api/src/src_interface_select.js.html | 83 - public/api/src/src_interface_tool.js.html | 52 - public/api/src/src_interface_user.js.html | 453 ---- public/api/src/src_interface_warp.js.html | 34 - public/api/src/src_interface_zoom.js.html | 49 - public/api/src/src_mapping_geohash.js.html | 482 ---- public/api/src/src_mapping_map.js.html | 133 -- public/api/src/src_mapping_projection.js.html | 93 - public/api/src/src_mapping_viewport.js.html | 99 - public/api/src/src_mapping_warper.js.html | 69 - public/api/src/src_util_debug.js.html | 134 -- public/api/src/src_util_geometry.js.html | 227 -- public/api/src/src_util_util.js.html | 110 - .../api/src/src_warper_control_point.js.html | 33 - public/api/src/src_warper_image.js.html | 32 - public/api/src/src_warper_warper.js.html | 45 - public/api/symbols/$C.html | 1618 ------------- public/api/symbols/$D.html | 477 ---- public/api/symbols/Cartagen.html | 761 ------ public/api/symbols/Events.html | 766 ------ public/api/symbols/Feature.html | 419 ---- public/api/symbols/Geohash.html | 80 - public/api/symbols/Geometry.html | 633 ----- public/api/symbols/Glop.html | 811 ------- public/api/symbols/Interface.html | 150 -- public/api/symbols/Keyboard.html | 128 - public/api/symbols/Map.html | 571 ----- public/api/symbols/Mouse.html | 344 --- public/api/symbols/Projection.html | 314 --- public/api/symbols/Style.html | 480 ---- public/api/symbols/Task.html | 477 ---- public/api/symbols/TaskManager.html | 345 --- public/api/symbols/Timer.html | 173 -- public/api/symbols/TimerManager.html | 367 --- public/api/symbols/Tool.Pan.html | 246 -- public/api/symbols/Tool.Pen.html | 322 --- public/api/symbols/Tool.Select.html | 316 --- public/api/symbols/Tool.Warp.html | 240 -- public/api/symbols/Tool.html | 206 -- public/api/symbols/User.html | 1028 -------- public/api/symbols/Viewport.html | 321 --- public/api/symbols/Warper.ControlPoint.html | 220 -- public/api/symbols/Warper.Image.html | 128 - public/api/symbols/Warper.html | 170 -- public/api/symbols/Zoom.html | 176 -- public/api/symbols/_global_.html | 2074 ----------------- public/api/welcome.html | 17 - public/images/__MACOSX/devicons/._Add.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Blue Ball.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Brushed Window.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Burn.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Dashboard.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Database.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Delete.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Disc.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Drawer-List.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Drawer.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Eject.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Emoticon.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Folder.tiff | Bin 82 -> 0 bytes .../devicons/._General Preferences.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Get Info.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Green Ball.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._HUD.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Help.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._History.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._LinkBack.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Linkback Green 2.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Linkback Green.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Movies.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Network Utility.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Orange Ball.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Pause.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Play.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Power.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._README.txt | Bin 167 -> 0 bytes public/images/__MACOSX/devicons/._RSS 2.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._RSS.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Record.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Red Ball.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Remove.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Smart Folder.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._SnapBack.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Spotlight.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Sticky.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Stop.tiff | Bin 82 -> 0 bytes .../images/__MACOSX/devicons/._Terminal.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/._Universal Binary.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._Users.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._colors.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._flag.tiff | Bin 82 -> 0 bytes public/images/__MACOSX/devicons/._reload.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/Add-ons/._Add.tiff | Bin 82 -> 0 bytes .../__MACOSX/devicons/Add-ons/._Remove.tiff | Bin 82 -> 0 bytes public/images/interstate.png | Bin 4547 -> 0 bytes public/images/rails.png | Bin 6646 -> 0 bytes .../wiki-markdownMML-2011-09-05-12-16-31.zip | Bin 80805 -> 0 bytes .../AboutGss.markdownMML | 74 - ...ssCartagenEventCartagen%3Ainit.markdownMML | 1 - ...iClassCartagenPropFeatureQueue.markdownMML | 1 - ...piClassEventsMethodClickLength.markdownMML | 1 - .../ApiClassEventsMethodDrag.markdownMML | 1 - .../ApiClassEventsMethodInit.markdownMML | 1 - .../ApiClassEventsMethodKeyup.markdownMML | 1 - .../ApiClassImagePropSrc.markdownMML | 1 - .../ApiClassMapMethodPointerX.markdownMML | 1 - .../ApiClassMapMethodPointerY.markdownMML | 1 - .../ApiClassMapPropLat.markdownMML | 1 - .../ApiClassMapPropLon.markdownMML | 1 - .../ApiClassMapPropX.markdownMML | 1 - .../ApiClassMapPropXOld.markdownMML | 1 - .../ApiClassMapPropY.markdownMML | 1 - .../ApiClassMapPropYOld.markdownMML | 1 - .../ApiClassMapPropZoom.markdownMML | 1 - .../ApiClassMapPropZoomOld.markdownMML | 1 - .../ApiClassMousePropClickX.markdownMML | 1 - .../ApiClassMousePropClickY.markdownMML | 1 - .../ApiClassMousePropDragX.markdownMML | 1 - .../ApiClassMousePropDragY.markdownMML | 1 - .../ApiClassMousePropX.markdownMML | 1 - .../ApiClassMousePropY.markdownMML | 1 - .../ApiClassPanMethodDblclick.markdownMML | 1 - .../ApiClassPanMethodDrag.markdownMML | 1 - .../ApiClassUserMethodMark.markdownMML | 1 - .../Ben+Weissmann.markdownMML | 5 - .../CartagenAPI.markdownMML | 58 - .../CartagenAerial.markdownMML | 35 - .../CartagenAmazonAws.markdownMML | 21 - .../CartagenClient.markdownMML | 76 - .../CartagenContributors.markdownMML | 7 - .../CartagenCoordinates.markdownMML | 21 - .../CartagenRoadmap.markdownMML | 7 - .../CartagenSMS.markdownMML | 33 - .../CartagenServer.markdownMML | 21 - .../CartagenSextant.markdownMML | 29 - .../CartagenTwoProposal.markdownMML | 45 - .../CoastlineRendering.markdownMML | 1 - .../ContactUs.markdownMML | 6 - .../CustomizingCartagen.markdownMML | 94 - .../DeveloperCenter.markdownMML | 45 - .../DrawingInGlop.markdownMML | 1 - .../DynamicLoading.markdownMML | 51 - .../EmbeddingCartagen.markdownMML | 5 - .../GeoHashes.markdownMML | 40 - .../GettingStarted.markdownMML | 57 - .../GrassrootsMappingCuestionario.markdownMML | 26 - .../GrassrootsMappingLima.markdownMML | 71 - .../GrassrootsMappingPlan.markdownMML | 40 - .../GssUsage%2C.markdownMML | 1 - .../GssUsage.markdownMML | 271 --- .../HomePage.markdownMML | 74 - .../ImportingData.markdownMML | 71 - .../Jeffrey+Warren.markdownMML | 5 - .../JeffreyWarren.markdownMML | 1 - .../MapModifiers.markdownMML | 22 - .../MapWarpingWithCartagen.markdownMML | 25 - .../NavigatingTheSource.markdownMML | 30 - .../NextLab.markdownMML | 1 - .../PlanetServer.markdownMML | 17 - ...irectingToCartagenPlanetServer.markdownMML | 53 - .../StaticMapLayers.markdownMML | 1 - .../StylesheetGallery.markdownMML | 72 - .../SystemDiagram.markdownMML | 1 - .../TroubleshootingCartagen.markdownMML | 13 - .../car-shipping.markdownMML | 1 - .../wiki-xhtml-2011-09-05-12-16-31.zip | Bin 269670 -> 0 bytes .../AboutGss.xhtml | 580 ----- ...ApiClassCartagenEventCartagen%3Ainit.xhtml | 534 ----- .../ApiClassCartagenPropFeatureQueue.xhtml | 534 ----- .../ApiClassEventsMethodClickLength.xhtml | 534 ----- .../ApiClassEventsMethodDrag.xhtml | 534 ----- .../ApiClassEventsMethodInit.xhtml | 534 ----- .../ApiClassEventsMethodKeyup.xhtml | 534 ----- .../ApiClassImagePropSrc.xhtml | 534 ----- .../ApiClassMapMethodPointerX.xhtml | 534 ----- .../ApiClassMapMethodPointerY.xhtml | 534 ----- .../ApiClassMapPropLat.xhtml | 534 ----- .../ApiClassMapPropLon.xhtml | 534 ----- .../ApiClassMapPropX.xhtml | 534 ----- .../ApiClassMapPropXOld.xhtml | 534 ----- .../ApiClassMapPropY.xhtml | 534 ----- .../ApiClassMapPropYOld.xhtml | 534 ----- .../ApiClassMapPropZoom.xhtml | 534 ----- .../ApiClassMapPropZoomOld.xhtml | 534 ----- .../ApiClassMousePropClickX.xhtml | 534 ----- .../ApiClassMousePropClickY.xhtml | 534 ----- .../ApiClassMousePropDragX.xhtml | 534 ----- .../ApiClassMousePropDragY.xhtml | 534 ----- .../ApiClassMousePropX.xhtml | 534 ----- .../ApiClassMousePropY.xhtml | 534 ----- .../ApiClassPanMethodDblclick.xhtml | 534 ----- .../ApiClassPanMethodDrag.xhtml | 534 ----- .../ApiClassUserMethodMark.xhtml | 534 ----- .../Ben+Weissmann.xhtml | 538 ----- .../CartagenAPI.xhtml | 620 ----- .../CartagenAerial.xhtml | 565 ----- .../CartagenAmazonAws.xhtml | 564 ----- .../CartagenClient.xhtml | 612 ----- .../CartagenContributors.xhtml | 540 ----- .../CartagenCoordinates.xhtml | 563 ----- .../CartagenRoadmap.xhtml | 540 ----- .../CartagenSMS.xhtml | 566 ----- .../CartagenServer.xhtml | 550 ----- .../CartagenSextant.xhtml | 562 ----- .../CartagenTwoProposal.xhtml | 612 ----- .../CoastlineRendering.xhtml | 534 ----- .../ContactUs.xhtml | 536 ----- .../CustomizingCartagen.xhtml | 616 ----- .../DeveloperCenter.xhtml | 578 ----- .../DrawingInGlop.xhtml | 534 ----- .../DynamicLoading.xhtml | 582 ----- .../EmbeddingCartagen.xhtml | 538 ----- .../GeoHashes.xhtml | 567 ----- .../GettingStarted.xhtml | 584 ----- .../GrassrootsMappingCuestionario.xhtml | 546 ----- .../GrassrootsMappingLima.xhtml | 605 ----- .../GrassrootsMappingPlan.xhtml | 570 ----- .../GssUsage%2C.xhtml | 534 ----- .../GssUsage.xhtml | 798 ------- .../HomePage.xhtml | 597 ----- .../ImportingData.xhtml | 588 ----- .../Jeffrey+Warren.xhtml | 538 ----- .../JeffreyWarren.xhtml | 534 ----- .../MapModifiers.xhtml | 549 ----- .../MapWarpingWithCartagen.xhtml | 568 ----- .../NavigatingTheSource.xhtml | 570 ----- .../NextLab.xhtml | 534 ----- .../PlanetServer.xhtml | 545 ----- .../RedirectingToCartagenPlanetServer.xhtml | 575 ----- .../StaticMapLayers.xhtml | 534 ----- .../StylesheetGallery.xhtml | 604 ----- .../SystemDiagram.xhtml | 534 ----- .../TroubleshootingCartagen.xhtml | 546 ----- .../car-shipping.xhtml | 534 ----- .../index.xhtml | 1 - 526 files changed, 2 insertions(+), 62340 deletions(-) delete mode 100644 app/controllers/extract_controller.rb delete mode 100644 app/controllers/messages_controller.rb delete mode 100644 app/controllers/node_controller.rb delete mode 100644 app/controllers/way_controller.rb delete mode 100644 app/helpers/extract_helper.rb delete mode 100644 app/helpers/utility_helper.rb delete mode 100644 app/helpers/way_helper.rb delete mode 100644 app/models/message.rb delete mode 100644 app/models/sms.rb delete mode 100644 app/models/tweet.rb delete mode 100644 app/views/utility/geocode.html.erb delete mode 100644 public/api/index.html delete mode 100644 public/api/resources/TabCloseMenu.js delete mode 100644 public/api/resources/accordian.gif delete mode 100644 public/api/resources/block-bg.gif delete mode 100644 public/api/resources/block-bottom.gif delete mode 100644 public/api/resources/block-top.gif delete mode 100644 public/api/resources/class.gif delete mode 100644 public/api/resources/cmp.gif delete mode 100644 public/api/resources/collapse-all.gif delete mode 100644 public/api/resources/collapse-bg.gif delete mode 100644 public/api/resources/collapser.css delete mode 100644 public/api/resources/config.gif delete mode 100644 public/api/resources/css/ext-all.css delete mode 100644 public/api/resources/docs.css delete mode 100644 public/api/resources/docs.gif delete mode 100644 public/api/resources/docs.js delete mode 100644 public/api/resources/elbow-end.gif delete mode 100644 public/api/resources/event.gif delete mode 100644 public/api/resources/example.gif delete mode 100644 public/api/resources/expand-all.gif delete mode 100644 public/api/resources/expand-bg-over.gif delete mode 100644 public/api/resources/expand-bg.gif delete mode 100644 public/api/resources/expand-members.gif delete mode 100644 public/api/resources/ext-all.js delete mode 100644 public/api/resources/ext-base.js delete mode 100644 public/api/resources/extanim32.gif delete mode 100644 public/api/resources/extanim64.gif delete mode 100644 public/api/resources/extjs.gif delete mode 100644 public/api/resources/fav.gif delete mode 100644 public/api/resources/folder.gif delete mode 100644 public/api/resources/folder_open.gif delete mode 100644 public/api/resources/form.png delete mode 100644 public/api/resources/forum.gif delete mode 100644 public/api/resources/hd-bg.gif delete mode 100644 public/api/resources/hide-inherited.gif delete mode 100644 public/api/resources/icon-grid.gif delete mode 100644 public/api/resources/images/default/box/corners-blue.gif delete mode 100644 public/api/resources/images/default/box/corners.gif delete mode 100644 public/api/resources/images/default/box/l-blue.gif delete mode 100644 public/api/resources/images/default/box/l.gif delete mode 100644 public/api/resources/images/default/box/r-blue.gif delete mode 100644 public/api/resources/images/default/box/r.gif delete mode 100644 public/api/resources/images/default/box/tb-blue.gif delete mode 100644 public/api/resources/images/default/box/tb.gif delete mode 100644 public/api/resources/images/default/button/btn-arrow.gif delete mode 100644 public/api/resources/images/default/button/btn-sprite.gif delete mode 100644 public/api/resources/images/default/dd/drop-add.gif delete mode 100644 public/api/resources/images/default/dd/drop-no.gif delete mode 100644 public/api/resources/images/default/dd/drop-yes.gif delete mode 100644 public/api/resources/images/default/editor/tb-sprite.gif delete mode 100644 public/api/resources/images/default/form/checkbox.gif delete mode 100644 public/api/resources/images/default/form/clear-trigger.gif delete mode 100644 public/api/resources/images/default/form/clear-trigger.psd delete mode 100644 public/api/resources/images/default/form/date-trigger.gif delete mode 100644 public/api/resources/images/default/form/date-trigger.psd delete mode 100644 public/api/resources/images/default/form/error-tip-corners.gif delete mode 100644 public/api/resources/images/default/form/exclamation.gif delete mode 100644 public/api/resources/images/default/form/radio.gif delete mode 100644 public/api/resources/images/default/form/search-trigger.gif delete mode 100644 public/api/resources/images/default/form/search-trigger.psd delete mode 100644 public/api/resources/images/default/form/text-bg.gif delete mode 100644 public/api/resources/images/default/form/trigger-tpl.gif delete mode 100644 public/api/resources/images/default/form/trigger.gif delete mode 100644 public/api/resources/images/default/form/trigger.psd delete mode 100644 public/api/resources/images/default/gradient-bg.gif delete mode 100644 public/api/resources/images/default/grid/arrow-left-white.gif delete mode 100644 public/api/resources/images/default/grid/arrow-right-white.gif delete mode 100644 public/api/resources/images/default/grid/col-move-bottom.gif delete mode 100644 public/api/resources/images/default/grid/col-move-top.gif delete mode 100644 public/api/resources/images/default/grid/columns.gif delete mode 100644 public/api/resources/images/default/grid/dirty.gif delete mode 100644 public/api/resources/images/default/grid/done.gif delete mode 100644 public/api/resources/images/default/grid/drop-no.gif delete mode 100644 public/api/resources/images/default/grid/drop-yes.gif delete mode 100644 public/api/resources/images/default/grid/footer-bg.gif delete mode 100644 public/api/resources/images/default/grid/grid-blue-hd.gif delete mode 100644 public/api/resources/images/default/grid/grid-blue-split.gif delete mode 100644 public/api/resources/images/default/grid/grid-hrow.gif delete mode 100644 public/api/resources/images/default/grid/grid-loading.gif delete mode 100644 public/api/resources/images/default/grid/grid-split.gif delete mode 100644 public/api/resources/images/default/grid/grid-vista-hd.gif delete mode 100644 public/api/resources/images/default/grid/grid3-hd-btn.gif delete mode 100644 public/api/resources/images/default/grid/grid3-hrow-over.gif delete mode 100644 public/api/resources/images/default/grid/grid3-hrow.gif delete mode 100644 public/api/resources/images/default/grid/grid3-special-col-bg.gif delete mode 100644 public/api/resources/images/default/grid/grid3-special-col-sel-bg.gif delete mode 100644 public/api/resources/images/default/grid/group-by.gif delete mode 100644 public/api/resources/images/default/grid/group-expand-sprite.gif delete mode 100644 public/api/resources/images/default/grid/hd-pop.gif delete mode 100644 public/api/resources/images/default/grid/hmenu-asc.gif delete mode 100644 public/api/resources/images/default/grid/hmenu-desc.gif delete mode 100644 public/api/resources/images/default/grid/hmenu-lock.gif delete mode 100644 public/api/resources/images/default/grid/hmenu-lock.png delete mode 100644 public/api/resources/images/default/grid/hmenu-unlock.gif delete mode 100644 public/api/resources/images/default/grid/hmenu-unlock.png delete mode 100644 public/api/resources/images/default/grid/invalid_line.gif delete mode 100644 public/api/resources/images/default/grid/loading.gif delete mode 100644 public/api/resources/images/default/grid/mso-hd.gif delete mode 100644 public/api/resources/images/default/grid/nowait.gif delete mode 100644 public/api/resources/images/default/grid/page-first-disabled.gif delete mode 100644 public/api/resources/images/default/grid/page-first.gif delete mode 100644 public/api/resources/images/default/grid/page-last-disabled.gif delete mode 100644 public/api/resources/images/default/grid/page-last.gif delete mode 100644 public/api/resources/images/default/grid/page-next-disabled.gif delete mode 100644 public/api/resources/images/default/grid/page-next.gif delete mode 100644 public/api/resources/images/default/grid/page-prev-disabled.gif delete mode 100644 public/api/resources/images/default/grid/page-prev.gif delete mode 100644 public/api/resources/images/default/grid/pick-button.gif delete mode 100644 public/api/resources/images/default/grid/refresh.gif delete mode 100644 public/api/resources/images/default/grid/row-check-sprite.gif delete mode 100644 public/api/resources/images/default/grid/row-expand-sprite.gif delete mode 100644 public/api/resources/images/default/grid/row-over.gif delete mode 100644 public/api/resources/images/default/grid/row-sel.gif delete mode 100644 public/api/resources/images/default/grid/sort_asc.gif delete mode 100644 public/api/resources/images/default/grid/sort_desc.gif delete mode 100644 public/api/resources/images/default/grid/wait.gif delete mode 100644 public/api/resources/images/default/layout/collapse.gif delete mode 100644 public/api/resources/images/default/layout/expand.gif delete mode 100644 public/api/resources/images/default/layout/gradient-bg.gif delete mode 100644 public/api/resources/images/default/layout/mini-bottom.gif delete mode 100644 public/api/resources/images/default/layout/mini-left.gif delete mode 100644 public/api/resources/images/default/layout/mini-right.gif delete mode 100644 public/api/resources/images/default/layout/mini-top.gif delete mode 100644 public/api/resources/images/default/layout/ns-collapse.gif delete mode 100644 public/api/resources/images/default/layout/ns-expand.gif delete mode 100644 public/api/resources/images/default/layout/panel-close.gif delete mode 100644 public/api/resources/images/default/layout/panel-title-bg.gif delete mode 100644 public/api/resources/images/default/layout/panel-title-light-bg.gif delete mode 100644 public/api/resources/images/default/layout/stick.gif delete mode 100644 public/api/resources/images/default/layout/stuck.gif delete mode 100644 public/api/resources/images/default/layout/tab-close-on.gif delete mode 100644 public/api/resources/images/default/layout/tab-close.gif delete mode 100644 public/api/resources/images/default/menu/checked.gif delete mode 100644 public/api/resources/images/default/menu/group-checked.gif delete mode 100644 public/api/resources/images/default/menu/item-over.gif delete mode 100644 public/api/resources/images/default/menu/menu-parent.gif delete mode 100644 public/api/resources/images/default/menu/menu.gif delete mode 100644 public/api/resources/images/default/menu/unchecked.gif delete mode 100644 public/api/resources/images/default/panel/corners-sprite.gif delete mode 100644 public/api/resources/images/default/panel/left-right.gif delete mode 100644 public/api/resources/images/default/panel/light-hd.gif delete mode 100644 public/api/resources/images/default/panel/tool-sprite-tpl.gif delete mode 100644 public/api/resources/images/default/panel/tool-sprites.gif delete mode 100644 public/api/resources/images/default/panel/tools-sprites-trans.gif delete mode 100644 public/api/resources/images/default/panel/top-bottom.gif delete mode 100644 public/api/resources/images/default/panel/top-bottom.png delete mode 100644 public/api/resources/images/default/panel/white-corners-sprite.gif delete mode 100644 public/api/resources/images/default/panel/white-left-right.gif delete mode 100644 public/api/resources/images/default/panel/white-top-bottom.gif delete mode 100644 public/api/resources/images/default/progress/progress-bg.gif delete mode 100644 public/api/resources/images/default/qtip/bg.gif delete mode 100644 public/api/resources/images/default/qtip/close.gif delete mode 100644 public/api/resources/images/default/qtip/tip-sprite.gif delete mode 100644 public/api/resources/images/default/s.gif delete mode 100644 public/api/resources/images/default/shadow-c.png delete mode 100644 public/api/resources/images/default/shadow-c.psd delete mode 100644 public/api/resources/images/default/shadow-lr.png delete mode 100644 public/api/resources/images/default/shadow.png delete mode 100644 public/api/resources/images/default/shared/blue-loading.gif delete mode 100644 public/api/resources/images/default/shared/calendar.gif delete mode 100644 public/api/resources/images/default/shared/glass-bg.gif delete mode 100644 public/api/resources/images/default/shared/hd-sprite.gif delete mode 100644 public/api/resources/images/default/shared/large-loading.gif delete mode 100644 public/api/resources/images/default/shared/left-btn.gif delete mode 100644 public/api/resources/images/default/shared/loading-balls.gif delete mode 100644 public/api/resources/images/default/shared/right-btn.gif delete mode 100644 public/api/resources/images/default/shared/warning.gif delete mode 100644 public/api/resources/images/default/sizer/e-handle-dark.gif delete mode 100644 public/api/resources/images/default/sizer/e-handle.gif delete mode 100644 public/api/resources/images/default/sizer/ne-handle-dark.gif delete mode 100644 public/api/resources/images/default/sizer/ne-handle.gif delete mode 100644 public/api/resources/images/default/sizer/nw-handle-dark.gif delete mode 100644 public/api/resources/images/default/sizer/nw-handle.gif delete mode 100644 public/api/resources/images/default/sizer/s-handle-dark.gif delete mode 100644 public/api/resources/images/default/sizer/s-handle.gif delete mode 100644 public/api/resources/images/default/sizer/se-handle-dark.gif delete mode 100644 public/api/resources/images/default/sizer/se-handle.gif delete mode 100644 public/api/resources/images/default/sizer/square.gif delete mode 100644 public/api/resources/images/default/sizer/sw-handle-dark.gif delete mode 100644 public/api/resources/images/default/sizer/sw-handle.gif delete mode 100644 public/api/resources/images/default/slider/slider-bg.png delete mode 100644 public/api/resources/images/default/slider/slider-thumb.png delete mode 100644 public/api/resources/images/default/slider/slider-v-bg.png delete mode 100644 public/api/resources/images/default/slider/slider-v-thumb.png delete mode 100644 public/api/resources/images/default/tabs/scroll-left.gif delete mode 100644 public/api/resources/images/default/tabs/scroll-right.gif delete mode 100644 public/api/resources/images/default/tabs/scroller-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tab-btm-inactive-left-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tab-btm-inactive-right-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tab-btm-left-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tab-btm-right-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tab-close.gif delete mode 100644 public/api/resources/images/default/tabs/tab-strip-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tab-strip-bg.png delete mode 100644 public/api/resources/images/default/tabs/tab-strip-btm-bg.gif delete mode 100644 public/api/resources/images/default/tabs/tabs-sprite.gif delete mode 100644 public/api/resources/images/default/toolbar/bg.gif delete mode 100644 public/api/resources/images/default/toolbar/btn-arrow-light.gif delete mode 100644 public/api/resources/images/default/toolbar/btn-arrow.gif delete mode 100644 public/api/resources/images/default/toolbar/btn-over-bg.gif delete mode 100644 public/api/resources/images/default/toolbar/gray-bg.gif delete mode 100644 public/api/resources/images/default/toolbar/tb-bg.gif delete mode 100644 public/api/resources/images/default/toolbar/tb-btn-sprite.gif delete mode 100644 public/api/resources/images/default/tree/arrows.gif delete mode 100644 public/api/resources/images/default/tree/drop-add.gif delete mode 100644 public/api/resources/images/default/tree/drop-between.gif delete mode 100644 public/api/resources/images/default/tree/drop-no.gif delete mode 100644 public/api/resources/images/default/tree/drop-over.gif delete mode 100644 public/api/resources/images/default/tree/drop-under.gif delete mode 100644 public/api/resources/images/default/tree/drop-yes.gif delete mode 100644 public/api/resources/images/default/tree/elbow-end-minus-nl.gif delete mode 100644 public/api/resources/images/default/tree/elbow-end-minus.gif delete mode 100644 public/api/resources/images/default/tree/elbow-end-plus-nl.gif delete mode 100644 public/api/resources/images/default/tree/elbow-end-plus.gif delete mode 100644 public/api/resources/images/default/tree/elbow-end.gif delete mode 100644 public/api/resources/images/default/tree/elbow-line.gif delete mode 100644 public/api/resources/images/default/tree/elbow-minus-nl.gif delete mode 100644 public/api/resources/images/default/tree/elbow-minus.gif delete mode 100644 public/api/resources/images/default/tree/elbow-plus-nl.gif delete mode 100644 public/api/resources/images/default/tree/elbow-plus.gif delete mode 100644 public/api/resources/images/default/tree/elbow.gif delete mode 100644 public/api/resources/images/default/tree/folder-open.gif delete mode 100644 public/api/resources/images/default/tree/folder.gif delete mode 100644 public/api/resources/images/default/tree/leaf.gif delete mode 100644 public/api/resources/images/default/tree/loading.gif delete mode 100644 public/api/resources/images/default/tree/s.gif delete mode 100644 public/api/resources/images/default/window/icon-error.gif delete mode 100644 public/api/resources/images/default/window/icon-info.gif delete mode 100644 public/api/resources/images/default/window/icon-question.gif delete mode 100644 public/api/resources/images/default/window/icon-warning.gif delete mode 100644 public/api/resources/images/default/window/left-corners.png delete mode 100644 public/api/resources/images/default/window/left-corners.psd delete mode 100644 public/api/resources/images/default/window/left-right.png delete mode 100644 public/api/resources/images/default/window/left-right.psd delete mode 100644 public/api/resources/images/default/window/right-corners.png delete mode 100644 public/api/resources/images/default/window/right-corners.psd delete mode 100644 public/api/resources/images/default/window/top-bottom.png delete mode 100644 public/api/resources/images/default/window/top-bottom.psd delete mode 100644 public/api/resources/inherited.gif delete mode 100644 public/api/resources/member-collapsed.gif delete mode 100644 public/api/resources/member-expanded.gif delete mode 100644 public/api/resources/member-hover.gif delete mode 100644 public/api/resources/method.gif delete mode 100644 public/api/resources/minus.gif delete mode 100644 public/api/resources/pkg-closed.gif delete mode 100644 public/api/resources/pkg-open.gif delete mode 100644 public/api/resources/pkg.gif delete mode 100644 public/api/resources/plus.gif delete mode 100644 public/api/resources/print.css delete mode 100644 public/api/resources/print.gif delete mode 100644 public/api/resources/prop.gif delete mode 100644 public/api/resources/reset.css delete mode 100644 public/api/resources/s.gif delete mode 100644 public/api/resources/static.gif delete mode 100644 public/api/resources/style.css delete mode 100644 public/api/resources/tabs.gif delete mode 100644 public/api/resources/tree-bg.gif delete mode 100644 public/api/resources/wel-bg.gif delete mode 100644 public/api/resources/welcome-bg.gif delete mode 100644 public/api/resources/welcome.css delete mode 100644 public/api/src/src_cartagen.js.html delete mode 100644 public/api/src/src_config_config.js.html delete mode 100644 public/api/src/src_config_style.js.html delete mode 100644 public/api/src/src_data_coastline.js.html delete mode 100644 public/api/src/src_data_feature.js.html delete mode 100644 public/api/src/src_data_importer.js.html delete mode 100644 public/api/src/src_glop_canvas.js.html delete mode 100644 public/api/src/src_glop_canvastext.js.html delete mode 100644 public/api/src/src_glop_events.js.html delete mode 100644 public/api/src/src_glop_glop.js.html delete mode 100644 public/api/src/src_glop_tasks.js.html delete mode 100644 public/api/src/src_glop_timer.js.html delete mode 100644 public/api/src/src_interface_context_menu.js.html delete mode 100644 public/api/src/src_interface_interface.js.html delete mode 100644 public/api/src/src_interface_keyboard.js.html delete mode 100644 public/api/src/src_interface_mouse.js.html delete mode 100644 public/api/src/src_interface_pan.js.html delete mode 100644 public/api/src/src_interface_pen.js.html delete mode 100644 public/api/src/src_interface_select.js.html delete mode 100644 public/api/src/src_interface_tool.js.html delete mode 100644 public/api/src/src_interface_user.js.html delete mode 100644 public/api/src/src_interface_warp.js.html delete mode 100644 public/api/src/src_interface_zoom.js.html delete mode 100644 public/api/src/src_mapping_geohash.js.html delete mode 100644 public/api/src/src_mapping_map.js.html delete mode 100644 public/api/src/src_mapping_projection.js.html delete mode 100644 public/api/src/src_mapping_viewport.js.html delete mode 100644 public/api/src/src_mapping_warper.js.html delete mode 100644 public/api/src/src_util_debug.js.html delete mode 100644 public/api/src/src_util_geometry.js.html delete mode 100644 public/api/src/src_util_util.js.html delete mode 100644 public/api/src/src_warper_control_point.js.html delete mode 100644 public/api/src/src_warper_image.js.html delete mode 100644 public/api/src/src_warper_warper.js.html delete mode 100644 public/api/symbols/$C.html delete mode 100644 public/api/symbols/$D.html delete mode 100644 public/api/symbols/Cartagen.html delete mode 100644 public/api/symbols/Events.html delete mode 100644 public/api/symbols/Feature.html delete mode 100644 public/api/symbols/Geohash.html delete mode 100644 public/api/symbols/Geometry.html delete mode 100644 public/api/symbols/Glop.html delete mode 100644 public/api/symbols/Interface.html delete mode 100644 public/api/symbols/Keyboard.html delete mode 100644 public/api/symbols/Map.html delete mode 100644 public/api/symbols/Mouse.html delete mode 100644 public/api/symbols/Projection.html delete mode 100644 public/api/symbols/Style.html delete mode 100644 public/api/symbols/Task.html delete mode 100644 public/api/symbols/TaskManager.html delete mode 100644 public/api/symbols/Timer.html delete mode 100644 public/api/symbols/TimerManager.html delete mode 100644 public/api/symbols/Tool.Pan.html delete mode 100644 public/api/symbols/Tool.Pen.html delete mode 100644 public/api/symbols/Tool.Select.html delete mode 100644 public/api/symbols/Tool.Warp.html delete mode 100644 public/api/symbols/Tool.html delete mode 100644 public/api/symbols/User.html delete mode 100644 public/api/symbols/Viewport.html delete mode 100644 public/api/symbols/Warper.ControlPoint.html delete mode 100644 public/api/symbols/Warper.Image.html delete mode 100644 public/api/symbols/Warper.html delete mode 100644 public/api/symbols/Zoom.html delete mode 100644 public/api/symbols/_global_.html delete mode 100644 public/api/welcome.html delete mode 100644 public/images/__MACOSX/devicons/._Add.tiff delete mode 100644 public/images/__MACOSX/devicons/._Blue Ball.tiff delete mode 100644 public/images/__MACOSX/devicons/._Brushed Window.tiff delete mode 100644 public/images/__MACOSX/devicons/._Burn.tiff delete mode 100644 public/images/__MACOSX/devicons/._Dashboard.tiff delete mode 100644 public/images/__MACOSX/devicons/._Database.tiff delete mode 100644 public/images/__MACOSX/devicons/._Delete.tiff delete mode 100644 public/images/__MACOSX/devicons/._Disc.tiff delete mode 100644 public/images/__MACOSX/devicons/._Drawer-List.tiff delete mode 100644 public/images/__MACOSX/devicons/._Drawer.tiff delete mode 100644 public/images/__MACOSX/devicons/._Eject.tiff delete mode 100644 public/images/__MACOSX/devicons/._Emoticon.tiff delete mode 100644 public/images/__MACOSX/devicons/._Folder.tiff delete mode 100644 public/images/__MACOSX/devicons/._General Preferences.tiff delete mode 100644 public/images/__MACOSX/devicons/._Get Info.tiff delete mode 100644 public/images/__MACOSX/devicons/._Green Ball.tiff delete mode 100644 public/images/__MACOSX/devicons/._HUD.tiff delete mode 100644 public/images/__MACOSX/devicons/._Help.tiff delete mode 100644 public/images/__MACOSX/devicons/._History.tiff delete mode 100644 public/images/__MACOSX/devicons/._LinkBack.tiff delete mode 100644 public/images/__MACOSX/devicons/._Linkback Green 2.tiff delete mode 100644 public/images/__MACOSX/devicons/._Linkback Green.tiff delete mode 100644 public/images/__MACOSX/devicons/._Movies.tiff delete mode 100644 public/images/__MACOSX/devicons/._Network Utility.tiff delete mode 100644 public/images/__MACOSX/devicons/._Orange Ball.tiff delete mode 100644 public/images/__MACOSX/devicons/._Pause.tiff delete mode 100644 public/images/__MACOSX/devicons/._Play.tiff delete mode 100644 public/images/__MACOSX/devicons/._Power.tiff delete mode 100644 public/images/__MACOSX/devicons/._README.txt delete mode 100644 public/images/__MACOSX/devicons/._RSS 2.tiff delete mode 100644 public/images/__MACOSX/devicons/._RSS.tiff delete mode 100644 public/images/__MACOSX/devicons/._Record.tiff delete mode 100644 public/images/__MACOSX/devicons/._Red Ball.tiff delete mode 100644 public/images/__MACOSX/devicons/._Remove.tiff delete mode 100644 public/images/__MACOSX/devicons/._Smart Folder.tiff delete mode 100644 public/images/__MACOSX/devicons/._SnapBack.tiff delete mode 100644 public/images/__MACOSX/devicons/._Spotlight.tiff delete mode 100644 public/images/__MACOSX/devicons/._Sticky.tiff delete mode 100644 public/images/__MACOSX/devicons/._Stop.tiff delete mode 100644 public/images/__MACOSX/devicons/._Terminal.tiff delete mode 100644 public/images/__MACOSX/devicons/._Universal Binary.tiff delete mode 100644 public/images/__MACOSX/devicons/._Users.tiff delete mode 100644 public/images/__MACOSX/devicons/._colors.tiff delete mode 100644 public/images/__MACOSX/devicons/._flag.tiff delete mode 100644 public/images/__MACOSX/devicons/._reload.tiff delete mode 100644 public/images/__MACOSX/devicons/Add-ons/._Add.tiff delete mode 100644 public/images/__MACOSX/devicons/Add-ons/._Remove.tiff delete mode 100644 public/images/interstate.png delete mode 100644 public/images/rails.png delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31.zip delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/AboutGss.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassCartagenEventCartagen%3Ainit.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassCartagenPropFeatureQueue.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassEventsMethodClickLength.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassEventsMethodDrag.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassEventsMethodInit.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassEventsMethodKeyup.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassImagePropSrc.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapMethodPointerX.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapMethodPointerY.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropLat.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropLon.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropX.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropXOld.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropY.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropYOld.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropZoom.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMapPropZoomOld.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMousePropClickX.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMousePropClickY.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMousePropDragX.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMousePropDragY.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMousePropX.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassMousePropY.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassPanMethodDblclick.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassPanMethodDrag.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ApiClassUserMethodMark.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/Ben+Weissmann.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenAPI.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenAerial.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenAmazonAws.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenClient.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenContributors.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenCoordinates.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenRoadmap.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenSMS.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenServer.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenSextant.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CartagenTwoProposal.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CoastlineRendering.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ContactUs.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/CustomizingCartagen.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/DeveloperCenter.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/DrawingInGlop.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/DynamicLoading.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/EmbeddingCartagen.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GeoHashes.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GettingStarted.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GrassrootsMappingCuestionario.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GrassrootsMappingLima.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GrassrootsMappingPlan.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GssUsage%2C.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/GssUsage.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/HomePage.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/ImportingData.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/Jeffrey+Warren.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/JeffreyWarren.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/MapModifiers.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/MapWarpingWithCartagen.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/NavigatingTheSource.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/NextLab.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/PlanetServer.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/RedirectingToCartagenPlanetServer.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/StaticMapLayers.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/StylesheetGallery.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/SystemDiagram.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/TroubleshootingCartagen.markdownMML delete mode 100644 wiki.cartagen.org/wiki-markdownMML-2011-09-05-12-16-31/car-shipping.markdownMML delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31.zip delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/AboutGss.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassCartagenEventCartagen%3Ainit.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassCartagenPropFeatureQueue.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassEventsMethodClickLength.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassEventsMethodDrag.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassEventsMethodInit.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassEventsMethodKeyup.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassImagePropSrc.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapMethodPointerX.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapMethodPointerY.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropLat.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropLon.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropX.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropXOld.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropY.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropYOld.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropZoom.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMapPropZoomOld.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMousePropClickX.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMousePropClickY.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMousePropDragX.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMousePropDragY.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMousePropX.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassMousePropY.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassPanMethodDblclick.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassPanMethodDrag.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ApiClassUserMethodMark.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/Ben+Weissmann.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenAPI.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenAerial.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenAmazonAws.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenClient.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenContributors.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenCoordinates.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenRoadmap.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenSMS.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenServer.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenSextant.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CartagenTwoProposal.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CoastlineRendering.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ContactUs.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/CustomizingCartagen.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/DeveloperCenter.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/DrawingInGlop.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/DynamicLoading.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/EmbeddingCartagen.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GeoHashes.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GettingStarted.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GrassrootsMappingCuestionario.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GrassrootsMappingLima.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GrassrootsMappingPlan.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GssUsage%2C.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/GssUsage.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/HomePage.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/ImportingData.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/Jeffrey+Warren.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/JeffreyWarren.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/MapModifiers.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/MapWarpingWithCartagen.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/NavigatingTheSource.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/NextLab.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/PlanetServer.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/RedirectingToCartagenPlanetServer.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/StaticMapLayers.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/StylesheetGallery.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/SystemDiagram.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/TroubleshootingCartagen.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/car-shipping.xhtml delete mode 100644 wiki.cartagen.org/wiki-xhtml-2011-09-05-12-16-31/index.xhtml diff --git a/app/controllers/extract_controller.rb b/app/controllers/extract_controller.rb deleted file mode 100644 index 726f091a..00000000 --- a/app/controllers/extract_controller.rb +++ /dev/null @@ -1,61 +0,0 @@ -class ExtractController < ApplicationController - caches_page :osm_to_json_by_tag, :osm_to_json - - def osm_to_json - @features = ParseOsm.parse(params[:url]) - puts @features.length - respond_to do |format| - format.html { render :html => @features } - format.xml { render :xml => @features } - format.kml { render :template => "map/plot.kml.erb" } - format.js { render :json => @features } - format.json { render :json => @features } - end - end - - def osm_to_json_by_tag - params[:url] ||= "http://localhost:3000/rome.osm" - @features = ParseOsm.filter(params[:url],params[:tag]) - puts @features.length - respond_to do |format| - format.html { render :html => @features } - format.xml { render :xml => @features } - format.kml { render :template => "map/plot.kml.erb" } - format.js { render :json => @features } - end - end - - - def osm_to_json_collected_ways - @features = ParseOsm.parse(params[:url]) - puts @features.length - respond_to do |format| - format.html { render :html => @features } - format.xml { render :xml => @features } - format.kml { render :template => "map/plot.kml.erb" } - format.js { render :json => @features } - end - end - - def georss_to_json - params[:url] ||= "http://api.flickr.com/services/feeds/geo/?tags=mushroommap&lang=en-us&format=rss_200" - @features = ParseGeoRss.parse(params[:url]) - respond_to do |format| - format.html { render :html => @features } - format.xml { render :xml => @features } - #format.kml { render :template => "map/plot.kml.erb" } - format.js { render :json => @features } - end - end - - def kml_to_json - params[:url] ||= 'cartagen.localhost/doc.kml' - @features = ParseKml.parse(params[:url]) - respond_to do |format| - format.html { render :html => @features } - format.xml { render :xml => @features } - #format.kml { render :template => "map/plot.kml.erb" } - format.js { render :json => @features } - end - end -end diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb deleted file mode 100644 index ea371bd2..00000000 --- a/app/controllers/messages_controller.rb +++ /dev/null @@ -1,62 +0,0 @@ -class MessagesController < ApplicationController - - def index - @tweet = Tweet.find(:all, :from=>"/statuses/friends_timeline/whooz.xml") - render :xml => @tweet - end - - def status_update - Tweet.update_status(params[:status]) - @tweets = Tweet.find(:all, :from=>"/statuses/user_timeline/whooz.xml") - render :xml => @tweets - end - - def update_friend - Tweet.direct_message('l20amesstCambri','This is only for you eyes') - @tweets = Tweet.find(:all, :from=>"/statuses/friends_timeline/l20amesstCambri.xml") - render :xml => @tweets - end - - def import - # Tweets: - # last_tweet = Message.find(:last,:conditions => ['source = "twitter"']) - # since = (last_tweet.created_at+1.second).strftime("%a%%2C+%d+%b+%Y+%H%%3A%M%%3A%S+GMT") - # puts since - # new_tweets = Tweet.find(:all, :from=>"/statuses/friends_timeline/whooz.xml?since="+since) - # new_tweets.each do |tweet| - # begin - # tweet.save_as_message - # rescue - # puts "GEOCODING ERROR: "+tweet.inspect - # end - # end - # SMSes: - last_sms = Message.find(:last,:conditions => ['source = "sms"']) - since = (DateTime.now-2.hours).strftime("%a%%2C+%d+%b+%Y+%H%%3A%M%%3A%S+GMT") - # since = (last_sms.created_at+1.second).strftime("%a%%2C+%d+%b+%Y+%H%%3A%M%%3A%S+GMT") - puts since - new_sms = Sms.find(:all,:limit => 100) - new_sms.each do |sms| - begin - sms.save_as_message.save_as_node - rescue - puts "IMPORT ERROR: "+sms.inspect - end - end - render :xml => Message.find(:all) - end - - def messages - render :xml => Message.find(:all) - end - - def keyvalues - render :xml => Keyvalue.find(:all, :conditions => {:message_id => params[:id]}) - end - - def search - n = Message.new - n.text = params[:text] - render :xml => n.use_as_search - end -end \ No newline at end of file diff --git a/app/controllers/node_controller.rb b/app/controllers/node_controller.rb deleted file mode 100644 index 54a80ae8..00000000 --- a/app/controllers/node_controller.rb +++ /dev/null @@ -1,35 +0,0 @@ -class NodeController < ApplicationController - skip_before_filter :verify_authenticity_token - - def write - p params - n = Node.new - n.color = params[:color] - n.lat = params[:lat] - n.lon = params[:lon] - n.author = params[:author] - n.name = params[:name] - n.save - render :text => n.id - end - - def read - conditions = [[]] - if params[:bbox] - bbox = params[:bbox].split(',') - # counting from left, counter-clockwise - lon1,lat2,lon2,lat1 = bbox - conditions[0] << '((lat BETWEEN ? AND ?) OR (lat BETWEEN ? AND ?)) AND ((lon BETWEEN ? AND ?) OR (lon BETWEEN ? AND ?))' - conditions.push(lat1,lat2,lat2,lat1,lon1,lon2,lon2,lon1) - end - if params[:timestamp] - since = DateTime.parse(params[:timestamp]) - conditions[0] << "updated_at > '?'" - conditions << since.utc.to_s(:db) - end - conditions[0] = conditions[0].join(' AND ') - nodes = Node.find(:all, :conditions => conditions) - render :json => nodes - end - -end diff --git a/app/controllers/way_controller.rb b/app/controllers/way_controller.rb deleted file mode 100644 index 3b3b11c9..00000000 --- a/app/controllers/way_controller.rb +++ /dev/null @@ -1,76 +0,0 @@ -require 'rubygems' -require 'json' - -class WayController < ApplicationController - skip_before_filter :verify_authenticity_token - - def write - json = JSON.parse(params[:way]) - nodes = [] - way = nil - - Way.transaction do - way = Way.new - way.color = json['color'] - way.bbox = json['bbox'] - way.author = json['author'] - way.name = json['name'] - - order = -1 - json['nodes'].each do |nd| - node = Node.new - node.lat = nd[0] - node.lon = nd[1] - node.author = way.author - node.order = order += 1 - node.save - nodes << node - end - - way.save - - # after saving, go back and assign foreign way_id for each node - nodes.each do |node| - node.way_id = way.id - node.save - end - end - - nodes_hash = nodes.collect {|n| n.id} - render :json => {:way_id => way.id, :node_ids => nodes_hash} - end - - def read - conditions = [[]] - ######## UNTESTED: ######## - if params[:bbox] - bbox = params[:bbox].split(',') - # counting from left, counter-clockwise - lon1,lat2,lon2,lat1 = bbox - # box1 = record, box2 = param - conditions[0] << '? > lon2 AND ? < lon1 AND ? > lat2 AND ? < lat1' - conditions.push lon1,lon2,lat1,lat2 - end - ########################### - if params[:timestamp] - since = DateTime.parse(params[:timestamp]) - conditions[0] << "updated_at > '?'" - conditions << since.utc.to_s(:db) - end - if params[:ids] - ids = params[:ids].split(',') - ids.collect! {|id| id.to_i} - conditions[0] << "id IN ("+ids.join(",")+")" - end - conditions[0] = conditions[0].join(' AND ') - ways = Way.find(:all, :conditions => conditions) - way_ids = ways.collect {|way| way.id } - ways.collect! {|way| way.attributes} - nodes = Node.find_all_by_way_id(way_ids) - p nodes - nodes.collect! {|node| node.attributes} - p nodes - render :json => {'way' => ways, 'node' => nodes} - end - -end diff --git a/app/helpers/extract_helper.rb b/app/helpers/extract_helper.rb deleted file mode 100644 index e726549b..00000000 --- a/app/helpers/extract_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module ExtractHelper -end diff --git a/app/helpers/utility_helper.rb b/app/helpers/utility_helper.rb deleted file mode 100644 index 6fd8f90d..00000000 --- a/app/helpers/utility_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module UtilityHelper -end diff --git a/app/helpers/way_helper.rb b/app/helpers/way_helper.rb deleted file mode 100644 index e597a980..00000000 --- a/app/helpers/way_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module WayHelper -end diff --git a/app/models/message.rb b/app/models/message.rb deleted file mode 100644 index a24fdc36..00000000 --- a/app/models/message.rb +++ /dev/null @@ -1,91 +0,0 @@ -gem 'davetroy-geohash' -require 'geohash' - -class Message < ActiveRecord::Base - has_many :keyvalues - after_create :keyvalues - - def keyvalues - # /(\w+):((?:(?:\w+[,.!]*)+(?: |$))+)/ - # "location:20 Ames St 02139 tag:brown bears" - # [["location","20 Ames St 02139"],["tag","brown bears"]] - pairs = self.text.scan(/(\w+):((?:(?:\w+[,.!]*)+(?: |$))+)/) - pairs.each do |pair| - keyvalue = Keyvalue.new - keyvalue.key = pair[0] - keyvalue.value = pair[1] - keyvalue.message_id = self.id - keyvalue.save - end - end - - def save_as_node - # mind privacy with regard to phone # => author. maybe gen irreversible hash of #? - keyword = Cartagen.chop_word(self.text) - if keyword == "line" - way = Way.find(:last,:conditions => {:complete => false, :author => self.author}) - if way.nil? - way = Way.new({:complete => false,:author => self.author}) - way.save - end - coords = GeoHash.decode(Cartagen.chop_word(self.text)) - elsif keyword == "end" - way = Way.find(:last,:conditions => {:complete => false, :author => self.author}) - way.complete = true - way.save - coords = GeoHash.decode(Cartagen.chop_word(self.text)) - elsif keyword == "find" - - else - coords = GeoHash.decode(Cartagen.chop_word(self.text)) - end - - # save it as a node - unless coords.nil? - n = Node.new - n.color = 'red' - n.lat = coords[0] - n.lon = coords[1] - n.description = self.text unless self.text.nil? - # append to way if one exists: - n.way_id = way.id unless way.nil? - n.author = self.author unless self.nil? - n.save - end - end - - def search? - return self.text[0..5] == 'search' - end - - def use_as_search - return false unless self.search? - - query = text.split - - # return false if no geohash - return false if query.length == 1 - - lat, lon = GeoHash.decode(query[-1]) - - min_lat, max_lat = lat - 0.01, lat + 0.01 - min_lon, max_lon = lon - 0.01, lon + 0.01 - - # if >2 words, there must be tags in the query - if query.length > 2 - tags = '%' + query[1..-2].join(' ') + '%' - nodes = Node.find(:all, :limit => 10, :conditions => - ['(lat BETWEEN ? AND ?) AND (lon BETWEEN ? AND ?) AND ((description LIKE ?) OR (name LIKE ?)) AND way_id = 0', - min_lat, max_lat, min_lon, max_lon, tags, tags]) - else - tags = [] - nodes = Node.find(:all, :limit => 10, :conditions => - ['(lat BETWEEN ? AND ?) AND (lon BETWEEN ? AND ?) AND way_id = 0', - min_lat, max_lat, min_lon, max_lon]) - end - - puts nodes - return nodes - end - -end diff --git a/app/models/sms.rb b/app/models/sms.rb deleted file mode 100644 index 868927eb..00000000 --- a/app/models/sms.rb +++ /dev/null @@ -1,42 +0,0 @@ -class Sms < ActiveRecord::Base - establish_connection :frontline_db - set_table_name "frontline_messages" - set_inheritance_column :ruby_type - set_primary_key "tid" - - validates_presence_of :type, :status, :omsisdnA, :dmsisdnA, :dest_port - - def before_save - # self.type ||= "" - end - - def save_as_message - unless Message.find(:first,:conditions => {:author => self.omsisdnA,:source => "sms",:text => self.content,:created_at => self.dateTimeP}) - message = Message.create({ - :author => self.omsisdnA, - :source => "sms", - :text => self.content, - :created_at => self.dateTimeP - }) - message.save - message - end - end - - - - # create_table "frontline_messages", :primary_key => "tid", :force => true do |t| - # t.integer "type" - # t.integer "status" - # t.string "omsisdnA", :limit => 40 - # t.string "dmsisdnA", :limit => 40 - # t.integer "dest_port" - # t.string "content", :limit => 1024 - # t.timestamp "dateTimeP", :null => false - # t.integer "smscReference" - # t.timestamp "dispatch_dateTime", :null => false - # t.integer "form_message" - # t.integer "form_id" - # end - -end diff --git a/app/models/tweet.rb b/app/models/tweet.rb deleted file mode 100644 index fab19ff2..00000000 --- a/app/models/tweet.rb +++ /dev/null @@ -1,65 +0,0 @@ -class Tweet < ActiveResource::Base - - self.site = "http://twitter.com" - self.user = "whooz" - self.password = "gibbledygobbledygoo" - self.password = "poopies" - # Get the latest 20 public statuses - # Optionally take in :since_id and get updates since passed id - # Can't figure out how to get a :from and a :params - def self.public_timeline(params={}) - find(:all, :from=>:public_timeline) - end - - # Get 20 most recent statuses from authenticated user and his/her friends in the last 24 hours - # Optionally take in :since timestamp in format: Tue%2C+27+Mar+2007+22%3A55%3A48+GMT - # Can't figure out how to get a :from and a :params - def self.friends_timeline(params={}) - find(:all, :from=>:friends_timeline) - end - - # Get friends timeline for a specified user - # Can be user id or username - # Need to implement the :since param as in friends_timeline - def self.user_and_friends_timeline(id) - find(:all, :from=>"/statuses/friends_timeline/#{id.to_s}.xml") - end - - # Get timeline for a user - # Need to implement :count (limit 20) and :since timestamp - def self.user_timeline(id) - find(:all, :from=>"/statuses/user_timeline/#{id.to_s}.xml") - end - - # Get a specific status - # Not really RESTful because the 'show' part is extraneous - def self.show(id) - find(:one, :from=>"/statuses/show/#{id.to_s}.xml") - end - - def self.update_status(content) - connection.post("/statuses/update.xml?status="+CGI.escape(content)) - end - - def self.direct_message(username,content) - connection.post("/direct_messages/new.xml?user="+username+"&text="+content) - end - - def self.send_to_user(username,content) - connection.post("/statuses/update.xml?status="+CGI.escape("@"+username+" "+content)) - end - - def save_as_message - message = Message.create({ - :author => self.user.name, - :source => "twitter", - :text => self.text, - :created_at => Time.parse(self.created_at) - }) - unless self.user.location.nil? - message.location_string = self.user.location - end - message.save - end - -end diff --git a/app/views/utility/geocode.html.erb b/app/views/utility/geocode.html.erb deleted file mode 100644 index 9d58ec16..00000000 --- a/app/views/utility/geocode.html.erb +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Cartagen Geocoding - - - - - <% if @geo %> - <%= @geo %> - -
-
- - - -
- - <% end %> - -
- -
- - -

-
- - - diff --git a/config/environment.rb b/config/environment.rb index 3aa7c13b..1547f564 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -5,7 +5,7 @@ # ENV['RAILS_ENV'] ||= 'production' # Specifies gem version of Rails to use when vendor/rails is not present -RAILS_GEM_VERSION = '2.3.8' unless defined? RAILS_GEM_VERSION +RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION # Bootstrap the Rails environment, frameworks, and default configuration require File.join(File.dirname(__FILE__), 'boot') diff --git a/config/routes.rb b/config/routes.rb index 6200aa60..c10f15f2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -40,21 +40,12 @@ ActionController::Routing::Routes.draw do |map| # Note: These default routes make all actions in every controller accessible via GET requests. You should # consider removing the them or commenting them out if you're using named routes and resources. - map.root :controller => "map", :action => "find", :id => "20 ames st cambridge" + map.root :controller => "map", :action => "index" map.connect 'tms/:id/alt/:z/:x/:y.png', :controller => "utility", :action => "tms_alt" map.connect 'stylesheet/:id.gss', :controller => "map", :action => "stylesheet" map.connect 'maps', :controller => "map", :action => "index" map.connect 'maps/:id', :controller => "map", :action => "show" - map.connect 'generate/:tag.:format', :controller => 'extract', :action => "osm_to_json_by_tag" - map.connect 'static/:city/:tag.:format', :controller => "extract", :action => "osm_to_json_by_tag" - map.connect 'static/:city.:format', :controller => "extract", :action => "osm_to_json" - map.connect 'map/plot.:format', :controller => "map", :action => "plot" - map.connect 'map/tag.:format', :controller => "map", :action => "tag" - map.connect 'demo/:id', :controller => "map", :action => "find", :demo => true - map.connect 'demo/:id/:range', :controller => "map", :action => "find", :demo => true - map.connect 'find/:id', :controller => "map", :action => "find" - map.connect 'find/:id/:range', :controller => "map", :action => "find" map.connect 'import/:name', :controller => "warper", :action => "import" map.connect 'author/:id', :controller => 'author', :action => 'show' diff --git a/public/api/index.html b/public/api/index.html deleted file mode 100644 index b4da79ae..00000000 --- a/public/api/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - - Cartagen API Documentation - - - - - - - - -
-
-
Loading...
-
- - - - - - - - - - - - - -
- - -
- -
- - - - \ No newline at end of file diff --git a/public/api/resources/TabCloseMenu.js b/public/api/resources/TabCloseMenu.js deleted file mode 100644 index bdd7e19b..00000000 --- a/public/api/resources/TabCloseMenu.js +++ /dev/null @@ -1,42 +0,0 @@ -// Very simple plugin for adding a close context menu to tabs -Ext.ux.TabCloseMenu = function(){ - var tabs, menu, ctxItem; - this.init = function(tp){ - tabs = tp; - tabs.on('contextmenu', onContextMenu); - } - - function onContextMenu(ts, item, e){ - if(!menu){ // create context menu on first right click - menu = new Ext.menu.Menu([{ - id: tabs.id + '-close', - text: 'Close Tab', - handler : function(){ - tabs.remove(ctxItem); - } - },{ - id: tabs.id + '-close-others', - text: 'Close Other Tabs', - handler : function(){ - tabs.items.each(function(item){ - if(item.closable && item != ctxItem){ - tabs.remove(item); - } - }); - } - }]); - } - ctxItem = item; - var items = menu.items; - items.get(tabs.id + '-close').setDisabled(!item.closable); - var disableOthers = true; - tabs.items.each(function(){ - if(this != item && this.closable){ - disableOthers = false; - return false; - } - }); - items.get(tabs.id + '-close-others').setDisabled(disableOthers); - menu.showAt(e.getPoint()); - } -}; \ No newline at end of file diff --git a/public/api/resources/accordian.gif b/public/api/resources/accordian.gif deleted file mode 100644 index 8846b0f587641997b98e1da34417344d2ceeb56c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 943 zcmZ?wbhEHb6krfwXlGyuEL<5_v@)!0ZFuFni0X||wVPw=wmAHEh-=&)-@G%Sbys5R z?&S8pDINRLx({UZ9nPO{FlW+a_R$`)L$Ty&#y@y)6wx2l%h zu3C1ddikB6g~!^~-krGR-lUx`*6zKr?eOjGM{Zwu{OcbG{QvhK1QcPIb=LGEN~D~uqwFFz<9WoTTH`eg@Mz9b^!_FtRotZ3GG4( z&Rr}o9Ts%7a7)|uSZr)K+H2tK@WEnJTIVEoKdqD(0*j7t>G8+(tSo%i$mcOx%eSl8 zxodgAV!KoYgXWMG8h$f87CI=jt&Z?t;-Fx_6tR+#rK;k=f`d&goIDZ=1`Z4i{A{0v IcsLlW0d-Y}EdT%j diff --git a/public/api/resources/block-bg.gif b/public/api/resources/block-bg.gif deleted file mode 100644 index f3cf86dae85e9ef1e8531abfe22529369e820eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmZ?wbhEHbWMq(JXlG!!|K|6Dx4$2~`~CRcpC|ACJp1tH`NuymKK*(1>CfxWf8Kog z`|j)C_uu}0`1beH_rITi{QL6r-?yLtzW@67n+a diff --git a/public/api/resources/block-bottom.gif b/public/api/resources/block-bottom.gif deleted file mode 100644 index c0570c5bea717aab945f22c5bece4ba266733294..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3133 zcmeH`_dnZ-1BW$jwO@CKYiqWY4ji>=Q{yN~k(LTdgqRIMkx#5>Yj3ACF^*O#io}+b zidHotM$V2T!iiOPnsWBaz4~{2@BPE``}4eBZ)+PXeFN`N0lAZ@0s>}yGbWR{wY9ao zyL)hOz~}P?{@Z^A{%;D%@0~jNUG~OzeE)>NS-!wYQBkwTS05A4o>%thYb^hiDtguS z_d89mZ-Y*pddTi;s-Wh|SvdCA+^_7k>5*^8s#QwNOKm4A#%o<$%-`3x)wv{kbY~1n1NCk-e)L-VVgT>{ z3OP#~l0p-pMJV2?a}l}$mWSaB2^Wtn&V7pe;i_lWO${#fM;VK5@zM3Wmat#hMQN3R|5Xq})=0&E~#m8H7IM1*p6>tcxv4!H{?LO|(1uBYTW*%L0| z=a&kKEMUqQL)P-7lndP<(g;mrbc^t})yRr_8KhPJ=1*XEi^m>l7@d5UUp zyN?f#-yNNi3k3=9x<3;XO7%+ktlB3RE^I>bNIGXog(brlQ~$J*4spGoD(i3xp7wM0 zop}p|GRD0OWwl;-=Ks3R`uJTKUdhkWJ(uK@W5i@|vrKy=eKRd;T^G`=pBMV3-Hl-^ zq=4a)e#uU@u8WB-Hw*m|+@%?dPhlWQ|0h1HE=!nzQJjBVP{-6#Oz3Ngfar(}mt{0M z92Wq@KAc*Pd}1yU7?G&#vhq0f94;^{bANIrBzIo?5i*|!`4WU{#y&!n6iAQ z2&h0nl>K#<3OUKOo>WAgWhq}8TH82$?JxhI+ft(}tdV>88b&W zgI&`mSp|?HiS{aKk)!U$c;qPW4+)e{`*EZZqG4C#5E_GdFj3cmX&TtU$L)Hd=oNb=uSF{N&6~lM2Ub0~ zm4~*Y^vWZLd675AjvL@Ndk^*~8U{2VPgB|-kRZ;g`lOVg5$_meE=~W3=YMZUwcyD?$vh(KaYYMe*l=Wr~k6s~= z&T4CvWn~#?aa(&CD!Ru)*$PfqKd{fL>gU+yFq*j^S6o$%)v|KAAm4X~lA6B?W&I|m z<=Z1#q-m);m?z@1K$SDlw5iH^F45vUpz%)A0kF&0`p37AVr}vvuel(qHABfokXDZ0 z@N39&Qz;T3D4y8xuf7ITwt>+47H`IN`u3|v>)O3M3XlG{a8EO{eXv62Ji33}O{-M* zZjHSYf_@3A&BNOFA+-W0-ZOPtbcgXMr?ACS?)smx4$Y+z;cFi5w^-W_V?$0MJC*M0 zU06Q2XKO5sf17PMCVr11HvahF8r1j^`VX4UX81{GwuPR=$e{gZgv3u!b2?;X*zW@B zvNP1$O~P?1`vP$N#f&)`=g2~8qg7CzcVqR&W+$|x6lFN}nYc0Tns&5$G7DTj<@DvJ z7crJ?ocm1@PHULkXGxEKFX z_u9|?tAs>mP@&qvn;~&Tb9qcK0m7=A5)5kp+<|NcSoO13L8J-8kajE!znl`(vDgvP z(as|9C_(SH3`5D2tcD%IVDjnC(4K8pBi}0cgP2hmMV#GqCN;R{dS@6-m)$Hv4er%3 zdOQqaw@92pQYYWK0 zPVS7D-)56ct-rSDNh6m|%XC@G0i|8; z)_xOyhp62YD9(q!KK{5AkjIshLy5fUXVcrasnG5SYyTOoF2Ix5HHO{^<&^KCp*yA1 z$vazfZADQ5mt~pRIAHGdt!R)srzB5re{sYBS)0-EkL&3!h)V9<&?l$OLCdZP8@ksR z%V}#IWo+S{J9A(^yBSL{?Rv=?wu2&q5?+$0{%wd A8vp%)+G;_&%ZCP=CCL;^mjLa=7FE0;R>@`rGkiY4@Z%`MpOXy#&$0c#B>ex1x RK!Bm)(B_QGVmurS)&Ty`d@TR~ diff --git a/public/api/resources/cmp.gif b/public/api/resources/cmp.gif deleted file mode 100644 index 4f791e14799275a5cd481fb51de32edb0addfc5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 988 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 diff --git a/public/api/resources/collapser.css b/public/api/resources/collapser.css deleted file mode 100644 index d1c7b468..00000000 --- a/public/api/resources/collapser.css +++ /dev/null @@ -1,34 +0,0 @@ -.pkg h3 { - padding-left:34px; - font:normal 11px verdana,helvetica,tahoma,sans-serif; - height:18px; - cursor:pointer; -} -h3.collapser-expanded{ - background: #fff url(pkg-open.gif) no-repeat 0px -1px; -} -h3.collapser-collapsed { - background: #fff url(pkg-closed.gif) no-repeat 0px -1px; -} -.pkg-body{ - margin-left:16px; - font:normal 11px verdana,helvetica,tahoma,sans-serif; -} -#classes a{ - font:normal 11px verdana,helvetica,tahoma,sans-serif; - display:block; - text-decoration:none; - height:18px; - color:black; - background: #fff url(class.gif) no-repeat 16px -1px; - padding-left:34px; - -moz-outline:none; - outline:none; - white-space: nowrap; -} -#classes a:hover{ - text-decoration: underline; -} -#classes a.ex{ - background: #fff url(example.gif) no-repeat 16px -1px; -} \ No newline at end of file diff --git a/public/api/resources/config.gif b/public/api/resources/config.gif deleted file mode 100644 index 6534c65df8c84a08d2d0ba9a9348cb6fd9707775..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 955 zcmZ?wbhEHb6krfwXlGzxFrF#rw^Ac~y=K$~)8wsDv#v+az7aF~M#cKal^cNQN%f|u zwVR&SY<^y|<>lHch7Gk0o9Y?1G%{>!X4u}su%ne>cL&3sPKLc*4Ewqn_V+Lx=w&$6 z&v1AG!;y&$M<+2Ho6K->8pG)s4FAuu{l6sq|BB@Q8*2aW82!I*`TwE)|EE6xUq<|Y zoAUo-!T+x{P1|2}?R~dq@4fB=U-}Mxo_P4tAh)L941*7kj`ztkF<8h(IBIb+v&no=SWvq90H>N)j|Iav9R_(8RhNbj4Ni>A Xsnr@RK@O|qT0NQ=Iv6by9T=jwst-L1ab8+~=R zdu#9X&e=9`#-=^Hb~SVy=x+w1)1B>CC$=7((0qDw`}w(j=clw^n9+TCMh_5OnKa?f zyoom^Ha?u$^=M|-;|U86OjvMX!iozG3m!DAc+jxm!-N$dCT#dHVaJCBQ%^3Ld2soh zqpRkfSTq0h!l`!`Prb8v+MOlS?kt`8XxXestL8mhJ^%TRbr(19zPez?gAI#cZC?I< z+p14H*M8l*xbW}5w#$chygPK@@S#&T51e>#;=sED7am-= z@Zjdf2e&RgzIXk>ohwi7UVVP=`ioolUtD{A*!gm(oNx*hFO=M>x* z$f$NyT;DOuqEn(hiAz6rN6bd17T3v*MK*0Rl26(BWmE$~W;~wAJxwdP?#%_q$1R-f z6%xxNJde5y@k#b{a6D}2>oQeY w^eHzMwHQb%RlmyVh)8s5F{-^HvSBj|!%Hq69tla|wC2~>nb|o!Bm@|&0d7)OzyJUM diff --git a/public/api/resources/docs.js b/public/api/resources/docs.js deleted file mode 100644 index 54dc7e08..00000000 --- a/public/api/resources/docs.js +++ /dev/null @@ -1,572 +0,0 @@ -Ext.BLANK_IMAGE_URL = 'resources/s.gif'; - -Docs = {}; - -ApiPanel = function() { - ApiPanel.superclass.constructor.call(this, { - id:'api-tree', - region:'west', - split:true, - width: 280, - minSize: 175, - maxSize: 500, - collapsible: true, - margins:'0 0 5 5', - cmargins:'0 0 0 0', - rootVisible:false, - lines:false, - autoScroll:true, - animCollapse:false, - animate: false, - collapseMode:'mini', - loader: new Ext.tree.TreeLoader({ - preloadChildren: true, - clearOnLoad: false - }), - root: new Ext.tree.AsyncTreeNode({ - text:'Ext JS', - id:'root', - expanded:true, - children:[Docs.classData] - }), - collapseFirst:false - }); - // no longer needed! - //new Ext.tree.TreeSorter(this, {folderSort:true,leafAttr:'isClass'}); - - this.getSelectionModel().on('beforeselect', function(sm, node){ - return node.isLeaf(); - }); -}; - -Ext.extend(ApiPanel, Ext.tree.TreePanel, { - selectClass : function(cls){ - if(cls){ - var parts = cls.split('.'); - var last = parts.length-1; - for(var i = 0; i < last; i++){ // things get nasty - static classes can have . - var p = parts[i]; - var fc = p.charAt(0); - var staticCls = fc.toUpperCase() == fc; - if(p == 'Ext' || !staticCls){ - parts[i] = 'pkg-'+p; - }else if(staticCls){ - --last; - parts.splice(i, 1); - } - } - parts[last] = cls; - - this.selectPath('/root/apidocs/'+parts.join('/')); - } - } -}); - - -DocPanel = Ext.extend(Ext.Panel, { - closable: true, - autoScroll:true, - - initComponent : function(){ - var ps = this.cclass.replace(/^cls-/,'').split('.'); - this.title = ps[ps.length-1]; - - DocPanel.superclass.initComponent.call(this); - }, - - scrollToMember : function(member){ - var el = Ext.fly(this.cclass + '-' + member); - if(el){ - var top = (el.getOffsetsTo(this.body)[1]) + this.body.dom.scrollTop; - this.body.scrollTo('top', top-25, {duration:.75, callback: this.hlMember.createDelegate(this, [member])}); - } - }, - - scrollToSection : function(id){ - var el = Ext.getDom(id); - if(el){ - var top = (Ext.fly(el).getOffsetsTo(this.body)[1]) + this.body.dom.scrollTop; - this.body.scrollTo('top', top-25, {duration:.75, callback: function(member){ - if (Ext.fly(el).next('h2')) { - Ext.fly(el).next('h2').pause(.2).highlight('#8DB2E3', {attr:'color'}); - } else { - var tr = Ext.get(el).up('tr'); - - if(tr.hasClass('expandable')){ - tr.toggleClass('expanded'); - } - - tr.highlight('#cadaf9'); - } - }}); - } - }, - - hlMember : function(member){ - var el = Ext.fly(this.cclass + '-' + member); - if(el){ - el.up('tr').highlight('#cadaf9'); - } - } -}); - - -MainPanel = function(){ - - this.searchStore = new Ext.data.Store({ - proxy: new Ext.data.ScriptTagProxy({ - url: 'http://extjs.com/playpen/api.php' - }), - reader: new Ext.data.JsonReader({ - root: 'data' - }, - ['cls', 'member', 'type', 'doc'] - ), - baseParams: {}, - listeners: { - 'beforeload' : function(){ - this.baseParams.qt = Ext.getCmp('search-type').getValue(); - } - } - }); - - MainPanel.superclass.constructor.call(this, { - id:'doc-body', - region:'center', - margins:'0 5 5 0', - resizeTabs: true, - minTabWidth: 135, - tabWidth: 135, - plugins: new Ext.ux.TabCloseMenu(), - enableTabScroll: true, - activeTab: 0, - - items: { - id:'welcome-panel', - title: 'API Home', - autoLoad: {url: 'welcome.html', callback: this.initSearch, scope: this}, - iconCls:'icon-docs', - autoScroll: true - } - }); -}; - -Ext.extend(MainPanel, Ext.TabPanel, { - - initEvents : function(){ - MainPanel.superclass.initEvents.call(this); - this.body.on('click', this.onClick, this); - }, - - onClick: function(e, target){ - if(target = e.getTarget('a:not(.exi)', 3)){ - var cls = Ext.fly(target).getAttributeNS('ext', 'cls'); - e.stopEvent(); - if(cls){ - var member = Ext.fly(target).getAttributeNS('ext', 'member'); - this.loadClass(target.href, cls, member); - }else if(target.className == 'inner-link'){ - this.getActiveTab().scrollToSection(target.href.split('#')[1]); - }else{ - window.open(target.href); - } - }else if(target = e.getTarget('.micon', 2)){ - e.stopEvent(); - var tr = Ext.fly(target.parentNode); - if(tr.hasClass('expandable')){ - tr.toggleClass('expanded'); - } - } - }, - - loadClass : function(href, cls, member, iconCls){ - var id = 'docs-' + cls; - var tab = this.getComponent(id); - if(tab){ - this.setActiveTab(tab); - if(member){ - tab.scrollToMember(member); - } - }else{ - var autoLoad = {url: href}; - if(member){ - autoLoad.callback = function(){ - Ext.getCmp(id).scrollToMember(member); - } - } - var SIcon = Docs.icons[cls]; - if (iconCls) { - SIcon = iconCls; - } - - var p = this.add(new DocPanel({ - id: id, - cclass : cls, - autoLoad: autoLoad, - iconCls: SIcon - })); - this.setActiveTab(p); - } - }, - - initSearch : function(){ - // Custom rendering Template for the View - var resultTpl = new Ext.XTemplate( - '', - '
', - '', - '{member}', - ' ', - '{cls}', - '

{doc}

', - '
' - ); - - var p = new Ext.DataView({ - applyTo: 'search', - tpl: resultTpl, - loadingText:'Searching...', - store: this.searchStore, - itemSelector: 'div.search-item', - emptyText: '

Use the search field above to search the Ext API for classes, properties, config options, methods and events.

' - }); - }, - - doSearch : function(e){ - var k = e.getKey(); - if(!e.isSpecialKey()){ - var text = e.target.value; - if(!text){ - this.searchStore.baseParams.q = ''; - this.searchStore.removeAll(); - }else{ - this.searchStore.baseParams.q = text; - this.searchStore.reload(); - } - } - } -}); - - -Ext.onReady(function(){ - - Ext.QuickTips.init(); - - var api = new ApiPanel(); - var mainPanel = new MainPanel(); - - api.on('click', function(node, e){ - if(node.isLeaf()){ - e.stopEvent(); - mainPanel.loadClass(node.attributes.href, node.id, '', node.attributes.iconCls); - } - }); - - mainPanel.on('tabchange', function(tp, tab){ - api.selectClass(tab.cclass); - }); - - var hd = new Ext.Panel({ - border: false, - layout:'anchor', - region:'north', - cls: 'docs-header', - height:60, - items: [{ - xtype:'box', - el:'header', - border:false, - anchor: 'none -25' - }, - new Ext.Toolbar({ - cls:'top-toolbar', - items:[ ' ', - new Ext.form.TextField({ - width: 200, - emptyText:'Find a Class', - listeners:{ - render: function(f){ - f.el.on('keydown', filterTree, f, {buffer: 350}); - } - } - }), ' ', ' ', - { - iconCls: 'icon-expand-all', - tooltip: 'Expand All', - handler: function(){ api.root.expand(true); } - }, '-', { - iconCls: 'icon-collapse-all', - tooltip: 'Collapse All', - handler: function(){ api.root.collapse(true); } - }, '->', { - tooltip:'Hide Inherited Members', - iconCls: 'icon-hide-inherited', - enableToggle: true, - toggleHandler : function(b, pressed){ - mainPanel[pressed ? 'addClass' : 'removeClass']('hide-inherited'); - } - }, '-', { - tooltip:'Expand All Members', - iconCls: 'icon-expand-members', - enableToggle: true, - toggleHandler : function(b, pressed){ - mainPanel[pressed ? 'addClass' : 'removeClass']('full-details'); - } - }] - })] - }) - - var viewport = new Ext.Viewport({ - layout:'border', - items:[ hd, api, mainPanel ] - }); - - api.expandPath('/root/apidocs'); - - // allow for link in - var page = window.location.href.split('?')[1]; - if(page){ - var ps = Ext.urlDecode(page); - var cls = ps['class']; - mainPanel.loadClass('symbols/' + cls + '.html', cls, ps.member); - } - - viewport.doLayout(); - - setTimeout(function(){ - Ext.get('loading').remove(); - Ext.get('loading-mask').fadeOut({remove:true}); - }, 250); - - var filter = new Ext.tree.TreeFilter(api, { - clearBlank: true, - autoClear: true - }); - var hiddenPkgs = []; - function filterTree(e){ - var text = e.target.value; - Ext.each(hiddenPkgs, function(n){ - n.ui.show(); - }); - if(!text){ - filter.clear(); - return; - } - api.expandAll(); - - var re = new RegExp('^' + Ext.escapeRe(text), 'i'); - filter.filterBy(function(n){ - return !n.attributes.isClass || re.test(n.text); - }); - - // hide empty packages that weren't filtered - hiddenPkgs = []; - api.root.cascade(function(n){ - if(!n.attributes.isClass && n.ui.ctNode.offsetHeight < 3){ - n.ui.hide(); - hiddenPkgs.push(n); - } - }); - } - -}); - - - -/** - * Makes a ComboBox more closely mimic an HTML SELECT. Supports clicking and dragging - * through the list, with item selection occurring when the mouse button is released. - * When used will automatically set {@link #editable} to false and call {@link Ext.Element#unselectable} - * on inner elements. Re-enabling editable after calling this will NOT work. - * - * @author Corey Gilmore - * http://extjs.com/forum/showthread.php?t=6392 - * - * @history 2007-07-08 jvs - * Slight mods for Ext 2.0 - */ -Ext.ux.SelectBox = function(config){ - this.searchResetDelay = 1000; - config = config || {}; - config = Ext.apply(config || {}, { - editable: false, - forceSelection: true, - rowHeight: false, - lastSearchTerm: false, - triggerAction: 'all', - mode: 'local' - }); - - Ext.ux.SelectBox.superclass.constructor.apply(this, arguments); - - this.lastSelectedIndex = this.selectedIndex || 0; -}; - -Ext.extend(Ext.ux.SelectBox, Ext.form.ComboBox, { - lazyInit: false, - initEvents : function(){ - Ext.ux.SelectBox.superclass.initEvents.apply(this, arguments); - // you need to use keypress to capture upper/lower case and shift+key, but it doesn't work in IE - this.el.on('keydown', this.keySearch, this, true); - this.cshTask = new Ext.util.DelayedTask(this.clearSearchHistory, this); - }, - - keySearch : function(e, target, options) { - var raw = e.getKey(); - var key = String.fromCharCode(raw); - var startIndex = 0; - - if( !this.store.getCount() ) { - return; - } - - switch(raw) { - case Ext.EventObject.HOME: - e.stopEvent(); - this.selectFirst(); - return; - - case Ext.EventObject.END: - e.stopEvent(); - this.selectLast(); - return; - - case Ext.EventObject.PAGEDOWN: - this.selectNextPage(); - e.stopEvent(); - return; - - case Ext.EventObject.PAGEUP: - this.selectPrevPage(); - e.stopEvent(); - return; - } - - // skip special keys other than the shift key - if( (e.hasModifier() && !e.shiftKey) || e.isNavKeyPress() || e.isSpecialKey() ) { - return; - } - if( this.lastSearchTerm == key ) { - startIndex = this.lastSelectedIndex; - } - this.search(this.displayField, key, startIndex); - this.cshTask.delay(this.searchResetDelay); - }, - - onRender : function(ct, position) { - this.store.on('load', this.calcRowsPerPage, this); - Ext.ux.SelectBox.superclass.onRender.apply(this, arguments); - if( this.mode == 'local' ) { - this.calcRowsPerPage(); - } - }, - - onSelect : function(record, index, skipCollapse){ - if(this.fireEvent('beforeselect', this, record, index) !== false){ - this.setValue(record.data[this.valueField || this.displayField]); - if( !skipCollapse ) { - this.collapse(); - } - this.lastSelectedIndex = index + 1; - this.fireEvent('select', this, record, index); - } - }, - - render : function(ct) { - Ext.ux.SelectBox.superclass.render.apply(this, arguments); - if( Ext.isSafari ) { - this.el.swallowEvent('mousedown', true); - } - this.el.unselectable(); - this.innerList.unselectable(); - this.trigger.unselectable(); - this.innerList.on('mouseup', function(e, target, options) { - if( target.id && target.id == this.innerList.id ) { - return; - } - this.onViewClick(); - }, this); - - this.innerList.on('mouseover', function(e, target, options) { - if( target.id && target.id == this.innerList.id ) { - return; - } - this.lastSelectedIndex = this.view.getSelectedIndexes()[0] + 1; - this.cshTask.delay(this.searchResetDelay); - }, this); - - this.trigger.un('click', this.onTriggerClick, this); - this.trigger.on('mousedown', function(e, target, options) { - e.preventDefault(); - this.onTriggerClick(); - }, this); - - this.on('collapse', function(e, target, options) { - Ext.getDoc().un('mouseup', this.collapseIf, this); - }, this, true); - - this.on('expand', function(e, target, options) { - Ext.getDoc().on('mouseup', this.collapseIf, this); - }, this, true); - }, - - clearSearchHistory : function() { - this.lastSelectedIndex = 0; - this.lastSearchTerm = false; - }, - - selectFirst : function() { - this.focusAndSelect(this.store.data.first()); - }, - - selectLast : function() { - this.focusAndSelect(this.store.data.last()); - }, - - selectPrevPage : function() { - if( !this.rowHeight ) { - return; - } - var index = Math.max(this.selectedIndex-this.rowsPerPage, 0); - this.focusAndSelect(this.store.getAt(index)); - }, - - selectNextPage : function() { - if( !this.rowHeight ) { - return; - } - var index = Math.min(this.selectedIndex+this.rowsPerPage, this.store.getCount() - 1); - this.focusAndSelect(this.store.getAt(index)); - }, - - search : function(field, value, startIndex) { - field = field || this.displayField; - this.lastSearchTerm = value; - var index = this.store.find.apply(this.store, arguments); - if( index !== -1 ) { - this.focusAndSelect(index); - } - }, - - focusAndSelect : function(record) { - var index = typeof record === 'number' ? record : this.store.indexOf(record); - this.select(index, this.isExpanded()); - this.onSelect(this.store.getAt(record), index, this.isExpanded()); - }, - - calcRowsPerPage : function() { - if( this.store.getCount() ) { - this.rowHeight = Ext.fly(this.view.getNode(0)).getHeight(); - this.rowsPerPage = this.maxHeight / this.rowHeight; - } else { - this.rowHeight = false; - } - } - -}); - -Ext.Ajax.on('requestcomplete', function(ajax, xhr, o){ - if(typeof urchinTracker == 'function' && o && o.url){ - urchinTracker(o.url); - } -}); \ No newline at end of file diff --git a/public/api/resources/elbow-end.gif b/public/api/resources/elbow-end.gif deleted file mode 100644 index f24ddee799ccebea4dfe60fd65a5703a6a59d44f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 844 zcmZ?wbhEHb6krfy_|CxK^xx^&v19*7!DtAK$PiHc$->A01UeuBlqVQCG#MBCM3ly4{vfNmw^MVa@cc6PqetEUkIDs_xZ>`sXJizaGf@b+PRKllo&jCY;(g|G>^A z58InwE@*tecf#GHO?S`qojrWrvdj9y{>&I7KKE40#{pBB@@BRC9^V!o!FP}a9`Q`EV@85p^`tkSgUxraI8UoY~ z0mYvzj0_B{3_2i#L3x6KqlAH*L&jsnf`iQ*+*cSJosP6~2skOMDPTIx!70OX!$M+l zQxCVW1eSDCTowm-qo!!^_Cfx0wac}mVyYuGX?(KijvgCQ|vX|Yf zUbV0N-oN?BjGaFhFMqUb$9kq}V)$->CMpv9mAaxW-PFmRk@2<4FR*s$P$noq@> z6OPHpxW#oHYCIYqD9q4}+7!|F=}2e4oOzCj#SRztJ}JY54IeHv9%f`_VPWcIe%?FV zEa%!1$Kqo>QjA6qO(eahWXv>l2xZvV8LaMaoO+_elk13Y;5?5-6C5`-W?i0ZyIf^r zqY`tdnag<@&7xMWi6Y8AIRUS>EEm)aZF1RQ;KanRG_$8paM2USXRXyK7IO(88bTj zws%k3-8BDF%c83-ORl#qyV<_-PRFXdGuK|5wf;uex`#cRp7w2fIbqk^N&7xdIrMef zv7gIMep-3<+m1W`j~u^!?$)~l5B?v2^8fVH|L30nzx49|)fa!Sz5aje?f<*){y+Ti z|LLdyFTVVL^X>nK@BhF5{{Qpm&tJcO{r>y^&!0d4{{8#^|35GoM#0Do0mYvz%nS^I z3_2k1gYpCe$2kUN4jGRP4-UxLl)X67__(cC(lBm|#EZurQ@bUM*=9;KwojFJY7=ps zjfQD5NH==@tS4RIO(F7C^u7ngk{132S%napD7B8hqzc9&DNx-8a!3%6jXAGn5YoY zHdWP+t>owr2Zf&fek?2u39c+1{NmCaC5`d67r$SB{>v~5Mnhoag@EEu7NDp9Gw6W44$2b@9D)q2 W95NaP4F{V!IE7qJ7&tgESOWmncM%)_ diff --git a/public/api/resources/expand-bg.gif b/public/api/resources/expand-bg.gif deleted file mode 100644 index 135aa8955ccff3e305b67f9cf8fa67b0b4cc2910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmZ?wbhEHb6k=dvXlG!!aN)x1H}BrOegF2|hj;HkzW?y)!^h7bKYjW6^C!b77!85p x9s-I#S%6;r&!7YHC@4=ba7Zu+a>#gmIKarv!7ZZTutAZjnS)nDML>YT8UP~iB8UJ0 diff --git a/public/api/resources/expand-members.gif b/public/api/resources/expand-members.gif deleted file mode 100644 index 14b5437bc2eaf5f9472a9f060767501dc5030a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmZ?wbhEHb6krfwXlGzxkY217bup)CXovZtq~x3{;iudlzqf6A08Q>RXy zK7D#;-}dfFyLau{)inQ7%c83-ORl#qyV<_-PRFXdGuK|5wf;uex`#cRp7w2f*}MJ6 zgk5hZ?fW?8(AR0lel9!tY312(JMR2Ha{TtWTkj4$_v`YmSJEdIt!N72USH?2v*9wIT ztZoe23@>gRT)d2*iz%8zaVHZKgQB!a!GjOZO%7rO#A~!j)aj-m`=H9=40|I=O_EOd=*6U}$7yl9ImTW1zrb4FH>M%W(hz diff --git a/public/api/resources/ext-all.js b/public/api/resources/ext-all.js deleted file mode 100644 index 6d86ccb5..00000000 --- a/public/api/resources/ext-all.js +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Ext JS Library 2.2 - * Copyright(c) 2006-2008, Ext JS, LLC. - * licensing@extjs.com - * - * http://extjs.com/license - */ - -Ext.DomHelper=function(){var L=null;var F=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var B=/^table|tbody|tr|td$/i;var A=function(T){if(typeof T=="string"){return T}var O="";if(Ext.isArray(T)){for(var R=0,P=T.length;R"}else{O+=">";var U=T.children||T.cn;if(U){O+=A(U)}else{if(T.html){O+=T.html}}O+=""}return O};var M=function(T,O){var S;if(Ext.isArray(T)){S=document.createDocumentFragment();for(var R=0,P=T.length;R",K=""+E,H=C+"",D=""+K;var G=function(N,O,Q,P){if(!L){L=document.createElement("div")}var R;var S=null;if(N=="td"){if(O=="afterbegin"||O=="beforeend"){return }if(O=="beforebegin"){S=Q;Q=Q.parentNode}else{S=Q.nextSibling;Q=Q.parentNode}R=I(4,H,P,D)}else{if(N=="tr"){if(O=="beforebegin"){S=Q;Q=Q.parentNode;R=I(3,C,P,K)}else{if(O=="afterend"){S=Q.nextSibling;Q=Q.parentNode;R=I(3,C,P,K)}else{if(O=="afterbegin"){S=Q.firstChild}R=I(4,H,P,D)}}}else{if(N=="tbody"){if(O=="beforebegin"){S=Q;Q=Q.parentNode;R=I(2,J,P,E)}else{if(O=="afterend"){S=Q.nextSibling;Q=Q.parentNode;R=I(2,J,P,E)}else{if(O=="afterbegin"){S=Q.firstChild}R=I(3,C,P,K)}}}else{if(O=="beforebegin"||O=="afterend"){return }if(O=="afterbegin"){S=Q.firstChild}R=I(2,J,P,E)}}}Q.insertBefore(R,S);return R};return{useDom:false,markup:function(N){return A(N)},applyStyles:function(P,Q){if(Q){P=Ext.fly(P);if(typeof Q=="string"){var O=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var R;while((R=O.exec(Q))!=null){P.setStyle(R[1],R[2])}}else{if(typeof Q=="object"){for(var N in Q){P.setStyle(N,Q[N])}}else{if(typeof Q=="function"){Ext.DomHelper.applyStyles(P,Q.call())}}}}},insertHtml:function(P,R,Q){P=P.toLowerCase();if(R.insertAdjacentHTML){if(B.test(R.tagName)){var O;if(O=G(R.tagName.toLowerCase(),P,R,Q)){return O}}switch(P){case"beforebegin":R.insertAdjacentHTML("BeforeBegin",Q);return R.previousSibling;case"afterbegin":R.insertAdjacentHTML("AfterBegin",Q);return R.firstChild;case"beforeend":R.insertAdjacentHTML("BeforeEnd",Q);return R.lastChild;case"afterend":R.insertAdjacentHTML("AfterEnd",Q);return R.nextSibling}throw"Illegal insertion point -> \""+P+"\""}var N=R.ownerDocument.createRange();var S;switch(P){case"beforebegin":N.setStartBefore(R);S=N.createContextualFragment(Q);R.parentNode.insertBefore(S,R);return R.previousSibling;case"afterbegin":if(R.firstChild){N.setStartBefore(R.firstChild);S=N.createContextualFragment(Q);R.insertBefore(S,R.firstChild);return R.firstChild}else{R.innerHTML=Q;return R.firstChild}case"beforeend":if(R.lastChild){N.setStartAfter(R.lastChild);S=N.createContextualFragment(Q);R.appendChild(S);return R.lastChild}else{R.innerHTML=Q;return R.lastChild}case"afterend":N.setStartAfter(R);S=N.createContextualFragment(Q);R.parentNode.insertBefore(S,R.nextSibling);return R.nextSibling}throw"Illegal insertion point -> \""+P+"\""},insertBefore:function(N,P,O){return this.doInsert(N,P,O,"beforeBegin")},insertAfter:function(N,P,O){return this.doInsert(N,P,O,"afterEnd","nextSibling")},insertFirst:function(N,P,O){return this.doInsert(N,P,O,"afterBegin","firstChild")},doInsert:function(Q,S,R,T,P){Q=Ext.getDom(Q);var O;if(this.useDom){O=M(S,null);(P==="firstChild"?Q:Q.parentNode).insertBefore(O,P?Q[P]:Q)}else{var N=A(S);O=this.insertHtml(T,Q,N)}return R?Ext.get(O,true):O},append:function(P,R,Q){P=Ext.getDom(P);var O;if(this.useDom){O=M(R,null);P.appendChild(O)}else{var N=A(R);O=this.insertHtml("beforeEnd",P,N)}return Q?Ext.get(O,true):O},overwrite:function(N,P,O){N=Ext.getDom(N);N.innerHTML=A(P);return O?Ext.get(N.firstChild,true):N.firstChild},createTemplate:function(O){var N=A(O);return new Ext.Template(N)}}}(); -Ext.Template=function(E){var B=arguments;if(Ext.isArray(E)){E=E.join("")}else{if(B.length>1){var C=[];for(var D=0,A=B.length;D+~]\s?|\s|$)/;var tagTokenRe=/^(#)?([\w-\*]+)/;var nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/;function child(p,index){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){d.removeChild(n)}else{n.nodeIndex=++ni}n=nx}return this}function byClassName(c,a,v){if(!v){return c}var r=[],ri=-1,cn;for(var i=0,ci;ci=c[i];i++){if((" "+ci.className+" ").indexOf(v)!=-1){r[++ri]=ci}}return r}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.children||ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&(n.nodeType!=1||(tagName=="*"||n.tagName.toLowerCase()!=tagName))){}if(n){result[++ri]=n}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i1){return nodup(results)}return results},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}var n=valueCache[path](root);n=n[0]?n[0]:n;var v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el);var result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:"n = byClassName(n, null, \" {1} \");"},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:"n = byPseudo(n, \"{1}\", \"{2}\");"},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:"n = byAttribute(n, \"{2}\", \"{4}\", \"{3}\", \"{1}\");"},{re:/^#([\w-]+)/,select:"n = byId(n, null, \"{1}\");"},{re:/^@([\w-]+)/,select:"return {firstChild:{nodeValue:attrValue(n, \"{1}\")}};"}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1;var m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a);var f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},"empty":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},"contains":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci}}return r},"nodeValue":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},"checked":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},"not":function(c,ss){return Ext.DomQuery.filter(c,ss,true)},"any":function(c,selectors){var ss=selectors.split("|");var r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},"odd":function(c){return this["nth-child"](c,"odd")},"even":function(c){return this["nth-child"](c,"even")},"nth":function(c,a){return c[a-1]||[]},"first":function(c){return c[0]||[]},"last":function(c){return c[c.length-1]||[]},"has":function(c,ss){var s=Ext.DomQuery.select;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select; -Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners}};Ext.util.Observable.prototype={fireEvent:function(){if(this.eventsSuspended!==true){var A=this.events[arguments[0].toLowerCase()];if(typeof A=="object"){return A.fire.apply(A,Array.prototype.slice.call(arguments,1))}}return true},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(A,C,B,F){if(typeof A=="object"){F=A;for(var E in F){if(this.filterOptRe.test(E)){continue}if(typeof F[E]=="function"){this.addListener(E,F[E],F.scope,F)}else{this.addListener(E,F[E].fn,F[E].scope,F[E])}}return }F=(!F||typeof F=="boolean")?{}:F;A=A.toLowerCase();var D=this.events[A]||true;if(typeof D=="boolean"){D=new Ext.util.Event(this,A);this.events[A]=D}D.addListener(C,B,F)},removeListener:function(A,C,B){var D=this.events[A.toLowerCase()];if(typeof D=="object"){D.removeListener(C,B)}},purgeListeners:function(){for(var A in this.events){if(typeof this.events[A]=="object"){this.events[A].clearListeners()}}},relayEvents:function(F,D){var E=function(G){return function(){return this.fireEvent.apply(this,Ext.combine(G,Array.prototype.slice.call(arguments,0)))}};for(var C=0,A=D.length;C0},suspendEvents:function(){this.eventsSuspended=true},resumeEvents:function(){this.eventsSuspended=false},getMethodEvent:function(G){if(!this.methodEvents){this.methodEvents={}}var F=this.methodEvents[G];if(!F){F={};this.methodEvents[G]=F;F.originalFn=this[G];F.methodName=G;F.before=[];F.after=[];var C,B,D;var E=this;var A=function(J,I,H){if((B=J.apply(I||E,H))!==undefined){if(typeof B==="object"){if(B.returnValue!==undefined){C=B.returnValue}else{C=B}if(B.cancel===true){D=true}}else{if(B===false){D=true}else{C=B}}}};this[G]=function(){C=B=undefined;D=false;var I=Array.prototype.slice.call(arguments,0);for(var J=0,H=F.before.length;J0){this.firing=true;var G=Array.prototype.slice.call(arguments,0);for(var H=0;H=33&&D<=40)||D==this.RETURN||D==this.TAB||D==this.ESC},isSpecialKey:function(){var D=this.keyCode;return(this.type=="keypress"&&this.ctrlKey)||D==9||D==13||D==40||D==27||(D==16)||(D==17)||(D>=18&&D<=20)||(D>=33&&D<=35)||(D>=36&&D<=39)||(D>=44&&D<=45)},stopPropagation:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}B.stopPropagation(this.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){var D=this.keyCode||this.charCode;return Ext.isSafari?(A[D]||D):D},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getTime:function(){if(this.browserEvent){return B.getTime(this.browserEvent)}return null},getXY:function(){return this.xy},getTarget:function(E,F,D){return E?Ext.fly(this.target).findParent(E,F,D):(D?Ext.get(this.target):this.target)},getRelatedTarget:function(){if(this.browserEvent){return B.getRelatedTarget(this.browserEvent)}return null},getWheelDelta:function(){var D=this.browserEvent;var E=0;if(D.wheelDelta){E=D.wheelDelta/120}else{if(D.detail){E=-D.detail/3}}return E},hasModifier:function(){return((this.ctrlKey||this.altKey)||this.shiftKey)?true:false},within:function(E,F){var D=this[F?"getRelatedTarget":"getTarget"]();return D&&Ext.fly(E).contains(D)},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1])}};return new Ext.EventObjectImpl()}(); -(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var propCache={};var camelRe=/(-[a-z])/gi;var camelFn=function(m,a){return a.charAt(1).toUpperCase()};var view=document.defaultView;Ext.Element=function(element,forceNew){var dom=typeof element=="string"?document.getElementById(element):element;if(!dom){return null}var id=dom.id;if(forceNew!==true&&id&&Ext.Element.cache[id]){return Ext.Element.cache[id]}this.dom=dom;this.id=id||Ext.id(dom)};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(visMode){this.visibilityMode=visMode;return this},enableDisplayMode:function(display){this.setVisibilityMode(El.DISPLAY);if(typeof display!="undefined"){this.originalDisplay=display}return this},findParent:function(simpleSelector,maxDepth,returnEl){var p=this.dom,b=document.body,depth=0,dq=Ext.DomQuery,stopEl;maxDepth=maxDepth||50;if(typeof maxDepth!="number"){stopEl=Ext.getDom(maxDepth);maxDepth=10}while(p&&p.nodeType==1&&depthch||tcb){c.scrollTop=b-ch}}c.scrollTop=c.scrollTop;if(hscroll!==false){if(el.offsetWidth>c.clientWidth||lcr){c.scrollLeft=r-c.clientWidth}}c.scrollLeft=c.scrollLeft}return this},scrollChildIntoView:function(child,hscroll){Ext.fly(child,"_scrollChildIntoView").scrollIntoView(this,hscroll)},autoHeight:function(animate,duration,onComplete,easing){var oldHeight=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var height=parseInt(this.dom.scrollHeight,10);if(!animate){this.setHeight(height);this.unclip();if(typeof onComplete=="function"){onComplete()}}else{this.setHeight(oldHeight);this.setHeight(height,animate,duration,function(){this.unclip();if(typeof onComplete=="function"){onComplete()}}.createDelegate(this),easing)}}.createDelegate(this),0);return this},contains:function(el){if(!el){return false}return D.isAncestor(this.dom,el.dom?el.dom:el)},isVisible:function(deep){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(deep!==true||!vis){return vis}var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible()){return false}p=p.parentNode}return true},select:function(selector,unique){return El.select(selector,unique,this.dom)},query:function(selector){return Ext.DomQuery.select(selector,this.dom)},child:function(selector,returnDom){var n=Ext.DomQuery.selectNode(selector,this.dom);return returnDom?n:Ext.get(n)},down:function(selector,returnDom){var n=Ext.DomQuery.selectNode(" > "+selector,this.dom);return returnDom?n:Ext.get(n)},initDD:function(group,config,overrides){var dd=new Ext.dd.DD(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},initDDProxy:function(group,config,overrides){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},initDDTarget:function(group,config,overrides){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},setVisible:function(visible,animate){if(!animate||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(visible)}else{this.fixDisplay();this.dom.style.visibility=visible?"visible":"hidden"}}else{var dom=this.dom;var visMode=this.visibilityMode;if(visible){this.setOpacity(0.01);this.setVisible(true)}this.anim({opacity:{to:(visible?1:0)}},this.preanim(arguments,1),null,0.35,"easeIn",function(){if(!visible){if(visMode==El.DISPLAY){dom.style.display="none"}else{dom.style.visibility="hidden"}Ext.get(dom).setOpacity(1)}})}return this},isDisplayed:function(){return this.getStyle("display")!="none"},toggle:function(animate){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this},setDisplayed:function(value){if(typeof value=="boolean"){value=value?this.originalDisplay:"none"}this.setStyle("display",value);return this},focus:function(){try{this.dom.focus()}catch(e){}return this},blur:function(){try{this.dom.blur()}catch(e){}return this},addClass:function(className){if(Ext.isArray(className)){for(var i=0,len=className.length;idw+scrollX){x=swapX?r.left-w:dw+scrollX-w}if(xdh+scrollY){y=swapY?r.top-h:dh+scrollY-h}if(yvr){x=vr-w;moved=true}if((y+h)>vb){y=vb-h;moved=true}if(x";E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var srcRe=/\ssrc=([\'\"])(.*?)\1/i;var typeRe=/\stype=([\'\"])(.*?)\1/i;var match;while(match=re.exec(html)){var attrs=match[1];var srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){var s=document.createElement("script");s.src=srcMatch[2];var typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}var el=document.getElementById(id);if(el){Ext.removeNode(el)}if(typeof callback=="function"){callback()}});dom.innerHTML=html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this},load:function(){var um=this.getUpdater();um.update.apply(um,arguments);return this},getUpdater:function(){if(!this.updateManager){this.updateManager=new Ext.Updater(this)}return this.updateManager},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this},getCenterXY:function(){return this.getAlignToXY(document,"c-c")},center:function(centerIn){this.alignTo(centerIn||document,"c-c");return this},isBorderBox:function(){return noBoxAdjust[this.dom.tagName.toLowerCase()]||Ext.isBorderBox},getBox:function(contentBox,local){var xy;if(!local){xy=this.getXY()}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top]}var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!contentBox){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h}}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)}}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx},getFrameWidth:function(sides,onlyContentBox){return onlyContentBox&&Ext.isBorderBox?0:(this.getPadding(sides)+this.getBorderWidth(sides))},setBox:function(box,adjust,animate){var w=box.width,h=box.height;if((adjust&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"))}this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint")},1);return this},getMargins:function(side){if(!side){return{top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0}}else{return this.addStyles(side,El.margins)}},addStyles:function(sides,styles){var val=0,v,w;for(var i=0,len=sides.length;i=0?w:-1*w)}}}return val},createProxy:function(config,renderTo,matchBox){config=typeof config=="object"?config:{tag:"div",cls:config};var proxy;if(renderTo){proxy=Ext.DomHelper.append(renderTo,config,true)}else{proxy=Ext.DomHelper.insertBefore(this.dom,config,true)}if(matchBox){proxy.setBox(this.getBox())}return proxy},mask:function(msg,msgCls){if(this.getStyle("position")=="static"){this.setStyle("position","relative")}if(this._maskMsg){this._maskMsg.remove()}if(this._mask){this._mask.remove()}this._mask=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask"},true);this.addClass("x-masked");this._mask.setDisplayed(true);if(typeof msg=="string"){this._maskMsg=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask-msg",cn:{tag:"div"}},true);var mm=this._maskMsg;mm.dom.className=msgCls?"ext-el-mask-msg "+msgCls:"ext-el-mask-msg";mm.dom.firstChild.innerHTML=msg;mm.setDisplayed(true);mm.center(this)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle("height")=="auto"){this._mask.setSize(this.dom.clientWidth,this.getHeight())}return this._mask},unmask:function(){if(this._mask){if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg}this._mask.remove();delete this._mask}this.removeClass("x-masked")},isMasked:function(){return this._mask&&this._mask.isVisible()},createShim:function(){var el=document.createElement("iframe");el.frameBorder="0";el.className="ext-shim";if(Ext.isIE&&Ext.isSecure){el.src=Ext.SSL_SECURE_URL}var shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim},remove:function(){Ext.removeNode(this.dom);delete El.cache[this.dom.id]},hover:function(overFn,outFn,scope){var preOverFn=function(e){if(!e.within(this,true)){overFn.apply(scope||this,arguments)}};var preOutFn=function(e){if(!e.within(this,true)){outFn.apply(scope||this,arguments)}};this.on("mouseover",preOverFn,this.dom);this.on("mouseout",preOutFn,this.dom);return this},addClassOnOver:function(className){this.hover(function(){Ext.fly(this,"_internal").addClass(className)},function(){Ext.fly(this,"_internal").removeClass(className)});return this},addClassOnFocus:function(className){this.on("focus",function(){Ext.fly(this,"_internal").addClass(className)},this.dom);this.on("blur",function(){Ext.fly(this,"_internal").removeClass(className)},this.dom);return this},addClassOnClick:function(className){var dom=this.dom;this.on("mousedown",function(){Ext.fly(dom,"_internal").addClass(className);var d=Ext.getDoc();var fn=function(){Ext.fly(dom,"_internal").removeClass(className);d.removeListener("mouseup",fn)};d.on("mouseup",fn)});return this},swallowEvent:function(eventName,preventDefault){var fn=function(e){e.stopPropagation();if(preventDefault){e.preventDefault()}};if(Ext.isArray(eventName)){for(var i=0,len=eventName.length;idom.clientHeight||dom.scrollWidth>dom.clientWidth},scrollTo:function(side,value,animate){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!animate||!A){this.dom[prop]=value}else{var to=prop=="scrollLeft"?[value,this.dom.scrollTop]:[this.dom.scrollLeft,value];this.anim({scroll:{"to":to}},this.preanim(arguments,2),"scroll")}return this},scroll:function(direction,distance,animate){if(!this.isScrollable()){return }var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;direction=direction.toLowerCase();var scrolled=false;var a=this.preanim(arguments,2);switch(direction){case"l":case"left":if(w-l>cw){var v=Math.min(l+distance,w-cw);this.scrollTo("left",v,a);scrolled=true}break;case"r":case"right":if(l>0){var v=Math.max(l-distance,0);this.scrollTo("left",v,a);scrolled=true}break;case"t":case"top":case"up":if(t>0){var v=Math.max(t-distance,0);this.scrollTo("top",v,a);scrolled=true}break;case"b":case"bottom":case"down":if(h-t>ch){var v=Math.min(t+distance,h-ch);this.scrollTo("top",v,a);scrolled=true}break}return scrolled},translatePoints:function(x,y){if(typeof x=="object"||Ext.isArray(x)){y=x[1];x=x[0]}var p=this.getStyle("position");var o=this.getXY();var l=parseInt(this.getStyle("left"),10);var t=parseInt(this.getStyle("top"),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft}if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop}return{left:(x-o[0]+l),top:(y-o[1]+t)}},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l,t;if(Ext.isIE&&Ext.isStrict){l=doc.documentElement.scrollLeft||(doc.body.scrollLeft||0);t=doc.documentElement.scrollTop||(doc.body.scrollTop||0)}else{l=window.pageXOffset||(doc.body.scrollLeft||0);t=window.pageYOffset||(doc.body.scrollTop||0)}return{left:l,top:t}}else{return{left:d.scrollLeft,top:d.scrollTop}}},getColor:function(attr,defaultValue,prefix){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return defaultValue}var color=typeof prefix=="undefined"?"#":prefix;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]);var s=h.toString(16);if(h<16){s="0"+s}color+=s}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);color+=c+c}}else{if(v.length==7){color+=v.substr(1)}}}}return(color.length>5?color.toLowerCase():defaultValue)},boxWrap:function(cls){cls=cls||"x-box";var el=Ext.get(this.insertHtml("beforeBegin",String.format("
"+El.boxMarkup+"
",cls)));el.child("."+cls+"-mc").dom.appendChild(this.dom);return el},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name]}return d[name]}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name]},getTextWidth:function(text,min,max){return(Ext.util.TextMetrics.measure(this.dom,Ext.value(text,this.dom.innerHTML,true)).width).constrain(min||0,max||1000000)}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.getUpdateManager=ep.getUpdater;ep.un=ep.removeListener;ep.autoBoxAdjust=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,defaultUnit){if(v===""||v=="auto"){return v}if(v===undefined){return""}if(typeof v=="number"||!El.unitPattern.test(v)){return v+(defaultUnit||"px")}return v};El.boxMarkup="
";El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var docEl;El.get=function(el){var ex,elm,id;if(!el){return null}if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null}if(ex=El.cache[el]){ex.dom=elm}else{ex=El.cache[el]=new El(elm)}return ex}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el)}if(ex=El.cache[id]){ex.dom=el}else{ex=El.cache[id]=new El(el)}return ex}else{if(el instanceof El){if(el!=docEl){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el}return el}else{if(el.isComposite){return el}else{if(Ext.isArray(el)){return El.select(el)}else{if(el==document){if(!docEl){var f=function(){};f.prototype=El.prototype;docEl=new f();docEl.dom=document}return docEl}}}}}}return null};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i0){F()}else{B.afterFx(D)}})};F.call(this)});return this},pause:function(C){var A=this.getFxEl();var B={};A.queueFx(B,function(){setTimeout(function(){A.afterFx(B)},C*1000)});return this},fadeIn:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility="visible";var C=B.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:C}},B,null,0.5,"easeOut",function(){if(C==1){this.clearOpacity()}A.afterFx(B)})});return this},fadeOut:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){arguments.callee.anim=this.fxanim({opacity:{to:B.endOpacity||0}},B,null,0.5,"easeOut",function(){if(this.visibilityMode==Ext.Element.DISPLAY||B.useDisplay){this.dom.style.display="none"}else{this.dom.style.visibility="hidden"}this.clearOpacity();A.afterFx(B)})});return this},scale:function(A,B,C){this.shift(Ext.apply({},C,{width:A,height:B}));return this},shift:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){var E={},D=B.width,F=B.height,C=B.x,H=B.y,G=B.opacity;if(D!==undefined){E.width={to:this.adjustWidth(D)}}if(F!==undefined){E.height={to:this.adjustHeight(F)}}if(B.left!==undefined){E.left={to:B.left}}if(B.top!==undefined){E.top={to:B.top}}if(B.right!==undefined){E.right={to:B.right}}if(B.bottom!==undefined){E.bottom={to:B.bottom}}if(C!==undefined||H!==undefined){E.points={to:[C!==undefined?C:this.getX(),H!==undefined?H:this.getY()]}}if(G!==undefined){E.opacity={to:G}}if(B.xy!==undefined){E.points={to:B.xy}}arguments.callee.anim=this.fxanim(E,B,"motion",0.35,"easeOut",function(){A.afterFx(B)})});return this},ghost:function(A,C){var B=this.getFxEl();C=C||{};B.queueFx(C,function(){A=A||"b";var H=this.getFxRestore();var E=this.getWidth(),G=this.getHeight();var F=this.dom.style;var J=function(){if(C.useDisplay){B.setDisplayed(false)}else{B.hide()}B.clearOpacity();B.setPositioning(H.pos);F.width=H.width;F.height=H.height;B.afterFx(C)};var D={opacity:{to:0},points:{}},I=D.points;switch(A.toLowerCase()){case"t":I.by=[0,-G];break;case"l":I.by=[-E,0];break;case"r":I.by=[E,0];break;case"b":I.by=[0,G];break;case"tl":I.by=[-E,-G];break;case"bl":I.by=[-E,G];break;case"br":I.by=[E,G];break;case"tr":I.by=[E,-G];break}arguments.callee.anim=this.fxanim(D,C,"motion",0.5,"easeOut",J)});return this},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this},nextFx:function(){var A=this.fxQueue[0];if(A){A.call(this)}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0]},stopFx:function(){if(this.hasActiveFx()){var A=this.fxQueue[0];if(A&&A.anim&&A.anim.isAnimated()){this.fxQueue=[A];A.anim.stop(true)}}return this},beforeFx:function(A){if(this.hasActiveFx()&&!A.concurrent){if(A.stopFx){this.stopFx();return true}return false}return true},hasFxBlock:function(){var A=this.fxQueue;return A&&A[0]&&A[0].block},queueFx:function(C,A){if(!this.fxQueue){this.fxQueue=[]}if(!this.hasFxBlock()){Ext.applyIf(C,this.fxDefaults);if(!C.concurrent){var B=this.beforeFx(C);A.block=C.block;this.fxQueue.push(A);if(B){this.nextFx()}}else{A.call(this)}}return this},fxWrap:function(F,D,C){var B;if(!D.wrap||!(B=Ext.get(D.wrap))){var A;if(D.fixPosition){A=this.getXY()}var E=document.createElement("div");E.style.visibility=C;B=Ext.get(this.dom.parentNode.insertBefore(E,this.dom));B.setPositioning(F);if(B.getStyle("position")=="static"){B.position("relative")}this.clearPositioning("auto");B.clip();B.dom.appendChild(this.dom);if(A){B.setXY(A)}}return B},fxUnwrap:function(A,C,B){this.clearPositioning();this.setPositioning(C);if(!B.wrap){A.dom.parentNode.insertBefore(this.dom,A.dom);A.remove()}},getFxRestore:function(){var A=this.dom.style;return{pos:this.getPositioning(),width:A.width,height:A.height}},afterFx:function(A){if(A.afterStyle){this.applyStyles(A.afterStyle)}if(A.afterCls){this.addClass(A.afterCls)}if(A.remove===true){this.remove()}Ext.callback(A.callback,A.scope,[this]);if(!A.concurrent){this.fxQueue.shift();this.nextFx()}},getFxEl:function(){return Ext.get(this.dom)},fxanim:function(D,E,B,F,C,A){B=B||"run";E=E||{};var G=Ext.lib.Anim[B](this.dom,D,(E.duration||F)||0.35,(E.easing||C)||"easeOut",function(){Ext.callback(A,this)},this);E.anim=G;return G}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx); -Ext.CompositeElement=function(A){this.elements=[];this.addElements(A)};Ext.CompositeElement.prototype={isComposite:true,addElements:function(E){if(!E){return this}if(typeof E=="string"){E=Ext.Element.selectorFunction(E)}var D=this.elements;var B=D.length-1;for(var C=0,A=E.length;C"+A.text+""}if(typeof A.scripts!="undefined"){this.loadScripts=A.scripts}if(typeof A.timeout!="undefined"){this.timeout=A.timeout}}this.showLoading();if(!D){this.defaultUrl=B}if(typeof B=="function"){B=B.call(this)}var E=Ext.apply({},{url:B,params:(typeof F=="function"&&C)?F.createDelegate(C):F,success:this.processSuccess,failure:this.processFailure,scope:this,callback:undefined,timeout:(this.timeout*1000),disableCaching:this.disableCaching,argument:{"options":A,"url":B,"form":null,"callback":G,"scope":C||window,"params":F}},A);this.transaction=Ext.Ajax.request(E)}},formUpdate:function(C,A,B,D){if(this.fireEvent("beforeupdate",this.el,C,A)!==false){if(typeof A=="function"){A=A.call(this)}C=Ext.getDom(C);this.transaction=Ext.Ajax.request({form:C,url:A,success:this.processSuccess,failure:this.processFailure,scope:this,timeout:(this.timeout*1000),argument:{"url":A,"form":C,"callback":D,"reset":B}});this.showLoading.defer(1,this)}},refresh:function(A){if(this.defaultUrl==null){return }this.update(this.defaultUrl,null,A,true)},startAutoRefresh:function(B,C,D,E,A){if(A){this.update(C||this.defaultUrl,D,E,true)}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId)}this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[C||this.defaultUrl,D,E,true]),B*1000)},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText)}},processSuccess:function(A){this.transaction=null;if(A.argument.form&&A.argument.reset){try{A.argument.form.reset()}catch(B){}}if(this.loadScripts){this.renderer.render(this.el,A,this,this.updateComplete.createDelegate(this,[A]))}else{this.renderer.render(this.el,A,this);this.updateComplete(A)}},updateComplete:function(A){this.fireEvent("update",this.el,A);if(typeof A.argument.callback=="function"){A.argument.callback.call(A.argument.scope,this.el,true,A,A.argument.options)}},processFailure:function(A){this.transaction=null;this.fireEvent("failure",this.el,A);if(typeof A.argument.callback=="function"){A.argument.callback.call(A.argument.scope,this.el,false,A,A.argument.options)}},setRenderer:function(A){this.renderer=A},getRenderer:function(){return this.renderer},setDefaultUrl:function(A){this.defaultUrl=A},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction)}},isUpdating:function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction)}return false}});Ext.Updater.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:"
Loading...
"};Ext.Updater.updateElement=function(D,C,E,B){var A=Ext.get(D).getUpdater();Ext.apply(A,B);A.update(C,E,B?B.callback:null)};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(C,A,B,D){C.update(A.responseText,B.loadScripts,D)}};Ext.UpdateManager=Ext.Updater; -(function(){Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=="function"?p():p;Date.parseCodes[character]=p}return p?Ext.applyIf({c:p.c?String.format(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}};var $f=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{count:0},parseRegexes:[],formatFunctions:{count:0},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(month){return Date.monthNames[month].substring(0,3)},getShortDayName:function(day){return Date.dayNames[day].substring(0,3)},getMonthNumber:function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()]},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i 0) {";var regex="";var special=false;var ch="";for(var i=0;i= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){\n"+"v = new Date(y, m, d, h, i, s, ms);\n"+"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){\n"+"v = new Date(y, m, d, h, i, s);\n"+"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){\n"+"v = new Date(y, m, d, h, i);\n"+"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){\n"+"v = new Date(y, m, d, h);\n"+"}else if (y >= 0 && m >= 0 && d > 0){\n"+"v = new Date(y, m, d);\n"+"}else if (y >= 0 && m >= 0){\n"+"v = new Date(y, m);\n"+"}else if (y >= 0){\n"+"v = new Date(y);\n"+"}\n}\nreturn (v && (z || o))?"+" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"+" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;\n"+"}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(code)},parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i){}return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3}"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i){}return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"))},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y")},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"},g:function(){return $f("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return $f("H")},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1);","var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);","var mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1);","var hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60);","var mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"z = results[{0}] * 1;\n"+"z = (-43200 <= z && z <= 50400)? z : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var calc=[];var arr=[$f("Y",1),$f("m",2),$f("d",3),$f("h",4),$f("i",5),$f("s",6),{c:"ms = (results[7] || '.0').substring(1); ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:"if(results[9] == 'Z'){\no = 0;\n}else{\n"+$f("P",9).c+"\n}"}];for(var i=0,l=arr.length;i0?"-":"+")+String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset()/60)),2,"0")+(A?":":"")+String.leftPad(Math.abs(this.getTimezoneOffset()%60),2,"0")},getDayOfYear:function(){var A=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var B=0;B28){A=Math.min(A,this.getFirstDateOfMonth().add("mo",C).getLastDateOfMonth().getDate())}D.setDate(A);D.setMonth(this.getMonth()+C);break;case Date.YEAR:D.setFullYear(this.getFullYear()+C);break}return D},between:function(C,A){var B=this.getTime();return C.getTime()<=B&&B<=A.getTime()}});Date.prototype.format=Date.prototype.dateFormat;if(Ext.isSafari){Date.brokenSetMonth=Date.prototype.setMonth;Date.prototype.setMonth=function(A){if(A<=-1){var D=Math.ceil(-A);var C=Math.ceil(D/12);var B=(D%12)?12-D%12:0;this.setFullYear(this.getFullYear()-C);return Date.brokenSetMonth.call(this,B)}else{return Date.brokenSetMonth.apply(this,arguments)}}}; -Ext.util.DelayedTask=function(E,D,A){var G=null,F,B;var C=function(){var H=new Date().getTime();if(H-B>=F){clearInterval(G);G=null;E.apply(D,A||[])}};this.delay=function(I,K,J,H){if(G&&I!=F){this.cancel()}F=I;B=new Date().getTime();E=K||E;D=J||D;A=H||A;if(!G){G=setInterval(C,F)}};this.cancel=function(){if(G){clearInterval(G);G=null}}}; -Ext.util.TaskRunner=function(E){E=E||10;var F=[],A=[];var B=0;var G=false;var D=function(){G=false;clearInterval(B);B=0};var H=function(){if(!G){G=true;B=setInterval(I,E)}};var C=function(J){A.push(J);if(J.onStop){J.onStop.apply(J.scope||J)}};var I=function(){if(A.length>0){for(var O=0,K=A.length;O1||Ext.isArray(E)){var B=arguments.length>1?arguments:E;for(var D=0,A=B.length;D=this.length){return this.add(B,C)}this.length++;this.items.splice(A,0,C);if(typeof B!="undefined"&&B!=null){this.map[B]=C}this.keys.splice(A,0,B);this.fireEvent("add",A,C,B);return C},remove:function(A){return this.removeAt(this.indexOf(A))},removeAt:function(A){if(A=0){this.length--;var C=this.items[A];this.items.splice(A,1);var B=this.keys[A];if(typeof B!="undefined"){delete this.map[B]}this.keys.splice(A,1);this.fireEvent("remove",C,B);return C}return false},removeKey:function(A){return this.removeAt(this.indexOfKey(A))},getCount:function(){return this.length},indexOf:function(A){return this.items.indexOf(A)},indexOfKey:function(A){return this.keys.indexOf(A)},item:function(A){var B=typeof this.map[A]!="undefined"?this.map[A]:this.items[A];return typeof B!="function"||this.allowFunctions?B:null},itemAt:function(A){return this.items[A]},key:function(A){return this.map[A]},contains:function(A){return this.indexOf(A)!=-1},containsKey:function(A){return typeof this.map[A]!="undefined"},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},_sort:function(I,A,H){var C=String(A).toUpperCase()=="DESC"?-1:1;H=H||function(K,J){return K-J};var G=[],B=this.keys,F=this.items;for(var D=0,E=F.length;D=A;C--){D[D.length]=B[C]}}return D},filter:function(C,B,D,A){if(Ext.isEmpty(B,false)){return this.clone()}B=this.createValueMatcher(B,D,A);return this.filterBy(function(E){return E&&B.test(E[C])})},filterBy:function(F,E){var G=new Ext.util.MixedCollection();G.getKey=this.getKey;var B=this.keys,D=this.items;for(var C=0,A=D.length;C0){for(var C=0;Clen){return value.substr(0,len-3)+"..."}return value},undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){return value!==undefined&&value!==""?value:defaultValue},htmlEncode:function(value){return !value?value:String(value).replace(/&/g,"&").replace(/>/g,">").replace(/").replace(/</g,"<").replace(/"/g,"\"").replace(/&/g,"&")},trim:function(value){return String(value).replace(trimRe,"")},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},capitalize:function(value){return !value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase()},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args)}else{return eval(fn).call(window,value)}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split(".");var whole=ps[0];var sub=ps[1]?"."+ps[1]:".00";var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,"$1"+","+"$2")}v=whole+sub;if(v.charAt(0)=="-"){return"-$"+v.substr(1)}return"$"+v},date:function(v,format){if(!v){return""}if(!Ext.isDate(v)){v=new Date(Date.parse(v))}return v.dateFormat(format||"m/d/Y")},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format)}},stripTagsRE:/<\/?[^>]+>/gi,stripTags:function(v){return !v?v:String(v).replace(this.stripTagsRE,"")},stripScriptsRe:/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,stripScripts:function(v){return !v?v:String(v).replace(this.stripScriptsRe,"")},fileSize:function(size){if(size<1024){return size+" bytes"}else{if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB"}else{return(Math.round(((size*10)/1048576))/10)+" MB"}}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=new Function("v","return v "+a+";")}return fns[a](v)}}(),nl2br:function(v){return v===undefined||v===null?"":v.replace(/\n/g,"
")}}}(); -Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var P=this.html;P=["",P,""].join("");var O=/]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/;var N=/^]*?for="(.*?)"/;var L=/^]*?if="(.*?)"/;var J=/^]*?exec="(.*?)"/;var C,B=0;var G=[];while(C=P.match(O)){var M=C[0].match(N);var K=C[0].match(L);var I=C[0].match(J);var E=null,H=null,D=null;var A=M&&M[1]?M[1]:"";if(K){E=K&&K[1]?K[1]:null;if(E){H=new Function("values","parent","xindex","xcount","with(values){ return "+(Ext.util.Format.htmlDecode(E))+"; }")}}if(I){E=I&&I[1]?I[1]:null;if(E){D=new Function("values","parent","xindex","xcount","with(values){ "+(Ext.util.Format.htmlDecode(E))+"; }")}}if(A){switch(A){case".":A=new Function("values","parent","with(values){ return values; }");break;case"..":A=new Function("values","parent","with(values){ return parent; }");break;default:A=new Function("values","parent","with(values){ return "+A+"; }")}}G.push({id:B,target:A,exec:D,test:H,body:C[1]||""});P=P.replace(C[0],"{xtpl"+B+"}");++B}for(var F=G.length-1;F>=0;--F){this.compileTpl(G[F])}this.master=G[G.length-1];this.tpls=G};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(A,H,G,D,C){var J=this.tpls[A];if(J.test&&!J.test.call(this,H,G,D,C)){return""}if(J.exec&&J.exec.call(this,H,G,D,C)){return""}var I=J.target?J.target.call(this,H,G):H;G=J.target?H:G;if(J.target&&Ext.isArray(I)){var B=[];for(var E=0,F=I.length;E=0;--E){D[H[E].selectorText]=H[E]}}catch(G){}},getRules:function(F){if(D==null||F){D={};var H=C.styleSheets;for(var G=0,E=H.length;G=37&&A<=40){C.stopEvent()}},relay:function(C){var A=C.getKey();var B=this.keyToHandler[A];if(B&&this[B]){if(this.doRelay(C,this[B],B)!==true){C[this.defaultEventAction]()}}},doRelay:function(C,B,A){return B.call(this.scope||this,C)},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},enable:function(){if(this.disabled){if(this.forceKeyDown||Ext.isIE||Ext.isSafari3||Ext.isAir){this.el.on("keydown",this.relay,this)}else{this.el.on("keydown",this.prepareEvent,this);this.el.on("keypress",this.relay,this)}this.disabled=false}},disable:function(){if(!this.disabled){if(this.forceKeyDown||Ext.isIE||Ext.isSafari3||Ext.isAir){this.el.un("keydown",this.relay)}else{this.el.un("keydown",this.prepareEvent);this.el.un("keypress",this.relay)}this.disabled=true}}}; -Ext.KeyMap=function(C,B,A){this.el=Ext.get(C);this.eventName=A||"keydown";this.bindings=[];if(B){this.addBinding(B)}this.enable()};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(D){if(Ext.isArray(D)){for(var F=0,H=D.length;F=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true}}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true}}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(E,D,C){this.leftConstraint=E;this.rightConstraint=D;this.minX=this.initPageX-E;this.maxX=this.initPageX+D;if(C){this.setXTicks(this.initPageX,C)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(C,E,D){this.topConstraint=C;this.bottomConstraint=E;this.minY=this.initPageY-C;this.maxY=this.initPageY+E;if(D){this.setYTicks(this.initPageY,D)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(I,F){if(!F){return I}else{if(F[0]>=I){return F[0]}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E]}}return F[F.length-1]}}},toString:function(){return("DragDrop "+this.id)}}})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var A=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(D,C){for(var E in this.ids){for(var B in this.ids[E]){var F=this.ids[E][B];if(!this.isTypeOfDD(F)){continue}F[D].apply(F,C)}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true)},_onResize:function(B){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(C,B){if(!this.initialized){this.init()}if(!this.ids[B]){this.ids[B]={}}this.ids[B][C.id]=C},removeDDFromGroup:function(D,B){if(!this.ids[B]){this.ids[B]={}}var C=this.ids[B];if(C&&C[D.id]){delete C[D.id]}},_remove:function(C){for(var B in C.groups){if(B&&this.ids[B][C.id]){delete this.ids[B][C.id]}}delete this.handleIds[C.id]},regHandle:function(C,B){if(!this.handleIds[C]){this.handleIds[C]={}}this.handleIds[C][B]=B},isDragDrop:function(B){return(this.getDDById(B))?true:false},getRelated:function(F,C){var E=[];for(var D in F.groups){for(j in this.ids[D]){var B=this.ids[D][j];if(!this.isTypeOfDD(B)){continue}if(!C||B.isTarget){E[E.length]=B}}}return E},isLegalTarget:function(F,E){var C=this.getRelated(F,true);for(var D=0,B=C.length;Dthis.clickPixelThresh||B>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(D);this.dragCurrent.onDrag(D);if(!this.dragCurrent.moveOnly){this.fireEvents(D,false)}}this.stopEvent(D);return true},fireEvents:function(K,L){var N=this.dragCurrent;if(!N||N.isLocked()){return }var O=K.getPoint();var B=[];var E=[];var I=[];var G=[];var D=[];for(var F in this.dragOvers){var C=this.dragOvers[F];if(!this.isTypeOfDD(C)){continue}if(!this.isOverTarget(O,C,this.mode)){E.push(C)}B[F]=true;delete this.dragOvers[F]}for(var M in N.groups){if("string"!=typeof M){continue}for(F in this.ids[M]){var H=this.ids[M][F];if(!this.isTypeOfDD(H)){continue}if(H.isTarget&&!H.isLocked()&&H!=N){if(this.isOverTarget(O,H,this.mode)){if(L){G.push(H)}else{if(!B[H.id]){D.push(H)}else{I.push(H)}this.dragOvers[H.id]=H}}}}}if(this.mode){if(E.length){N.b4DragOut(K,E);N.onDragOut(K,E)}if(D.length){N.onDragEnter(K,D)}if(I.length){N.b4DragOver(K,I);N.onDragOver(K,I)}if(G.length){N.b4DragDrop(K,G);N.onDragDrop(K,G)}}else{var J=0;for(F=0,J=E.length;F2000){}else{setTimeout(B._addListeners,10);if(document&&document.body){B._timeoutCount+=1}}}},handleWasClicked:function(B,D){if(this.isHandle(D,B.id)){return true}else{var C=B.parentNode;while(C){if(this.isHandle(D,C.id)){return true}else{C=C.parentNode}}}return false}}}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners()}Ext.dd.DD=function(C,A,B){if(C){this.init(C,A,B)}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D)},setDelta:function(B,A){this.deltaX=B;this.deltaY=A},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B)},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);var B=C.dom?C:Ext.fly(C,"_dd");if(!this.deltaSetXY){var H=[E.x,E.y];B.setXY(H);var D=B.getLeft(true);var A=B.getTop(true);this.deltaSetXY=[D-E.x,A-E.y]}else{B.setLeftTop(E.x+this.deltaSetXY[0],E.y+this.deltaSetXY[1])}this.cachePosition(E.x,E.y);this.autoScroll(E.x,E.y,C.offsetHeight,C.offsetWidth);return E},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A}else{var C=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1]}},autoScroll:function(J,I,E,K){if(this.scroll){var L=Ext.lib.Dom.getViewHeight();var B=Ext.lib.Dom.getViewWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-Dthis.maxX){A=this.maxX}}if(this.constrainY){if(Dthis.maxY){D=this.maxY}}A=this.getTick(A,this.xTicks);D=this.getTick(D,this.yTicks);return{x:A,y:D}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false)},b4MouseDown:function(A){this.autoOffset(A.getPageX(),A.getPageY())},b4Drag:function(A){this.setDragElPos(A.getPageX(),A.getPageY())},toString:function(){return("DD "+this.id)}});Ext.dd.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame()}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this;var A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame()},50);return }var D=this.getDragEl();if(!D){D=document.createElement("div");D.id=this.dragElId;var C=D.style;C.position="absolute";C.visibility="hidden";C.cursor="move";C.border="2px solid #aaa";C.zIndex=999;A.insertBefore(D,A.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2))}this.setDragElPos(E,D);Ext.fly(A).show()},_resizeProxy:function(){if(this.resizeFrame){var A=this.getEl();Ext.fly(this.getDragEl()).setSize(A.offsetWidth,A.offsetHeight)}},b4MouseDown:function(B){var A=B.getPageX();var C=B.getPageY();this.autoOffset(A,C);this.setDragElPos(A,C)},b4StartDrag:function(A,B){this.showFrame(A,B)},b4EndDrag:function(A){Ext.fly(this.getDragEl()).hide()},endDrag:function(C){var B=this.getEl();var A=this.getDragEl();A.style.visibility="";this.beforeMove();B.style.visibility="hidden";Ext.dd.DDM.moveToEl(B,A);A.style.visibility="hidden";B.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.dd.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B)}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{toString:function(){return("DDTarget "+this.id)}}); -Ext.dd.DragTracker=function(A){Ext.apply(this,A);this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag");this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el){this.initEl(this.el)}};Ext.extend(Ext.dd.DragTracker,Ext.util.Observable,{active:false,tolerance:5,autoStart:false,initEl:function(A){this.el=Ext.get(A);A.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this)},onMouseDown:function(C,B){if(this.fireEvent("mousedown",this,C)!==false&&this.onBeforeStart(C)!==false){this.startXY=this.lastXY=C.getXY();this.dragTarget=this.delegate?B:this.el.dom;C.preventDefault();var A=Ext.getDoc();A.on("mouseup",this.onMouseUp,this);A.on("mousemove",this.onMouseMove,this);A.on("selectstart",this.stopSelect,this);if(this.autoStart){this.timer=this.triggerStart.defer(this.autoStart===true?1000:this.autoStart,this)}}},onMouseMove:function(D,C){D.preventDefault();var B=D.getXY(),A=this.startXY;this.lastXY=B;if(!this.active){if(Math.abs(A[0]-B[0])>this.tolerance||Math.abs(A[1]-B[1])>this.tolerance){this.triggerStart()}else{return }}this.fireEvent("mousemove",this,D);this.onDrag(D);this.fireEvent("drag",this,D)},onMouseUp:function(B){var A=Ext.getDoc();A.un("mousemove",this.onMouseMove,this);A.un("mouseup",this.onMouseUp,this);A.un("selectstart",this.stopSelect,this);B.preventDefault();this.clearStart();this.active=false;delete this.elRegion;this.fireEvent("mouseup",this,B);this.onEnd(B);this.fireEvent("dragend",this,B)},triggerStart:function(A){this.clearStart();this.active=true;this.onStart(this.startXY);this.fireEvent("dragstart",this,this.startXY)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(A){A.stopEvent();return false},onBeforeStart:function(A){},onStart:function(A){},onDrag:function(A){},onEnd:function(A){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(A){return A?this.constrainModes[A].call(this,this.lastXY):this.lastXY},getOffset:function(C){var B=this.getXY(C);var A=this.startXY;return[A[0]-B[0],A[1]-B[1]]},constrainModes:{"point":function(B){if(!this.elRegion){this.elRegion=this.getDragCt().getRegion()}var A=this.dragRegion;A.left=B[0];A.top=B[1];A.right=B[0];A.bottom=B[1];A.constrainTo(this.elRegion);return[A.left,A.top]}}}); -Ext.dd.ScrollManager=function(){var C=Ext.dd.DragDropMgr;var E={};var B=null;var H={};var G=function(K){B=null;A()};var I=function(){if(C.dragCurrent){C.refreshCache(C.dragCurrent.groups)}};var D=function(){if(C.dragCurrent){var K=Ext.dd.ScrollManager;var L=H.el.ddScrollConfig?H.el.ddScrollConfig.increment:K.increment;if(!K.animate){if(H.el.scroll(H.dir,L)){I()}}else{H.el.scroll(H.dir,L,true,K.animDuration,I)}}};var A=function(){if(H.id){clearInterval(H.id)}H.id=0;H.el=null;H.dir=""};var F=function(L,K){A();H.el=L;H.dir=K;var M=(L.ddScrollConfig&&L.ddScrollConfig.frequency)?L.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;H.id=setInterval(D,M)};var J=function(N,P){if(P||!C.dragCurrent){return }var Q=Ext.dd.ScrollManager;if(!B||B!=C.dragCurrent){B=C.dragCurrent;Q.refreshCache()}var R=Ext.lib.Event.getXY(N);var S=new Ext.lib.Point(R[0],R[1]);for(var L in E){var M=E[L],K=M._region;var O=M.ddScrollConfig?M.ddScrollConfig:Q;if(K&&K.contains(S)&&M.isScrollable()){if(K.bottom-S.y<=O.vthresh){if(H.el!=M){F(M,"down")}return }else{if(K.right-S.x<=O.hthresh){if(H.el!=M){F(M,"left")}return }else{if(S.y-K.top<=O.vthresh){if(H.el!=M){F(M,"up")}return }else{if(S.x-K.left<=O.hthresh){if(H.el!=M){F(M,"right")}return }}}}}}A()};C.fireEvents=C.fireEvents.createSequence(J,C);C.stopDrag=C.stopDrag.createSequence(G,C);return{register:function(M){if(Ext.isArray(M)){for(var L=0,K=M.length;L]+>/gi,asText:function(A){return String(A).replace(this.stripTagsRE,"")},asUCText:function(A){return String(A).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(A){return String(A).toUpperCase()},asDate:function(A){if(!A){return 0}if(Ext.isDate(A)){return A.getTime()}return Date.parse(String(A))},asFloat:function(A){var B=parseFloat(String(A).replace(/,/g,""));if(isNaN(B)){B=0}return B},asInt:function(A){var B=parseInt(String(A).replace(/,/g,""));if(isNaN(B)){B=0}return B}}; -Ext.data.Record=function(A,B){this.id=(B||B===0)?B:++Ext.data.Record.AUTO_ID;this.data=A};Ext.data.Record.create=function(E){var C=Ext.extend(Ext.data.Record,{});var D=C.prototype;D.fields=new Ext.util.MixedCollection(false,function(F){return F.name});for(var B=0,A=E.length;BG?1:(H0},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes()},appendChild:function(E){var F=false;if(Ext.isArray(E)){F=E}else{if(arguments.length>1){F=arguments}}if(F){for(var D=0,A=F.length;D0){var F=D?function(){E.apply(D,arguments)}:E;C.sort(F);for(var B=0;BG+L.left){H=G-I-this.shadowOffset;E=true}if((F+D)>C+L.top){F=C-D-this.shadowOffset;E=true}if(H=J){F=J-D-5}}K=[H,F];this.storeXY(K);A.setXY.call(this,K);this.sync()}}},isVisible:function(){return this.visible},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("")}else{if(this.lastXY){A.setXY.call(this,this.lastXY)}else{if(this.lastLT){A.setLeftTop.call(this,this.lastLT[0],this.lastLT[1])}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false)}else{this.setLeftTop(-10000,-10000)}},setVisible:function(E,D,G,H,F){if(E){this.showAction()}if(D&&E){var C=function(){this.sync(true);if(H){H()}}.createDelegate(this);A.setVisible.call(this,true,true,G,C,F)}else{if(!E){this.hideUnders(true)}var C=H;if(D){C=function(){this.hideAction();if(H){H()}}.createDelegate(this)}A.setVisible.call(this,E,D,G,C,F);if(E){this.sync(true)}else{if(!D){this.hideAction()}}}},storeXY:function(C){delete this.lastLT;this.lastXY=C},storeLeftTop:function(D,C){delete this.lastXY;this.lastLT=[D,C]},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments)},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(C){this.storeLeftTop(C,this.getTop(true));A.setLeft.apply(this,arguments);this.sync()},setTop:function(C){this.storeLeftTop(this.getLeft(true),C);A.setTop.apply(this,arguments);this.sync()},setLeftTop:function(D,C){this.storeLeftTop(D,C);A.setLeftTop.apply(this,arguments);this.sync()},setXY:function(F,D,G,H,E){this.fixDisplay();this.beforeAction();this.storeXY(F);var C=this.createCB(H);A.setXY.call(this,F,D,G,C,E);if(!D){C()}},createCB:function(D){var C=this;return function(){C.constrainXY();C.sync(true);if(D){D()}}},setX:function(C,D,F,G,E){this.setXY([C,this.getY()],D,F,G,E)},setY:function(G,C,E,F,D){this.setXY([this.getX(),G],C,E,F,D)},setSize:function(E,F,D,H,I,G){this.beforeAction();var C=this.createCB(I);A.setSize.call(this,E,F,D,H,C,G);if(!D){C()}},setWidth:function(E,D,G,H,F){this.beforeAction();var C=this.createCB(H);A.setWidth.call(this,E,D,G,C,F);if(!D){C()}},setHeight:function(E,D,G,H,F){this.beforeAction();var C=this.createCB(H);A.setHeight.call(this,E,D,G,C,F);if(!D){C()}},setBounds:function(J,H,K,D,I,F,G,E){this.beforeAction();var C=this.createCB(G);if(!I){this.storeXY([J,H]);A.setXY.call(this,[J,H]);A.setSize.call(this,K,D,I,F,C,E);C()}else{A.setBounds.call(this,J,H,K,D,I,F,C,E)}return this},setZIndex:function(C){this.zindex=C;this.setStyle("z-index",C+2);if(this.shadow){this.shadow.setZIndex(C+1)}if(this.shim){this.shim.setStyle("z-index",C)}}})})(); -Ext.Shadow=function(C){Ext.apply(this,C);if(typeof this.mode!="string"){this.mode=this.defaultMode}var D=this.offset,B={h:0};var A=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":B.w=0;B.l=B.t=D;B.t-=1;if(Ext.isIE){B.l-=this.offset+A;B.t-=this.offset+A;B.w-=A;B.h-=A;B.t+=1}break;case"sides":B.w=(D*2);B.l=-D;B.t=D-1;if(Ext.isIE){B.l-=(this.offset-A);B.t-=this.offset+A;B.l+=1;B.w-=(this.offset-A)*2;B.w-=A+1;B.h-=1}break;case"frame":B.w=B.h=(D*2);B.l=B.t=-D;B.t+=1;B.h-=2;if(Ext.isIE){B.l-=(this.offset-A);B.t-=(this.offset-A);B.l+=1;B.w-=(this.offset+A+1);B.h-=(this.offset+A);B.h+=1}break}this.adjusts=B};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(A){A=Ext.get(A);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=A.dom){this.el.insertBefore(A)}}this.el.setStyle("z-index",this.zIndex||parseInt(A.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"}this.realign(A.getLeft(true),A.getTop(true),A.getWidth(),A.getHeight());this.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(A,M,L,D){if(!this.el){return }var I=this.adjusts,G=this.el.dom,N=G.style;var E=0;N.left=(A+I.l)+"px";N.top=(M+I.t)+"px";var K=(L+I.w),C=(D+I.h),F=K+"px",J=C+"px";if(N.width!=F||N.height!=J){N.width=F;N.height=J;if(!Ext.isIE){var H=G.childNodes;var B=Math.max(0,(K-12))+"px";H[0].childNodes[1].style.width=B;H[1].childNodes[1].style.width=B;H[2].childNodes[1].style.width=B;H[1].style.height=Math.max(0,(C-12))+"px"}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el}},setZIndex:function(A){this.zIndex=A;if(this.el){this.el.setStyle("z-index",A)}}};Ext.Shadow.Pool=function(){var B=[];var A=Ext.isIE?"
":"
";return{pull:function(){var C=B.shift();if(!C){C=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,A));C.autoBoxAdjust=false}return C},push:function(C){B.push(C)}}}(); -Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents("resize","move")},boxReady:false,deferHeight:false,setSize:function(B,D){if(typeof B=="object"){D=B.height;B=B.width}if(!this.boxReady){this.width=B;this.height=D;return this}if(this.lastSize&&this.lastSize.width==B&&this.lastSize.height==D){return this}this.lastSize={width:B,height:D};var C=this.adjustSize(B,D);var F=C.width,A=C.height;if(F!==undefined||A!==undefined){var E=this.getResizeEl();if(!this.deferHeight&&F!==undefined&&A!==undefined){E.setSize(F,A)}else{if(!this.deferHeight&&A!==undefined){E.setHeight(A)}else{if(F!==undefined){E.setWidth(F)}}}this.onResize(F,A,B,D);this.fireEvent("resize",this,F,A,B,D)}return this},setWidth:function(A){return this.setSize(A)},setHeight:function(A){return this.setSize(undefined,A)},getSize:function(){return this.el.getSize()},getPosition:function(A){if(A===true){return[this.el.getLeft(true),this.el.getTop(true)]}return this.xy||this.el.getXY()},getBox:function(A){var B=this.el.getSize();if(A===true){B.x=this.el.getLeft(true);B.y=this.el.getTop(true)}else{var C=this.xy||this.el.getXY();B.x=C[0];B.y=C[1]}return B},updateBox:function(A){this.setSize(A.width,A.height);this.setPagePosition(A.x,A.y);return this},getResizeEl:function(){return this.resizeEl||this.el},getPositionEl:function(){return this.positionEl||this.el},setPosition:function(A,F){if(A&&typeof A[1]=="number"){F=A[1];A=A[0]}this.x=A;this.y=F;if(!this.boxReady){return this}var B=this.adjustPosition(A,F);var E=B.x,D=B.y;var C=this.getPositionEl();if(E!==undefined||D!==undefined){if(E!==undefined&&D!==undefined){C.setLeftTop(E,D)}else{if(E!==undefined){C.setLeft(E)}else{if(D!==undefined){C.setTop(D)}}}this.onPosition(E,D);this.fireEvent("move",this,E,D)}return this},setPagePosition:function(A,C){if(A&&typeof A[1]=="number"){C=A[1];A=A[0]}this.pageX=A;this.pageY=C;if(!this.boxReady){return }if(A===undefined||C===undefined){return }var B=this.el.translatePoints(A,C);this.setPosition(B.left,B.top);return this},onRender:function(B,A){Ext.BoxComponent.superclass.onRender.call(this,B,A);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);this.boxReady=true;this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.el.getWidth(),this.autoHeight?undefined:this.el.getHeight());return this},onResize:function(D,B,A,C){},onPosition:function(A,B){},adjustSize:function(A,B){if(this.autoWidth){A="auto"}if(this.autoHeight){B="auto"}return{width:A,height:B}},adjustPosition:function(A,B){return{x:A,y:B}}});Ext.reg("box",Ext.BoxComponent); -Ext.SplitBar=function(C,E,B,D,A){this.el=Ext.get(C,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(E,true);this.orientation=B||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!A){this.proxy=Ext.SplitBar.createProxy(this.orientation)}else{this.proxy=Ext.get(A).dom}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=D||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h")}else{this.placement=D||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v")}this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this)};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(A,E){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:" "},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var C=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var D=C-this.activeMinSize;var B=Math.max(this.activeMaxSize-C,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?D:B,this.placement==Ext.SplitBar.LEFT?B:D);this.dd.setYConstraint(0,0)}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?D:B,this.placement==Ext.SplitBar.TOP?B:D)}this.dragSpecs.startSize=C;this.dragSpecs.startPoint=[A,E];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,A,E)},onEndProxyDrag:function(C){Ext.get(this.proxy).setDisplayed(false);var B=Ext.lib.Event.getXY(C);if(this.overlay){this.overlay.remove();delete this.overlay}var A;if(this.orientation==Ext.SplitBar.HORIZONTAL){A=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?B[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-B[0])}else{A=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?B[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-B[1])}A=Math.min(Math.max(A,this.activeMinSize),this.activeMaxSize);if(A!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,A)!==false){this.adapter.setElementSize(this,A);this.fireEvent("moved",this,A);this.fireEvent("resize",this,A)}}},getAdapter:function(){return this.adapter},setAdapter:function(A){this.adapter=A;this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(A){this.minSize=A},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(A){this.maxSize=A},setCurrentSize:function(B){var A=this.animate;this.animate=false;this.adapter.setElementSize(this,B);this.animate=A},destroy:function(A){if(this.shim){this.shim.remove()}this.dd.unreg();Ext.removeNode(this.proxy);if(A){this.el.remove()}}});Ext.SplitBar.createProxy=function(B){var C=new Ext.Element(document.createElement("div"));C.unselectable();var A="x-splitbar-proxy";C.addClass(A+" "+(B==Ext.SplitBar.HORIZONTAL?A+"-h":A+"-v"));document.body.appendChild(C.dom);return C.dom};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(A){},getElementSize:function(A){if(A.orientation==Ext.SplitBar.HORIZONTAL){return A.resizingEl.getWidth()}else{return A.resizingEl.getHeight()}},setElementSize:function(B,A,C){if(B.orientation==Ext.SplitBar.HORIZONTAL){if(!B.animate){B.resizingEl.setWidth(A);if(C){C(B,A)}}else{B.resizingEl.setWidth(A,true,0.1,C,"easeOut")}}else{if(!B.animate){B.resizingEl.setHeight(A);if(C){C(B,A)}}else{B.resizingEl.setHeight(A,true,0.1,C,"easeOut")}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(A){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(A)};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(A){this.basic.init(A)},getElementSize:function(A){return this.basic.getElementSize(A)},setElementSize:function(B,A,C){this.basic.setElementSize(B,A,this.moveSplitter.createDelegate(this,[B]))},moveSplitter:function(A){var B=Ext.SplitBar;switch(A.placement){case B.LEFT:A.el.setX(A.resizingEl.getRight());break;case B.RIGHT:A.el.setStyle("right",(this.container.getWidth()-A.resizingEl.getLeft())+"px");break;case B.TOP:A.el.setY(A.resizingEl.getBottom());break;case B.BOTTOM:A.el.setY(A.resizingEl.getTop()-A.el.getHeight());break}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4; -Ext.Container=Ext.extend(Ext.BoxComponent,{autoDestroy:true,defaultType:"panel",initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var A=this.items;if(A){delete this.items;if(Ext.isArray(A)){this.add.apply(this,A)}else{this.add(A)}}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout()}},setLayout:function(A){if(this.layout&&this.layout!=A){this.layout.setContainer(null)}this.initItems();this.layout=A;A.setContainer(this)},render:function(){Ext.Container.superclass.render.apply(this,arguments);if(this.layout){if(typeof this.layout=="string"){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig)}this.setLayout(this.layout);if(this.activeItem!==undefined){var A=this.activeItem;delete this.activeItem;this.layout.setActiveItem(A);return }}if(!this.ownerCt){this.doLayout()}if(this.monitorResize===true){Ext.EventManager.onWindowResize(this.doLayout,this,[false])}},getLayoutTarget:function(){return this.el},getComponentId:function(A){return A.itemId||A.id},add:function(C){if(!this.items){this.initItems()}var B=arguments,A=B.length;if(A>1){for(var D=0;D2){for(var E=A-1;E>=1;--E){this.insert(D,B[E])}return }var F=this.lookupComponent(this.applyDefaults(C));if(F.ownerCt==this&&this.items.indexOf(F)0){B.setSize(A)}}});Ext.Container.LAYOUTS["fit"]=Ext.layout.FitLayout; -Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,renderHidden:true,setActiveItem:function(A){A=this.container.getComponent(A);if(this.activeItem!=A){if(this.activeItem){this.activeItem.hide()}this.activeItem=A;A.show();this.layout()}},renderAll:function(A,B){if(this.deferredRender){this.renderItem(this.activeItem,undefined,B)}else{Ext.layout.CardLayout.superclass.renderAll.call(this,A,B)}}});Ext.Container.LAYOUTS["card"]=Ext.layout.CardLayout; -Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,getAnchorViewSize:function(A,B){return B.dom==document.body?B.getViewSize():B.getStyleSize()},onLayout:function(F,I){Ext.layout.AnchorLayout.superclass.onLayout.call(this,F,I);var O=this.getAnchorViewSize(F,I);var M=O.width,E=O.height;if(M<20||E<20){return }var B,K;if(F.anchorSize){if(typeof F.anchorSize=="number"){B=F.anchorSize}else{B=F.anchorSize.width;K=F.anchorSize.height}}else{B=F.initialConfig.width;K=F.initialConfig.height}var H=F.items.items,G=H.length,D,J,L,C,A;for(D=0;D ");B.disableFormats=true;B.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=B}this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"});this.collapsedEl.enableDisplayMode("block");if(this.collapseMode=="mini"){this.collapsedEl.addClass("x-layout-cmini-"+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "});this.miniCollapsedEl.addClassOnOver("x-layout-mini-over");this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:true})}else{var A=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},true);A.addClassOnOver("x-tool-expand-"+this.position+"-over");A.on("click",this.onExpandClick,this,{stopEvent:true});if(this.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this)}}}return this.collapsedEl},onExpandClick:function(A){if(this.isSlid){this.afterSlideIn();this.panel.expand(false)}else{this.panel.expand()}},onCollapseClick:function(A){this.panel.collapse()},beforeCollapse:function(B,A){this.lastAnim=A;if(this.splitEl){this.splitEl.hide()}this.getCollapsedEl().show();this.panel.el.setStyle("z-index",100);this.isCollapsed=true;this.layout.layout()},onCollapse:function(A){this.panel.el.setStyle("z-index",1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility="visible"}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:0.2})}this.state.collapsed=true;this.panel.saveState()},beforeExpand:function(A){var B=this.getCollapsedEl();this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,B.getHeight())}else{this.panel.setSize(B.getWidth(),undefined)}B.hide();B.dom.style.visibility="hidden";this.panel.el.setStyle("z-index",100)},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show()}this.layout.layout();this.panel.el.setStyle("z-index",1);this.state.collapsed=false;this.panel.saveState()},collapseClick:function(A){if(this.isSlid){A.stopPropagation();this.slideIn()}else{A.stopPropagation();this.slideOut()}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide()}else{if(this.splitEl){this.splitEl.hide()}}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show()}else{if(this.splitEl){this.splitEl.show()}}},isVisible:function(){return !this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(A){this.panel=A},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(A){var B=this.getCollapsedEl();B.setLeftTop(A.x,A.y);B.setSize(A.width,A.height)},applyLayout:function(A){if(this.isCollapsed){this.applyLayoutCollapsed(A)}else{this.panel.setPosition(A.x,A.y);this.panel.setSize(A.width,A.height)}},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var A=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(B){if(!B.within(this.el,true)){A.delay(500)}},"mouseover":function(B){A.cancel()},scope:this}}this.el.on(this.autoHideHd)}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover)}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return }this.isSlid=true;var A=this.panel.tools;if(A&&A.toggle){A.toggle.hide()}this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,this.collapsedEl.getHeight())}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined)}this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",102);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:true})}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var A=this.panel.tools;if(A&&A.toggle){A.toggle.show()}},slideIn:function(A){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(A);return }this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(A)},scope:this,block:true})}else{this.el.hide();this.afterSlideIn()}},slideInIf:function(A){if(!A.within(this.el)){this.slideIn()}},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){var A=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break}},getExpandAdj:function(){var B=this.collapsedEl,A=this.cmargins;switch(this.position){case"west":return[-(A.right+B.getWidth()+A.left),0];break;case"east":return[A.right+B.getWidth()+A.left,0];break;case"north":return[0,-(A.top+A.bottom+B.getHeight())];break;case"south":return[0,A.top+A.bottom+B.getHeight()];break}}};Ext.layout.BorderLayout.SplitRegion=function(B,A,C){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,B,A,C);this.applyLayout=this.applyFns[C]};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;this.panel.setPosition(C.x,C.y);var A=D.offsetWidth;B.left=(C.x+C.width-A)+"px";B.top=(C.y)+"px";B.height=Math.max(0,C.height)+"px";this.panel.setSize(C.width-A,C.height)},east:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetWidth;this.panel.setPosition(C.x+A,C.y);B.left=(C.x)+"px";B.top=(C.y)+"px";B.height=Math.max(0,C.height)+"px";this.panel.setSize(C.width-A,C.height)},north:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetHeight;this.panel.setPosition(C.x,C.y);B.left=(C.x)+"px";B.top=(C.y+C.height-A)+"px";B.width=Math.max(0,C.width)+"px";this.panel.setSize(C.width,C.height-A)},south:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetHeight;this.panel.setPosition(C.x,C.y+A);B.left=(C.x)+"px";B.top=(C.y)+"px";B.width=Math.max(0,C.width)+"px";this.panel.setSize(C.width,C.height-A)}},render:function(A,C){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,A,C);var D=this.position;this.splitEl=A.createChild({cls:"x-layout-split x-layout-split-"+D,html:" ",id:this.panel.id+"-xsplit"});if(this.collapseMode=="mini"){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+D,html:" "});this.miniSplitEl.addClassOnOver("x-layout-mini-over");this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:true})}var B=this.splitSettings[D];this.split=new Ext.SplitBar(this.splitEl.dom,C.el,B.orientation);this.split.placement=B.placement;this.split.getMaximumSize=this[B.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[B.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[B.maxProp];if(C.hidden){this.splitEl.hide()}if(this.useSplitTips){this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip}if(this.collapsible){this.splitEl.on("dblclick",this.onCollapseClick,this)}},getSize:function(){if(this.isCollapsed){return this.collapsedEl.getSize()}var A=this.panel.getSize();if(this.position=="north"||this.position=="south"){A.height+=this.splitEl.dom.offsetHeight}else{A.width+=this.splitEl.dom.offsetWidth}return A},getHMaxSize:function(){var B=this.maxSize||10000;var A=this.layout.center;return Math.min(B,(this.el.getWidth()+A.el.getWidth())-A.getMinWidth())},getVMaxSize:function(){var B=this.maxSize||10000;var A=this.layout.center;return Math.min(B,(this.el.getHeight()+A.el.getHeight())-A.getMinHeight())},onSplitMove:function(B,A){var C=this.panel.getSize();this.lastSplitSize=A;if(this.position=="north"||this.position=="south"){this.panel.setSize(C.width,A);this.state.height=A}else{this.panel.setSize(A,C.height);this.state.width=A}this.layout.layout();this.panel.saveState();return false},getSplitBar:function(){return this.split}});Ext.Container.LAYOUTS["border"]=Ext.layout.BorderLayout; -Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",getAnchorViewSize:function(A,B){return A.body.getStyleSize()},setContainer:function(B){Ext.layout.FormLayout.superclass.setContainer.call(this,B);if(B.labelAlign){B.addClass("x-form-label-"+B.labelAlign)}if(B.hideLabels){this.labelStyle="display:none";this.elementStyle="padding-left:0;";this.labelAdjust=0}else{this.labelSeparator=B.labelSeparator||this.labelSeparator;B.labelWidth=B.labelWidth||100;if(typeof B.labelWidth=="number"){var C=(typeof B.labelPad=="number"?B.labelPad:5);this.labelAdjust=B.labelWidth+C;this.labelStyle="width:"+B.labelWidth+"px;";this.elementStyle="padding-left:"+(B.labelWidth+C)+"px"}if(B.labelAlign=="top"){this.labelStyle="width:auto;";this.labelAdjust=0;this.elementStyle="padding-left:0;"}}if(!this.fieldTpl){var A=new Ext.Template("
","","
","
","
");A.disableFormats=true;A.compile();Ext.layout.FormLayout.prototype.fieldTpl=A}},renderItem:function(D,A,C){if(D&&!D.rendered&&D.isFormField&&D.inputType!="hidden"){var B=[D.id,D.fieldLabel,D.labelStyle||this.labelStyle||"",this.elementStyle||"",typeof D.labelSeparator=="undefined"?this.labelSeparator:D.labelSeparator,(D.itemCls||this.container.itemCls||"")+(D.hideLabel?" x-hide-label":""),D.clearCls||"x-form-clear-left"];if(typeof A=="number"){A=C.dom.childNodes[A]||null}if(A){this.fieldTpl.insertBefore(A,B)}else{this.fieldTpl.append(C,B)}D.render("x-form-el-"+D.id)}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments)}},adjustWidthAnchor:function(B,A){return B-(A.isFormField?(A.hideLabel?0:this.labelAdjust):0)},isValidParent:function(B,A){return true}});Ext.Container.LAYOUTS["form"]=Ext.layout.FormLayout; -Ext.layout.Accordion=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,renderItem:function(A){if(this.animate===false){A.animCollapse=false}A.collapsible=true;if(this.autoWidth){A.autoWidth=true}if(this.titleCollapse){A.titleCollapse=true}if(this.hideCollapseTool){A.hideCollapseTool=true}if(this.collapseFirst!==undefined){A.collapseFirst=this.collapseFirst}if(!this.activeItem&&!A.collapsed){this.activeItem=A}else{if(this.activeItem){A.collapsed=true}}Ext.layout.Accordion.superclass.renderItem.apply(this,arguments);A.header.addClass("x-accordion-hd");A.on("beforeexpand",this.beforeExpand,this)},beforeExpand:function(C,B){var A=this.activeItem;if(A){if(this.sequence){delete this.activeItem;if(!A.collapsed){A.collapse({callback:function(){C.expand(B||true)},scope:this});return false}}else{A.collapse(this.animate)}}this.activeItem=C;if(this.activeOnTop){C.el.dom.parentNode.insertBefore(C.el.dom,C.el.dom.parentNode.firstChild)}this.layout()},setItemSize:function(F,E){if(this.fill&&F){var B=this.container.items.items;var D=0;for(var C=0,A=B.length;C=B)||(this.cells[C]&&this.cells[C][A])){if(B&&A>=B){C++;A=0}else{A++}}return[A,C]},renderItem:function(C,A,B){if(C&&!C.rendered){C.render(this.getNextCell(C))}},isValidParent:function(B,A){return true}});Ext.Container.LAYOUTS["table"]=Ext.layout.TableLayout; -Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:"x-abs-layout-item",isForm:false,setContainer:function(A){Ext.layout.AbsoluteLayout.superclass.setContainer.call(this,A);if(A.isXType("form")){this.isForm=true}},onLayout:function(A,B){if(this.isForm){A.body.position()}else{B.position()}Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,A,B)},getAnchorViewSize:function(A,B){return this.isForm?A.body.getStyleSize():Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this,A,B)},isValidParent:function(B,A){return this.isForm?true:Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this,B,A)},adjustWidthAnchor:function(B,A){return B?B-A.getPosition(true)[0]:B},adjustHeightAnchor:function(B,A){return B?B-A.getPosition(true)[1]:B}});Ext.Container.LAYOUTS["absolute"]=Ext.layout.AbsoluteLayout; -Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName("html")[0].className+=" x-viewport";this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll="no";this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el},fireResize:function(A,B){this.fireEvent("resize",this,A,B,A,B)}});Ext.reg("viewport",Ext.Viewport); -Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:"right",collapsed:false,collapseFirst:true,minButtonWidth:75,elements:"body",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",disabledClass:"",deferHeight:true,expandDefaults:{duration:0.25},collapseDefaults:{duration:0.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents("bodyresize","titlechange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate");if(this.tbar){this.elements+=",tbar";if(typeof this.tbar=="object"){this.topToolbar=this.tbar}delete this.tbar}if(this.bbar){this.elements+=",bbar";if(typeof this.bbar=="object"){this.bottomToolbar=this.bbar}delete this.bbar}if(this.header===true){this.elements+=",header";delete this.header}else{if(this.title&&this.header!==false){this.elements+=",header"}}if(this.footer===true){this.elements+=",footer";delete this.footer}if(this.buttons){var C=this.buttons;this.buttons=[];for(var B=0,A=C.length;B"+this.header.dom.innerHTML+"";if(this.iconCls){this.setIconClass(this.iconCls)}}}if(this.floating){this.makeFloating(this.floating)}if(this.collapsible){this.tools=this.tools?this.tools.slice(0):[];if(!this.hideCollapseTool){this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})}if(this.titleCollapse&&this.header){this.header.on("click",this.toggleCollapse,this);this.header.setStyle("cursor","pointer")}}if(this.tools){var J=this.tools;this.tools={};this.addTool.apply(this,J)}else{this.tools={}}if(this.buttons&&this.buttons.length>0){var D=this.footer.createChild({cls:"x-panel-btns-ct",cn:{cls:"x-panel-btns x-panel-btns-"+this.buttonAlign,html:"
"}},null,true);var L=D.getElementsByTagName("tr")[0];for(var F=0,I=this.buttons.length;F ");F.disableFormats=true;F.compile();Ext.Panel.prototype.toolTemplate=F}for(var E=0,C=arguments,B=C.length;E0){J.sort(C);var I=J[0].manager.zseed;for(var K=0;K=0;--H){if(!D[H].hidden){B(D[H]);return }}B(null)};return{zseed:9000,register:function(H){F[H.id]=H;D.push(H);H.on("hide",A)},unregister:function(H){delete F[H.id];H.un("hide",A);D.remove(H)},get:function(H){return typeof H=="object"?H:F[H]},bringToFront:function(H){H=this.get(H);if(H!=E){H._lastAccess=new Date().getTime();G();return true}return false},sendToBack:function(H){H=this.get(H);H._lastAccess=-(new Date().getTime());G();return H},hideAll:function(){for(var H in F){if(F[H]&&typeof F[H]!="function"&&F[H].isVisible()){F[H].hide()}}},getActive:function(){return E},getBy:function(J,I){var K=[];for(var H=D.length-1;H>=0;--H){var L=D[H];if(J.call(I||L,L)!==false){K.push(L)}}return K},each:function(I,H){for(var J in F){if(F[J]&&typeof F[J]!="function"){if(I.call(H||F[J],F[J])===false){return }}}}}};Ext.WindowMgr=new Ext.WindowGroup(); -Ext.dd.PanelProxy=function(A,B){this.panel=A;this.id=this.panel.id+"-ddproxy";Ext.apply(this,B)};Ext.dd.PanelProxy.prototype={insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.el.dom.style.display="";this.ghost.remove();delete this.ghost}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(undefined,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY());if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"});this.proxy.setSize(this.panel.getSize())}this.panel.el.dom.style.display="none"}},repair:function(B,C,A){this.hide();if(typeof C=="function"){C.call(A||this)}},moveProxy:function(A,B){if(this.proxy){A.insertBefore(this.proxy.dom,B)}}};Ext.Panel.DD=function(B,A){this.panel=B;this.dragData={panel:B};this.proxy=new Ext.dd.PanelProxy(B,A);Ext.Panel.DD.superclass.constructor.call(this,B.el,A);var C=B.header;if(C){this.setHandleElId(C.id)}(C?C:this.panel.body).setStyle("cursor","move");this.scroll=false};Ext.extend(Ext.Panel.DD,Ext.dd.DragSource,{showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(A,B){this.proxy.show()},b4MouseDown:function(B){var A=B.getPageX();var C=B.getPageY();this.autoOffset(A,C)},onInitDrag:function(A,B){this.onStartDrag(A,B);return true},createFrame:Ext.emptyFn,getDragEl:function(A){return this.proxy.ghost.dom},endDrag:function(A){this.proxy.hide();this.panel.saveState()},autoOffset:function(A,B){A-=this.startPageX;B-=this.startPageY;this.setDelta(A,B)}}); -Ext.state.Provider=function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this)};Ext.extend(Ext.state.Provider,Ext.util.Observable,{get:function(B,A){return typeof this.state[B]=="undefined"?A:this.state[B]},clear:function(A){delete this.state[A];this.fireEvent("statechange",this,A,null)},set:function(A,B){this.state[A]=B;this.fireEvent("statechange",this,A,B)},decodeValue:function(A){var J=/^(a|n|d|b|s|o)\:(.*)$/;var C=J.exec(unescape(A));if(!C||!C[1]){return }var F=C[1];var H=C[2];switch(F){case"n":return parseFloat(H);case"d":return new Date(Date.parse(H));case"b":return(H=="1");case"a":var G=[];var I=H.split("^");for(var B=0,D=I.length;B0){if(!B){this.selected.removeClass(this.selectedClass)}this.selected.clear();this.last=false;if(!A){this.fireEvent("selectionchange",this,this.selected.elements)}}},isSelected:function(A){return this.selected.contains(this.getNode(A))},deselect:function(A){if(this.isSelected(A)){A=this.getNode(A);this.selected.removeElement(A);if(this.last==A.viewIndex){this.last=false}Ext.fly(A).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements)}},select:function(D,F,B){if(Ext.isArray(D)){if(!F){this.clearSelections(true)}for(var C=0,A=D.length;C=A&&D[C];C--){B.push(D[C])}}return B},indexOf:function(A){A=this.getNode(A);if(typeof A.viewIndex=="number"){return A.viewIndex}return this.all.indexOf(A)},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.el.update("
"+this.loadingText+"
");this.all.clear()}},onDestroy:function(){Ext.DataView.superclass.onDestroy.call(this);this.setStore(null)}});Ext.reg("dataview",Ext.DataView); -Ext.ColorPalette=function(A){Ext.ColorPalette.superclass.constructor.call(this,A);this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope,true)}};Ext.extend(Ext.ColorPalette,Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:"click",ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],onRender:function(B,A){var C=this.tpl||new Ext.XTemplate(" ");var D=document.createElement("div");D.className=this.itemCls;C.overwrite(D,this.colors);B.dom.insertBefore(D,A);this.el=Ext.get(D);this.el.on(this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!="click"){this.el.on("click",Ext.emptyFn,this,{delegate:"a",preventDefault:true})}},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var A=this.value;this.value=null;this.select(A)}},handleClick:function(B,A){B.preventDefault();if(!this.disabled){var C=A.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(C.toUpperCase())}},select:function(A){A=A.replace("#","");if(A!=this.value||this.allowReselect){var B=this.el;if(this.value){B.child("a.color-"+this.value).removeClass("x-color-palette-sel")}B.child("a.color-"+A).addClass("x-color-palette-sel");this.value=A;this.fireEvent("select",this,A)}}});Ext.reg("colorpalette",Ext.ColorPalette); -Ext.DatePicker=Ext.extend(Ext.Component,{todayText:"Today",okText:" OK ",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",constrainToViewport:true,monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:true,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime():new Date().clearTime();this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope||this)}this.initDisabledDays()},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var A=this.disabledDates;var C="(?:";for(var B=0;B","  ",""];var E=this.dayNames;for(var D=0;D<7;D++){var G=this.startDay+D;if(G>6){G=G-7}C.push("")}C[C.length]="";for(var D=0;D<42;D++){if(D%7==0&&D!=0){C[C.length]=""}C[C.length]=""}C.push("
",E[G].substr(0,1),"
",this.showToday?"":"","
");var B=document.createElement("div");B.className="x-date-picker";B.innerHTML=C.join("");A.dom.insertBefore(B,F);this.el=Ext.get(B);this.eventEl=Ext.get(B.firstChild);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.eventEl.on("mousewheel",this.handleMouseWheel,this);this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");var I=new Ext.KeyNav(this.eventEl,{"left":function(J){J.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1))},"right":function(J){J.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1))},"up":function(J){J.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7))},"down":function(J){J.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7))},"pageUp":function(J){this.showNextMonth()},"pageDown":function(J){this.showPrevMonth()},"enter":function(J){J.stopPropagation();return true},scope:this});this.eventEl.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.on("click",this.showMonthPicker,this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var H=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,H),tooltip:String.format(this.todayTip,H),handler:this.selectToday,scope:this})}if(Ext.isIE){this.el.repaint()}this.update(this.value)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var A=[""];for(var B=0;B<6;B++){A.push("","",B==0?"":"")}A.push("","
",this.monthNames[B].substr(0,3),"",this.monthNames[B+6].substr(0,3),"
");this.monthPicker.update(A.join(""));this.monthPicker.on("click",this.onMonthClick,this);this.monthPicker.on("dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(C,D,E){E+=1;if((E%2)==0){C.dom.xmonth=5+Math.round(E*0.5)}else{C.dom.xmonth=Math.round((E-1)*0.5)}})}},showMonthPicker:function(){this.createMonthPicker();var A=this.el.getSize();this.monthPicker.setSize(A);this.monthPicker.child("table").setSize(A);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})},updateMPYear:function(E){this.mpyear=E;var C=this.mpYears.elements;for(var B=1;B<=10;B++){var D=C[B-1],A;if((B%2)==0){A=E+Math.round(B*0.5);D.firstChild.innerHTML=A;D.xyear=A}else{A=E-(5-Math.round(B*0.5));D.firstChild.innerHTML=A;D.xyear=A}this.mpYears.item(B-1)[A==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(A){this.mpMonths.each(function(B,C,D){B[B.dom.xmonth==A?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(A){},onMonthClick:function(D,B){D.stopEvent();var C=new Ext.Element(B),A;if(C.is("button.x-date-mp-cancel")){this.hideMonthPicker()}else{if(C.is("button.x-date-mp-ok")){var E=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate());if(E.getMonth()!=this.mpSelMonth){E=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth()}this.update(E);this.hideMonthPicker()}else{if(A=C.up("td.x-date-mp-month",2)){this.mpMonths.removeClass("x-date-mp-sel");A.addClass("x-date-mp-sel");this.mpSelMonth=A.dom.xmonth}else{if(A=C.up("td.x-date-mp-year",2)){this.mpYears.removeClass("x-date-mp-sel");A.addClass("x-date-mp-sel");this.mpSelYear=A.dom.xyear}else{if(C.is("a.x-date-mp-prev")){this.updateMPYear(this.mpyear-10)}else{if(C.is("a.x-date-mp-next")){this.updateMPYear(this.mpyear+10)}}}}}}},onMonthDblClick:function(D,B){D.stopEvent();var C=new Ext.Element(B),A;if(A=C.up("td.x-date-mp-month",2)){this.update(new Date(this.mpSelYear,A.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else{if(A=C.up("td.x-date-mp-year",2)){this.update(new Date(A.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}}},hideMonthPicker:function(A){if(this.monthPicker){if(A===true){this.monthPicker.hide()}else{this.monthPicker.slideOut("t",{duration:0.2})}}},showPrevMonth:function(A){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(A){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(A){var B=A.getWheelDelta();if(B>0){this.showPrevMonth();A.stopEvent()}else{if(B<0){this.showNextMonth();A.stopEvent()}}},handleDateClick:function(B,A){B.stopEvent();if(A.dateValue&&!Ext.fly(A.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(A.dateValue));this.fireEvent("select",this,this.value)}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value)}},update:function(a,U){var A=this.activeDate;this.activeDate=a;if(!U&&A&&this.el){var K=a.getTime();if(A.getMonth()==a.getMonth()&&A.getFullYear()==a.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(d){if(d.dom.firstChild.dateValue==K){d.addClass("x-date-selected");setTimeout(function(){try{d.dom.firstChild.focus()}catch(f){}},50);return false}});return }}var G=a.getDaysInMonth();var L=a.getFirstDateOfMonth();var D=L.getDay()-this.startDay;if(D<=this.startDay){D+=7}var V=a.add("mo",-1);var E=V.getDaysInMonth()-D;var C=this.cells.elements;var M=this.textNodes;G+=D;var R=86400000;var X=(new Date(V.getFullYear(),V.getMonth(),E)).clearTime();var W=new Date().clearTime().getTime();var P=a.clearTime().getTime();var O=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var S=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var Z=this.disabledDatesRE;var N=this.disabledDatesText;var c=this.disabledDays?this.disabledDays.join(""):false;var Y=this.disabledDaysText;var T=this.format;if(this.showToday){var I=new Date().clearTime();var B=(IS||(Z&&T&&Z.test(I.dateFormat(T)))||(c&&c.indexOf(I.getDay())!=-1));this.todayBtn.setDisabled(B);this.todayKeyListener[B?"disable":"enable"]()}var H=function(g,d){d.title="";var e=X.getTime();d.firstChild.dateValue=e;if(e==W){d.className+=" x-date-today";d.title=g.todayText}if(e==P){d.className+=" x-date-selected";setTimeout(function(){try{d.firstChild.focus()}catch(h){}},50)}if(eS){d.className=" x-date-disabled";d.title=g.maxText;return }if(c){if(c.indexOf(X.getDay())!=-1){d.title=Y;d.className=" x-date-disabled"}}if(Z&&T){var f=X.dateFormat(T);if(Z.test(f)){d.title=N.replace("%0",f);d.className=" x-date-disabled"}}};var Q=0;for(;Q","","{text}","");D.disableFormats=true;D.compile();Ext.TabPanel.prototype.itemTpl=D}this.items.each(this.initTab,this)},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false)}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.on("add",this.onAdd,this);this.on("remove",this.onRemove,this);this.strip.on("mousedown",this.onStripMouseDown,this);this.strip.on("contextmenu",this.onStripContextMenu,this);if(this.enableTabScroll){this.strip.on("mousewheel",this.onWheel,this)}},findTargets:function(C){var B=null;var A=C.getTarget("li",this.strip);if(A){B=this.getComponent(A.id.split(this.idDelimiter)[1]);if(B.disabled){return{close:null,item:null,el:null}}}return{close:C.getTarget(".x-tab-strip-close",this.strip),item:B,el:A}},onStripMouseDown:function(B){if(B.button!=0){return }B.preventDefault();var A=this.findTargets(B);if(A.close){this.remove(A.item);return }if(A.item&&A.item!=this.activeTab){this.setActiveTab(A.item)}},onStripContextMenu:function(B){B.preventDefault();var A=this.findTargets(B);if(A.item){this.fireEvent("contextmenu",this,A.item,B)}},readTabs:function(D){if(D===true){this.items.each(function(G){this.remove(G)},this)}var C=this.el.query(this.autoTabSelector);for(var B=0,A=C.length;B20?C:20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers()}else{this.scrollLeft.show();this.scrollRight.show()}}this.scrolling=true;if(H>(A-C)){E.scrollLeft=A-C}else{this.scrollToTab(this.activeTab,false)}this.updateScrollButtons()}},createScrollers:function(){var C=this.stripWrap.dom.offsetHeight;var A=this.header.insertFirst({cls:"x-tab-scroller-left"});A.setHeight(C);A.addClassOnOver("x-tab-scroller-left-over");this.leftRepeater=new Ext.util.ClickRepeater(A,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=A;var B=this.header.insertFirst({cls:"x-tab-scroller-right"});B.setHeight(C);B.addClassOnOver("x-tab-scroller-right-over");this.rightRepeater=new Ext.util.ClickRepeater(B,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=B},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos()},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100)},scrollToTab:function(E,A){if(!E){return }var C=this.getTabEl(E);var G=this.getScrollPos(),D=this.getScrollArea();var F=Ext.fly(C).getOffsetsTo(this.stripWrap)[0]+G;var B=F+C.offsetWidth;if(F(G+D)){this.scrollTo(B-D,A)}}},scrollTo:function(B,A){this.stripWrap.scrollTo("left",B,A?this.getScrollAnim():false);if(!A){this.updateScrollButtons()}},onWheel:function(D){var E=D.getWheelDelta()*this.wheelIncrement*-1;D.stopEvent();var F=this.getScrollPos();var C=F+E;var A=this.getScrollWidth()-this.getScrollArea();var B=Math.max(0,Math.min(A,C));if(B!=F){this.scrollTo(B,false)}},onScrollRight:function(){var A=this.getScrollWidth()-this.getScrollArea();var C=this.getScrollPos();var B=Math.min(A,C+this.getScrollIncrement());if(B!=C){this.scrollTo(B,this.animScroll)}},onScrollLeft:function(){var B=this.getScrollPos();var A=Math.max(0,B-this.getScrollIncrement());if(A!=B){this.scrollTo(A,this.animScroll)}},updateScrollButtons:function(){var A=this.getScrollPos();this.scrollLeft[A==0?"addClass":"removeClass"]("x-tab-scroller-left-disabled");this.scrollRight[A>=(this.getScrollWidth()-this.getScrollArea())?"addClass":"removeClass"]("x-tab-scroller-right-disabled")}});Ext.reg("tabpanel",Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var A=[];return{add:function(B){A.push(B);if(A.length>10){A.shift()}},remove:function(E){var D=[];for(var C=0,B=A.length;C","  ","")}this.template=Ext.Button.buttonTemplate}var B,E=[this.text||" ",this.type];if(A){B=this.template.insertBefore(A,E,true)}else{B=this.template.append(C,E,true)}var D=B.child(this.buttonSelector);D.on("focus",this.onFocus,this);D.on("blur",this.onBlur,this);this.initButtonEl(B,D);if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu")}Ext.ButtonToggleMgr.register(this)},initButtonEl:function(B,C){this.el=B;B.addClass("x-btn");if(this.icon){C.setStyle("background-image","url("+this.icon+")")}if(this.iconCls){C.addClass(this.iconCls);if(!this.cls){B.addClass(this.text?"x-btn-text-icon":"x-btn-icon")}}if(this.tabIndex!==undefined){C.dom.tabIndex=this.tabIndex}if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.register(Ext.apply({target:C.id},this.tooltip))}else{C.dom[this.tooltipType]=this.tooltip}}if(this.pressed){this.el.addClass("x-btn-pressed")}if(this.handleMouseEvents){B.on("mouseover",this.onMouseOver,this);B.on("mousedown",this.onMouseDown,this)}if(this.menu){this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this)}if(this.id){this.el.dom.id=this.el.id=this.id}if(this.repeat){var A=new Ext.util.ClickRepeater(B,typeof this.repeat=="object"?this.repeat:{});A.on("click",this.onClick,this)}B.on(this.clickEvent,this.onClick,this)},afterRender:function(){Ext.Button.superclass.afterRender.call(this);if(Ext.isIE6){this.autoWidth.defer(1,this)}else{this.autoWidth()}},setIconClass:function(A){if(this.el){this.el.child(this.buttonSelector).replaceClass(this.iconCls,A)}this.iconCls=A},beforeDestroy:function(){if(this.rendered){var A=this.el.child(this.buttonSelector);if(A){A.removeAllListeners()}}if(this.menu){Ext.destroy(this.menu)}},onDestroy:function(){if(this.rendered){Ext.ButtonToggleMgr.unregister(this)}},autoWidth:function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var A=this.el.child(this.buttonSelector);if(A&&A.getWidth()>20){A.clip();A.setWidth(Ext.util.TextMetrics.measure(A,this.text).width+A.getFrameWidth("lr"))}}if(this.minWidth){if(this.el.getWidth()","","","
 
","","","
 
");var C,F=[this.text||" ",this.type];if(A){C=B.insertBefore(A,F,true)}else{C=B.append(D,F,true)}var E=C.child(this.buttonSelector);this.initButtonEl(C,E);this.arrowBtnTable=C.child("table:last");if(this.arrowTooltip){C.child(this.arrowSelector).dom[this.tooltipType]=this.arrowTooltip}},autoWidth:function(){if(this.el){var C=this.el.child("table:first");var B=this.el.child("table:last");this.el.setWidth("auto");C.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var A=this.el.child(this.buttonSelector);if(A&&A.getWidth()>20){A.clip();A.setWidth(Ext.util.TextMetrics.measure(A,this.text).width+A.getFrameWidth("lr"))}}if(this.minWidth){if((C.getWidth()+B.getWidth())"},onRender:function(C,B){this.el=C.createChild(Ext.apply({id:this.id},this.autoCreate),B);this.tr=this.el.child("tr",true)},afterRender:function(){A.superclass.afterRender.call(this);if(this.buttons){this.add.apply(this,this.buttons);delete this.buttons}},add:function(){var C=arguments,B=C.length;for(var D=0;D"){this.addFill()}else{this.addText(E)}}}}else{if(E.tagName){this.addElement(E)}else{if(typeof E=="object"){if(E.xtype){this.addField(Ext.ComponentMgr.create(E,"button"))}else{this.addButton(E)}}}}}}}},addSeparator:function(){return this.addItem(new A.Separator())},addSpacer:function(){return this.addItem(new A.Spacer())},addFill:function(){return this.addItem(new A.Fill())},addElement:function(B){return this.addItem(new A.Item(B))},addItem:function(B){var C=this.nextBlock();this.initMenuTracking(B);B.render(C);this.items.add(B);return B},addButton:function(D){if(Ext.isArray(D)){var F=[];for(var E=0,C=D.length;E=1&C<=E.pages){this.field.dom.value=C}}}}}},beforeLoad:function(){if(this.rendered&&this.loading){this.loading.disable()}},doLoad:function(C){var B={},A=this.paramNames;B[A.start]=C;B[A.limit]=this.pageSize;if(this.fireEvent("beforechange",this,B)!==false){this.store.load({params:B})}},changePage:function(A){this.doLoad(((A-1)*this.pageSize).constrain(0,this.store.getTotalCount()))},onClick:function(E){var B=this.store;switch(E){case"first":this.doLoad(0);break;case"prev":this.doLoad(Math.max(0,this.cursor-this.pageSize));break;case"next":this.doLoad(this.cursor+this.pageSize);break;case"last":var D=B.getTotalCount();var A=D%this.pageSize;var C=A?(D-A):D-this.pageSize;this.doLoad(C);break;case"refresh":this.doLoad(this.cursor);break}},unbind:function(A){A=Ext.StoreMgr.lookup(A);A.un("beforeload",this.beforeLoad,this);A.un("load",this.onLoad,this);A.un("loadexception",this.onLoadError,this);this.store=undefined},bind:function(A){A=Ext.StoreMgr.lookup(A);A.on("beforeload",this.beforeLoad,this);A.on("load",this.onLoad,this);A.on("loadexception",this.onLoadError,this);this.store=A}});Ext.reg("paging",Ext.PagingToolbar); -Ext.Resizable=function(D,E){this.el=Ext.get(D);if(E&&E.wrap){E.resizeChild=this.el;this.el=this.el.wrap(typeof E.wrap=="object"?E.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=E.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(E.resizeChild.getPositioning());E.resizeChild.clearPositioning();if(!E.width||!E.height){var F=E.resizeChild.getSize();this.el.setSize(F.width,F.height)}if(E.pinned&&!E.adjustments){E.adjustments="auto"}}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"},Ext.getBody());this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,E);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned")}var I=this.el.getStyle("position");if(I!="absolute"&&I!="fixed"){this.el.setStyle("position","relative")}if(!this.handles){this.handles="s,e,se";if(this.multiDirectional){this.handles+=",n,w"}}if(this.handles=="all"){this.handles="n s e w ne nw se sw"}var M=this.handles.split(/\s*?[,;]\s*?| /);var C=Ext.Resizable.positions;for(var H=0,J=M.length;H0){if(A>(E/2)){D=C+(E-A)}else{D=C-A}}return Math.max(B,D)},resizeElement:function(){var A=this.proxy.getBox();if(this.updateBox){this.el.setBox(A,false,this.animate,this.duration,null,this.easing)}else{this.el.setSize(A.width,A.height,this.animate,this.duration,null,this.easing)}this.updateChildSize();if(!this.dynamic){this.proxy.hide()}return A},constrain:function(B,C,A,D){if(B-CD){C=D-B}}return C},onMouseMove:function(S){if(this.enabled){try{if(this.resizeRegion&&!this.resizeRegion.contains(S.getPoint())){return }var Q=this.curSize||this.startBox;var I=this.startBox.x,H=this.startBox.y;var C=I,B=H;var J=Q.width,R=Q.height;var D=J,L=R;var K=this.minWidth,T=this.minHeight;var P=this.maxWidth,W=this.maxHeight;var F=this.widthIncrement;var A=this.heightIncrement;var U=S.getXY();var O=-(this.startPoint[0]-Math.max(this.minX,U[0]));var M=-(this.startPoint[1]-Math.max(this.minY,U[1]));var G=this.activeHandle.position;switch(G){case"east":J+=O;J=Math.min(Math.max(K,J),P);break;case"south":R+=M;R=Math.min(Math.max(T,R),W);break;case"southeast":J+=O;R+=M;J=Math.min(Math.max(K,J),P);R=Math.min(Math.max(T,R),W);break;case"north":M=this.constrain(R,M,T,W);H+=M;R-=M;break;case"west":O=this.constrain(J,O,K,P);I+=O;J-=O;break;case"northeast":J+=O;J=Math.min(Math.max(K,J),P);M=this.constrain(R,M,T,W);H+=M;R-=M;break;case"northwest":O=this.constrain(J,O,K,P);M=this.constrain(R,M,T,W);H+=M;R-=M;I+=O;J-=O;break;case"southwest":O=this.constrain(J,O,K,P);R+=M;R=Math.min(Math.max(T,R),W);I+=O;J-=O;break}var N=this.snap(J,F,K);var V=this.snap(R,A,T);if(N!=J||V!=R){switch(G){case"northeast":H-=V-R;break;case"north":H-=V-R;break;case"southwest":I-=N-J;break;case"west":I-=N-J;break;case"northwest":I-=N-J;H-=V-R;break}J=N;R=V}if(this.preserveRatio){switch(G){case"southeast":case"east":R=L*(J/D);R=Math.min(Math.max(T,R),W);J=D*(R/L);break;case"south":J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);break;case"northeast":J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);break;case"north":var X=J;J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);I+=(X-J)/2;break;case"southwest":R=L*(J/D);R=Math.min(Math.max(T,R),W);var X=J;J=D*(R/L);I+=X-J;break;case"west":var E=R;R=L*(J/D);R=Math.min(Math.max(T,R),W);H+=(E-R)/2;var X=J;J=D*(R/L);I+=X-J;break;case"northwest":var X=J;var E=R;R=L*(J/D);R=Math.min(Math.max(T,R),W);J=D*(R/L);H+=E-R;I+=X-J;break}}this.proxy.setBounds(I,H,J,R);if(this.dynamic){this.resizeElement()}}catch(S){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over")}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over")}},getEl:function(){return this.el},getResizeChild:function(){return this.resizeChild},destroy:function(C){this.proxy.remove();if(this.overlay){this.overlay.removeAllListeners();this.overlay.remove()}var D=Ext.Resizable.positions;for(var A in D){if(typeof D[A]!="function"&&this[D[A]]){var B=this[D[A]];B.el.removeAllListeners();B.el.remove()}}if(C){this.el.update("");this.el.remove()}},syncHandleHeight:function(){var A=this.el.getHeight(true);if(this.west){this.west.el.setHeight(A)}if(this.east){this.east.el.setHeight(A)}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=function(C,E,B,D){if(!this.tpl){var A=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});A.compile();Ext.Resizable.Handle.prototype.tpl=A}this.position=E;this.rz=C;this.el=this.tpl.append(C.el.dom,[this.position],true);this.el.unselectable();if(D){this.el.setOpacity(0)}this.el.on("mousedown",this.onMouseDown,this);if(!B){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this)}};Ext.Resizable.Handle.prototype={afterResize:function(A){},onMouseDown:function(A){this.rz.onMouseDown(this,A)},onMouseOver:function(A){this.rz.handleOver(this,A)},onMouseOut:function(A){this.rz.handleOut(this,A)}}; -Ext.Editor=function(B,A){this.field=B;Ext.Editor.superclass.constructor.call(this,A)};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onRender:function(B,A){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:B,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!="title"){this.field.msgTarget="qtip"}this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute("autocomplete","off")}this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(["keydown","keypress"])}this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1})}},onSpecialKey:function(C,B){var A=B.getKey();if(this.completeOnEnter&&A==B.ENTER){B.stopEvent();this.completeEdit()}else{if(this.cancelOnEsc&&A==B.ESC){this.cancelEdit()}else{this.fireEvent("specialkey",C,B)}}if(this.field.triggerBlur&&(A==B.ENTER||A==B.ESC||A==B.TAB)){this.field.triggerBlur()}},startEdit:function(B,C){if(this.editing){this.completeEdit()}this.boundEl=Ext.get(B);var A=C!==undefined?C:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body)}if(this.fireEvent("beforestartedit",this,this.boundEl,A)===false){return }this.startValue=A;this.field.setValue(A);this.doAutoSize();this.el.alignTo(this.boundEl,this.alignment);this.editing=true;this.show()},doAutoSize:function(){if(this.autoSize){var A=this.boundEl.getSize();switch(this.autoSize){case"width":this.setSize(A.width,"");break;case"height":this.setSize("",A.height);break;default:this.setSize(A.width,A.height)}}},setSize:function(A,B){delete this.field.lastSize;this.field.setSize(A,B);if(this.el){if(Ext.isGecko2||Ext.isOpera){this.el.setSize(A,B)}this.el.sync()}},realign:function(){this.el.alignTo(this.boundEl,this.alignment)},completeEdit:function(A){if(!this.editing){return }var B=this.getValue();if(this.revertInvalid!==false&&!this.field.isValid()){B=this.startValue;this.cancelEdit(true)}if(String(B)===String(this.startValue)&&this.ignoreNoChange){this.editing=false;this.hide();return }if(this.fireEvent("beforecomplete",this,B,this.startValue)!==false){this.editing=false;if(this.updateEl&&this.boundEl){this.boundEl.update(B)}if(A!==true){this.hide()}this.fireEvent("complete",this,B,this.startValue)}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide()}this.field.show();if(Ext.isIE&&!this.fixIEFocus){this.fixIEFocus=true;this.deferredFocus.defer(50,this)}else{this.field.focus()}this.fireEvent("startedit",this.boundEl,this.startValue)},deferredFocus:function(){if(this.editing){this.field.focus()}},cancelEdit:function(A){if(this.editing){var B=this.getValue();this.setValue(this.startValue);if(A!==true){this.hide()}this.fireEvent("canceledit",this,B,this.startValue)}},onBlur:function(){if(this.allowBlur!==true&&this.editing){this.completeEdit()}},onHide:function(){if(this.editing){this.completeEdit();return }this.field.blur();if(this.field.collapse){this.field.collapse()}this.el.hide();if(this.hideEl!==false){this.boundEl.show()}},setValue:function(A){this.field.setValue(A)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){this.field.destroy();this.field=null}});Ext.reg("editor",Ext.Editor); -Ext.MessageBox=function(){var R,B,N,Q;var G,J,P,A,K,M,H,F;var O,S,L,C="";var D=function(U){if(R.isVisible()){R.hide();Ext.callback(B.fn,B.scope||window,[U,S.dom.value],1)}};var T=function(){if(B&&B.cls){R.el.removeClass(B.cls)}K.reset()};var E=function(W,U,V){if(B&&B.closable!==false){R.hide()}if(V){V.stopEvent()}};var I=function(U){var W=0;if(!U){O["ok"].hide();O["cancel"].hide();O["yes"].hide();O["no"].hide();return W}R.footer.dom.style.display="";for(var V in O){if(typeof O[V]!="function"){if(U[V]){O[V].show();O[V].setText(typeof U[V]=="string"?U[V]:Ext.MessageBox.buttonText[V]);W+=O[V].el.getWidth()+15}else{O[V].hide()}}}return W};return{getDialog:function(U){if(!R){R=new Ext.Window({autoCreate:true,title:U,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(B&&B.buttons&&B.buttons.no&&!B.buttons.cancel){D("no")}else{D("cancel")}}});O={};var V=this.buttonText;O["ok"]=R.addButton(V["ok"],D.createCallback("ok"));O["yes"]=R.addButton(V["yes"],D.createCallback("yes"));O["no"]=R.addButton(V["no"],D.createCallback("no"));O["cancel"]=R.addButton(V["cancel"],D.createCallback("cancel"));O["ok"].hideMode=O["yes"].hideMode=O["no"].hideMode=O["cancel"].hideMode="offsets";R.render(document.body);R.getEl().addClass("x-window-dlg");N=R.mask;G=R.body.createChild({html:"

"});H=Ext.get(G.dom.firstChild);var W=G.dom.childNodes[1];J=Ext.get(W.firstChild);P=Ext.get(W.childNodes[2].firstChild);P.enableDisplayMode();P.addKeyListener([10,13],function(){if(R.isVisible()&&B&&B.buttons){if(B.buttons.ok){D("ok")}else{if(B.buttons.yes){D("yes")}}}});A=Ext.get(W.childNodes[2].childNodes[1]);A.enableDisplayMode();K=new Ext.ProgressBar({renderTo:G});G.createChild({cls:"x-clear"})}return R},updateText:function(X){if(!R.isVisible()&&!B.width){R.setSize(this.maxWidth,100)}J.update(X||" ");var V=C!=""?(H.getWidth()+H.getMargins("lr")):0;var Z=J.getWidth()+J.getMargins("lr");var W=R.getFrameWidth("lr");var Y=R.body.getFrameWidth("lr");if(Ext.isIE&&V>0){V+=3}var U=Math.max(Math.min(B.width||V+Z+W+Y,this.maxWidth),Math.max(B.minWidth||this.minWidth,L||0));if(B.prompt===true){S.setWidth(U-V-W-Y)}if(B.progress===true||B.wait===true){K.setSize(U-V-W-Y)}R.setSize(U,"auto").center();return this},updateProgress:function(V,U,W){K.updateProgress(V,U);if(W){this.updateText(W)}return this},isVisible:function(){return R&&R.isVisible()},hide:function(){if(this.isVisible()){R.hide();T()}return this},show:function(X){if(this.isVisible()){this.hide()}B=X;var Y=this.getDialog(B.title||" ");Y.setTitle(B.title||" ");var U=(B.closable!==false&&B.progress!==true&&B.wait!==true);Y.tools.close.setDisplayed(U);S=P;B.prompt=B.prompt||(B.multiline?true:false);if(B.prompt){if(B.multiline){P.hide();A.show();A.setHeight(typeof B.multiline=="number"?B.multiline:this.defaultTextHeight);S=A}else{P.show();A.hide()}}else{P.hide();A.hide()}S.dom.value=B.value||"";if(B.prompt){Y.focusEl=S}else{var W=B.buttons;var V=null;if(W&&W.ok){V=O["ok"]}else{if(W&&W.yes){V=O["yes"]}}if(V){Y.focusEl=V}}if(B.iconCls){Y.setIconClass(B.iconCls)}this.setIcon(B.icon);L=I(B.buttons);K.setVisible(B.progress===true||B.wait===true);this.updateProgress(0,B.progressText);this.updateText(B.msg);if(B.cls){Y.el.addClass(B.cls)}Y.proxyDrag=B.proxyDrag===true;Y.modal=B.modal!==false;Y.mask=B.modal!==false?N:false;if(!Y.isVisible()){document.body.appendChild(R.el.dom);Y.setAnimateTarget(B.animEl);Y.show(B.animEl)}Y.on("show",function(){if(U===true){Y.keyMap.enable()}else{Y.keyMap.disable()}},this,{single:true});if(B.wait===true){K.wait(B.waitConfig)}return this},setIcon:function(U){if(U&&U!=""){H.removeClass("x-hidden");H.replaceClass(C,U);C=U}else{H.replaceClass(C,"x-hidden");C=""}return this},progress:function(W,V,U){this.show({title:W,msg:V,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:U});return this},wait:function(W,V,U){this.show({title:V,msg:W,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:U});return this},alert:function(X,W,V,U){this.show({title:X,msg:W,buttons:this.OK,fn:V,scope:U});return this},confirm:function(X,W,V,U){this.show({title:X,msg:W,buttons:this.YESNO,fn:V,scope:U,icon:this.QUESTION});return this},prompt:function(Z,Y,W,V,U,X){this.show({title:Z,msg:Y,buttons:this.OKCANCEL,fn:W,minWidth:250,scope:V,prompt:true,multiline:U,value:X});return this},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.Msg=Ext.MessageBox; -Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:"x-tip",floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title){this.elements+=",header"}},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable){this.addTool({id:"close",handler:this.hide,scope:this})}},showAt:function(A){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!="number")){this.doAutoWidth()}if(this.constrainPosition){A=this.el.adjustForConstraints(A)}this.setPagePosition(A[0],A[1])},doAutoWidth:function(){var A=this.body.getTextWidth();if(this.title){A=Math.max(A,this.header.child("span").getTextWidth(this.title))}A+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr");this.setWidth(A.constrain(this.minWidth,this.maxWidth));if(Ext.isIE7&&!this.repainted){this.el.repaint();this.repainted=true}},showBy:function(A,B){if(!this.rendered){this.render(Ext.getBody())}this.showAt(this.el.getAlignToXY(A,B||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=="boolean"?null:this.draggable);this.header.addClass("x-tip-draggable")}});Ext.Tip.DD=function(B,A){Ext.apply(this,A);this.tip=B;Ext.Tip.DD.superclass.constructor.call(this,B.el.id,"WindowDD-"+B.id);this.setHandleElId(B.header.id);this.scroll=false};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(A){this.tip.el.enableShadow(true)}}); -Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5000,mouseOffset:[15,18],trackMouse:false,constrainPosition:true,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date();this.initTarget()},initTarget:function(){if(this.target){this.target=Ext.get(this.target);this.target.on("mouseover",this.onTargetOver,this);this.target.on("mouseout",this.onTargetOut,this);this.target.on("mousemove",this.onMouseMove,this)}},onMouseMove:function(A){this.targetXY=A.getXY();if(!this.hidden&&this.trackMouse){this.setPagePosition(this.getTargetXY())}},getTargetXY:function(){return[this.targetXY[0]+this.mouseOffset[0],this.targetXY[1]+this.mouseOffset[1]]},onTargetOver:function(A){if(this.disabled||A.within(this.target.dom,true)){return }this.clearTimer("hide");this.targetXY=A.getXY();this.delayShow()},delayShow:function(){if(this.hidden&&!this.showTimer){if(this.lastActive.getElapsed()=C){D=C-B-5}return{x:A,y:D}},onDestroy:function(){Ext.ToolTip.superclass.onDestroy.call(this);if(this.target){this.target.un("mouseover",this.onTargetOver,this);this.target.un("mouseout",this.onTargetOut,this);this.target.un("mousemove",this.onMouseMove,this)}}}); -Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this)},register:function(D){var F=Ext.isArray(D)?D:arguments;for(var E=0,A=F.length;E0){var D=function(H,G){if(H&&G){var I=G.findChild(A,B);if(I){I.select();if(F){F(true,I)}}else{if(F){F(false,I)}}}else{if(F){F(false,I)}}};this.expandPath(C.join(this.pathSeparator),A,D)}else{this.root.select();if(F){F(true,this.root)}}},getTreeEl:function(){return this.body},onRender:function(B,A){Ext.tree.TreePanel.superclass.onRender.call(this,B,A);this.el.addClass("x-tree");this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")})},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll){Ext.dd.ScrollManager.register(this.body)}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true})}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll})}this.getSelectionModel().init(this)},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.root.render();if(!this.rootVisible){this.root.renderChildren()}},onDestroy:function(){if(this.rendered){this.body.removeAllListeners();Ext.dd.ScrollManager.unregister(this.body);if(this.dropZone){this.dropZone.unreg()}if(this.dragZone){this.dragZone.unreg()}}this.root.destroy();this.nodeHash=null;Ext.tree.TreePanel.superclass.onDestroy.call(this)}});Ext.tree.TreePanel.nodeTypes={};Ext.reg("treepanel",Ext.tree.TreePanel); -Ext.tree.TreeEventModel=function(A){this.tree=A;this.tree.on("render",this.initEvents,this)};Ext.tree.TreeEventModel.prototype={initEvents:function(){var A=this.tree.getTreeEl();A.on("click",this.delegateClick,this);if(this.tree.trackMouseOver!==false){A.on("mouseover",this.delegateOver,this);A.on("mouseout",this.delegateOut,this)}A.on("dblclick",this.delegateDblClick,this);A.on("contextmenu",this.delegateContextMenu,this)},getNode:function(B){var A;if(A=B.getTarget(".x-tree-node-el",10)){var C=Ext.fly(A,"_treeEvents").getAttributeNS("ext","tree-node-id");if(C){return this.tree.getNodeById(C)}}return null},getNodeTarget:function(B){var A=B.getTarget(".x-tree-node-icon",1);if(!A){A=B.getTarget(".x-tree-node-el",6)}return A},delegateOut:function(B,A){if(!this.beforeEvent(B)){return }if(B.getTarget(".x-tree-ec-icon",1)){var C=this.getNode(B);this.onIconOut(B,C);if(C==this.lastEcOver){delete this.lastEcOver}}if((A=this.getNodeTarget(B))&&!B.within(A,true)){this.onNodeOut(B,this.getNode(B))}},delegateOver:function(B,A){if(!this.beforeEvent(B)){return }if(this.lastEcOver){this.onIconOut(B,this.lastEcOver);delete this.lastEcOver}if(B.getTarget(".x-tree-ec-icon",1)){this.lastEcOver=this.getNode(B);this.onIconOver(B,this.lastEcOver)}if(A=this.getNodeTarget(B)){this.onNodeOver(B,this.getNode(B))}},delegateClick:function(B,A){if(!this.beforeEvent(B)){return }if(B.getTarget("input[type=checkbox]",1)){this.onCheckboxClick(B,this.getNode(B))}else{if(B.getTarget(".x-tree-ec-icon",1)){this.onIconClick(B,this.getNode(B))}else{if(this.getNodeTarget(B)){this.onNodeClick(B,this.getNode(B))}}}},delegateDblClick:function(B,A){if(this.beforeEvent(B)&&this.getNodeTarget(B)){this.onNodeDblClick(B,this.getNode(B))}},delegateContextMenu:function(B,A){if(this.beforeEvent(B)&&this.getNodeTarget(B)){this.onNodeContextMenu(B,this.getNode(B))}},onNodeClick:function(B,A){A.ui.onClick(B)},onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)},onIconOver:function(B,A){A.ui.addClass("x-tree-ec-over")},onIconOut:function(B,A){A.ui.removeClass("x-tree-ec-over")},onIconClick:function(B,A){A.ui.ecClick(B)},onCheckboxClick:function(B,A){A.ui.onCheckChange(B)},onNodeDblClick:function(B,A){A.ui.onDblClick(B)},onNodeContextMenu:function(B,A){A.ui.onContextMenu(B)},beforeEvent:function(A){if(this.disabled){A.stopEvent();return false}return true},disable:function(){this.disabled=true},enable:function(){this.disabled=false}}; -Ext.tree.DefaultSelectionModel=function(A){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,A);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.tree.DefaultSelectionModel,Ext.util.Observable,{init:function(A){this.tree=A;A.getTreeEl().on("keydown",this.onKeyDown,this);A.on("click",this.onNodeClick,this)},onNodeClick:function(A,B){this.select(A)},select:function(B){var A=this.selNode;if(A!=B&&this.fireEvent("beforeselect",this,B,A)!==false){if(A){A.ui.onSelectedChange(false)}this.selNode=B;B.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,B,A)}return B},unselect:function(A){if(this.selNode==A){this.clearSelections()}},clearSelections:function(){var A=this.selNode;if(A){A.ui.onSelectedChange(false);this.selNode=null;this.fireEvent("selectionchange",this,null)}return A},getSelectedNode:function(){return this.selNode},isSelected:function(A){return this.selNode==A},selectPrevious:function(){var A=this.selNode||this.lastSelNode;if(!A){return null}var C=A.previousSibling;if(C){if(!C.isExpanded()||C.childNodes.length<1){return this.select(C)}else{var B=C.lastChild;while(B&&B.isExpanded()&&B.childNodes.length>0){B=B.lastChild}return this.select(B)}}else{if(A.parentNode&&(this.tree.rootVisible||!A.parentNode.isRoot)){return this.select(A.parentNode)}}return null},selectNext:function(){var B=this.selNode||this.lastSelNode;if(!B){return null}if(B.firstChild&&B.isExpanded()){return this.select(B.firstChild)}else{if(B.nextSibling){return this.select(B.nextSibling)}else{if(B.parentNode){var A=null;B.parentNode.bubble(function(){if(this.nextSibling){A=this.getOwnerTree().selModel.select(this.nextSibling);return false}});return A}}}return null},onKeyDown:function(C){var B=this.selNode||this.lastSelNode;var D=this;if(!B){return }var A=C.getKey();switch(A){case C.DOWN:C.stopEvent();this.selectNext();break;case C.UP:C.stopEvent();this.selectPrevious();break;case C.RIGHT:C.preventDefault();if(B.hasChildNodes()){if(!B.isExpanded()){B.expand()}else{if(B.firstChild){this.select(B.firstChild,C)}}}break;case C.LEFT:C.preventDefault();if(B.hasChildNodes()&&B.isExpanded()){B.collapse()}else{if(B.parentNode&&(this.tree.rootVisible||B.parentNode!=this.tree.getRootNode())){this.select(B.parentNode,C)}}break}}});Ext.tree.MultiSelectionModel=function(A){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,A);Ext.tree.MultiSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.tree.MultiSelectionModel,Ext.util.Observable,{init:function(A){this.tree=A;A.getTreeEl().on("keydown",this.onKeyDown,this);A.on("click",this.onNodeClick,this)},onNodeClick:function(A,B){this.select(A,B,B.ctrlKey)},select:function(A,C,B){if(B!==true){this.clearSelections(true)}if(this.isSelected(A)){this.lastSelNode=A;return A}this.selNodes.push(A);this.selMap[A.id]=A;this.lastSelNode=A;A.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return A},unselect:function(B){if(this.selMap[B.id]){B.ui.onSelectedChange(false);var C=this.selNodes;var A=C.indexOf(B);if(A!=-1){this.selNodes.splice(A,1)}delete this.selMap[B.id];this.fireEvent("selectionchange",this,this.selNodes)}},clearSelections:function(B){var D=this.selNodes;if(D.length>0){for(var C=0,A=D.length;C
","",this.indentMarkup,"","","",E?("":"/>")):"","",D.text,"
","
    ",""].join("");var A;if(J!==true&&D.nextSibling&&(A=D.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",A,C)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",H,C)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var G=this.elNode.childNodes;this.indentNode=G[0];this.ecNode=G[1];this.iconNode=G[2];var F=3;if(E){this.checkbox=G[3];this.checkbox.defaultChecked=this.checkbox.checked;F++}this.anchor=G[F];this.textNode=G[F].firstChild},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return this.checkbox?this.checkbox.checked:false},updateExpandIcon:function(){if(this.rendered){var E=this.node,D,C;var A=E.isLast()?"x-tree-elbow-end":"x-tree-elbow";if(E.isExpandable()){if(E.expanded){A+="-minus";D="x-tree-node-collapsed";C="x-tree-node-expanded"}else{A+="-plus";D="x-tree-node-expanded";C="x-tree-node-collapsed"}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false}if(this.c1!=D||this.c2!=C){Ext.fly(this.elNode).replaceClass(D,C);this.c1=D;this.c2=C}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-leaf");delete this.c1;delete this.c2;this.wasLeaf=true}}var B="x-tree-ec-icon "+A;if(this.ecc!=B){this.ecNode.className=B;this.ecc=B}}},getChildIndent:function(){if(!this.childIndent){var A=[];var B=this.node;while(B){if(!B.isRoot||(B.isRoot&&B.ownerTree.rootVisible)){if(!B.isLast()){A.unshift("")}else{A.unshift("")}}B=B.parentNode}this.childIndent=A.join("")}return this.childIndent},renderIndent:function(){if(this.rendered){var A="";var B=this.node.parentNode;if(B){A=B.ui.getChildIndent()}if(this.indentMarkup!=A){this.indentNode.innerHTML=A;this.indentMarkup=A}this.updateExpandIcon()}},destroy:function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id)}delete this.elNode;delete this.ctNode;delete this.indentNode;delete this.ecNode;delete this.iconNode;delete this.checkbox;delete this.anchor;delete this.textNode;Ext.removeNode(this.ctNode)}};Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var A=this.node.ownerTree.innerCt.dom;this.node.expanded=true;A.innerHTML="
    ";this.wrap=this.ctNode=A.firstChild}},collapse:Ext.emptyFn,expand:Ext.emptyFn}); -Ext.tree.TreeLoader=function(A){this.baseParams={};Ext.apply(this,A);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this)};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,load:function(A,B){if(this.clearOnLoad){while(A.firstChild){A.removeChild(A.firstChild)}}if(this.doPreload(A)){if(typeof B=="function"){B()}}else{if(this.dataUrl||this.url){this.requestData(A,B)}}},doPreload:function(D){if(D.attributes.children){if(D.childNodes.length<1){var C=D.attributes.children;D.beginUpdate();for(var B=0,A=C.length;BK){return E?-1:+1}else{return 0}}}};Ext.tree.TreeSorter.prototype={doSort:function(A){A.sort(this.sortFn)},compareNodes:function(B,A){return(B.text.toUpperCase()>A.text.toUpperCase()?1:-1)},updateSort:function(A,B){if(B.childrenRendered){this.doSort.defer(1,this,[B])}},updateSortParent:function(A){var B=A.parentNode;if(B&&B.childrenRendered){this.doSort.defer(1,this,[B])}}}; -if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(A,B){this.allowParentInsert=false;this.allowContainerDrop=false;this.appendOnly=false;Ext.tree.TreeDropZone.superclass.constructor.call(this,A.innerCt,B);this.tree=A;this.dragOverData={};this.lastInsertClass="x-tree-no-status"};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(A){if(A.hasChildNodes()&&!A.isExpanded()){A.expand(false,null,this.triggerCacheRefresh.createDelegate(this))}},queueExpand:function(A){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[A])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},isValidDropPoint:function(A,I,G,D,C){if(!A||!C){return false}var E=A.node;var F=C.node;if(!(E&&E.isTarget&&I)){return false}if(I=="append"&&E.allowChildren===false){return false}if((I=="above"||I=="below")&&(E.parentNode&&E.parentNode.allowChildren===false)){return false}if(F&&(E==F||F.contains(E))){return false}var B=this.dragOverData;B.tree=this.tree;B.target=E;B.data=C;B.point=I;B.source=G;B.rawEvent=D;B.dropNode=F;B.cancel=false;var H=this.tree.fireEvent("nodedragover",B);return B.cancel===false&&H!==false},getDropPoint:function(E,D,I){var J=D.node;if(J.isRoot){return J.allowChildren!==false?"append":false}var B=D.ddel;var K=Ext.lib.Dom.getY(B),G=K+B.offsetHeight;var F=Ext.lib.Event.getPageY(E);var H=J.allowChildren===false||J.isLeaf();if(this.appendOnly||J.parentNode.allowChildren===false){return H?false:"append"}var C=false;if(!this.allowParentInsert){C=J.hasChildNodes()&&J.isExpanded()}var A=(G-K)/(H?2:3);if(F>=K&&F<(K+A)){return"above"}else{if(!C&&(H||F>=G-A&&F<=G)){return"below"}else{return"append"}}},onNodeEnter:function(D,A,C,B){this.cancelExpand()},onNodeOver:function(B,G,F,E){var I=this.getDropPoint(F,B,G);var C=B.node;if(!this.expandProcId&&I=="append"&&C.hasChildNodes()&&!B.node.isExpanded()){this.queueExpand(C)}else{if(I!="append"){this.cancelExpand()}}var D=this.dropNotAllowed;if(this.isValidDropPoint(B,I,G,F,E)){if(I){var A=B.ddel;var H;if(I=="above"){D=B.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";H="x-tree-drag-insert-above"}else{if(I=="below"){D=B.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";H="x-tree-drag-insert-below"}else{D="x-tree-drop-ok-append";H="x-tree-drag-append"}}if(this.lastInsertClass!=H){Ext.fly(A).replaceClass(this.lastInsertClass,H);this.lastInsertClass=H}}}return D},onNodeOut:function(D,A,C,B){this.cancelExpand();this.removeDropIndicators(D)},onNodeDrop:function(C,I,E,D){var H=this.getDropPoint(E,C,I);var F=C.node;F.ui.startDrop();if(!this.isValidDropPoint(C,H,I,E,D)){F.ui.endDrop();return false}var G=D.node||(I.getTreeNode?I.getTreeNode(D,F,H,E):null);var B={tree:this.tree,target:F,data:D,point:H,source:I,rawEvent:E,dropNode:G,cancel:!G,dropStatus:false};var A=this.tree.fireEvent("beforenodedrop",B);if(A===false||B.cancel===true||!B.dropNode){F.ui.endDrop();return B.dropStatus}F=B.target;if(H=="append"&&!F.isExpanded()){F.expand(false,null,function(){this.completeDrop(B)}.createDelegate(this))}else{this.completeDrop(B)}return true},completeDrop:function(G){var D=G.dropNode,E=G.point,C=G.target;if(!Ext.isArray(D)){D=[D]}var F;for(var B=0,A=D.length;BD.offsetLeft){E.scrollLeft=D.offsetLeft}var A=Math.min(this.maxWidth,(E.clientWidth>20?E.clientWidth:E.offsetWidth)-Math.max(0,D.offsetLeft-E.scrollLeft)-5);this.setSize(A,"")},triggerEdit:function(A,B){this.completeEdit();if(A.attributes.editable!==false){this.editNode=A;if(this.tree.autoScroll){A.ui.getEl().scrollIntoView(this.tree.body)}this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[A.ui.textNode,A.text]);return false}},bindScroll:function(){this.tree.getTreeEl().on("scroll",this.cancelEdit,this)},beforeNodeClick:function(A,B){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(A)){B.stopEvent();return this.triggerEdit(A)}},onNodeDblClick:function(A,B){clearTimeout(this.autoEditTimer)},updateNode:function(A,B){this.tree.getTreeEl().un("scroll",this.cancelEdit,this);this.editNode.setText(B)},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50,this.editNode.ui)}},onSpecialKey:function(C,B){var A=B.getKey();if(A==B.ESC){B.stopEvent();this.cancelEdit()}else{if(A==B.ENTER&&!B.hasModifier()){B.stopEvent();this.completeEdit()}}}}); -Ext.menu.Menu=function(A){if(Ext.isArray(A)){A={items:A}}Ext.apply(this,A);this.id=this.id||Ext.id();this.addEvents("beforeshow","beforehide","show","hide","click","mouseover","mouseout","itemclick");Ext.menu.MenuMgr.register(this);Ext.menu.Menu.superclass.constructor.call(this);var B=this.items;this.items=new Ext.util.MixedCollection();if(B){this.add.apply(this,B)}};Ext.extend(Ext.menu.Menu,Ext.util.Observable,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,ignoreParentClicks:false,hidden:true,createEl:function(){return new Ext.Layer({cls:"x-menu",shadow:this.shadow,constrain:false,parentEl:this.parentEl||document.body,zindex:15000})},render:function(){if(this.el){return }var B=this.el=this.createEl();if(!this.keyNav){this.keyNav=new Ext.menu.MenuNav(this)}if(this.plain){B.addClass("x-menu-plain")}if(this.cls){B.addClass(this.cls)}this.focusEl=B.createChild({tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"});var A=B.createChild({tag:"ul",cls:"x-menu-list"});A.on("click",this.onClick,this);A.on("mouseover",this.onMouseOver,this);A.on("mouseout",this.onMouseOut,this);this.items.each(function(D){var C=document.createElement("li");C.className="x-menu-list-item";A.dom.appendChild(C);D.render(C,this)},this);this.ul=A;this.autoWidth()},autoWidth:function(){var D=this.el,C=this.ul;if(!D){return }var A=this.width;if(A){D.setWidth(A)}else{if(Ext.isIE){D.setWidth(this.minWidth);var B=D.dom.offsetWidth;D.setWidth(C.getWidth()+D.getFrameWidth("lr"))}}},delayAutoWidth:function(){if(this.el){if(!this.awTask){this.awTask=new Ext.util.DelayedTask(this.autoWidth,this)}this.awTask.delay(20)}},findTargetItem:function(B){var A=B.getTarget(".x-menu-list-item",this.ul,true);if(A&&A.menuItemId){return this.items.get(A.menuItemId)}},onClick:function(B){var A;if(A=this.findTargetItem(B)){if(A.menu&&this.ignoreParentClicks){A.expandMenu()}else{A.onClick(B);this.fireEvent("click",this,A,B)}}},setActiveItem:function(A,B){if(A!=this.activeItem){if(this.activeItem){this.activeItem.deactivate()}this.activeItem=A;A.activate(B)}else{if(B){A.expandMenu()}}},tryActivate:function(F,E){var B=this.items;for(var C=F,A=B.length;C>=0&&C0){H()}})}function H(){if(D&&D.length>0){var N=D.clone();N.each(function(O){O.hide()})}}function E(N){D.remove(N);if(D.length<1){Ext.getDoc().un("mousedown",L);A=false}}function J(N){var O=D.last();K=new Date();D.add(N);if(!A){Ext.getDoc().on("mousedown",L);A=true}if(N.parentMenu){N.getEl().setZIndex(parseInt(N.parentMenu.getEl().getStyle("z-index"),10)+3);N.parentMenu.activeChild=N}else{if(O&&O.isVisible()){N.getEl().setZIndex(parseInt(O.getEl().getStyle("z-index"),10)+3)}}}function B(N){if(N.activeChild){N.activeChild.hide()}if(N.autoHideTimer){clearTimeout(N.autoHideTimer);delete N.autoHideTimer}}function G(N){var O=N.parentMenu;if(!O&&!N.allowOtherMenus){H()}else{if(O&&O.activeChild){O.activeChild.hide()}}}function L(N){if(K.getElapsed()>50&&D.length>0&&!N.getTarget(".x-menu")){H()}}function I(O,R){if(R){var Q=C[O.group];for(var P=0,N=Q.length;P{1}",this.icon||Ext.BLANK_IMAGE_URL,this.itemText||this.text,this.iconCls||"");this.el=C;Ext.menu.Item.superclass.onRender.call(this,B,A)},setText:function(A){this.text=A;if(this.rendered){this.el.update(String.format("{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text,this.iconCls||""));this.parentMenu.autoWidth()}},setIconClass:function(A){var B=this.iconCls;this.iconCls=A;if(this.rendered){this.el.child("img.x-menu-item-icon").replaceClass(B,this.iconCls)}},handleClick:function(A){if(!this.href){A.stopEvent()}Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(A){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(A){this.expandMenu()}}return true},shouldDeactivate:function(A){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,A)){if(this.menu&&this.menu.isVisible()){return !this.menu.getEl().getRegion().contains(A.getPoint())}return true}return false},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu()},expandMenu:function(A){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer){this.showTimer=this.deferExpand.defer(this.showDelay,this,[A])}else{if(this.menu.isVisible()&&A){this.menu.tryActivate(0,1)}}}},deferExpand:function(A){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(A){this.menu.tryActivate(0,1)}},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible()){this.hideTimer=this.deferHide.defer(this.hideDelay,this)}},deferHide:function(){delete this.hideTimer;if(this.menu.over){this.parentMenu.setActiveItem(this,false)}else{this.menu.hide()}}}); -Ext.menu.CheckItem=function(A){Ext.menu.CheckItem.superclass.constructor.call(this,A);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope)}Ext.menu.MenuMgr.registerCheckable(this)};Ext.extend(Ext.menu.CheckItem,Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",onRender:function(A){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass)}if(this.checked){this.checked=false;this.setChecked(true,true)}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(B,A){if(this.checked!=B&&this.fireEvent("beforecheckchange",this,B)!==false){if(this.container){this.container[B?"addClass":"removeClass"]("x-menu-item-checked")}this.checked=B;if(A!==true){this.fireEvent("checkchange",this,B)}}},handleClick:function(A){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked)}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}}); -Ext.menu.Adapter=function(B,A){Ext.menu.Adapter.superclass.constructor.call(this,A);this.component=B};Ext.extend(Ext.menu.Adapter,Ext.menu.BaseItem,{canActivate:true,onRender:function(B,A){this.component.render(B);this.el=this.component.getEl()},activate:function(){if(this.disabled){return false}this.component.focus();this.fireEvent("activate",this);return true},deactivate:function(){this.fireEvent("deactivate",this)},disable:function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this)},enable:function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this)}}); -Ext.menu.DateItem=function(A){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(A),A);this.picker=this.component;this.addEvents("select");this.picker.on("render",function(B){B.getEl().swallowEvent("click");B.container.addClass("x-menu-date-item")});this.picker.on("select",this.onSelect,this)};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(B,A){this.fireEvent("select",this,A,B);Ext.menu.DateItem.superclass.handleClick.call(this)}}); -Ext.menu.ColorItem=function(A){Ext.menu.ColorItem.superclass.constructor.call(this,new Ext.ColorPalette(A),A);this.palette=this.component;this.relayEvents(this.palette,["select"]);if(this.selectHandler){this.on("select",this.selectHandler,this.scope)}};Ext.extend(Ext.menu.ColorItem,Ext.menu.Adapter); -Ext.menu.DateMenu=function(A){Ext.menu.DateMenu.superclass.constructor.call(this,A);this.plain=true;var B=new Ext.menu.DateItem(A);this.add(B);this.picker=B.picker;this.relayEvents(B,["select"]);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)};Ext.extend(Ext.menu.DateMenu,Ext.menu.Menu,{cls:"x-date-menu",beforeDestroy:function(){this.picker.destroy()}}); -Ext.menu.ColorMenu=function(A){Ext.menu.ColorMenu.superclass.constructor.call(this,A);this.plain=true;var B=new Ext.menu.ColorItem(A);this.add(B);this.palette=B.palette;this.relayEvents(B,["select"])};Ext.extend(Ext.menu.ColorMenu,Ext.menu.Menu); -Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:false,disabled:false,isFormField:true,hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:(this.hiddenName||"")},onRender:function(C,A){Ext.form.Field.superclass.onRender.call(this,C,A);if(!this.el){var B=this.getAutoCreate();if(!B.name){B.name=this.name||this.id}if(this.inputType){B.type=this.inputType}this.el=C.createChild(B,A)}var D=this.el.dom.type;if(D){if(D=="password"){D="text"}this.el.addClass("x-form-"+D)}if(this.readOnly){this.el.dom.readOnly=true}if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabIndex",this.tabIndex)}this.el.addClass([this.fieldClass,this.cls])},initValue:function(){if(this.value!==undefined){this.setValue(this.value)}else{if(this.el.dom.value.length>0&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value)}}this.originalValue=this.getValue()},isDirty:function(){if(this.disabled){return false}return String(this.getValue())!==String(this.originalValue)},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue()},fireKey:function(A){if(A.isSpecialKey()){this.fireEvent("specialkey",this,A)}},reset:function(){this.setValue(this.originalValue);this.clearInvalid()},initEvents:function(){this.el.on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var A=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,A);this.originalValue=this.getValue()},onFocus:function(){if(!Ext.isOpera&&this.focusClass){this.el.addClass(this.focusClass)}if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(!Ext.isOpera&&this.focusClass){this.el.removeClass(this.focusClass)}this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate()}var A=this.getValue();if(String(A)!==String(this.startValue)){this.fireEvent("change",this,A,this.startValue)}this.fireEvent("blur",this)},isValid:function(A){if(this.disabled){return true}var C=this.preventMark;this.preventMark=A===true;var B=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=C;return B},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true}return false},processValue:function(A){return A},validateValue:function(A){return true},markInvalid:function(C){if(!this.rendered||this.preventMark){return }this.el.addClass(this.invalidClass);C=C||this.invalidText;switch(this.msgTarget){case"qtip":this.el.dom.qtip=C;this.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}break;case"title":this.el.dom.title=C;break;case"under":if(!this.errorEl){var B=this.getErrorCt();if(!B){this.el.dom.title=C;break}this.errorEl=B.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(B.getWidth(true)-20)}this.errorEl.update(C);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case"side":if(!this.errorIcon){var B=this.getErrorCt();if(!B){this.el.dom.title=C;break}this.errorIcon=B.createChild({cls:"x-form-invalid-icon"})}this.alignErrorIcon();this.errorIcon.dom.qtip=C;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();this.on("resize",this.alignErrorIcon,this);break;default:var A=Ext.getDom(this.msgTarget);A.innerHTML=C;A.style.display=this.msgDisplay;break}this.fireEvent("invalid",this,C)},getErrorCt:function(){return this.el.findParent(".x-form-element",5,true)||this.el.findParent(".x-form-field-wrap",5,true)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},clearInvalid:function(){if(!this.rendered||this.preventMark){return }this.el.removeClass(this.invalidClass);switch(this.msgTarget){case"qtip":this.el.dom.qtip="";break;case"title":this.el.dom.title="";break;case"under":if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this)}break;case"side":if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();this.un("resize",this.alignErrorIcon,this)}break;default:var A=Ext.getDom(this.msgTarget);A.innerHTML="";A.style.display="none";break}this.fireEvent("valid",this)},getRawValue:function(){var A=this.rendered?this.el.getValue():Ext.value(this.value,"");if(A===this.emptyText){A=""}return A},getValue:function(){if(!this.rendered){return this.value}var A=this.el.getValue();if(A===this.emptyText||A===undefined){A=""}return A},setRawValue:function(A){return this.el.dom.value=(A===null||A===undefined?"":A)},setValue:function(A){this.value=A;if(this.rendered){this.el.dom.value=(A===null||A===undefined?"":A);this.validate()}},adjustSize:function(A,C){var B=Ext.form.Field.superclass.adjustSize.call(this,A,C);B.width=this.adjustWidth(this.el.dom.tagName,B.width);return B},adjustWidth:function(A,B){A=A.toLowerCase();if(typeof B=="number"&&!Ext.isSafari){if(Ext.isIE&&(A=="input"||A=="textarea")){if(A=="input"&&!Ext.isStrict){return this.inEditor?B:B-3}if(A=="input"&&Ext.isStrict){return B-(Ext.isIE6?4:1)}if(A=="textarea"&&Ext.isStrict){return B-2}}else{if(Ext.isOpera&&Ext.isStrict){if(A=="input"){return B+2}if(A=="textarea"){return B-2}}}}return B}});Ext.form.MessageTargets={"qtip":{mark:function(A){this.el.dom.qtip=msg;this.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}},clear:function(A){this.el.dom.qtip=""}},"title":{mark:function(A){this.el.dom.title=msg},clear:function(A){this.el.dom.title=""}},"under":{mark:function(B){if(!this.errorEl){var A=this.getErrorCt();if(!A){this.el.dom.title=msg;return }this.errorEl=A.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(A.getWidth(true)-20)}this.errorEl.update(msg);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this)},clear:function(A){if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this)}else{this.el.dom.title=""}}},"side":{mark:function(B){if(!this.errorIcon){var A=this.getErrorCt();if(!A){this.el.dom.title=msg;return }this.errorIcon=A.createChild({cls:"x-form-invalid-icon"})}this.alignErrorIcon();this.errorIcon.dom.qtip=msg;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();this.on("resize",this.alignErrorIcon,this)},clear:function(A){if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();this.un("resize",this.alignErrorIcon,this)}else{this.el.dom.title=""}}},"around":{mark:function(A){},clear:function(A){}}};Ext.form.Field.msgFx={normal:{show:function(A,B){A.setDisplayed("block")},hide:function(A,B){A.setDisplayed(false).update("")}},slide:{show:function(A,B){A.slideIn("t",{stopFx:true})},hide:function(A,B){A.slideOut("t",{stopFx:true,useDisplay:true})}},slideRight:{show:function(A,B){A.fixDisplay();A.alignTo(B.el,"tl-tr");A.slideIn("l",{stopFx:true})},hide:function(A,B){A.slideOut("l",{stopFx:true,useDisplay:true})}}};Ext.reg("field",Ext.form.Field); -Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on("keyup",this.filterValidation,this)}else{if(this.validationEvent!==false){this.el.on(this.validationEvent,this.validate,this,{buffer:this.validationDelay})}}if(this.selectOnFocus||this.emptyText){this.on("focus",this.preFocus,this);this.el.on("mousedown",function(){if(!this.hasFocus){this.el.on("mouseup",function(A){A.preventDefault()},this,{single:true})}},this);if(this.emptyText){this.on("blur",this.postBlur,this);this.applyEmptyText()}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.el.on("keypress",this.filterKeys,this)}if(this.grow){this.el.on("keyup",this.onKeyUpBuffered,this,{buffer:50});this.el.on("click",this.autoSize,this)}if(this.enableKeyEvents){this.el.on("keyup",this.onKeyUp,this);this.el.on("keydown",this.onKeyDown,this);this.el.on("keypress",this.onKeyPress,this)}},processValue:function(A){if(this.stripCharsRe){var B=A.replace(this.stripCharsRe,"");if(B!==A){this.setRawValue(B);return B}}return A},filterValidation:function(A){if(!A.isNavKeyPress()){this.validationTask.delay(this.validationDelay)}},onKeyUpBuffered:function(A){if(!A.isNavKeyPress()){this.autoSize()}},onKeyUp:function(A){this.fireEvent("keyup",this,A)},onKeyDown:function(A){this.fireEvent("keydown",this,A)},onKeyPress:function(A){this.fireEvent("keypress",this,A)},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText()},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass)}},preFocus:function(){if(this.emptyText){if(this.el.dom.value==this.emptyText){this.setRawValue("")}this.el.removeClass(this.emptyClass)}if(this.selectOnFocus){this.el.dom.select()}},postBlur:function(){this.applyEmptyText()},filterKeys:function(B){if(B.ctrlKey){return }var A=B.getKey();if(Ext.isGecko&&(B.isNavKeyPress()||A==B.BACKSPACE||(A==B.DELETE&&B.button==-1))){return }var D=B.getCharCode(),C=String.fromCharCode(D);if(!Ext.isGecko&&B.isSpecialKey()&&!C){return }if(!this.maskRe.test(C)){B.stopEvent()}},setValue:function(A){if(this.emptyText&&this.el&&A!==undefined&&A!==null&&A!==""){this.el.removeClass(this.emptyClass)}Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize()},validateValue:function(A){if(A.length<1||A===this.emptyText){if(this.allowBlank){this.clearInvalid();return true}else{this.markInvalid(this.blankText);return false}}if(A.lengththis.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false}if(this.vtype){var C=Ext.form.VTypes;if(!C[this.vtype](A,this)){this.markInvalid(this.vtypeText||C[this.vtype+"Text"]);return false}}if(typeof this.validator=="function"){var B=this.validator(A);if(B!==true){this.markInvalid(B);return false}}if(this.regex&&!this.regex.test(A)){this.markInvalid(this.regexText);return false}return true},selectText:function(E,A){var C=this.getRawValue();if(C.length>0){E=E===undefined?0:E;A=A===undefined?C.length:A;var D=this.el.dom;if(D.setSelectionRange){D.setSelectionRange(E,A)}else{if(D.createTextRange){var B=D.createTextRange();B.moveStart("character",E);B.moveEnd("character",A-C.length);B.select()}}}},autoSize:function(){if(!this.grow||!this.rendered){return }if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var C=this.el;var B=C.dom.value;var D=document.createElement("div");D.appendChild(document.createTextNode(B));B=D.innerHTML;D=null;B+=" ";var A=Math.min(this.growMax,Math.max(this.metrics.getWidth(B)+10,this.growMin));this.el.setWidth(A);this.fireEvent("autosize",this,A)}});Ext.reg("textfield",Ext.form.TextField); -Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,onResize:function(A,B){Ext.form.TriggerField.superclass.onResize.call(this,A,B);if(typeof A=="number"){this.el.setWidth(this.adjustWidth("input",A-this.trigger.getWidth()))}this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}},onRender:function(B,A){Ext.form.TriggerField.superclass.onRender.call(this,B,A);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(this.hideTrigger){this.trigger.setDisplayed(false)}this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}},afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);var A;if(Ext.isIE&&this.el.getY()!=(A=this.trigger.getY())){this.el.position();this.el.setY(A)}},initTrigger:function(){this.trigger.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove()}if(this.wrap){this.wrap.remove()}Ext.form.TriggerField.superclass.onDestroy.call(this)},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass("x-trigger-wrap-focus");this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab){this.el.on("keydown",this.checkTab,this)}}},checkTab:function(A){if(A.getKey()==A.TAB){this.triggerBlur()}},onBlur:function(){},mimicBlur:function(A){if(!this.wrap.contains(A.target)&&this.validateBlur(A)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);if(this.monitorTab){this.el.un("keydown",this.checkTab,this)}this.beforeBlur();this.wrap.removeClass("x-trigger-wrap-focus");Ext.form.TriggerField.superclass.onBlur.call(this)},beforeBlur:Ext.emptyFn,validateBlur:function(A){return true},onDisable:function(){Ext.form.TriggerField.superclass.onDisable.call(this);if(this.wrap){this.wrap.addClass(this.disabledClass);this.el.removeClass(this.disabledClass)}},onEnable:function(){Ext.form.TriggerField.superclass.onEnable.call(this);if(this.wrap){this.wrap.removeClass(this.disabledClass)}},onShow:function(){if(this.wrap){this.wrap.dom.style.display="";this.wrap.dom.style.visibility="visible"}},onHide:function(){this.wrap.dom.style.display="none"},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]}},getTrigger:function(A){return this.triggers[A]},initTrigger:function(){var A=this.trigger.select(".x-form-trigger",true);this.wrap.setStyle("overflow","hidden");var B=this;A.each(function(D,F,C){D.hide=function(){var G=B.wrap.getWidth();this.dom.style.display="none";B.el.setWidth(G-B.trigger.getWidth())};D.show=function(){var G=B.wrap.getWidth();this.dom.style.display="";B.el.setWidth(G-B.trigger.getWidth())};var E="Trigger"+(C+1);if(this["hide"+E]){D.dom.style.display="none"}D.on("click",this["on"+E+"Click"],this,{preventDefault:true});D.addClassOnOver("x-form-trigger-over");D.addClassOnClick("x-form-trigger-click")},this);this.triggers=A.elements},onTrigger1Click:Ext.emptyFn,onTrigger2Click:Ext.emptyFn});Ext.reg("trigger",Ext.form.TriggerField); -Ext.form.TextArea=Ext.extend(Ext.form.TextField,{growMin:60,growMax:1000,growAppend:" \n ",growPad:0,enterIsSpecial:false,preventScrollbars:false,onRender:function(B,A){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off"}}Ext.form.TextArea.superclass.onRender.call(this,B,A);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden")}this.el.setHeight(this.growMin)}},onDestroy:function(){if(this.textSizeEl){Ext.removeNode(this.textSizeEl)}Ext.form.TextArea.superclass.onDestroy.call(this)},fireKey:function(A){if(A.isSpecialKey()&&(this.enterIsSpecial||(A.getKey()!=A.ENTER||A.hasModifier()))){this.fireEvent("specialkey",this,A)}},onKeyUp:function(A){if(!A.isNavKeyPress()||A.getKey()==A.ENTER){this.autoSize()}Ext.form.TextArea.superclass.onKeyUp.call(this,A)},autoSize:function(){if(!this.grow||!this.textSizeEl){return }var C=this.el;var A=C.dom.value;var D=this.textSizeEl;D.innerHTML="";D.appendChild(document.createTextNode(A));A=D.innerHTML;Ext.fly(D).setWidth(this.el.getWidth());if(A.length<1){A="  "}else{if(Ext.isIE){A=A.replace(/\n/g,"

     

    ")}A+=this.growAppend}D.innerHTML=A;var B=Math.min(this.growMax,Math.max(D.offsetHeight,this.growMin)+this.growPad);if(B!=this.lastHeight){this.lastHeight=B;this.el.setHeight(B);this.fireEvent("autosize",this,B)}}});Ext.reg("textarea",Ext.form.TextArea); -Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",initEvents:function(){Ext.form.NumberField.superclass.initEvents.call(this);var B=this.baseChars+"";if(this.allowDecimals){B+=this.decimalSeparator}if(this.allowNegative){B+="-"}this.stripCharsRe=new RegExp("[^"+B+"]","gi");var A=function(D){var C=D.getKey();if(!Ext.isIE&&(D.isSpecialKey()||C==D.BACKSPACE||C==D.DELETE)){return }var E=D.getCharCode();if(B.indexOf(String.fromCharCode(E))===-1){D.stopEvent()}};this.el.on("keypress",A,this)},validateValue:function(B){if(!Ext.form.NumberField.superclass.validateValue.call(this,B)){return false}if(B.length<1){return true}B=String(B).replace(this.decimalSeparator,".");if(isNaN(B)){this.markInvalid(String.format(this.nanText,B));return false}var A=this.parseValue(B);if(Athis.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false}return true},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(A){A=typeof A=="number"?A:parseFloat(String(A).replace(this.decimalSeparator,"."));A=isNaN(A)?"":String(A).replace(".",this.decimalSeparator);Ext.form.NumberField.superclass.setValue.call(this,A)},parseValue:function(A){A=parseFloat(String(A).replace(this.decimalSeparator,"."));return isNaN(A)?"":A},fixPrecision:function(B){var A=isNaN(B);if(!this.allowDecimals||this.decimalPrecision==-1||A||!B){return A?"":B}return parseFloat(parseFloat(B).toFixed(this.decimalPrecision))},beforeBlur:function(){var A=this.parseValue(this.getRawValue());if(A){this.setValue(this.fixPrecision(A))}}});Ext.reg("numberfield",Ext.form.NumberField); -Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue)}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue)}this.ddMatch=null;this.initDisabledDays()},initDisabledDays:function(){if(this.disabledDates){var A=this.disabledDates;var C="(?:";for(var B=0;Bthis.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false}if(this.disabledDays){var A=E.getDay();for(var B=0;B
    {"+this.displayField+"}
    "}this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+A+"-item"});this.view.on("click",this.onViewClick,this);this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.resizer.on("resize",function(E,C,D){this.maxHeight=D-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=C;this.innerList.setWidth(C-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}}},bindStore:function(A,B){if(this.store&&!B){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.collapse,this);if(!A){this.store=null;if(this.view){this.view.setStore(null)}}}if(A){this.store=Ext.StoreMgr.lookup(A);this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.collapse,this);if(this.view){this.view.setStore(A)}}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(A){this.inKeyMode=true;this.selectPrev()},"down":function(A){if(!this.isExpanded()){this.onTriggerClick()}else{this.inKeyMode=true;this.selectNext()}},"enter":function(A){this.onViewClick();this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)},"esc":function(A){this.collapse()},"tab":function(A){this.onViewClick(false);return true},scope:this,doRelay:function(C,B,A){if(A=="down"||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments)}return true},forceKeyDown:true});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(this.editable!==false){this.el.on("keyup",this.onKeyUp,this)}if(this.forceSelection){this.on("blur",this.doForce,this)}},onDestroy:function(){if(this.view){this.view.el.removeAllListeners();this.view.el.remove();this.view.purgeListeners()}if(this.list){this.list.destroy()}this.bindStore(null);Ext.form.ComboBox.superclass.onDestroy.call(this)},unsetDelayCheck:function(){delete this.delayedCheck},fireKey:function(A){if(A.isNavKeyPress()&&!this.isExpanded()&&!this.delayedCheck){this.fireEvent("specialkey",this,A)}},onResize:function(A,B){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(this.list&&this.listWidth===undefined){var C=Math.max(A,this.minListWidth);this.list.setWidth(C);this.innerList.setWidth(C-this.list.getFrameWidth("lr"))}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=false}},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=true}},setEditable:function(A){if(A==this.editable){return }this.editable=A;if(!A){this.el.dom.setAttribute("readOnly",true);this.el.on("mousedown",this.onTriggerClick,this);this.el.addClass("x-combo-noedit")}else{this.el.dom.setAttribute("readOnly",false);this.el.un("mousedown",this.onTriggerClick,this);this.el.removeClass("x-combo-noedit")}},onBeforeLoad:function(){if(!this.hasFocus){return }this.innerList.update(this.loadingText?"
    "+this.loadingText+"
    ":"");this.restrictHeight();this.selectedIndex=-1},onLoad:function(){if(!this.hasFocus){return }if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select()}if(!this.selectByValue(this.value,true)){this.select(0,true)}}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay)}}}else{this.onEmptyResults()}},onTypeAhead:function(){if(this.store.getCount()>0){var B=this.store.getAt(0);var C=B.data[this.displayField];var A=C.length;var D=this.getRawValue().length;if(D!=A){this.setRawValue(C);this.selectText(D,C.length)}}},onSelect:function(A,B){if(this.fireEvent("beforeselect",this,A,B)!==false){this.setValue(A.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,A,B)}},getValue:function(){if(this.valueField){return typeof this.value!="undefined"?this.value:""}else{return Ext.form.ComboBox.superclass.getValue.call(this)}},clearValue:function(){if(this.hiddenField){this.hiddenField.value=""}this.setRawValue("");this.lastSelectionText="";this.applyEmptyText();this.value=""},setValue:function(A){var C=A;if(this.valueField){var B=this.findRecord(this.valueField,A);if(B){C=B.data[this.displayField]}else{if(this.valueNotFoundText!==undefined){C=this.valueNotFoundText}}}this.lastSelectionText=C;if(this.hiddenField){this.hiddenField.value=A}Ext.form.ComboBox.superclass.setValue.call(this,C);this.value=A},findRecord:function(C,B){var A;if(this.store.getCount()>0){this.store.each(function(D){if(D.data[C]==B){A=D;return false}})}return A},onViewMove:function(B,A){this.inKeyMode=false},onViewOver:function(D,B){if(this.inKeyMode){return }var C=this.view.findItemFromChild(B);if(C){var A=this.view.indexOf(C);this.select(A,false)}},onViewClick:function(B){var A=this.view.getSelectedIndexes()[0];var C=this.store.getAt(A);if(C){this.onSelect(C,A)}if(B!==false){this.el.focus()}},restrictHeight:function(){this.innerList.dom.style.height="";var B=this.innerList.dom;var E=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight;var C=Math.max(B.clientHeight,B.offsetHeight,B.scrollHeight);var A=this.getPosition()[1]-Ext.getBody().getScroll().top;var F=Ext.lib.Dom.getViewHeight()-A-this.getSize().height;var D=Math.max(A,F,this.minHeight||0)-this.list.shadowOffset-E-5;C=Math.min(C,D,this.maxHeight);this.innerList.setHeight(C);this.list.beginUpdate();this.list.setHeight(C+E);this.list.alignTo(this.wrap,this.listAlign);this.list.endUpdate()},onEmptyResults:function(){this.collapse()},isExpanded:function(){return this.list&&this.list.isVisible()},selectByValue:function(A,C){if(A!==undefined&&A!==null){var B=this.findRecord(this.valueField||this.displayField,A);if(B){this.select(this.store.indexOf(B),C);return true}}return false},select:function(A,C){this.selectedIndex=A;this.view.select(A);if(C!==false){var B=this.view.getNode(A);if(B){this.innerList.scrollChildIntoView(B,false)}}},selectNext:function(){var A=this.store.getCount();if(A>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex!=0){this.select(this.selectedIndex-1)}}}},onKeyUp:function(A){if(this.editable!==false&&!A.isSpecialKey()){this.lastKey=A.getKey();this.dqTask.delay(this.queryDelay)}},validateBlur:function(){return !this.list||!this.list.isVisible()},initQuery:function(){this.doQuery(this.getRawValue())},doForce:function(){if(this.el.dom.value.length>0){this.el.dom.value=this.lastSelectionText===undefined?"":this.lastSelectionText;this.applyEmptyText()}},doQuery:function(C,B){if(C===undefined||C===null){C=""}var A={query:C,forceAll:B,combo:this,cancel:false};if(this.fireEvent("beforequery",A)===false||A.cancel){return false}C=A.query;B=A.forceAll;if(B===true||(C.length>=this.minChars)){if(this.lastQuery!==C){this.lastQuery=C;if(this.mode=="local"){this.selectedIndex=-1;if(B){this.store.clearFilter()}else{this.store.filter(this.displayField,C)}this.onLoad()}else{this.store.baseParams[this.queryParam]=C;this.store.load({params:this.getParams(C)});this.expand()}}else{this.selectedIndex=-1;this.onLoad()}}},getParams:function(A){var B={};if(this.pageSize){B.start=0;B.limit=this.pageSize}return B},collapse:function(){if(!this.isExpanded()){return }this.list.hide();Ext.getDoc().un("mousewheel",this.collapseIf,this);Ext.getDoc().un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this)},collapseIf:function(A){if(!A.within(this.wrap)&&!A.within(this.list)){this.collapse()}},expand:function(){if(this.isExpanded()||!this.hasFocus){return }this.list.alignTo(this.wrap,this.listAlign);this.list.show();this.innerList.setOverflow("auto");Ext.getDoc().on("mousewheel",this.collapseIf,this);Ext.getDoc().on("mousedown",this.collapseIf,this);this.fireEvent("expand",this)},onTriggerClick:function(){if(this.disabled){return }if(this.isExpanded()){this.collapse();this.el.focus()}else{this.onFocus({});if(this.triggerAction=="all"){this.doQuery(this.allQuery,true)}else{this.doQuery(this.getRawValue())}this.el.focus()}}});Ext.reg("combo",Ext.form.ComboBox); -Ext.form.Checkbox=Ext.extend(Ext.form.Field,{checkedCls:"x-form-check-checked",focusCls:"x-form-check-focus",overCls:"x-form-check-over",mouseDownCls:"x-form-check-down",tabIndex:0,checked:false,defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},baseCls:"x-form-check",initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents("check")},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.initCheckEvents()},initCheckEvents:function(){this.innerWrap.removeAllListeners();this.innerWrap.addClassOnOver(this.overCls);this.innerWrap.addClassOnClick(this.mouseDownCls);this.innerWrap.on("click",this.onClick,this);this.innerWrap.on("keyup",this.onKeyUp,this)},onRender:function(B,A){Ext.form.Checkbox.superclass.onRender.call(this,B,A);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue}this.el.addClass("x-hidden");this.innerWrap=this.el.wrap({tabIndex:this.tabIndex,cls:this.baseCls+"-wrap-inner"});this.wrap=this.innerWrap.wrap({cls:this.baseCls+"-wrap"});if(this.boxLabel){this.labelEl=this.innerWrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}this.imageEl=this.innerWrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:this.baseCls},this.el);if(this.checked){this.setValue(true)}else{this.checked=this.el.dom.checked}this.originalValue=this.checked},onDestroy:function(){if(this.rendered){Ext.destroy(this.imageEl,this.labelEl,this.innerWrap,this.wrap)}Ext.form.Checkbox.superclass.onDestroy.call(this)},onFocus:function(A){Ext.form.Checkbox.superclass.onFocus.call(this,A);this.el.addClass(this.focusCls)},onBlur:function(A){Ext.form.Checkbox.superclass.onBlur.call(this,A);this.el.removeClass(this.focusCls)},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel){this.el.alignTo(this.wrap,"c-c")}},onKeyUp:function(A){if(A.getKey()==Ext.EventObject.SPACE){this.onClick(A)}},onClick:function(A){if(!this.disabled&&!this.readOnly){this.toggleValue()}A.stopEvent()},onEnable:function(){Ext.form.Checkbox.superclass.onEnable.call(this);this.initCheckEvents()},onDisable:function(){Ext.form.Checkbox.superclass.onDisable.call(this);this.innerWrap.removeAllListeners()},toggleValue:function(){this.setValue(!this.checked)},getResizeEl:function(){if(!this.resizeEl){this.resizeEl=Ext.isSafari?this.wrap:(this.wrap.up(".x-form-element",5)||this.wrap)}return this.resizeEl},getPositionEl:function(){return this.wrap},getActionEl:function(){return this.wrap},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,initValue:Ext.emptyFn,getValue:function(){if(this.rendered){return this.el.dom.checked}return false},setValue:function(A){var B=this.checked;this.checked=(A===true||A==="true"||A=="1"||String(A).toLowerCase()=="on");if(this.el&&this.el.dom){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}this.wrap[this.checked?"addClass":"removeClass"](this.checkedCls);if(B!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked)}}}});Ext.reg("checkbox",Ext.form.Checkbox); -Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkbox",groupCls:"x-form-check-group",onRender:function(H,F){if(!this.el){var M={cls:this.groupCls,layout:"column",border:false,renderTo:H};var A={defaultType:this.defaultType,layout:"form",border:false,defaults:{hideLabel:true,anchor:"100%"}};if(this.items[0].items){Ext.apply(M,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items});for(var E=0,J=this.items.length;E0&&E%O==0){L++}if(this.items[E].fieldLabel){this.items[E].hideLabel=false}K[L].items.push(this.items[E])}}else{for(var E=0,J=this.items.length;E":">"),C,"")}return D.join("")},createToolbar:function(D){var A=Ext.QuickTips&&Ext.QuickTips.isEnabled();function C(G,E,F){return{itemId:G,cls:"x-btn-icon x-edit-"+G,enableToggle:E!==false,scope:D,handler:F||D.relayBtnCmd,clickEvent:"mousedown",tooltip:A?D.buttonTips[G]||undefined:undefined,tabIndex:-1}}var B=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild});B.el.on("click",function(E){E.preventDefault()});if(this.enableFont&&!Ext.isSafari2){this.fontSelect=B.el.createChild({tag:"select",cls:"x-font-select",html:this.createFontOptions()});this.fontSelect.on("change",function(){var E=this.fontSelect.dom.value;this.relayCmd("fontname",E);this.deferFocus()},this);B.add(this.fontSelect.dom,"-")}if(this.enableFormat){B.add(C("bold"),C("italic"),C("underline"))}if(this.enableFontSize){B.add("-",C("increasefontsize",false,this.adjustFont),C("decreasefontsize",false,this.adjustFont))}if(this.enableColors){B.add("-",{itemId:"forecolor",cls:"x-btn-icon x-edit-forecolor",clickEvent:"mousedown",tooltip:A?D.buttonTips["forecolor"]||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,selectHandler:function(F,E){this.execCmd("forecolor",Ext.isSafari||Ext.isIE?"#"+E:E);this.deferFocus()},scope:this,clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon x-edit-backcolor",clickEvent:"mousedown",tooltip:A?D.buttonTips["backcolor"]||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,selectHandler:function(F,E){if(Ext.isGecko){this.execCmd("useCSS",false);this.execCmd("hilitecolor",E);this.execCmd("useCSS",true);this.deferFocus()}else{this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isSafari||Ext.isIE?"#"+E:E);this.deferFocus()}},scope:this,clickEvent:"mousedown"})})}if(this.enableAlignments){B.add("-",C("justifyleft"),C("justifycenter"),C("justifyright"))}if(!Ext.isSafari2){if(this.enableLinks){B.add("-",C("createlink",false,this.createLink))}if(this.enableLists){B.add("-",C("insertorderedlist"),C("insertunorderedlist"))}if(this.enableSourceEdit){B.add("-",C("sourceedit",true,function(E){this.toggleSourceEdit(E.pressed)}))}}this.tb=B},getDocMarkup:function(){return""},getEditorBody:function(){return this.doc.body||this.doc.documentElement},getDoc:function(){return Ext.isIE?this.getWin().document:(this.iframe.contentDocument||this.getWin().document)},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name]},onRender:function(B,A){Ext.form.HtmlEditor.superclass.onRender.call(this,B,A);this.el.dom.style.border="0 none";this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");if(Ext.isIE){this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;")}this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}});this.createToolbar(this);this.tb.items.each(function(E){if(E.itemId!="sourceedit"){E.disable()}});var C=document.createElement("iframe");C.name=Ext.id();C.frameBorder="0";C.src=Ext.isIE?Ext.SSL_SECURE_URL:"javascript:;";this.wrap.dom.appendChild(C);this.iframe=C;this.initFrame();if(this.autoMonitorDesignMode!==false){this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100})}if(!this.width){var D=this.el.getSize();this.setSize(D.width,this.height||D.height)}},initFrame:function(){this.doc=this.getDoc();this.win=this.getWin();this.doc.open();this.doc.write(this.getDocMarkup());this.doc.close();var A={run:function(){if(this.doc.body||this.doc.readyState=="complete"){Ext.TaskMgr.stop(A);this.doc.designMode="on";this.initEditor.defer(10,this)}},interval:10,duration:10000,scope:this};Ext.TaskMgr.start(A)},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var A=this.getDoc();if(!A){return }if(!A.editorInitialized||String(A.designMode).toLowerCase()!="on"){this.initFrame()}}},onResize:function(B,C){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(typeof B=="number"){var D=B-this.wrap.getFrameWidth("lr");this.el.setWidth(this.adjustWidth("textarea",D));this.iframe.style.width=D+"px"}if(typeof C=="number"){var A=C-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight();this.el.setHeight(this.adjustWidth("textarea",A));this.iframe.style.height=A+"px";if(this.doc){this.getEditorBody().style.height=(A-(this.iframePad*2))+"px"}}}},toggleSourceEdit:function(A){if(A===undefined){A=!this.sourceEditMode}this.sourceEditMode=A===true;var C=this.tb.items.get("sourceedit");if(C.pressed!==this.sourceEditMode){C.toggle(this.sourceEditMode);return }if(this.sourceEditMode){this.tb.items.each(function(D){if(D.itemId!="sourceedit"){D.disable()}});this.syncValue();this.iframe.className="x-hidden";this.el.removeClass("x-hidden");this.el.dom.removeAttribute("tabIndex");this.el.focus()}else{if(this.initialized){this.tb.items.each(function(D){D.enable()})}this.pushValue();this.iframe.className="";this.el.addClass("x-hidden");this.el.dom.setAttribute("tabIndex",-1);this.deferFocus()}var B=this.lastSize;if(B){delete this.lastSize;this.setSize(B)}this.fireEvent("editmodechange",this,this.sourceEditMode)},createLink:function(){var A=prompt(this.createLinkText,this.defaultLinkValue);if(A&&A!="http:/"+"/"){this.relayCmd("createlink",A)}},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(A){Ext.form.HtmlEditor.superclass.setValue.call(this,A);this.pushValue()},cleanHtml:function(A){A=String(A);if(A.length>5){if(Ext.isSafari){A=A.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}}if(A==" "){A=""}return A},syncValue:function(){if(this.initialized){var D=this.getEditorBody();var C=D.innerHTML;if(Ext.isSafari){var B=D.getAttribute("style");var A=B.match(/text-align:(.*?);/i);if(A&&A[1]){C="
    "+C+"
    "}}C=this.cleanHtml(C);if(this.fireEvent("beforesync",this,C)!==false){this.el.dom.value=C;this.fireEvent("sync",this,C)}}},pushValue:function(){if(this.initialized){var A=this.el.dom.value;if(!this.activated&&A.length<1){A=" "}if(this.fireEvent("beforepush",this,A)!==false){this.getEditorBody().innerHTML=A;this.fireEvent("push",this,A)}}},deferFocus:function(){this.focus.defer(10,this)},focus:function(){if(this.win&&!this.sourceEditMode){this.win.focus()}else{this.el.focus()}},initEditor:function(){var B=this.getEditorBody();var A=this.el.getStyles("font-size","font-family","background-image","background-repeat");A["background-attachment"]="fixed";B.bgProperties="fixed";Ext.DomHelper.applyStyles(B,A);if(this.doc){try{Ext.EventManager.removeAll(this.doc)}catch(C){}}this.doc=this.getDoc();Ext.EventManager.on(this.doc,{"mousedown":this.onEditorEvent,"dblclick":this.onEditorEvent,"click":this.onEditorEvent,"keyup":this.onEditorEvent,buffer:100,scope:this});if(Ext.isGecko){Ext.EventManager.on(this.doc,"keypress",this.applyCommand,this)}if(Ext.isIE||Ext.isSafari||Ext.isOpera){Ext.EventManager.on(this.doc,"keydown",this.fixKeys,this)}this.initialized=true;this.fireEvent("initialize",this);this.doc.editorInitialized=true;this.pushValue()},onDestroy:function(){if(this.monitorTask){Ext.TaskMgr.stop(this.monitorTask)}if(this.rendered){this.tb.items.each(function(A){if(A.menu){A.menu.removeAll();if(A.menu.el){A.menu.el.destroy()}}A.destroy()});this.wrap.dom.innerHTML="";this.wrap.remove()}},onFirstFocus:function(){this.activated=true;this.tb.items.each(function(D){D.enable()});if(Ext.isGecko){this.win.focus();var A=this.win.getSelection();if(!A.focusNode||A.focusNode.nodeType!=3){var B=A.getRangeAt(0);B.selectNodeContents(this.getEditorBody());B.collapse(true);this.deferFocus()}try{this.execCmd("useCSS",true);this.execCmd("styleWithCSS",false)}catch(C){}}this.fireEvent("activate",this)},adjustFont:function(B){var C=B.itemId=="increasefontsize"?1:-1;var A=parseInt(this.doc.queryCommandValue("FontSize")||2,10);if(Ext.isSafari3||Ext.isAir){if(A<=10){A=1+C}else{if(A<=13){A=2+C}else{if(A<=16){A=3+C}else{if(A<=18){A=4+C}else{if(A<=24){A=5+C}else{A=6+C}}}}}A=A.constrain(1,6)}else{if(Ext.isSafari){C*=2}A=Math.max(1,A+C)+(Ext.isSafari?"px":0)}this.execCmd("FontSize",A)},onEditorEvent:function(A){this.updateToolbar()},updateToolbar:function(){if(!this.activated){this.onFirstFocus();return }var B=this.tb.items.map,C=this.doc;if(this.enableFont&&!Ext.isSafari2){var A=(this.doc.queryCommandValue("FontName")||this.defaultFont).toLowerCase();if(A!=this.fontSelect.dom.value){this.fontSelect.dom.value=A}}if(this.enableFormat){B.bold.toggle(C.queryCommandState("bold"));B.italic.toggle(C.queryCommandState("italic"));B.underline.toggle(C.queryCommandState("underline"))}if(this.enableAlignments){B.justifyleft.toggle(C.queryCommandState("justifyleft"));B.justifycenter.toggle(C.queryCommandState("justifycenter"));B.justifyright.toggle(C.queryCommandState("justifyright"))}if(!Ext.isSafari2&&this.enableLists){B.insertorderedlist.toggle(C.queryCommandState("insertorderedlist"));B.insertunorderedlist.toggle(C.queryCommandState("insertunorderedlist"))}Ext.menu.MenuMgr.hideAll();this.syncValue()},relayBtnCmd:function(A){this.relayCmd(A.itemId)},relayCmd:function(B,A){(function(){this.focus();this.execCmd(B,A);this.updateToolbar()}).defer(10,this)},execCmd:function(B,A){this.doc.execCommand(B,false,A===undefined?null:A);this.syncValue()},applyCommand:function(B){if(B.ctrlKey){var C=B.getCharCode(),A;if(C>0){C=String.fromCharCode(C);switch(C){case"b":A="bold";break;case"i":A="italic";break;case"u":A="underline";break}if(A){this.win.focus();this.execCmd(A);this.deferFocus();B.preventDefault()}}}},insertAtCursor:function(B){if(!this.activated){return }if(Ext.isIE){this.win.focus();var A=this.doc.selection.createRange();if(A){A.collapse(true);A.pasteHTML(B);this.syncValue();this.deferFocus()}}else{if(Ext.isGecko||Ext.isOpera){this.win.focus();this.execCmd("InsertHTML",B);this.deferFocus()}else{if(Ext.isSafari){this.execCmd("InsertText",B);this.deferFocus()}}}},fixKeys:function(){if(Ext.isIE){return function(D){var A=D.getKey(),B;if(A==D.TAB){D.stopEvent();B=this.doc.selection.createRange();if(B){B.collapse(true);B.pasteHTML("    ");this.deferFocus()}}else{if(A==D.ENTER){B=this.doc.selection.createRange();if(B){var C=B.parentElement();if(!C||C.tagName.toLowerCase()!="li"){D.stopEvent();B.pasteHTML("
    ");B.collapse(false);B.select()}}}}}}else{if(Ext.isOpera){return function(B){var A=B.getKey();if(A==B.TAB){B.stopEvent();this.win.focus();this.execCmd("InsertHTML","    ");this.deferFocus()}}}else{if(Ext.isSafari){return function(B){var A=B.getKey();if(A==B.TAB){B.stopEvent();this.execCmd("InsertText","\t");this.deferFocus()}}}}}}(),getToolbar:function(){return this.tb},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});Ext.reg("htmleditor",Ext.form.HtmlEditor); -Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:null,maxValue:null,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H",increment:15,mode:"local",triggerAction:"all",typeAhead:false,initDate:"1/1/2008",initComponent:function(){Ext.form.TimeField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue)}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue)}if(!this.store){var B=this.parseDate(this.minValue);if(!B){B=new Date(this.initDate).clearTime()}var A=this.parseDate(this.maxValue);if(!A){A=new Date(this.initDate).clearTime().add("mi",(24*60)-1)}var C=[];while(B<=A){C.push([B.dateFormat(this.format)]);B=B.add("mi",this.increment)}this.store=new Ext.data.SimpleStore({fields:["text"],data:C});this.displayField="text"}},getValue:function(){var A=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(A))||""},setValue:function(A){Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(A)))},validateValue:Ext.form.DateField.prototype.validateValue,parseDate:Ext.form.DateField.prototype.parseDate,formatDate:Ext.form.DateField.prototype.formatDate,beforeBlur:function(){var A=this.parseDate(this.getRawValue());if(A){this.setValue(A.dateFormat(this.format))}}});Ext.reg("timefield",Ext.form.TimeField); -Ext.form.Label=Ext.extend(Ext.BoxComponent,{onRender:function(B,A){if(!this.el){this.el=document.createElement("label");this.el.id=this.getId();this.el.innerHTML=this.text?Ext.util.Format.htmlEncode(this.text):(this.html||"");if(this.forId){this.el.setAttribute("htmlFor",this.forId)}}Ext.form.Label.superclass.onRender.call(this,B,A)},setText:function(A,B){this.text=A;if(this.rendered){this.el.dom.innerHTML=B!==false?Ext.util.Format.htmlEncode(A):A}return this}});Ext.reg("label",Ext.form.Label); -Ext.form.Action=function(B,A){this.form=B;this.options=A||{}};Ext.form.Action.CLIENT_INVALID="client";Ext.form.Action.SERVER_INVALID="server";Ext.form.Action.CONNECT_FAILURE="connect";Ext.form.Action.LOAD_FAILURE="load";Ext.form.Action.prototype={type:"default",run:function(A){},success:function(A){},handleResponse:function(A){},failure:function(A){this.response=A;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(A){this.response=A;if(!A.responseText){return true}this.result=this.handleResponse(A);return this.result},getUrl:function(C){var A=this.options.url||this.form.url||this.form.el.dom.action;if(C){var B=this.getParams();if(B){A+=(A.indexOf("?")!=-1?"&":"?")+B}}return A},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||"POST").toUpperCase()},getParams:function(){var A=this.form.baseParams;var B=this.options.params;if(B){if(typeof B=="object"){B=Ext.urlEncode(Ext.applyIf(B,A))}else{if(typeof B=="string"&&A){B+="&"+Ext.urlEncode(A)}}}else{if(A){B=Ext.urlEncode(A)}}return B},createCallback:function(A){var A=A||{};return{success:this.success,failure:this.failure,scope:this,timeout:(A.timeout*1000)||(this.form.timeout*1000),upload:this.form.fileUpload?this.success:undefined}}};Ext.form.Action.Submit=function(B,A){Ext.form.Action.Submit.superclass.constructor.call(this,B,A)};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:"submit",run:function(){var B=this.options;var C=this.getMethod();var A=C=="GET";if(B.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(B),{form:this.form.el.dom,url:this.getUrl(A),method:C,headers:B.headers,params:!A?this.getParams():null,isUpload:this.form.fileUpload}))}else{if(B.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},success:function(B){var A=this.processResponse(B);if(A===true||A.success){this.form.afterAction(this,true);return }if(A.errors){this.form.markInvalid(A.errors);this.failureType=Ext.form.Action.SERVER_INVALID}this.form.afterAction(this,false)},handleResponse:function(C){if(this.form.errorReader){var B=this.form.errorReader.read(C);var F=[];if(B.records){for(var D=0,A=B.records.length;D=0){if(!D){C=F-1}D=false;while(C>=0){if(E.call(I||this,J,C,H)===true){return[J,C]}C--}J--}}else{if(C>=F){J++;D=false}while(J","
    ","
    {header}
    ","
    {body}
    ","
    ","
     
    ","
     
    ","")}if(!C.header){C.header=new Ext.Template("","{cells}","
    ")}if(!C.hcell){C.hcell=new Ext.Template("
    ",this.grid.enableHdMenu?"":"","{value}","
    ")}if(!C.body){C.body=new Ext.Template("{rows}")}if(!C.row){C.row=new Ext.Template("
    ","{cells}",(this.enableRowBody?"":""),"
    {body}
    ")}if(!C.cell){C.cell=new Ext.Template("","
    {value}
    ","")}for(var A in C){var B=C[A];if(B&&typeof B.compile=="function"&&!B.compiled){B.disableFormats=true;B.compile()}}this.templates=C;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(A){if(!this._flyweight){this._flyweight=new Ext.Element.Flyweight(document.body)}this._flyweight.dom=A;return this._flyweight},getEditorParent:function(A){return this.scroller.dom},initElements:function(){var C=Ext.Element;var B=this.grid.getGridEl().dom.firstChild;var A=B.childNodes;this.el=new C(B);this.mainWrap=new C(A[0]);this.mainHd=new C(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false)}this.innerHd=this.mainHd.dom.firstChild;this.scroller=new C(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle("overflow-x","hidden")}this.mainBody=new C(this.scroller.dom.firstChild);this.focusEl=new C(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new C(A[1]);this.resizeProxy=new C(A[2])},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(A){if(!A){return false}return this.fly(A).findParent(this.cellSelector,this.cellSelectorDepth)},findCellIndex:function(C,B){var A=this.findCell(C);if(A&&(!B||this.fly(A).hasClass(B))){return this.getCellIndex(A)}return false},getCellIndex:function(B){if(B){var A=B.className.match(this.colRe);if(A&&A[1]){return this.cm.getIndexById(A[1])}}return false},findHeaderCell:function(B){var A=this.findCell(B);return A&&this.fly(A).hasClass(this.hdCls)?A:null},findHeaderIndex:function(A){return this.findCellIndex(A,this.hdCls)},findRow:function(A){if(!A){return false}return this.fly(A).findParent(this.rowSelector,this.rowSelectorDepth)},findRowIndex:function(A){var B=this.findRow(A);return B?B.rowIndex:false},getRow:function(A){return this.getRows()[A]},getCell:function(B,A){return this.getRow(B).getElementsByTagName("td")[A]},getHeaderCell:function(A){return this.mainHd.dom.getElementsByTagName("td")[A]},addRowClass:function(C,A){var B=this.getRow(C);if(B){this.fly(B).addClass(A)}},removeRowClass:function(C,A){var B=this.getRow(C);if(B){this.fly(B).removeClass(A)}},removeRow:function(A){Ext.removeNode(this.getRow(A));this.focusRow(A)},removeRows:function(C,A){var B=this.mainBody.dom;for(var D=C;D<=A;D++){Ext.removeNode(B.childNodes[C])}this.focusRow(C)},getScrollState:function(){var A=this.scroller.dom;return{left:A.scrollLeft,top:A.scrollTop}},restoreScroll:function(A){var B=this.scroller.dom;B.scrollLeft=A.left;B.scrollTop=A.top},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var A=this.scroller.dom;this.grid.fireEvent("bodyscroll",A.scrollLeft,A.scrollTop)},syncHeaderScroll:function(){var A=this.scroller.dom;this.innerHd.scrollLeft=A.scrollLeft;this.innerHd.scrollLeft=A.scrollLeft},updateSortIcon:function(B,A){var D=this.sortClasses;var C=this.mainHd.select("td").removeClass(D);C.item(B).addClass(D[A=="DESC"?1:0])},updateAllColumnWidths:function(){var D=this.getTotalWidth();var H=this.cm.getColumnCount();var F=[];for(var B=0;B=this.ds.getCount()){return }E=(E!==undefined?E:0);var I=this.getRow(P),F;if(!(D===false&&E===0)){while(this.cm.isHidden(E)){E++}F=this.getCell(P,E)}if(!I){return }var L=this.scroller.dom;var O=0;var C=I,M=this.el.dom;while(C&&C!=M){O+=C.offsetTop;C=C.offsetParent}O-=this.mainHd.dom.offsetHeight;var N=O+I.offsetHeight;var A=L.clientHeight;var M=parseInt(L.scrollTop,10);var K=M+A;if(OK){L.scrollTop=N-A}}if(D!==false){var J=parseInt(F.offsetLeft,10);var H=J+F.offsetWidth;var G=parseInt(L.scrollLeft,10);var B=G+L.clientWidth;if(JB){L.scrollLeft=H-L.clientWidth}}}return F?Ext.fly(F).getXY():[L.scrollLeft+this.el.getX(),Ext.fly(I).getY()]},insertRows:function(A,F,C,E){if(!E&&F===0&&C>=A.getCount()-1){this.refresh()}else{if(!E){this.fireEvent("beforerowsinserted",this,F,C)}var B=this.renderRows(F,C);var D=this.getRow(F);if(D){Ext.DomHelper.insertHtml("beforeBegin",D,B)}else{Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,B)}if(!E){this.fireEvent("rowsinserted",this,F,C);this.processRows(F)}}this.focusRow(F)},deleteRows:function(A,C,B){if(A.getRowCount()<1){this.refresh()}else{this.fireEvent("beforerowsdeleted",this,C,B);this.removeRows(C,B);this.processRows(C);this.fireEvent("rowsdeleted",this,C,B)}},getColumnStyle:function(A,C){var B=!C?(this.cm.config[A].css||""):"";B+="width:"+this.getColumnWidth(A)+";";if(this.cm.isHidden(A)){B+="display:none;"}var D=this.cm.config[A].align;if(D){B+="text-align:"+D+";"}return B},getColumnWidth:function(B){var A=this.cm.getColumnWidth(B);if(typeof A=="number"){return(Ext.isBorderBox?A:(A-this.borderWidth>0?A-this.borderWidth:0))+"px"}return A},getTotalWidth:function(){return this.cm.getTotalWidth()+"px"},fitColumns:function(D,G,E){var F=this.cm,S,L,O;var R=F.getTotalWidth(false);var J=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(J<20){return }var B=J-R;if(B===0){return false}var A=F.getColumnCount(true);var P=A-(typeof E=="number"?1:0);if(P===0){P=1;E=undefined}var K=F.getColumnCount();var I=[];var N=0;var M=0;var H;for(O=0;OJ){var Q=P!=A?E:N;F.setColumnWidth(Q,Math.max(1,F.getColumnWidth(Q)-(R-J)),true)}if(D!==true){this.updateAllColumnWidths()}return true},autoExpand:function(B){var G=this.grid,A=this.cm;if(!this.userResized&&G.autoExpandColumn){var D=A.getTotalWidth(false);var H=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(D!=H){var F=A.getIndexById(G.autoExpandColumn);var E=A.getColumnWidth(F);var C=Math.min(Math.max(((H-D)+E),G.autoExpandMin),G.autoExpandMax);if(C!=E){A.setColumnWidth(F,C,true);if(B!==true){this.updateColumnWidth(F,C)}}}}},getColumnData:function(){var D=[],A=this.cm,E=A.getColumnCount();for(var C=0;C"+this.emptyText+"")}},updateHeaderSortState:function(){var B=this.ds.getSortState();if(!B){return }if(!this.sortState||(this.sortState.field!=B.field||this.sortState.direction!=B.direction)){this.grid.fireEvent("sortchange",this.grid,B)}this.sortState=B;var C=this.cm.findColumnIndex(B.field);if(C!=-1){var A=B.direction;this.updateSortIcon(C,A)}},destroy:function(){if(this.colMenu){this.colMenu.removeAll();Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.getEl().remove();delete this.colMenu}if(this.hmenu){this.hmenu.removeAll();Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.getEl().remove();delete this.hmenu}if(this.grid.enableColumnMove){var C=Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id];if(C){for(var A in C){if(!C[A].config.isTarget&&C[A].dragElId){var B=C[A].dragElId;C[A].unreg();Ext.get(B).remove()}else{if(C[A].config.isTarget){C[A].proxyTop.remove();C[A].proxyBottom.remove();C[A].unreg()}}if(Ext.dd.DDM.locationCache[A]){delete Ext.dd.DDM.locationCache[A]}}delete Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id]}}Ext.destroy(this.resizeMarker,this.resizeProxy);if(this.dragZone){this.dragZone.unreg()}this.initData(null,null);Ext.EventManager.removeResizeListener(this.onWindowResize,this)},onDenyColumnHide:function(){},render:function(){if(this.autoFill){this.fitColumns(true,true)}else{if(this.forceFit){this.fitColumns(true,false)}else{if(this.grid.autoExpandColumn){this.autoExpand(true)}}}this.renderUI()},initData:function(B,A){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange,this);this.ds.un("add",this.onAdd,this);this.ds.un("remove",this.onRemove,this);this.ds.un("update",this.onUpdate,this);this.ds.un("clear",this.onClear,this)}if(B){B.on("load",this.onLoad,this);B.on("datachanged",this.onDataChange,this);B.on("add",this.onAdd,this);B.on("remove",this.onRemove,this);B.on("update",this.onUpdate,this);B.on("clear",this.onClear,this)}this.ds=B;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this)}if(A){delete this.lastViewWidth;A.on("configchange",this.onColConfigChange,this);A.on("widthchange",this.onColWidthChange,this);A.on("headerchange",this.onHeaderChange,this);A.on("hiddenchange",this.onHiddenChange,this);A.on("columnmoved",this.onColumnMove,this);A.on("columnlockchange",this.onColumnLock,this)}this.cm=A},onDataChange:function(){this.refresh();this.updateHeaderSortState()},onClear:function(){this.refresh()},onUpdate:function(B,A){this.refreshRow(A)},onAdd:function(C,A,B){this.insertRows(C,B,B+(A.length-1))},onRemove:function(D,A,B,C){if(C!==true){this.fireEvent("beforerowremoved",this,B,A)}this.removeRow(B);if(C!==true){this.processRows(B);this.applyEmptyText();this.fireEvent("rowremoved",this,B,A)}},onLoad:function(){this.scrollToTop()},onColWidthChange:function(A,B,C){this.updateColumnWidth(B,C)},onHeaderChange:function(A,B,C){this.updateHeaders()},onHiddenChange:function(A,B,C){this.updateColumnHidden(B,C)},onColumnMove:function(A,D,B){this.indexMap=null;var C=this.getScrollState();this.refresh(true);this.restoreScroll(C);this.afterMove(B)},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true)},initUI:function(A){A.on("headerclick",this.onHeaderClick,this);if(A.trackMouseOver){A.on("mouseover",this.onRowOver,this);A.on("mouseout",this.onRowOut,this)}},initEvents:function(){},onHeaderClick:function(B,A){if(this.headersDisabled||!this.cm.isSortable(A)){return }B.stopEditing(true);B.store.sort(this.cm.getDataIndex(A))},onRowOver:function(B,A){var C;if((C=this.findRowIndex(A))!==false){this.addRowClass(C,"x-grid3-row-over")}},onRowOut:function(B,A){var C;if((C=this.findRowIndex(A))!==false&&C!==this.findRowIndex(B.getRelatedTarget())){this.removeRowClass(C,"x-grid3-row-over")}},handleWheel:function(A){A.stopPropagation()},onRowSelect:function(A){this.addRowClass(A,"x-grid3-row-selected")},onRowDeselect:function(A){this.removeRowClass(A,"x-grid3-row-selected")},onCellSelect:function(C,B){var A=this.getCell(C,B);if(A){this.fly(A).addClass("x-grid3-cell-selected")}},onCellDeselect:function(C,B){var A=this.getCell(C,B);if(A){this.fly(A).removeClass("x-grid3-cell-selected")}},onColumnSplitterMoved:function(C,B){this.userResized=true;var A=this.grid.colModel;A.setColumnWidth(C,B,true);if(this.forceFit){this.fitColumns(true,false,C);this.updateAllColumnWidths()}else{this.updateColumnWidth(C,B)}this.grid.fireEvent("columnresize",C,B)},handleHdMenuClick:function(C){var B=this.hdCtxIndex;var A=this.cm,D=this.ds;switch(C.id){case"asc":D.sort(A.getDataIndex(B),"ASC");break;case"desc":D.sort(A.getDataIndex(B),"DESC");break;default:B=A.getIndexById(C.id.substr(4));if(B!=-1){if(C.checked&&A.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false}A.setHidden(B,C.checked)}}return true},isHideableColumn:function(A){return !A.hidden&&!A.fixed},beforeColMenuShow:function(){var A=this.cm,C=A.getColumnCount();this.colMenu.removeAll();for(var B=0;B","
    ",this.groupTextTpl,"
    ","
    ")}this.startGroup.compile();this.endGroup="
    "},findGroup:function(A){return Ext.fly(A).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(){if(this.enableGrouping&&!this.ignoreAdd){var A=this.getScrollState();this.refresh();this.restoreScroll(A)}else{if(!this.enableGrouping){Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)}}},onRemove:function(E,A,B,D){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var C=document.getElementById(A._groupId);if(C&&C.childNodes[1].childNodes.length<1){Ext.removeNode(C)}this.applyEmptyText()},refreshRow:function(A){if(this.ds.getCount()==1){this.refresh()}else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false}},beforeMenuShow:function(){var C=this.getGroupField();var B=this.hmenu.items.get("groupBy");if(B){B.setDisabled(this.cm.config[this.hdCtxIndex].groupable===false)}var A=this.hmenu.items.get("showGroups");if(A){A.setDisabled(!C&&this.cm.config[this.hdCtxIndex].groupable===false);A.setChecked(!!C,true)}},renderUI:function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on("mousedown",this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add("-",{id:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"});if(this.enableNoGroups){this.hmenu.add({id:"showGroups",text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this})}this.hmenu.on("beforeshow",this.beforeMenuShow,this)}},onGroupByClick:function(){this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.beforeMenuShow()},onShowGroupsClick:function(A,B){if(B){this.onGroupByClick()}else{this.grid.store.clearGrouping()}},toggleGroup:function(C,B){this.grid.stopEditing(true);C=Ext.getDom(C);var A=Ext.fly(C);B=B!==undefined?B:A.hasClass("x-grid-group-collapsed");this.state[A.dom.id]=B;A[B?"removeClass":"addClass"]("x-grid-group-collapsed")},toggleAllGroups:function(C){var B=this.getGroups();for(var D=0,A=B.length;D=0&&this.config[A].resizable!==false&&this.config[A].fixed!==true},setHidden:function(A,B){var C=this.config[A];if(C.hidden!==B){C.hidden=B;this.totalWidth=null;this.fireEvent("hiddenchange",this,A,B)}},setEditor:function(A,B){this.config[A].editor=B}});Ext.grid.ColumnModel.defaultRenderer=function(A){if(typeof A=="string"&&A.length<1){return" "}return A};Ext.grid.DefaultColumnModel=Ext.grid.ColumnModel; -Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(A){this.grid=A;this.initEvents()},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked}}); -Ext.grid.RowSelectionModel=function(A){Ext.apply(this,A);this.selections=new Ext.util.MixedCollection(false,function(B){return B.id});this.last=false;this.lastActive=false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.RowSelectionModel,Ext.grid.AbstractSelectionModel,{singleSelect:false,initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("rowmousedown",this.handleMouseDown,this)}else{this.grid.on("rowclick",function(B,D,C){if(C.button===0&&!C.shiftKey&&!C.ctrlKey){this.selectRow(D,false);B.view.focusRow(D)}},this)}this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{"up":function(C){if(!C.shiftKey){this.selectPrevious(C.shiftKey)}else{if(this.last!==false&&this.lastActive!==false){var B=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(B!==false){this.last=B}}else{this.selectFirstRow()}}},"down":function(C){if(!C.shiftKey){this.selectNext(C.shiftKey)}else{if(this.last!==false&&this.lastActive!==false){var B=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(B!==false){this.last=B}}else{this.selectFirstRow()}}},scope:this});var A=this.grid.view;A.on("refresh",this.onRefresh,this);A.on("rowupdated",this.onRowUpdated,this);A.on("rowremoved",this.onRemove,this)},onRefresh:function(){var F=this.grid.store,B;var D=this.getSelections();this.clearSelections(true);for(var C=0,A=D.length;C0},isSelected:function(A){var B=typeof A=="number"?this.grid.store.getAt(A):A;return(B&&this.selections.key(B.id)?true:false)},isIdSelected:function(A){return(this.selections.key(A)?true:false)},handleMouseDown:function(D,F,E){if(E.button!==0||this.isLocked()){return }var A=this.grid.getView();if(E.shiftKey&&this.last!==false){var C=this.last;this.selectRange(C,F,E.ctrlKey);this.last=C;A.focusRow(F)}else{var B=this.isSelected(F);if(E.ctrlKey&&B){this.deselectRow(F)}else{if(!B||this.getCount()>1){this.selectRow(F,E.ctrlKey||E.shiftKey);A.focusRow(F)}}}},selectRows:function(C,D){if(!D){this.clearSelections()}for(var B=0,A=C.length;B=A;C--){this.selectRow(C,true)}}},deselectRange:function(C,B,A){if(this.locked){return }for(var D=C;D<=B;D++){this.deselectRow(D,A)}},selectRow:function(B,D,A){if(this.locked||(B<0||B>=this.grid.store.getCount())||this.isSelected(B)){return }var C=this.grid.store.getAt(B);if(C&&this.fireEvent("beforerowselect",this,B,D,C)!==false){if(!D||this.singleSelect){this.clearSelections()}this.selections.add(C);this.last=this.lastActive=B;if(!A){this.grid.getView().onRowSelect(B)}this.fireEvent("rowselect",this,B,C);this.fireEvent("selectionchange",this)}},deselectRow:function(B,A){if(this.locked){return }if(this.last==B){this.last=false}if(this.lastActive==B){this.lastActive=false}var C=this.grid.store.getAt(B);if(C){this.selections.remove(C);if(!A){this.grid.getView().onRowDeselect(B)}this.fireEvent("rowdeselect",this,B,C);this.fireEvent("selectionchange",this)}},restoreLast:function(){if(this._last){this.last=this._last}},acceptsNav:function(C,B,A){return !A.isHidden(B)&&A.isCellEditable(B,C)},onEditorKey:function(F,E){var C=E.getKey(),G,D=this.grid,B=D.activeEditor;var A=E.shiftKey;if(C==E.TAB){E.stopEvent();B.completeEdit();if(A){G=D.walkCells(B.row,B.col-1,-1,this.acceptsNav,this)}else{G=D.walkCells(B.row,B.col+1,1,this.acceptsNav,this)}}else{if(C==E.ENTER){E.stopEvent();B.completeEdit();if(this.moveEditorOnEnter!==false){if(A){G=D.walkCells(B.row-1,B.col,-1,this.acceptsNav,this)}else{G=D.walkCells(B.row+1,B.col,1,this.acceptsNav,this)}}}else{if(C==E.ESC){B.cancelEdit()}}}if(G){D.startEditing(G[0],G[1])}}}); -Ext.grid.CellSelectionModel=function(A){Ext.apply(this,A);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.getGridEl().on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.handleKeyDown,this);var A=this.grid.view;A.on("refresh",this.onViewChange,this);A.on("rowupdated",this.onRowUpdated,this);A.on("beforerowremoved",this.clearSelections,this);A.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this)}},beforeEdit:function(A){this.select(A.row,A.column,false,true,A.record)},onRowUpdated:function(A,B,C){if(this.selection&&this.selection.record==C){A.onCellSelect(B,this.selection.cell[1])}},onViewChange:function(){this.clearSelections(true)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(B){var A=this.selection;if(A){if(B!==true){this.grid.view.onCellDeselect(A.cell[0],A.cell[1])}this.selection=null;this.fireEvent("selectionchange",this,null)}},hasSelection:function(){return this.selection?true:false},handleMouseDown:function(B,D,A,C){if(C.button!==0||this.isLocked()){return }this.select(D,A)},select:function(F,C,B,E,D){if(this.fireEvent("beforecellselect",this,F,C)!==false){this.clearSelections();D=D||this.grid.store.getAt(F);this.selection={record:D,cell:[F,C]};if(!B){var A=this.grid.getView();A.onCellSelect(F,C);if(E!==true){A.focusCell(F,C)}}this.fireEvent("cellselect",this,F,C);this.fireEvent("selectionchange",this,this.selection)}},isSelectable:function(C,B,A){return !A.isHidden(B)},handleKeyDown:function(F){if(!F.isNavKeyPress()){return }var E=this.grid,J=this.selection;if(!J){F.stopEvent();var I=E.walkCells(0,0,1,this.isSelectable,this);if(I){this.select(I[0],I[1])}return }var B=this;var H=function(M,K,L){return E.walkCells(M,K,L,B.isSelectable,B)};var C=F.getKey(),A=J.cell[0],G=J.cell[1];var D;switch(C){case F.TAB:if(F.shiftKey){D=H(A,G-1,-1)}else{D=H(A,G+1,1)}break;case F.DOWN:D=H(A+1,G,1);break;case F.UP:D=H(A-1,G,-1);break;case F.RIGHT:D=H(A,G+1,1);break;case F.LEFT:D=H(A,G-1,-1);break;case F.ENTER:if(E.isEditor&&!E.editing){E.startEditing(A,G);F.stopEvent();return }break}if(D){this.select(D[0],D[1]);F.stopEvent()}},acceptsNav:function(C,B,A){return !A.isHidden(B)&&A.isCellEditable(B,C)},onEditorKey:function(E,D){var B=D.getKey(),F,C=this.grid,A=C.activeEditor;if(B==D.TAB){if(D.shiftKey){F=C.walkCells(A.row,A.col-1,-1,this.acceptsNav,this)}else{F=C.walkCells(A.row,A.col+1,1,this.acceptsNav,this)}D.stopEvent()}else{if(B==D.ENTER){A.completeEdit();D.stopEvent()}else{if(B==D.ESC){D.stopEvent();A.cancelEdit()}}}if(F){C.startEditing(F[0],F[1])}}}); -Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel()}this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.on("bodyscroll",this.stopEditing,this,[true]);if(this.clicksToEdit==1){this.on("cellclick",this.onCellDblClick,this)}else{if(this.clicksToEdit=="auto"&&this.view.mainBody){this.view.mainBody.on("mousedown",this.onAutoEditClick,this)}this.on("celldblclick",this.onCellDblClick,this)}this.getGridEl().addClass("xedit-grid")},onCellDblClick:function(B,C,A){this.startEditing(C,A)},onAutoEditClick:function(C,B){if(C.button!==0){return }var E=this.view.findRowIndex(B);var A=this.view.findCellIndex(B);if(E!==false&&A!==false){this.stopEditing();if(this.selModel.getSelectedCell){var D=this.selModel.getSelectedCell();if(D&&D.cell[0]===E&&D.cell[1]===A){this.startEditing(E,A)}}else{if(this.selModel.isSelected(E)){this.startEditing(E,A)}}}},onEditComplete:function(B,D,A){this.editing=false;this.activeEditor=null;B.un("specialkey",this.selModel.onEditorKey,this.selModel);var C=B.record;var F=this.colModel.getDataIndex(B.col);D=this.postEditValue(D,A,C,F);if(String(D)!==String(A)){var E={grid:this,record:C,field:F,originalValue:A,value:D,row:B.row,column:B.col,cancel:false};if(this.fireEvent("validateedit",E)!==false&&!E.cancel){C.set(F,E.value);delete E.cancel;this.fireEvent("afteredit",E)}}this.view.focusCell(B.row,B.col)},startEditing:function(F,B){this.stopEditing();if(this.colModel.isCellEditable(B,F)){this.view.ensureVisible(F,B,true);var C=this.store.getAt(F);var E=this.colModel.getDataIndex(B);var D={grid:this,record:C,field:E,value:C.data[E],row:F,column:B,cancel:false};if(this.fireEvent("beforeedit",D)!==false&&!D.cancel){this.editing=true;var A=this.colModel.getCellEditor(B,F);if(!A.rendered){A.render(this.view.getEditorParent(A))}(function(){A.row=F;A.col=B;A.record=C;A.on("complete",this.onEditComplete,this,{single:true});A.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=A;var G=this.preEditValue(C,E);A.startEdit(this.view.getCell(F,B).firstChild,G)}).defer(50,this)}}},preEditValue:function(A,C){var B=A.data[C];return this.autoEncode&&typeof B=="string"?Ext.util.Format.htmlDecode(B):B},postEditValue:function(C,A,B,D){return this.autoEncode&&typeof C=="string"?Ext.util.Format.htmlEncode(C):C},stopEditing:function(A){if(this.activeEditor){this.activeEditor[A===true?"cancelEdit":"completeEdit"]()}this.activeEditor=null},onDestroy:function(){if(this.rendered){var C=this.colModel.config;for(var B=0,A=C.length;B ",width:20,sortable:false,menuDisabled:true,fixed:true,dataIndex:"",id:"checker",initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on("render",function(){var A=this.grid.getView();A.mainBody.on("mousedown",this.onMouseDown,this);Ext.fly(A.innerHd).on("mousedown",this.onHdMouseDown,this)},this)},onMouseDown:function(C,B){if(C.button===0&&B.className=="x-grid3-row-checker"){C.stopEvent();var D=C.getTarget(".x-grid3-row");if(D){var A=D.rowIndex;if(this.isSelected(A)){this.deselectRow(A)}else{this.selectRow(A,true)}}}},onHdMouseDown:function(C,A){if(A.className=="x-grid3-hd-checker"){C.stopEvent();var B=Ext.fly(A.parentNode);var D=B.hasClass("x-grid3-hd-checker-on");if(D){B.removeClass("x-grid3-hd-checker-on");this.clearSelections()}else{B.addClass("x-grid3-hd-checker-on");this.selectAll()}}},renderer:function(B,C,A){return"
     
    "}}); -Ext.LoadMask=function(C,B){this.el=Ext.get(C);Ext.apply(this,B);if(this.store){this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.onLoad,this);this.removeMask=Ext.value(this.removeMask,false)}else{var A=this.el.getUpdater();A.showLoadIndicator=false;A.on("beforeupdate",this.onBeforeLoad,this);A.on("update",this.onLoad,this);A.on("failure",this.onLoad,this);this.removeMask=Ext.value(this.removeMask,true)}};Ext.LoadMask.prototype={msg:"Loading...",msgCls:"x-mask-loading",disabled:false,disable:function(){this.disabled=true},enable:function(){this.disabled=false},onLoad:function(){this.el.unmask(this.removeMask)},onBeforeLoad:function(){if(!this.disabled){this.el.mask(this.msg,this.msgCls)}},show:function(){this.onBeforeLoad()},hide:function(){this.onLoad()},destroy:function(){if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.onLoad,this)}else{var A=this.el.getUpdater();A.un("beforeupdate",this.onBeforeLoad,this);A.un("update",this.onLoad,this);A.un("failure",this.onLoad,this)}}}; -Ext.ProgressBar=Ext.extend(Ext.BoxComponent,{baseCls:"x-progress",waitTimer:null,initComponent:function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update")},onRender:function(D,A){Ext.ProgressBar.superclass.onRender.call(this,D,A);var C=new Ext.Template("
    ","
    ","
    ","
    ","
     
    ","
    ","
    ","
    ","
     
    ","
    ","
    ","
    ");if(A){this.el=C.insertBefore(A,{cls:this.baseCls},true)}else{this.el=C.append(D,{cls:this.baseCls},true)}if(this.id){this.el.dom.id=this.id}var B=this.el.dom.firstChild;this.progressBar=Ext.get(B.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var E=Ext.get(B.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass("x-hidden");this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,E.dom.firstChild]);this.textEl.setWidth(B.offsetWidth)}this.progressBar.setHeight(B.offsetHeight)},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this);if(this.value){this.updateProgress(this.value,this.text)}else{this.updateText(this.text)}},updateProgress:function(B,C){this.value=B||0;if(C){this.updateText(C)}if(this.rendered){var A=Math.floor(B*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(A);if(this.textTopEl){this.textTopEl.removeClass("x-hidden").setWidth(A)}}this.fireEvent("update",this,B,C);return this},wait:function(B){if(!this.waitTimer){var A=this;B=B||{};this.updateText(B.text);this.waitTimer=Ext.TaskMgr.start({run:function(C){var D=B.increment||10;this.updateProgress(((((C+D)%D)+1)*(100/D))*0.01)},interval:B.interval||1000,duration:B.duration,onStop:function(){if(B.fn){B.fn.apply(B.scope||this)}this.reset()},scope:A})}return this},isWaiting:function(){return this.waitTimer!=null},updateText:function(A){this.text=A||" ";if(this.rendered){this.textEl.update(this.text)}return this},syncProgressBar:function(){if(this.value){this.updateProgress(this.value,this.text)}return this},setSize:function(A,C){Ext.ProgressBar.superclass.setSize.call(this,A,C);if(this.textTopEl){var B=this.el.dom.firstChild;this.textEl.setSize(B.offsetWidth,B.offsetHeight)}this.syncProgressBar();return this},reset:function(A){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass("x-hidden")}if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null}if(A===true){this.hide()}return this}});Ext.reg("progress",Ext.ProgressBar); -Ext.Slider=Ext.extend(Ext.BoxComponent,{vertical:false,minValue:0,maxValue:100,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,initComponent:function(){if(this.value===undefined){this.value=this.minValue}Ext.Slider.superclass.initComponent.call(this);this.keyIncrement=Math.max(this.increment,this.keyIncrement);this.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(this.vertical){Ext.apply(this,Ext.Slider.Vertical)}},onRender:function(){this.autoEl={cls:"x-slider "+(this.vertical?"x-slider-vert":"x-slider-horz"),cn:{cls:"x-slider-end",cn:{cls:"x-slider-inner",cn:[{cls:"x-slider-thumb"},{tag:"a",cls:"x-slider-focus",href:"#",tabIndex:"-1",hidefocus:"on"}]}}};Ext.Slider.superclass.onRender.apply(this,arguments);this.endEl=this.el.first();this.innerEl=this.endEl.first();this.thumb=this.innerEl.first();this.halfThumb=(this.vertical?this.thumb.getHeight():this.thumb.getWidth())/2;this.focusEl=this.thumb.next();this.initEvents()},initEvents:function(){this.thumb.addClassOnOver("x-slider-thumb-over");this.mon(this.el,"mousedown",this.onMouseDown,this);this.mon(this.el,"keydown",this.onKeyDown,this);this.focusEl.swallowEvent("click",true);this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeDragStart.createDelegate(this),onStart:this.onDragStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onDragEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(this.thumb);this.on("beforedestroy",this.tracker.destroy,this.tracker)},onMouseDown:function(B){if(this.disabled){return }if(this.clickToChange&&B.target!=this.thumb.dom){var A=this.innerEl.translatePoints(B.getXY());this.onClickChange(A)}this.focus()},onClickChange:function(A){if(A.top>this.clickRange[0]&&A.top0){if(A>(C/2)){D=B+(C-A)}else{D=B-A}}return D.constrain(this.minValue,this.maxValue)},afterRender:function(){Ext.Slider.superclass.afterRender.apply(this,arguments);if(this.value!==undefined){var A=this.normalizeValue(this.value);if(A!==this.value){delete this.value;this.setValue(A,false)}else{this.moveThumb(this.translateValue(A),false)}}},getRatio:function(){var A=this.innerEl.getWidth();var B=this.maxValue-this.minValue;return B==0?A:(A/B)},normalizeValue:function(A){if(typeof A!="number"){A=parseInt(A)}A=Math.round(A);A=this.doSnap(A);A=A.constrain(this.minValue,this.maxValue);return A},setValue:function(B,A,C){B=this.normalizeValue(B);if(B!==this.value&&this.fireEvent("beforechange",this,B,this.value)!==false){this.value=B;this.moveThumb(this.translateValue(B),A!==false);this.fireEvent("change",this,B);if(C){this.fireEvent("changecomplete",this,B)}}},translateValue:function(A){var B=this.getRatio();return(A*B)-(this.minValue*B)-this.halfThumb},reverseValue:function(B){var A=this.getRatio();return(B+this.halfThumb+(this.minValue*A))/A},moveThumb:function(B,A){if(!A||this.animate===false){this.thumb.setLeft(B)}else{this.thumb.shift({left:B,stopFx:true,duration:0.35})}},focus:function(){this.focusEl.focus(10)},onBeforeDragStart:function(A){return !this.disabled},onDragStart:function(A){this.thumb.addClass("x-slider-thumb-drag");this.dragging=true;this.dragStartValue=this.value;this.fireEvent("dragstart",this,A)},onDrag:function(A){var B=this.innerEl.translatePoints(this.tracker.getXY());this.setValue(Math.round(this.reverseValue(B.left)),false);this.fireEvent("drag",this,A)},onDragEnd:function(A){this.thumb.removeClass("x-slider-thumb-drag");this.dragging=false;this.fireEvent("dragend",this,A);if(this.dragStartValue!=this.value){this.fireEvent("changecomplete",this,this.value)}},onResize:function(A,B){this.innerEl.setWidth(A-(this.el.getPadding("l")+this.endEl.getPadding("r")));this.syncThumb()},syncThumb:function(){if(this.rendered){this.moveThumb(this.translateValue(this.value))}},getValue:function(){return this.value}});Ext.reg("slider",Ext.Slider);Ext.Slider.Vertical={onResize:function(A,B){this.innerEl.setHeight(B-(this.el.getPadding("t")+this.endEl.getPadding("b")));this.syncThumb()},getRatio:function(){var B=this.innerEl.getHeight();var A=this.maxValue-this.minValue;return B/A},moveThumb:function(B,A){if(!A||this.animate===false){this.thumb.setBottom(B)}else{this.thumb.shift({bottom:B,stopFx:true,duration:0.35})}},onDrag:function(B){var C=this.innerEl.translatePoints(this.tracker.getXY());var A=this.innerEl.getHeight()-C.top;this.setValue(Math.round(A/this.getRatio()),false);this.fireEvent("drag",this,B)},onClickChange:function(B){if(B.left>this.clickRange[0]&&B.left0){this.statusEl.addClass(A);this.currIconCls=A}}else{this.currIconCls=A}return this},showBusy:function(A){if(typeof A=="string"){A={text:A}}A=Ext.applyIf(A||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(A)}});Ext.reg("statusbar",Ext.StatusBar); -Ext.History=(function(){var E,C;var J=false;var D;function F(){var K=top.location.href,L=K.indexOf("#");return L>=0?K.substr(L+1):null}function A(){C.value=D}function G(K){D=K;Ext.History.fireEvent("change",K)}function H(L){var K=["
    ",L,"
    "].join("");try{var N=E.contentWindow.document;N.open();N.write(K);N.close();return true}catch(M){return false}}function B(){if(!E.contentWindow||!E.contentWindow.document){setTimeout(B,10);return }var N=E.contentWindow.document;var L=N.getElementById("state");var K=L?L.innerText:null;var M=F();setInterval(function(){N=E.contentWindow.document;L=N.getElementById("state");var P=L?L.innerText:null;var O=F();if(P!==K){K=P;G(K);top.location.hash=K;M=K;A()}else{if(O!==M){M=O;H(O)}}},50);J=true;Ext.History.fireEvent("ready",Ext.History)}function I(){D=C.value;if(Ext.isIE){B()}else{var K=F();setInterval(function(){var L=F();if(L!==K){K=L;G(K);A()}},50);J=true;Ext.History.fireEvent("ready",Ext.History)}}return{fieldId:"x-history-field",iframeId:"x-history-frame",events:{},init:function(L,K){if(J){Ext.callback(L,K,[this]);return }if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(L,K)});return }C=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){E=Ext.getDom(Ext.History.iframeId)}this.addEvents("ready","change");if(L){this.on("ready",L,K,{single:true})}I()},add:function(K,L){if(L!==false){if(this.getToken()==K){return true}}if(Ext.isIE){return H(K)}else{top.location.hash=K;return true}},back:function(){history.go(-1)},forward:function(){history.go(1)},getToken:function(){return J?D:F()}}})();Ext.apply(Ext.History,new Ext.util.Observable()); diff --git a/public/api/resources/ext-base.js b/public/api/resources/ext-base.js deleted file mode 100644 index b68f63d6..00000000 --- a/public/api/resources/ext-base.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Ext JS Library 2.2 - * Copyright(c) 2006-2008, Ext JS, LLC. - * licensing@extjs.com - * - * http://extjs.com/license - */ - -Ext={version:"2.2"};window["undefined"]=window["undefined"];Ext.apply=function(C,D,B){if(B){Ext.apply(C,B)}if(C&&D&&typeof D=="object"){for(var A in D){C[A]=D[A]}}return C};(function(){var idSeed=0;var ua=navigator.userAgent.toLowerCase();var isStrict=document.compatMode=="CSS1Compat",isOpera=ua.indexOf("opera")>-1,isSafari=(/webkit|khtml/).test(ua),isSafari3=isSafari&&ua.indexOf("webkit/5")!=-1,isIE=!isOpera&&ua.indexOf("msie")>-1,isIE7=!isOpera&&ua.indexOf("msie 7")>-1,isGecko=!isSafari&&ua.indexOf("gecko")>-1,isGecko3=!isSafari&&ua.indexOf("rv:1.9")>-1,isBorderBox=isIE&&!isStrict,isWindows=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),isMac=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),isAir=(ua.indexOf("adobeair")!=-1),isLinux=(ua.indexOf("linux")!=-1),isSecure=window.location.href.toLowerCase().indexOf("https")===0;if(isIE&&!isIE7){try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}}Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p]}}}return o},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o)});return }var cache={};for(var b in o){var parts=b.split("@");if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s)}cache[s].on(parts[1],o[b])}}cache=null},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id},extend:function(){var io=function(o){for(var m in o){this[m]=o[m]}};var oc=Object.prototype.constructor;return function(sb,sp,overrides){if(typeof sp=="object"){overrides=sp;sp=sb;sb=overrides.constructor!=oc?overrides.constructor:function(){sp.apply(this,arguments)}}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==oc){spp.constructor=sp}sb.override=function(o){Ext.override(sb,o)};sbp.override=io;Ext.override(sb,overrides);sb.extend=function(o){Ext.extend(sb,o)};return sb}}(),override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method]}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i=0){L=G[P]}if(!S||!L){return false}this.doRemove(S,O,L[this.WFN],false);delete G[P][this.WFN];delete G[P][this.FN];G.splice(P,1);return true},getTarget:function(N,M){N=N.browserEvent||N;var L=N.target||N.srcElement;return this.resolveTextNode(L)},resolveTextNode:function(L){if(Ext.isSafari&&L&&3==L.nodeType){return L.parentNode}else{return L}},getPageX:function(M){M=M.browserEvent||M;var L=M.pageX;if(!L&&0!==L){L=M.clientX||0;if(Ext.isIE){L+=this.getScroll()[1]}}return L},getPageY:function(L){L=L.browserEvent||L;var M=L.pageY;if(!M&&0!==M){M=L.clientY||0;if(Ext.isIE){M+=this.getScroll()[0]}}return M},getXY:function(L){L=L.browserEvent||L;return[this.getPageX(L),this.getPageY(L)]},getRelatedTarget:function(M){M=M.browserEvent||M;var L=M.relatedTarget;if(!L){if(M.type=="mouseout"){L=M.toElement}else{if(M.type=="mouseover"){L=M.fromElement}}}return this.resolveTextNode(L)},getTime:function(N){N=N.browserEvent||N;if(!N.time){var M=new Date().getTime();try{N.time=M}catch(L){this.lastError=L;return M}}return N.time},stopEvent:function(L){this.stopPropagation(L);this.preventDefault(L)},stopPropagation:function(L){L=L.browserEvent||L;if(L.stopPropagation){L.stopPropagation()}else{L.cancelBubble=true}},preventDefault:function(L){L=L.browserEvent||L;if(L.preventDefault){L.preventDefault()}else{L.returnValue=false}},getEvent:function(M){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break}N=N.caller}}return L},getCharCode:function(L){L=L.browserEvent||L;return L.charCode||L.keyCode||0},_getCacheIndex:function(Q,N,P){for(var O=0,M=G.length;O0)}var Q=[];for(var M=0,L=H.length;M0){for(var Q=0,S=T.length;Q0){O=G.length;while(O){N=O-1;M=G[N];if(M){R.removeListener(M[R.EL],M[R.TYPE],M[R.FN],N)}O=O-1}M=null;R.clearCache()}R.doRemove(window,"unload",R._unload)},getScroll:function(){var L=document.documentElement,M=document.body;if(L&&(L.scrollTop||L.scrollLeft)){return[L.scrollTop,L.scrollLeft]}else{if(M){return[M.scrollTop,M.scrollLeft]}else{return[0,0]}}},doAdd:function(){if(window.addEventListener){return function(O,M,N,L){O.addEventListener(M,N,(L))}}else{if(window.attachEvent){return function(O,M,N,L){O.attachEvent("on"+M,N)}}else{return function(){}}}}(),doRemove:function(){if(window.removeEventListener){return function(O,M,N,L){O.removeEventListener(M,N,(L))}}else{if(window.detachEvent){return function(N,L,M){N.detachEvent("on"+L,M)}}else{return function(){}}}}()}}();var D=Ext.lib.Event;D.on=D.addListener;D.un=D.removeListener;if(document&&document.body){D._load()}else{D.doAdd(window,"load",D._load)}D.doAdd(window,"unload",D._unload);D._tryPreloadAttach();Ext.lib.Ajax={request:function(K,I,E,J,F){if(F){var G=F.headers;if(G){for(var H in G){if(G.hasOwnProperty(H)){this.initHeader(H,G[H],false)}}}if(F.xmlData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","text/xml",false)}K=(K?K:(F.method?F.method:"POST"));J=F.xmlData}else{if(F.jsonData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","application/json",false)}K=(K?K:(F.method?F.method:"POST"));J=typeof F.jsonData=="object"?Ext.encode(F.jsonData):F.jsonData}}}return this.asyncRequest(K,I,E,J)},serializeForm:function(F){if(typeof F=="string"){F=(document.getElementById(F)||document.forms[F])}var G,E,H,J,K="",M=false;for(var L=0;L=200&&G<300){F=this.createResponseObject(I,J.argument);if(J.success){if(!J.scope){J.success(F)}else{J.success.apply(J.scope,[F])}}}else{switch(G){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:F=this.createExceptionObject(I.tId,J.argument,(E?E:false));if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}break;default:F=this.createResponseObject(I,J.argument);if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}}}this.releaseObject(I);F=null},createResponseObject:function(E,K){var H={};var M={};try{var G=E.conn.getAllResponseHeaders();var J=G.split("\n");for(var I=0;I=this.left&&E.right<=this.right&&E.top>=this.top&&E.bottom<=this.bottom)},getArea:function(){return((this.bottom-this.top)*(this.right-this.left))},intersect:function(I){var G=Math.max(this.top,I.top);var H=Math.min(this.right,I.right);var E=Math.min(this.bottom,I.bottom);var F=Math.max(this.left,I.left);if(E>=G&&H>=F){return new Ext.lib.Region(G,H,E,F)}else{return null}},union:function(I){var G=Math.min(this.top,I.top);var H=Math.max(this.right,I.right);var E=Math.max(this.bottom,I.bottom);var F=Math.min(this.left,I.left);return new Ext.lib.Region(G,H,E,F)},constrainTo:function(E){this.top=this.top.constrain(E.top,E.bottom);this.bottom=this.bottom.constrain(E.top,E.bottom);this.left=this.left.constrain(E.left,E.right);this.right=this.right.constrain(E.left,E.right);return this},adjust:function(G,F,E,H){this.top+=G;this.left+=F;this.right+=H;this.bottom+=E;return this}};Ext.lib.Region.getRegion=function(H){var J=Ext.lib.Dom.getXY(H);var G=J[1];var I=J[0]+H.offsetWidth;var E=J[1]+H.offsetHeight;var F=J[0];return new Ext.lib.Region(G,I,E,F)};Ext.lib.Point=function(E,F){if(Ext.isArray(E)){F=E[1];E=E[0]}this.x=this.right=this.left=this[0]=E;this.y=this.top=this.bottom=this[1]=F};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.lib.Anim={scroll:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Scroll)},motion:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Motion)},color:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.ColorAnim)},run:function(I,F,K,L,E,H,G){G=G||Ext.lib.AnimBase;if(typeof L=="string"){L=Ext.lib.Easing[L]}var J=new G(I,F,K,L);J.animateX(function(){Ext.callback(E,H)});return J}};function C(E){if(!B){B=new Ext.Element.Flyweight()}B.dom=E;return B}if(Ext.isIE){function A(){var E=Function.prototype;delete E.createSequence;delete E.defer;delete E.createDelegate;delete E.createCallback;delete E.createInterceptor;window.detachEvent("onunload",A)}window.attachEvent("onunload",A)}Ext.lib.AnimBase=function(F,E,G,H){if(F){this.init(F,E,G,H)}};Ext.lib.AnimBase.prototype={toString:function(){var E=this.getEl();var F=E.id||E.tagName;return("Anim "+F)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(E,G,F){return this.method(this.currentFrame,G,F-G,this.totalFrames)},setAttribute:function(E,G,F){if(this.patterns.noNegatives.test(E)){G=(G>0)?G:0}Ext.fly(this.getEl(),"_anim").setStyle(E,G+F)},getAttribute:function(E){var G=this.getEl();var I=C(G).getStyle(E);if(I!=="auto"&&!this.patterns.offsetUnit.test(I)){return parseFloat(I)}var F=this.patterns.offsetAttribute.exec(E)||[];var J=!!(F[3]);var H=!!(F[2]);if(H||(C(G).getStyle("position")=="absolute"&&J)){I=G["offset"+F[0].charAt(0).toUpperCase()+F[0].substr(1)]}else{I=0}return I},getDefaultUnit:function(E){if(this.patterns.defaultUnit.test(E)){return"px"}return""},animateX:function(G,E){var F=function(){this.onComplete.removeListener(F);if(typeof G=="function"){G.call(E||this,this)}};this.onComplete.addListener(F,this);this.animate()},setRuntimeAttribute:function(F){var K;var G;var H=this.attributes;this.runtimeAttributes[F]={};var J=function(L){return(typeof L!=="undefined")};if(!J(H[F]["to"])&&!J(H[F]["by"])){return false}K=(J(H[F]["from"]))?H[F]["from"]:this.getAttribute(F);if(J(H[F]["to"])){G=H[F]["to"]}else{if(J(H[F]["by"])){if(K.constructor==Array){G=[];for(var I=0,E=K.length;I0&&isFinite(O)){if(K.currentFrame+O>=N){O=N-(M+1)}K.currentFrame+=O}}};Ext.lib.Bezier=new function(){this.getPosition=function(I,H){var J=I.length;var G=[];for(var F=0;F0&&!Ext.isArray(O[0])){O=[O]}else{var N=[];for(P=0,R=O.length;P0){this.runtimeAttributes[S]=this.runtimeAttributes[S].concat(O)}this.runtimeAttributes[S][this.runtimeAttributes[S].length]=L}else{I.setRuntimeAttribute.call(this,S)}};var E=function(J,L){var K=Ext.lib.Dom.getXY(this.getEl());J=[J[0]-K[0]+L[0],J[1]-K[1]+L[1]];return J};var G=function(J){return(typeof J!=="undefined")}})();(function(){Ext.lib.Scroll=function(I,H,J,K){if(I){Ext.lib.Scroll.superclass.constructor.call(this,I,H,J,K)}};Ext.extend(Ext.lib.Scroll,Ext.lib.ColorAnim);var F=Ext.lib;var G=F.Scroll.superclass;var E=F.Scroll.prototype;E.toString=function(){var H=this.getEl();var I=H.id||H.tagName;return("Scroll "+I)};E.doMethod=function(H,K,I){var J=null;if(H=="scroll"){J=[this.method(this.currentFrame,K[0],I[0]-K[0],this.totalFrames),this.method(this.currentFrame,K[1],I[1]-K[1],this.totalFrames)]}else{J=G.doMethod.call(this,H,K,I)}return J};E.getAttribute=function(H){var J=null;var I=this.getEl();if(H=="scroll"){J=[I.scrollLeft,I.scrollTop]}else{J=G.getAttribute.call(this,H)}return J};E.setAttribute=function(H,K,J){var I=this.getEl();if(H=="scroll"){I.scrollLeft=K[0];I.scrollTop=K[1]}else{G.setAttribute.call(this,H,K,J)}}})()})(); diff --git a/public/api/resources/extanim32.gif b/public/api/resources/extanim32.gif deleted file mode 100644 index effe7c9fdedd1c5391c0e20f87e40ff3f90658e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3424 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 b)~rq+Ka7-rKBYIPL7mg(PLKA>oeumHFxFZ( diff --git a/public/api/resources/extanim64.gif b/public/api/resources/extanim64.gif deleted file mode 100644 index 07a68621438c4c89f491b98d4ab1d8680e7b745d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6562 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 diff --git a/public/api/resources/extjs.gif b/public/api/resources/extjs.gif deleted file mode 100644 index 724796de5540447b37ced778828e5bdeab7bebe9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2093 zcmV+|2-5dQNk%w1VN(DY0EYko9Xf6uJ8~vJY#u;=C_!%}L3AcWeJMk8Do1=PNPjX% zZ8S)2F-LGTN^>+#d^%5cJ5hW}S8q&MZ$?*kNm+MET6<4me^g?8USx4!X?amcwh9#cP?!aGAn!oymBg#&w{~eWJ&E zqs#w5K!BG#gqlN#oJfhDOpT#YkfTiOw7-<1rK+l}vaYbT zu(7qYwz{>qyt=%&Wftbg{#qvuF;gS&Xlv#mbciMwb7oq(wn;3qrBFn zzS*n4)3v~pxWk&h$DzK-pr*jutijf+!`r{X#j(WJvBlc7$=%2uugKxG%;USx z;Jwl0#LTS6&a=qRw8zk@$&e+uq^X-sIih;Mw5B+~LpO;nd&Z+0x+e-Qnfile!>F4O?=IQL{>E-F^>Fez4>+J3A?dt68?Bwe3 z=j`$1?DXvJ@bB>L?(y{P^ZD@d?eX#P@bdKY_4f4j^7Qod^7Z-m`1tnu{Q3F$`TPC* z{Qms>`~Uy|A^8LY003eDEC2ui08;=M000R80L2I#2x0^Z8ajgX5E7)JkRA;qE)2pj zqQ#38D`Lc`QQ^agLm1|mabg6BfhY-*ka4FFv3&kw%A85Frp=o;bJol!j8L5zB2o_Y zfP#vwc{-CSUCJ~jx>!$4ct|-Q#U5t+{AJy$wJX=JUc-VNE4D1ztX}s4(}Uu}P!xN< z<=aQMuHCzM@AAvbw=Z9oVdzJC8fh zqC#G<@3=B)v25@{FSqZwGsF<;6s*o9(%q1ZwW2ms9So)zd`xsI*r3G4QqY2qI^;yM z!gNfCb56k!vLK1UC>w0=qvnjBFDaQXrpyF8C>v-Ic%Gw41bXH z!^)%B#3N@SZL`g^3%0QTt#jVEPUnR4p4+ybmJT2;6)jh$V4Wd;U3@k1~{U4izX!DidaknB8I^Q7q|cs z%=m^Ryx0U=hAOHoN&<9uugBZ|^ zrZlHX&1zcnn%JbKFg(ErB1}L4#}rB@1+V}KXn+G7NM}0Hsm^w8fSv4AXFTQUPI|U8 Xp6J9U2Rg6{0SrVy0pJu$KmY(cDGET` diff --git a/public/api/resources/fav.gif b/public/api/resources/fav.gif deleted file mode 100644 index abe3cf0e0ea5f5b32205e30f36777246e2362ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 954 zcmZ?wbhEHb6krfwXlGz>`0uc{k#%1)=bjG!J?*0VJAp`IPnZ0jZu#Ba%Ex-xPqi|f zX=XSuQQ}f3!>t~MYty*z&*8r?MfBiQ)x*>E4$n|LI#=(|bem)IEN(26IkCk2%CzBZ7PG@*OhxyGs&Q~ktJ}l<@znJ0w5{Cav8U8I{{=ciiCLakKv??e88)zI`z7_MyE0 zCmjBtbNqA4aUm6e_c)ce=qa@gRI{VD{mf}c<Pxk8Aicy2?52QEQ}z(=zs`N zo?zgZ&cMha~J|VU4>njlOFk|s40cnGnEfY2r zG)$H<3|kT)n6R)($=IvIqOs}VK^?)A8Uu$1jhq6JJYo_L6&eq4b31Vu{9tyx(-_6~ L;KmLE1qN#XyRiCT diff --git a/public/api/resources/folder.gif b/public/api/resources/folder.gif deleted file mode 100644 index 20644428d558bf03eedc402f739a2ace240657a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmZ?wbhEHb6krfwXlG!M5av^q5z|#yFwj!AHqmvoGW2$~4)Jk{3HD5j4a`msFV9V= zDoCDIBtO4gdS#91>Uzo6s+@Jra{Ie@wloRs=~L)$DV@|_KDDcAMqlmmexCC)C9h8q zyE9Gp_zcDSvlK2ZRJ*xS_x3vTNApx3FVT6nSnJsm?dK~^U#v8GvC8z#Cfi3lJl||_ ze81E4!*1^ndwf6a3;29E^y7ip&qpG@9F6{REcVseg70UNzn@M0aw_Bdxs2}@vVL98 z|8c40=hebr*GhlisQ-Pp{?DD-ITIV^Pi9vy;=GD<$_1Z-S+*%>K~uB{QR)*!JVrQ@7?+Z^fgy)M2jqNEo?zfO!Elp9#$&^RgUu}0Eh2XW@H(0K?U-Tsc&V3g zJNxX6D?3~~g;d;oBs7DLFiERr1}$?me#Sjb!=dWQgo6#elT3uqw`??W<>;3-jLKP2 z$&xNDl}@NL$Q0|y%!%*2=6h)`5w;ouilaj1B( fz>&dBOi9P1V8MX~28N*3Y#%mkeci~&$Y2cspeP@T diff --git a/public/api/resources/folder_open.gif b/public/api/resources/folder_open.gif deleted file mode 100644 index ba4c657d451f7dad46eaecd7f21259417bbc4634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 997 zcmZ?wbhEHb6krfwXlGy$6XKH)=97~Y(NvN))l+r0(u?+1it$zo@~}({bIDKg%gu}{ zNe`^f3!hdbKfheMAzisKQ*~vHXnSSCmL~pv9UT1)Y5gswliJHCca%@z6>gGmBRlwfT-mEt*ZZbtN-7r zn=`Rt{*=Jku)RxIdVy|8oD!rs-3`qnP# zUbm!c&657j%Q`kJ>)EipZ{v#I?W?+WuIb*ocJ}dIJ?9Q}-aFE8?7*g5mlnLg-uUrO z=ihsc|L!*Yzu)-(LCgO~J)a&<`uuFx@7MGHzL@dv#f)#S7JPfR{O7x6-#@H=aOdj7 zd$<1n|IaWA208>3f3h$#Fw`;VfE)tK6AT=O82)m|cx+g3u$kp|P2`RV{7&}q*WTP* zy!@P4JNwQj3nPy6326t;t9dXXF+t2m^u3Pep-ritjiE2D>*CaRJ9q{njc5>){?i?lfj3yyKlR!F=jp=q?ly-!Ln%!T9O z@#YD78IuG)E9 c61Tx%VPg{u2bX|^0)so?QH`qt7HW5CivgXAq3 zOEDsOD;{ZYV_na~aD4gDKJ9t+gL-$Z=od=Gl?waw1iR#WUZQOwnZ_%({y}-{J&P8u zj<;3@Xm&=B0We4AC!v)Gl!C|MaB1>>ttJ`?0A&M`IE~KB;=p}tM|=4tB_OT?e&J=m9N{2* z3YT`USE)!B0+4Dg8no_S7Y90xQmzJ*$s43Pbrh(5Mr)sKW~Cj+JVVT;)lpyonPJB; zvvPSCqA1EpDdw$25A{Q6Z~QzOT=(^f;dv)yro*5})C8Pogf&9LQ)9g z3((VXUHk~(B^o^=85amqK?D|^r51kIlSSv}B<%ycbVXq4k`xaXJ9;^bOR`NX?g`b0+**drUp&@yp9QR;Y#9gz1ul^OS^kFH03YclT%rjS)(<3 zOE@DU*d^$pwd=>#?+23E9CvoQ(%f7+U@Hi<4CEEZYlmyIx=MVk?^dynL~_g;*!^yM zj!Ugrvsb_c+xOviRN;P@J?~d!k!i;92Tx3rdh0x#kl@%;VeGXHM`-9N&)zEN}uUdw1i<4jE2CV3<1TTEI@btXV3w;4wNStIKmhhIo>!-Xg zzV34PKgsvY+~lt-iW*jYn6Tmhf&>4*ZSDQOwfEoIb^osI`2YVu!zdUH0jh?8;!hT4 z1_o{h9gwM@Ji)+G!XVBe z%!+`62N)PRRWGbCNOW-FG*Z)8VR-0phZMW2Plv;2Ha-b+UM~fOgd@BXno(OMCSEw) jD-#f0;bFm)*(IVlLutuLrfiNmoSC;+q%S5oFjxZs!EJ-u diff --git a/public/api/resources/icon-grid.gif b/public/api/resources/icon-grid.gif deleted file mode 100644 index 6b64286961ec41de35e8285f7f37ffcddb5273e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 917 zcmZ?wbhEHb6krfwXlGz>`0o(b_B3_s=d77u3+H|!r zfbs+bM-c-fhm6OD1qYj1`88rr6eKb7rDi=gNE~)y=*HgZ-r7~F6dx2r%I~IpY8h&%#Q`LB_ awk%XlGzpbnMH9^WV;$J9qKo#mkp3U%h(u+O=ypZrr$e^X8p9ckbT3 zd+*-8gExOZc<|ui!-tO^J$n53@slS{o<4p0?Af#D&!4}1`SR7PSFc~ce)Hzd+qZAu zy?gim{reZ6{(SiG;p4}TpFVy1{Q2{jFJHcX{rc_Ox9{J-|M>Ca=g*(NfB*jT=g;52 zfB*ga_y7NYhEYJJ5ODbKKqZq#iZO~mS(q6ZW-;i1JPgVc3>@bfOgUvd3KTeaMcKM` zTmT9+Dym5^6eP5&35jyCL~LwoUdG4CQ1IlzMJEOhS7<|o6TkONJB|cJt&_qGY8j_CFdSfKOOVXz5IAt4 zV}p{G0>c6amIz;I6#<3?kJdQw@UbxnC^#-)=MmtuQ0WM8YMvo$(vtdt@jw$#qNfCh wKq7O5AQyweiU(yaTnsEKITutM85$V*3^XlGzJaNxkCA+uU@@+{rdHrH*em)ef#d+yZ7(kfB5j>g)|NZ;-|Nno6kqR9CJB(DX)7#&QKUtU= zfEhstWHBgDFmRk=;OCU_C{XAUlw(`PkjU7?)Tn7;VYmK z&r@KbvglBQu=1upg@udrDMSY z2FDg@ogF$0Oia(gUJntM;F*w7{y{XRIF%d;*fMw Ru}w*2KC@pnhK+^68UTSX)nNbt diff --git a/public/api/resources/images/default/box/l-blue.gif b/public/api/resources/images/default/box/l-blue.gif deleted file mode 100644 index 5ed7f0043b6b0f956076e02583ca7d18a150e8f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmZ?wbhEHbWMN=rXlGzpbnMHWJ9pl^dGqhzKZa2-8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=uVK7ioV6X-NGaC=| diff --git a/public/api/resources/images/default/box/l.gif b/public/api/resources/images/default/box/l.gif deleted file mode 100644 index 0160f97fe75409f17ab6c3c91f7cbdc58afa8f8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmZ?wbhEHbWMN=rXlGzJc<|tzJ9pl^dGqhzKZa2-8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=uVK7ioV6X-N<)RPU diff --git a/public/api/resources/images/default/box/r-blue.gif b/public/api/resources/images/default/box/r-blue.gif deleted file mode 100644 index 3ea5cae3b7b571ec41ac2b5d38c8a675a1f66efc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmZ?wbhEHbWMN=rXlGzpbnMHWJ9pl^dGr7Oe}+*o8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=w;80LdV6X-NJSY$C diff --git a/public/api/resources/images/default/box/r.gif b/public/api/resources/images/default/box/r.gif deleted file mode 100644 index 34237f6292a7da6ac5d1b95d13ce76a7194dd596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmZ?wbhEHbWMN=rXlGzJc<|tzJ9pl^dGr7Oe}+*o8UiCM1QdU=0Db(QK?me-P@Z7m PU}s=w;80LdV6X-N?ynEj diff --git a/public/api/resources/images/default/box/tb-blue.gif b/public/api/resources/images/default/box/tb-blue.gif deleted file mode 100644 index 562fecca87176274af7bf13c419daaf93f169249..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmZ?wbhEHbWMt4{XlGzpbnMHL<6oAa{JQeg*VSjft~>i}!})KUE_~a1@%#46-*;X4 zvFF;4eb;~7zJ2@P&7Vha|2%Q`=a~n;&OiEf>B+Ba&wkx{`TPEx-%p-AdGqGY@@87@w|Nk?Lg3%Bd$|0cmlLhGf{|q`H xPk{0S1BVKOBoBu|W0NBntB_a%g98I2m#~UU!-oTo%xv5uDh>q)92y%KtN|VsNKya* diff --git a/public/api/resources/images/default/button/btn-arrow.gif b/public/api/resources/images/default/button/btn-arrow.gif deleted file mode 100644 index f90d5df4455c332d19dcc8b621a19e53c672612a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 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 diff --git a/public/api/resources/images/default/form/clear-trigger.gif b/public/api/resources/images/default/form/clear-trigger.gif deleted file mode 100644 index da78d45b3214480842c62514af524f4aebb66124..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1988 zcmdth=~t5n8U^q-VGC;mBm0hsV8ubLEt_Ll8<8_(J7+8+GN29vjM%!ALxG`*vV;KaE8sA!@Y z4L3~1jhLAW4>!Ua947Tqg?%((Kh;b$Ko$&=1w*rGb*ec?N^AxVXqe@UN>0 z891^{u56v7+E|jCmSrZke1FwUW#X##SBxOn2(GSyLZMKlQmNHyjYgx@YWd;~fq0Ft z+7v0*1j;R;!o*jZMDlHsa!;f+iM1w)YEP=(muf+oW=p08<(hqkW|zMX3O7KpZcnTO zrMf+lxo?0HvrSO0Hz^EedrHHu(zqvI1C{Hb+PJIP0JWQ-Y#UT;feI6-)9Lhjy}@8G z8jZTOUH$s*&hGy1-ahdEdx6`Q=5Zi!^uxptKLNl%;1tXUNoYe@!v1h1gG9hjRlyIY zT+i)opRVyJ$m^OWcFfcd!goE+KKq624@2~*{(Gx41$X#rT_Vu?_+4{kc3!~LZ@o|e@KE%NaSqqM2CdnRrfg1wYE_n>MZsu=aYxhs@ zZYg1(SHAI5{)vrY3S>+Sr2G5!}cb)=Lak{l#IcWFsP=h z54sOE<$IwK0i|U>!mQGuh`69u9r$a%T`NxXx|!$| z=ac7y%X=&#XG<+_jk=4wnhTGFb+y-lKaBeiK%tbtM}APdfB|~CqPsh#af)y^(trRQ zEp@1acO7D$So@a(lTLRcQP%+{D$xQ)D?;t7^o`EZs~jG0R~!KcEY9V= zMfruL`9PuG*Qsdx+dj=Ii`&E0II=PwOPulj+Tj@q29JB~T2{m(hfi&|!E zBM$OTv98=N_;e}11gu55UTB%9W)-L))9jWO$gpd{tFfCL@43sLIsT;NS-D3u+AQ2N zWr!%TS6ADl-D$@0q>qlSMI`y2eiHE9u3$58=)j+XZx;IBIT;=;f85a*t?a9*L%6-} zN85P+E0<{PUGyX_R!^ME+)_z>Mape4XM92w`b7;YV!insg9^+qDfzUevNmaJNM0}502MlVmsU>iV}`Lr`6`Bb{t@C#l~>;SXe`ck9;fs%svkL zUAe$-+haTd`enn-;A=LHa#CU?4rl5R1@d8MkEOU&)s-HE(zl)`8NRsxz3AFuDKdp$ U;ezY9-WkTkP-6N%4gg~Q2Qp;nKmY&$ diff --git a/public/api/resources/images/default/form/clear-trigger.psd b/public/api/resources/images/default/form/clear-trigger.psd deleted file mode 100644 index f637fa5d1e12460beabc8b49968ebc0ac883e754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11804 zcmds6349aP)}JgbA;Ocbf>0GuzzQfJ2%?B00)>YNvUCxIvIz*tj;%n8sK7&Q0D1CQ zltrLGX$urmTA(P<7APcb>E5(W(lkk%eQ6sqbH8&Z({?6l6~E8l?|bhhzmt2G|2b#w z%)MuF?;SDbgAWNF;rR%l=?1ij5D}P%Pn#Gda2|Dsn39*gv69|L?fuB$)^z-xcZ_{4X20k60XxFxV=MG&uck0loQ$W{epAL8` z@TpFnxc9s0xL3xsevqPF5EIuLxGK)@FY{NO49xe089u%ln6UW4E9?>u#0o8GIs42h8( z5j{U9=|;dbx%q`xBUW#1D}JhLx2L=J>D%wcpqGXYdu{lL*GIlP_PufACj?LYaQcjy zvqD0{<}X;dXz?dYmabX5ZvBRhpGSVV?W?c9*}h}v?mc^d*!RyL_y6nYvE#p-IC(1W z^!W=HlP_JCrd;{;x0|R9vZ4sjD>ATAkivwb>ocy7~qej}Ume z1HV4~f!ojH3xxt<8{8ire*=)9qtLI{VE<0
      o7Rp;JAVnkiWNRA}kX#4!D)64-8 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 diff --git a/public/api/resources/images/default/form/date-trigger.psd b/public/api/resources/images/default/form/date-trigger.psd deleted file mode 100644 index 74883b21c54ba3552492162863caf022d51e43c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12377 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 BA5{PV diff --git a/public/api/resources/images/default/form/exclamation.gif b/public/api/resources/images/default/form/exclamation.gif deleted file mode 100644 index ea31a3060a36a625cb5cfdf4fdc5cb4fa5c3b239..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmZ?wbhEHb6krfwXlGz>`0sGY+vu>b$x(l^!y&e3LT!$PJ06d9I~VJ7A=2?olFzvm zzpDxE7n6N1CI(zd3A#}bd9NVyZb9tbn*6)9`43}*9>oVgP7HaP6#6VR?0I_l!meOY(6|dTBUw78N>aBj$UH@iM{ilZ1FAYgw8_pbc0Z{x51oBkf&`s?Q9|Ns9pjDkTQ0*XIbm_d%z0TG})!N75lfssSTW5a@j z7VZsy6h0k$;Gk@@Yl-LKR#u*NrzJaX3aNBVGqZFP(Gfc8+b>uAY)8hyXKfvg1xYiW zY*bF=5>dbAA)s8qF(=rm< znzH#Wl@*DQugyk|h0s(J9u~z4MZR499ryhC^~?K*w-=e{wl~-nv>Egj1cL7gguBx% zT)Zq@NE=-Nt6g4JyGT~9fVo?Mjr%bh_W%^(#8yHO+#|w*$V3wYFrM_Cf1JV+84je7 z9ROpGU-)jyX(BU$6nbeLjSW4@*$~LtaEfn9=b%FPo5J`zLU_AExy0xc;4Ihg&$RuV zvJGs78Rz*%p2AAl3(x<8lzp}-|FX4l%|7EfIvgRBjB8tSQLP1VZWEF#ywdLj z>2hyD&Cz7(vFsX(us-NkLs+sfDkV2EMfeY2cqXqlT3nl0R8N;Z551!ZFX)PvHbvg; zPAF=Ql@G){8oW?FobYU%-aQi8(syOzQ{37bFFif|+O^~xchYiY*TsbylHyFUEVrOS zC@mHh+?B~>#g(;XRrU9uJgcg0tgWkKmA77d(0=`qGNYy=^WpQ%CrV+BN>bPLw6R6f z(sR2_!|q(n>iQ^DjS2e4MK5Qv`<8AFEsF-0Btwh&iZ>0-?TxLUQpLzh z&8rU$BjfVd`o|+*kbdR$!ncucOIodVe0*G|(@jlJ&&BTL3F4!sWQKrZSsrbm`jlswPRiNw~ox#)EssIi3K_U?mR$7V-IC9eE}g* z5#SHoR>a6~NhI<=Q;WTt%?}Qu9NUN;+@wtJJS0y=!z59V(h!KT_cmHu5NujLLCxE9 z_QU0%P-;FGb5tI6*gk|&C@tm`|9+v*B6nv=lO}$S+iOD$Mn~aW%lOvrmnW;VvcjwTy1x_M|Vx7g?UOR%A{vxR1=O9xx`_0#)mAz z#O%%n@__a?l=898*N7xDAiI1b<_~Z{nslUk?g_Dey!Eax#h5@k{{; z%`faJ5{8R)QaC;cQD8x5`VzNXi1Wqp3x`c^8P{6P{gaVWuFtYe7c(1?zIg}q~%W>VJ1sc%Av?5s&yuiMsG8Vvph~HOnJjUP7z}R9x z!{}s!KCBJ0F`$WM&Ver~;K&ocSHW(s6Mh)nO&1ErxjYUP9z|fJI2_q7U~QAux`?+R z3gs}A84lrf=7C(=X6VrsYzT(A2H$czA`b%`i`+&{!uU_X)(G<^EyNUO6=M{u;y53QM-q4Y5!fjNf2B$c3=RvJnhbNor$)h(^K&^hwf=q`1g%>cIxsnNp85qN`tNhU3jbmaN?09D@dd_WcK8kleih diff --git a/public/api/resources/images/default/form/search-trigger.gif b/public/api/resources/images/default/form/search-trigger.gif deleted file mode 100644 index db8802beb370d7554d5319c0e0d5c4ecb8da2c5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2182 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 BV7LGP diff --git a/public/api/resources/images/default/form/text-bg.gif b/public/api/resources/images/default/form/text-bg.gif deleted file mode 100644 index 4179607cc1e9486dd6fcc8467c79b5b41dbf4f76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmZ?wbhEHbWMmLxXlG!!_xRa|&!0bk{rdI$_wPS{{`~#>&!4}4|NZ;_|3AYh7!85p p9s-I#S%6;r&!7YHC@4=ba0oCkvIrP7I50A^3uwfgFi>Ey1^^@>A+7)b diff --git a/public/api/resources/images/default/form/trigger-tpl.gif b/public/api/resources/images/default/form/trigger-tpl.gif deleted file mode 100644 index e3701a383107e090fe25d3fb8d63aaa9290435e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1487 zcmeH`{ZrC+0DwPCBIojs3o|_0?P^-#Ox&%!R?e}@xx}{YYR;I~>N*jn-Qn&=-p-KA zeA(%=S((N$6_|l9fQC+Hxi9#N2luQwPBW3%=l!}^GELum-8=KbTwwF%Rj%DgphgD1_aTFbxxSbc_7 z*tiC}T&|Us6}Q{%@p#OB*cyNreCzg?@X|W$2*O^k*XQ%C`Tc=FAQ%j8?6A4LxwQ?$ zFnGh80{=sSgX_p0D-7aZyI(&6LSe8g^uSq3699<4vDu>uKv9OqBv(z-4-J(@5=c^c zCvT(%gPg*qb@7!*M7$td*%d>&myq6H6@|%BvEwc%rj<`}&sV>d68bLbzTg)ez92R{ zL%OWyA+pbMNDmz0eA2_8Du?G1p`W#a zi*2IW=5FT;Nm@-f=nK&Ju|GKH$G>G{YFkTqB2{y*&pLXG@cG}HCp8gjUV5YGKrX;c zKcN|~+$?$NF%5hJAHnq}74oAsZQo5Wi&P-SqG~)}Tn55ltvZdK`IT)rc<_XRg^Z+L zEoNSBGTq*jc(eqdQjVJMM2OG;fu#t{Wg$qSxg0~TkXJ<4QMskK7QwahebOaMWkPZx zRCQcO<&}om1lH;#2Gv?~f?O}Zn-ZB9UH!@7hU*~W__FO@Msfvo|59dNOf4yZWj)Bw z%xm6#wG3~s&!Wh#gS~vA{n3r&QHV_+#^*Lr;_-`|0`e>QZ$*LSBb*;mXnE6}$b132 z(DJsR0TJCw1C%R+wAP Mbv*YluxN1lKj3usvH$=8 diff --git a/public/api/resources/images/default/form/trigger.gif b/public/api/resources/images/default/form/trigger.gif deleted file mode 100644 index b220bbed3cad39be91536a4bd22181c8a95f248c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1816 zcmeIx`#aMM9KiAKTn^@>6(wvM=Tt7K+z#i6XVQ_RQlXwxx~C_dTzVuSjV@E9&e6f? zc1BimCyFHI5?UCW%UrgxjhW3Zwy*8G%lGg{oZrs-c|D(BKhN`dp3k1Wf!;r#i2^nN z1ORXi&2m4K?RGfZ{cyI&k%yiuay-KxdWPlTU|d=SqrRcLlFF$Z;8amLRV$NQ*E3z; zGyR^z{XpS1_Rci+&wlKksityksN8xwuZcSMY1t_M6N5i6FfcecNTbo{bo%h{@W^ru z7K6bU8ylOPoMbYYSg_lwg!68kkz7P0MH;#SlkIU!GiWhzAbyz(J0Z z%GC_;Gy^j*eMURPhll52#;kI35oXC@Hk-}iaD+mkNF-WVSP+ZFQwn%m0dtmtFi)!D zEx|KO@az&iCtDIrBtn^ruYv^-ERjg0QmITPlP{-GfFLMQD5VNWvINOMND6ACN?4(U z6sl!fg-Qpiv>*h78d#}Rs#Gcng4AlYQms{~H7YF(X>@9hPNUIiwOWlwQc2jWfj(wlAt;{b_o^3r;%IJA_@nDW=jxi?q3BPc+W4u#% zXx$w36_OhCBKWUp`{LkyXkzT${?IoEYNDEZEPg*y98UXf|1Wu@439X@*B9!G{(m$j zEeh6+CzAA<@r(Ap0S(nt?WyXv&}vc*r|a?j+P^~@Yk3_v*BxV?uzFk2PYlTVG7*uU zM~kC8AO7=owt#jmr8_XABU5NwcZIUqH-aphXt~S^ghJa#+U(7T|^;zr1^R#fA4^Q`}%n@vb3bw>2!M)jx8;@odihBR*_yl6_i!hTF;l)zr>16 zA|!`4ZHx#>$sn00?DIFhnqZAbZw;l23`lORczsNXz_A?TO^m6SO|w~e!+kn_<*k=I z<+gd-+VMLrUd2r@O=Y`~Ri6Y-r`y_Bi(B^~QiXuDJuiY7Z)n+oH9}l%h$DYlw;{E< z$+Z8ta}VYgTGnlo54C@D4=5xcl5zfv-!{L?x{8*TmIEfcEnn!_I9f#3k!(CBJ&d*& zNHb^$o~61WaPB*+^ul6+dU|ARXf*14KE@Dp_(|mZA-{8&I_eJ{E=$InzqxqP&Q!Jf zk49`%gnSv_MQBcEraBW783)k^5?MlBg<{x#_cj&x3CAUA%BgG~|J|e5n~m&q&fAhv zH>)T&W>yi1kf8iSjA}OA86XSmMq*Mbs;^@pJ|RC^Ev_Fywn;iHV>R=Q`47mlZ(ib^ z3yocUP19d}Vtp6u(}-Gd;`*bVLQ)h~r{w0Zz9~OzT_)sP)l2vYF+713*v6or&U~AE4JF!_voT+U2sD! zwS7PN)w;JxQPE(j)><`^3Pe;02nY$QB4i*5NoMB0b8lus7V!1`{`&RzlFz+!&i$Tq z?%cWGoSB>?Y-~gnk|D=S4u?Q!(MXAi3@@c`*x1Qa6bh2P1t9_fct)6(QeaELdwC~U%pmX;w0iC*a z>d>KUuddyC1oeEjXU8sm`t}a$+r4McAQ`y%`TDg}D%%AGbO;Ct`gdRWH`yUrfRBv6 zU^(<9W8?}r9c8Q5ZQ3J7CYLh`xeuHrSpFR_r11CY&@*_9?^BVB{GMIgG31jy-zs~J zO}QK}OcH2BzB_#6=&|D`PM$t< zHucJ4S(6_r)hMz+4eWVSR~Z89WxEC+h8 z^}ywqF$#rT;YZdZV>UpO`zw5U2K#mx6X~~T?NiT&e4^|)cF(sdms|A;omLmHI7ZvL zQ}3ZAeT-yDbVYw`L7)DwR^(ieb3Hg8wUx_&HgbP78rgnaG1F(m6Cqj4Yt2hAYJKX1 z4FS8qo0yY#@?t`CKqE%G-s^F^<2sFMPB$Up=-esC#_GdQ@AdD$e)!sys@wmaTG%FM z+vfT4a|aeY3Jd7E_KlQnr`hql9%_1zKXCS~5!YT<=q7Hev8=QnElf)+x)T31o1E6g zzw*L|nstFG=bwG~#GZA5z5DI|xXY-IWv?BKIKBN`Le7*0NnF8C^&!W`{v#@U;D(%= zyM*gGHjI|#V^q8!&T&EhvHH>JmzF-Mj@^1xm!7-()Hf^o&x;FMwIs&x%P-_X#`vit zs|!o_?M<~*ZAdNNuq5HoxM@eGgwNb|$2@<}p`qVQDBjWimxuP^%3!0(y7GexE~_@W zD06hiMZ@U-(!P5jbgmI+({~4dJZVPe$N@{r0I);ZMYxvoB8m-V}jtP0;T zVxIZ^Ehmy{`n(rw`$rfztV>RKX^ zU;b|O?lFE{Mzo(ZZ`TuB&9gS&DYYy-SwHgR*)+bgQoFIF_Vd;0?U?*IH~ZWvyjME^ z)riCc$xHht#Kf$Pekmf)uY4OAc7JJ1=qKu)vp<}EwB%&X$w%*G-aKoMt4sLoNL@kU$_?j> z^J9D7ekXtDVU4EYx5!UN%}#*NTc#iKnQl*|6oE9$ZJ%8e(H_of>t~Nb4YUI3# zTZZ^Y(L32|(c5Mx{{FWf`*vuu`b||f1P$4|Z|?rR+BKDN`)7VLs~V%w!M~ahKEKU8 zW!BZNjRzl2G`~M+_0s;!PlknFXgg5N{iwFS`mSQYwel0gG*e&Nu+jG6;Oq4#X2d@b z7Ur6&j+*Np49`E9czjGi;r^V52U~S6TbnZSMa5s+Pf!N6AJgSn-Emdbn)<~@1{U!c zsV~=AuIzgF_nG;YsJoBeQ=R>`YlA%PxGm{CUN?@y~6WI4EYq52yRb|8>SEfkB^+d8U5O@ncV0 zg)Ik{-DLSW*Ymhespsx2{`A32)z5WD_Fb!;ntim7{`2*jH3q&h_vDGp*Uo*k<;IyG ziq2UM)@nFAMl;the7-o>WP`UUW8v&cw|tk*+0tj?4+~4)5Hd$34IX@ZYv$ym=@`Ab zIlayj*CQ%EKbDnMXno>9Fz6Y@>xmgAt}$LH1^#3^4Q($)CuDU%>3z#^otec zxe2DS1=`e&7$s`pv%2Z~(i=rnLIO3x45Op7F3Mc`(S~r!DmNUVojU3KPo$kQSd8WzAQG@bhdA@&PsV^PxsfW)kNc?_4!oq2HCZE_i1#;Il zjFKl|)Uf2NzK+9a+-r>&7nU#24(;{ZXrt*(!BCv}()=D8Q|Q456}FBmC#UQwO|<%5 zhiDVoVL6{Q3KNEzM`Il#_iA|!P5$kX8jdn}i${7Ncib1?E>AT$!pm{*M;*RGsKY+E z{WrZF&kFQOfiaLfKXaGhOg`~`driz+m_81m5u!^!xZ~qL(pryQ^yaE%F>Bs?dkJy% zg+^{!?V-Ji6eI?70c6BP(pg87S!J0`vl8szpH(?+(Ykk+#smcuZy7w6bVos`TZ`}R zfV;enspu7BtaoEMS#Bz8m!-wB8Kk3`~*4yD%LVK^LX%s{aYslFQ4NOjgIYe;49 z$Q&pY*lJ0uli5?*97!VrTPbO^1k*|y5!iA`dql7-Nh1QQmo$pqlr$o+C6ZP{{4|nA z1h!bx9?EQ~>TSSrssqPOD#AdAMg-O- zX~1z6TPkTpV6Bn{99I!`I{b*hS|km4tYYs=8WC8tq)`l*>+mB2YmzkJxQZ>3G$ODK zk_H@C5mr0=h``o2X=WAh-A5j<<*bhyM(i$m;IsX^(ePCU?o&B!e5(khOK* zjTL0YYUnC-kUF8Gl2Zj%3rJmWWCW};mLr`gVMH~;X*F~X%pph+P+HBh5<~?F0!FI| zryMb;AVEM{HKC#dqQW15fX-?{Zig2YBrjmIntUc45EUc{61EyXbXJ{Fk8}>f3hN>Y zFj);86d@wO9Zl4L$!fS%qDBNr459{1R@ScUHps{E;8i1Z`gP6dsfl!qpy&bi7(W>1vcdQn*Wd>y$ zG6(t4p5Z-o&drzeK)tQoxXg>%c1*KkPCHJ^VQX4PF!t0vr}o4>bvJuBaR|&+LDLR$ zoVdI0?d^_x`n%aH5P=0OC&BGV?xNAF;1Y^+LmzL8k0xdW5fFzMCV;7@eS>J%(99T*^699S z_8fVdehIyXrlN2Z2GS@8a}g3S!*lSRfZ=#-chjofGM2qlocVtB`uW1Jc#lvAUGa%!~*Y6?8?iENuw zq;zuHa7{q7HgcGe&?f>eafC=Er|gVLdE^{+HFug2f4CB0L@DHyU5)>>4W$pnp!9(w zrH>ek(x(NC(kBAw!%_NBiP8t`DScYND19JnMmXprN|Zj-1L*S@)JY$kNFN)}N3<8| z(+ooC1K%QmKG2Kwu>pO&#wdMY6zBszrO&hQ-F`TwPY4Qu`{-ZLlL#^fX?F2g?V;DA z2H2AZ@ORj89y+OP2-{(Awu}4kl!;%<81aA|2Wz_HPTAGtU)#_fhZuCn;YfE}j74|6 z1&r=EV06FXNOxO2l5_GLCp!&P2gD*C=`Mp#j?Ime-GxjGJ4kx7Xk~6@jP59;5!g}a z8>j{Br^g80O&EjSgr4rEYprHFT7_0Xdj~B?bK#yd7WH$j(@@#feyV7{8h*E$iy|PY z^z-@#Ozfp^6qC^#5IGvX1#LE(1a~v9_S5PpPeg*vA85%j1Qlj;x7LfOJ?COZpy zl#Qi2Q8U9>j|@UNW6(p73|Oim^?X!oz3|~!Fc9teX zBV-|skl`QeZBo*@+{W3;OKFcu5z5mG#SX5iwGRspc$mGm#-6IlG7b$6HS5fw z!9$H%8XTLU$$>I)j@aXjA+cU2#U&O9Vym!05KBq1w+~G8u%-^?2o<1lbu|xdsW&om z%pt)cc4+3Dj2qyTNoUTZGiPF0la~oDY^}GF2+*v0T-eUr3&r9>c@bC%!E&%E!lZbH z&&pFTvmr1P!d?cgU0Lj@hEz3mxOj+0P)n@&Kd}Toi zIV)>Pfk4V}!a3#nD=Y+NubdZ1MGl{mliA4hFqZ&xd6@{;m1?aCd`w!kKni%?KD^F1 z|GssY^?p823VVE-?}e-NL+h_z;7MgqIHh!~2xj161`n9iC~ljFns0NY0O)DUk4(gX}k%yX;*%DH^(4+3zyB`MGvdM700J zq+d?AlStetMRIyoda@njxD4BFBCUL zMHRm9TcS7UOYWBldQ^g?(qc2if?2RQnphn4N{FiB`(;+nS|;|zI0^pta8D>^?iD}} zQh|Sxw}}Z^1c9-bphp%=DwdvJD2XJ*=@HW)Ax?{!P7PVvy(h+pl&J@GH{MU1OtJD!seVD$&f6;kqlLWM)~_~GYpt-|1OXU zF3y%~^DJ~~OP*GMdajoVU+imu%N=Pm@TAJ??cqp;QDQ1o@i%?p)))mhNS>5`g={66 z0oIYH`qD5_5%XS(2 ze_omXQ`DKgGoKnaU=uP!6OUM`LN^bHMP#p}r-uI_@d9ra`v$DT<)}iaVk*j^2dUg& z=VfAqXr5+BN3z_G?QxLh;cW#dp8ily+J7Ef}E3bH9=j{)~9z$#|6R18B zAIuOR{G^u)%tMk~9N0jkNlp#_q#_C?gN+t5%u{KFGqKm$;Y_TRWF9XQ9{Y+e9GS(# z0oF$!_~L}^@;EWSsd1@XUtyy|whBEiZD-Z#4V5+s!$Y%G!oxQBc^E-CU9d7X0o<54 z!NyykY{tov;2?;Y;M9UaSylySA7`&B6G%ND>*ZuBayl>(-0XB-CcNF3BbNYkJSqNr zdpHu@4l%*0`Ep;_h#jyUJo!~X&?_B_f%rVc_kis@gLh&(`RTyZ(lx!Qxhh3ls72!3OqCzdpE({fGTP@lS5LOxFMa diff --git a/public/api/resources/images/default/gradient-bg.gif b/public/api/resources/images/default/gradient-bg.gif deleted file mode 100644 index 8134e4994f2a36da074990b94a5f17aefd378600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1472 zcmeIx`%jZs7{KwDTLnZd*hMh7R3%&{VK|xh5d@TrMjeTpnq?_&b8`}Bh(kowLJ^R= zwLrP_Mz6F*N-1{`N?)K@6i}uD1>V*|OIv8)A|*;9JN<2c#7;i>=A7rpCpmEmrw$)U zc7mcXc@UIVGnG~gOy34*)9Li-becMyuD$~>)ERVj219+9F_Xbm-(}8ZvefrjGxzFd z?gQ+Z2W-&U2kcoQXO_sF&Em{uap$rD-W-Vsija6n4j*~Q*W?J0hYp%tpk9;bpv@I( z@`Tz)B2B(fn=b+vZGl)@(4Z|8YYQ8+MGfzZp1v;z8bNg>jk*$vu2iBclgyVj>B^es z9|O{PvUGvmyzs<9PmwK9WcqTTMPJ^kuV~R%wCXE?Ha*qBP}OFjwi~K|4nuYOVl`;T zVhzx_SPOK48f&|ZG@#o^cQDa=jErs*qsPQ}W@7f3n4r(hETGq1*K1~j_Lq?Dr%LqcFxvPW zut}by5*6B{LZvEO(+Ju$Vv_!sOuZvAc4ePkK}Mg^X|R8{wv3g3jV&Qm0~*o(w;!4zGtP^}q4TE3f=4jcq2s zNTj41IT7{z(FAgK^iIzZ@_2j+Ir8!+!Q#r@%9(ju7k_5|Ghf7eqx2?7%YoH4jP!wx7HA*Q43) zwFOW=pP6ly3pn=?dHpWVl+z~h4aA7q3Dbmfk>A9h*D=1j0=ZkaJtNDl4|Dy58=OQ4 zb=w|rEX#G|6q4dPk_gFV6VcYbmUmazi7x6i6Xb&As-j$U2PJ(S9-JDYvw05^=DZ2M z-q(%65iC7!Sf=Hfs~2MFb#cc_ASYbPO$Z9ewDx-)GFuhcxKI?v{g{Fd`2H?N2mNoG a(II?Zs7)DAnPM9b=8J95L)rdV=-9sjoxm#q diff --git a/public/api/resources/images/default/grid/arrow-left-white.gif b/public/api/resources/images/default/grid/arrow-left-white.gif deleted file mode 100644 index 63088f56e1c33fd23437ab00ef3e10570c4a57fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmZ?wbhEHbWMSZBXlGz>`0uc0#Y_e;`2YVugfU8vhQJ630mYvz%pkAofCx~YVBipA cVC0bDXlQU?ViVMIiI|XhxRH&WjfKG)0LI-8@c;k- diff --git a/public/api/resources/images/default/grid/arrow-right-white.gif b/public/api/resources/images/default/grid/arrow-right-white.gif deleted file mode 100644 index e9e06789044eacb8a695cd1df46449bcb2b9aa07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmZ?wbhEHbWMSZBXlGz>`0uc0#Y_e;`2YVugfU8vhQJ630mYvz%pkAofCx~YVBipA cVB}zNNKj~OV&PY_IbpESp@o^1jfKG)0Ls}94FCWD diff --git a/public/api/resources/images/default/grid/col-move-bottom.gif b/public/api/resources/images/default/grid/col-move-bottom.gif deleted file mode 100644 index cc1e473ecc1a48f6d33d935f226588c495da4e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868 zcmZ?wbhEHb( zLO{cVgpLOZ6Fwx&_)sw8LBWC#1q=Q+toSft!~X>b{xgh%(GVD#A)xq^g_(hYn?VQU zd{CZX;BaIR=ZFzVT;Rwl#vu{Yu%W4$ky$xng~3BdrVc>?i4_ctPK=BUEM^-R4mL70 a^J-WG2rw*VW@C5a%Q0YR@NEQ2S_1&+BRBT| diff --git a/public/api/resources/images/default/grid/col-move-top.gif b/public/api/resources/images/default/grid/col-move-top.gif deleted file mode 100644 index 58ff32cc8fa2aa1be310b03bb2af77c1b77abe93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmZ?wbhEHbG68wVGIhem=U(^LUb4h;c?We$u2%uEc{03e(}^8f$< diff --git a/public/api/resources/images/default/grid/columns.gif b/public/api/resources/images/default/grid/columns.gif deleted file mode 100644 index 2d3a82393e31768c22869778698613b2f5f2174a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmZ?wbhEHb6krfwXlGyuEL<5_v@*CDh*pJ^t_~?(6IQl1ymDPc)rN@bjZrn5V(PZU z)NOSrd+hMvA+B+IeDltP)?JCMyOZ1ZrgZEJYkQj3eITRnaL%L?Ia5yNO*xf6?R5V1 zGX)b57R)?XH0ylvoQuVCFO|-_Qnuh~<)Ryvi*HsfxmC5~cGa>w)ywZpoH%jn)T#64 z&D*eH!>(Ps_U+r(Fz^e+YaA8aNxk9Lx+wXJ9gs4iBqReojG&n z?%lgL9)0`&|3AYh7!3i+LO}5+3nK#qAA=6a7*L*I;F!-K%OT^jVZp&>mh3YgjfYq| z1(lp?K5S5QW|J^Yxp3pe#^mFCnoeCZo|g`B%4>LkiP*V`#cPUi%)1K8vI{DjqJ>lyj2t2o f3la`CGVn;rtSCr4)W)vpHOFJ)qNAORj11NQ63h`c diff --git a/public/api/resources/images/default/grid/done.gif b/public/api/resources/images/default/grid/done.gif deleted file mode 100644 index a937cb22c84a2ac6ecfc12ae9681ab72ed83ca78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmZ?wbhEHb6krfwXl7towPL}p0*huu%~roJzC1V7qiQ)z(xVq;t8Q*e g@TwP&*%vbDj%DY0^FxMh_Sd^OqF)Bg*^}7&&A#5)LvkG7IyS zOnBJr%r7CL!Q$}XP&==XoWqO@51m;T- zPZpr7|1;=-+z!eU3>@+d`VlJv8V|8>3M$wXTxdAR#L6ikV-V2L(7?dJ#=^p24FK}3 BP__U7 diff --git a/public/api/resources/images/default/grid/grid-blue-hd.gif b/public/api/resources/images/default/grid/grid-blue-hd.gif deleted file mode 100644 index 862094e6803f522712e4d193c7becd8e9b857dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmZ?wbhEHbWMmL!XlGzJa`*r7`~Ocp_<#1%{|it4Uw-=k+VlT6U;e-I>i_*W{~x~l z|K$Du=O6#S`uzXxm;WEW{r~*q|F@t2fByde=kI?YU>F6XAuyCfK=CIF(E0xvbU>Z} m<=_zzU~q6?um%8<;zWG_ diff --git a/public/api/resources/images/default/grid/grid-blue-split.gif b/public/api/resources/images/default/grid/grid-blue-split.gif deleted file mode 100644 index 5286f58f6f798184c3eeacba1352cfd39b9ae03e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 817 zcmZ?wbhEHbWMbfDXlG!Ub?iS7FpPrH5Ezjmp!kyo=M_wPS^_`om@~ diff --git a/public/api/resources/images/default/grid/grid-loading.gif b/public/api/resources/images/default/grid/grid-loading.gif deleted file mode 100644 index d112c54013e1e4c2f606e848352f08958134c46f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmZ?wbhEHb6krfw_{6~Q|NsBg$>(oA`P8%SHjuGk&%@0ppYOTwO7TCppKD04vtxj( zk)8oFBLf42;y+oZ(#)I^h4Rdj3>8V47nBGRLn+Q9-(eXZMC@T`q-A zfguTok_rhvuF+B}YGk&S-hZ1Y!QP;7UE)!jv*adK6)hob2AOf}GE&w)<#=MknJHoV zY^}*Md|xE}K6*MO&RAU_^MUKk=Djk=g^pDJi6uprK3M%`#IdVL zUEAw4e{ zmg0{~p6|Ie&p`6H%mYO|r)_gjg|As;$iv1hQk=MZgX#CFjEx2xI6HUG&(-w8Y7Wpj zcm93g6udbnGzoX) diff --git a/public/api/resources/images/default/grid/grid-vista-hd.gif b/public/api/resources/images/default/grid/grid-vista-hd.gif deleted file mode 100644 index d0972638e8305d32d4a2419b3dd317f3c8fd3fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmZ?wbhEHbWMmL!XlGzJe){5xGZ#;uy>#l_<(QpFT5;g3%Bd$|0cmlLhGf{|q`H nPk{0S1BVoYrq2Wc#zV~Pyb=r?3JDC2Ol*7#9t#p29T=29Ey>tSt{5 zHY{*#Vsg}oIT5h%K(m0QN{+|JM3-h^O`|Opf{7fxyq0BWID}eGbgMYd>zNVs*sDWV zoA1qwjZY3uXHRaM;~D(iZJx6IEfY?Wr2(@o4CQoZZdq`CwriwbsHEt#km;etaZ`6L zTz!3gENh*F_qI0?jS`nu#m){}(7wIk@jlUvh3oF_E@dsdaeDjvxJFSXZaJBV1#O2r zgyqE~6rDPbPjEKrQ!sFDJ262wU4TQ;rQ!Sn=9UHq#|Nzf3_+{e1Rfn?ZRD4$;FDGQ z#@r~Pu^>)X$(*&3x9Pl?tj&%CoF~dRyY`d67r$SB{>v~5Mnhoag@EEu7NDp9Gw6W44$2b@93l*? Z95Nmo7Bnz$2y4ZhC{SczU}R*l1^^j55kLR{ diff --git a/public/api/resources/images/default/grid/grid3-hrow.gif b/public/api/resources/images/default/grid/grid3-hrow.gif deleted file mode 100644 index 8d459a304e0b224f8c28d6b7b585da7019d28cce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmZ?wbhEHbWMYtDXlG!!aN)x1H}BrOegF2|hj;HkzW?y)!^h7bKYjW6^C!b77!85p z9s-I#S%6;r&!7YHC@4=ba40eea>#gWNI1yM!7mYUVnf4WCKe8!85Rx=4Ga>@3=9GS G4Auam1ttan diff --git a/public/api/resources/images/default/grid/grid3-special-col-bg.gif b/public/api/resources/images/default/grid/grid3-special-col-bg.gif deleted file mode 100644 index 0b4d6ca3bf28ba44b4ee215fddf936aab7cdd5a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmZ?wbhEHblwe?DXlG!!aN)x1H}BrOegF2|hj;HkzW?y)!^h7bKYjW6^C!b77!85p z9s-I#S%6;r&!7YHC@4=ba40bda>#gmIKarv!7ZX-kkHV;z{nslr{jQv6El~jRSSoL H0)sUGu7M?* diff --git a/public/api/resources/images/default/grid/grid3-special-col-sel-bg.gif b/public/api/resources/images/default/grid/grid3-special-col-sel-bg.gif deleted file mode 100644 index 1dfe9a69eae133929f3835ffcfd108959539b9e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmZ?wbhEHblwe?DXlGzpb>`cJ$GN zbN|hshj0HpdiUqa`#(?L|9SS|&x?`0o(b_B3_s=d77u3+H|!r zfbs+bM-c-fhm6OD1qYj1`88rr6eKbU2cZFVdORzJ@!m~?8+%1KMTTg@3K$aq~=^PX>8{)(q7 acp2+dVHKAK1EYrP>l5}X$w&(@SOWm68Djnb diff --git a/public/api/resources/images/default/grid/group-expand-sprite.gif b/public/api/resources/images/default/grid/group-expand-sprite.gif deleted file mode 100644 index 9c1653b48dbd2d4bb00886c379ba3a66813737c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 955 zcmZ?wbhEHbuiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$?_tHlbAgvKT&29}T*1_wr_8B7v4Oad0D zH!!O=%UO7AS#fc($7HS8Q(IPEULLU6Yp&PURaaMg26lV0F?{M|skyG2(-{0TB%q{1$Bh!Jw8USBOURwYF diff --git a/public/api/resources/images/default/grid/hd-pop.gif b/public/api/resources/images/default/grid/hd-pop.gif deleted file mode 100644 index eb8ba79679eabb7811c3d9d1c86c43bcf67552cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmZ?wbhEHb_??HKjfkTCXkweD9 mfT4kbgI~?WW5NQ*7JhN9o*xBDE*)ahRw)@D7aeL~um%9t9ucMh diff --git a/public/api/resources/images/default/grid/hmenu-asc.gif b/public/api/resources/images/default/grid/hmenu-asc.gif deleted file mode 100644 index 8917e0eee0cdf7758e83c4cffa7a7239f72b8427..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 zcmeH`u}i~197Zo~Emb-ML>(No#i13!1{`|2)F4_jl^X=3LnUJzge<}>RZc~zP~kV; zB68w#pu>SnK&adpIt5*dn`7OIQ?33Dj(x+oeanNlwY^!!2PQI6AN?^vMGITlu?Sc$ zU>9uS*}igoaC}8PN`jCCnovooc75v7&|^Bl#h|GI2x(JLP!wWjlNOK|~-m_dM?T+-E!pI0dd^5l}(d@Glq_swQ5Q<6ypk{;!;VaqFyLusAH|W zI_^hNH}3WaBSr@P!$9skWgujrrQZ^Mn?RWcN@fn{AM5KVovc^P{B4D$=SroI5_&zI zNSF`DRwb35%9fAbth<-%@nxq_$~TO}IN9OvPh(dz1*g;6JvytHv(;6&xjkRcOr!mB r{VRFNa;Pe5osHT>5@ibIb~{3g+0C%lYO~3O6<&R=-|w9m23q?84YkzM diff --git a/public/api/resources/images/default/grid/hmenu-desc.gif b/public/api/resources/images/default/grid/hmenu-desc.gif deleted file mode 100644 index f26b7c2fc5836850958f7f2b1fafd3988a988d7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 930 zcmeH`u}cC`9LIl>nH9kiSwcv;h)RPe4nCSX#PT4JtLbR)IJcwe#y6z#3aSf)9!+l$ z;%yxW@kSwnZWM)ZydeVHiWX}!?QdxG!)N_2ANcN;ig{#6Ai)s+7(q%#GE!y5mQ{jO zj5MrhrlNCIcT|&WCe|#b*{*J3-4-SmmeaOT%60^HIHrQgae`8gf*j^igs3uBp{hnT zopO)5V>`?=nQ1YLFxzIBGSTNY=9rB4oG{nnt~U^b3F->w3Rehk(B^L2>$m$u&+|JS zzvF-O{o!cJw7~xri2now00G#VJYn()2%o@AE8lw!UPJ@SiC{BRyCfUg+)-YByjskr zv+Ug{Ji~hAw(%`jAsUlHdvfpXd_GaEWO`qB`!@?~^gbD{hpr>BT&DZEGYhLy?xoZ; n!ca~nNw;=d4=v4s)H*Z{&Ndrqrwj#{39jU-m51Y}8o>51Tocwt diff --git a/public/api/resources/images/default/grid/hmenu-lock.gif b/public/api/resources/images/default/grid/hmenu-lock.gif deleted file mode 100644 index 1596126108fd99fc56226b412c6749c55ad5402b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 955 zcmZ?wbhEHb6krfwXlG#X4~ou+bjZoeOV2FG$|=q-C@C(jDlf0eD{N@b6W`Inv#*zP ze=o<1{(yu1+=nJ`ADhB`dOG8|nG9#s|^2dGCVn`{Pc*@>k~$=Pg%ddVgCO)!~fR||KBnE z|HJVAKg0iLR{x*dJ-;0I|GC%y_pblnMF0Qq{Qtk(|NlOXjV)~*Jzd>>6DCZaK7IO( z88c?ioVjUP%kt&RSFKvLYv;-0XzkU1m_xG3of4~3u@#FvBAOHXT`19w_f1o=? z!B7qX#h)z93=CNeIv`Jg@&p6N42G*5G9DWiIGRQ-bEs^3`rv@RCy$K9p(kC=rd|^` zST-*?>B_{iQlwx7E2E<(Ghbe(62oy`Y27&t0f`^nn;9J1SUxr?H8M5pwCs2h(8SWt zC8Qv+=HXHgep#c0o(mriDDdjJR6ObU=;Xr2&gPqN_0-kZOwH=MQtsX=WoB-cUnB8y dW3n5EfMAf!nn#R>TRBB^*6i?z@O5CY1_0nG4B-F( diff --git a/public/api/resources/images/default/grid/hmenu-lock.png b/public/api/resources/images/default/grid/hmenu-lock.png deleted file mode 100644 index 8b81e7ff284100752e155dff383c18bd00107eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)WdKHUATcr^L}hv)GB7YRATlyKF)%tYH6SZ6F)%P+<{wS~000McNliru z(*hb477vONgHQkf010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00H1h zL_t(|+NDy@YZE~f{$`WrhuKPySQAA=4|-5UL@Ysj^nd8hiS;2Kdj#HUllo z8f~>&*KFH9Nwz?Ckui3oR;%3`NI(gPUDtho|G}f2_3e8bT8ASerBbE5)1bTYdcFQ| zZM?C8k+I47`6u~>51*b--wCz*ER>uRr zeV-UkHLH%}72i$a+1i|RAKlWyIlu9^60fuoN4rrzunmYfG3Rj9y^HEzZv5(CEO81y zUYkzkSk-KQ`3%0SF=Q~vI7Aru=z0O7P{Z@#ja`PhX$8v2D-^Gzc;YIGcnR19E(0MI z;kZD@0aiO(XrN-PsAlqHZzKK#l1tJ_)zheV5(%VKYS5UK?$7C;0+>qp-G76P-YrWc z5ZrIlD9FnLDKc3)8S0<dA!cTgY+CR4-a*;u;!NrNF3LWTlP5a1_; iES|Z7@j-3=)A|j?vD&^)Yn&Va00007>1uYXA>3Qh}beSb(Ur!W`$ZoRvwlh8h#GSA{v3P9MZmob1&N}#H|)3 ziyhJ(U{)KHf*@)Iy5?}L)|RKuO{O%cx#h;IvM2X1`q0Jo18y$3o31q0)ZQR~04YGX zfXCOw7l;j1uOz`;`%xPF|1H(H=TQ-Al80O7c-*kEIp@ZM``Ch}Whn7a@ zEo{qiRYg+i%R z4h#&aR4TPvt$O^~PNy46p*I)|Mx)VWGFdDZtJOL&G4XSL3{j3aZnxWK zXJ;3eLR8p^IE^@iXhU=a0)b#Kw7t0&jYea!SUet2Boc@bilUOqB;u|J|M|xX6jAAP z03n=6?Mi(Dm?nrZ^SKu7#oi7Bm%1nSA1H5qaf|0_D`c0ZeXQSbMRJ}Wp^ujFWEojX z(Y1{1lBcW8em3h3o6B)FgQ$TZv?6jQ8yMxx;o>^&qx~ghy5ef_6fHB&ac3`cuq8MD zSbdMbr>J*|b@#!#g0h@qxe*x=qGVcHY diff --git a/public/api/resources/images/default/grid/hmenu-unlock.png b/public/api/resources/images/default/grid/hmenu-unlock.png deleted file mode 100644 index 9dd5df34b70b94b708e862053ef4a634246acc8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)WdKHUATcr^L}hv)GB7YRATlyKF)%tYH6SZ6F)%P+<{wS~000McNliru z(*g|-5GqRX(wr!towOa3bz1}%hRS$Ze*UVXl27U>F*+kf-M;&k-s!`fDVCrZezlf>dy^3`BTW$z=L>EIW zO>?T0B!*En2q>u<@}12dniz6|2?Qm9qx{jpBiX~P{FQ(#@rTzxF``)#1i>x@j&6Pg z`g9}R!YZ+#Bpq}r3e{~P5}$S=h*)1OVUmx@SN9wqKg;4@^1P3fXJWAV73+q9*IOoT f&)vjR{Ezq!d`RXXnklE900000NkvXXu0mjfw|6I- diff --git a/public/api/resources/images/default/grid/invalid_line.gif b/public/api/resources/images/default/grid/invalid_line.gif deleted file mode 100644 index fb7e0f34d6231868ed2f80b6067be837e70cac44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 815 zcmZ?wbhEHbWMN=tXlGzx_z#4mU^E0qXb33&WMKq(T?a&f@&p4150I4La9D7liGhiU G!5RR1hX@}4 diff --git a/public/api/resources/images/default/grid/loading.gif b/public/api/resources/images/default/grid/loading.gif deleted file mode 100644 index e846e1d6c58796558015ffee1fdec546bc207ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ diff --git a/public/api/resources/images/default/grid/mso-hd.gif b/public/api/resources/images/default/grid/mso-hd.gif deleted file mode 100644 index 669f3cf089a61580a9d1c7632a5b1309f8d0439a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmZ?wbhEHbWMYtKXlGzpd-4Cei~rYO`oH1Q|BaXbZ@T<{^OgTwuKwS8_5ZeO|94#b zzw`S4UDyBbzVUz0&HsCE{@-`&|NdM558VEL!C+hQ;zA>HJFm1! z#)%1x%x&D_IuR=Z8kt%-g@N({4h;>A%p3w50S6iynb`#tJSI3aHnDO`7-U>H(Adn* Pui(%j;MmmCz+epk$!Kdz diff --git a/public/api/resources/images/default/grid/nowait.gif b/public/api/resources/images/default/grid/nowait.gif deleted file mode 100644 index 4c5862cd554d78f20683709d0b450b67f81bd24d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmZ?wbhEHb6k-r!XlGz>`0sG^=;33>fanOrC>RZa5f%c9KUtVTUe*B-pgh6A5y-&E zA>*-O!NDdb7MYkC1`iK4@=0rzWCSQRbnt4Ywd@dF=+rMIANR*%(jvDmG5%#TnwOp& kU}SchrxH17*#QO%<_$5P0_ncfbgjEYUKG8!(7<2~0Pia+WB>pF diff --git a/public/api/resources/images/default/grid/page-first-disabled.gif b/public/api/resources/images/default/grid/page-first-disabled.gif deleted file mode 100644 index 1e02c419f5e73fc1ba5770df0448d44adf856288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6g=b+}hgO*4EbE-rn8a-P_yS z*VotI-#=;6q{)*fPnj}h=FFM1XV0EDZ{Ga*^A|2$xOnm6B}gPhY%v@z$+dw{PFR zd-v{x2M-uV!Dt8!L;Mq+#E6<8x|aFW_O4e+3))3Q*|Q=94?bWMk!6jGP<+(r$fM>Xwqe7gmNr&4?FkK$jz>EMMFb>zJ~*Z~ zvMU=|C?p6pu`gocw@ENKkig96%Ptk5a9{xwcPOV4M}k2k%Q{v@i4+D0okN>5F7xql HFjxZs_zi%( diff --git a/public/api/resources/images/default/grid/page-first.gif b/public/api/resources/images/default/grid/page-first.gif deleted file mode 100644 index d84f41a91fca3a0ccc1107a78ffbf7b62c527afb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!N5_)V9X)ov0=f%X7nX_llo;Ppa!i5VLFJ8Q4$&%&Em#6pV(z;0OW5pDfG_ z46F<~Am@Pc1OrC}12>0^$A$$5o7t@;-Y_UNJMxKf6&W}lT+k*Y$eyJjc<@21kdg?` z9)m}X2f37ODg+`IICZeGskVGL@ZdlLlaQT?!H)&bz6?zAIR*(A8e5nhSgkHN9C*OQ m>dC5ipkT8?(+Va*AAy7q4&fY(0%9#)p=)k#W@Tbxum%8@3U^Ha diff --git a/public/api/resources/images/default/grid/page-last.gif b/public/api/resources/images/default/grid/page-last.gif deleted file mode 100644 index 3df5c2ba50b143fca7d168d5acbcc4404b903ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!N5_$V9X)ov0=f%X7)sh7DeV(M==$yO&0_YC2+|IvM<}Q z@ZbVY8B+}&lf=VK2L;XIwg}8jWa;H%bG(qjsCck}M+|z`(?y z1M&eVPcU$JFtBpScx+g3u$hC^!6V}XBXb*zY)A!1phGj4Fjq*7gQ62lFOR54M?r!E kLmQ{U6cz@-#wJD`MJWvdVWq}d0_-7oPHt8|*uY>70KTb0MF0Q* diff --git a/public/api/resources/images/default/grid/page-next.gif b/public/api/resources/images/default/grid/page-next.gif deleted file mode 100644 index 960163530132545abe690cb8e49c5fef0f923344..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 875 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!NB3cV9X)ov0=f%W)9;69vKr@Ionu*A5?G{Hgn3DYJ|un wK6d5q<#D`_!KiqUp-ntt3Jb$U#ts%8MWY1*!jGC}2?&SWIk{Q=U;~3S0KQg&YXATM diff --git a/public/api/resources/images/default/grid/page-prev-disabled.gif b/public/api/resources/images/default/grid/page-prev-disabled.gif deleted file mode 100644 index 37154d62406ddc064dba311b95f554e49ad38003..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmZ?wbhEHb6krfwXlGzZPfyRu$tfx-s;H=_udjFb@6g=b+}hgO*4EbD-QC;U+t=4O zY0{+0lPAxdIdk5;dGqJbU$}7L;>C-XELpN*#fp_HSMJ!cW9QDDr%#{0ef##^yLTBz z!Dt8!oe)s`$->OQz{;Qlaxy4SFmU)VaC69bY*=uxnSOV diff --git a/public/api/resources/images/default/grid/page-prev.gif b/public/api/resources/images/default/grid/page-prev.gif deleted file mode 100644 index eb70cf8f6a3b7f524bbeb3656d875a823b27fd7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmZ?wbhEHb6krfwXlGzh@tC0DJ54uuo^j+di-h&|8QW#kzUrr(*H68ylXk-(>4ag{ zZHv4+cEz{tOYf>=ebOm>XHxXSuI{Hx{sE`lD_*51{Hrf`RNeQhe(3PuA-LgMaLe7$ z)_W1{_x-!R`FH*eYuz6C>RX^ z>V<&fPZnkd21y1TkddG~!NB3eV9X)ov0=f%W)AK)kBA8^Y;DZmPc|?ZI=9Q{X*oQZ zkbJD2lgIqQijPiCj2*mD6%7sx9yN0CvxS^laG;@KrlbJNftid9=jS`{vav8&0{~Hw Bh1385 diff --git a/public/api/resources/images/default/grid/pick-button.gif b/public/api/resources/images/default/grid/pick-button.gif deleted file mode 100644 index 6957924a8bf01f24f6930aa0213d794a3f56924d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1036 zcmZ?wbhEHbA}e@6f*BUeEG-{mbu9UVeYtn)@A#A9pQ#+`IB&@5(0= zRzH}y`r(9CPbRH>G-dUZ>1!TLU-xM0+NU$tJ)FJ%!HkVh=4^U8ck{CaTb?f6`F!=h zms^g%-go-h&Rf5C-u=Dz!SB6~|L%M6=kVF*ht9t`fBVhRyMGQn`g7pPpQDfe9DDTl z(5wGPUi>@u`u~ZCzfU~=ed^KQvyc9qee&n@+yCcY{k`z?&xIF%F1`GB>D9kWZ~k3* z`RB^(KUZJ||Ns8~&oBx`LjW}d6o0ZXGcYhR=zxSld4hrCB?B{ujK>Cr zPF^XagaZi+ome=9Dmm#SD}7El7CSA;=KXekY^RG>e-{ zuuVYm(pR@|5zQ!{2@Y3s!WlFkEt+xRKzr=&*z_|U*@qgNWbB##KVWn?)_GXn$>4`} z#Rk5^9iqw$CMLJ{owi8Xkg$-crJaR6?!tz^#b0>Dw8Q57c+l9;Af%gcqV6G6E2r=p gYaW5X0}L(q1$Yc3_9+}>;A5Sv9e-|5r2~UC0H_cnr~m)} diff --git a/public/api/resources/images/default/grid/refresh.gif b/public/api/resources/images/default/grid/refresh.gif deleted file mode 100644 index 110f6844b63f04ee495cb6260aadccc5c91f3245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 977 zcmZ?wbhEHb6krfwXlGy$h}b9*vsWVToJh$rg~Ib{73bBfFRNEyRjIzARe8a@{G?U= zS=*`;&XtFqYK{lh9g^y}Bh~OmX2K7phHF|4mvmY#YBk-m>AI%V{Zwn}AFb*CO}Zah zE&Ol0{J&TG39p`WUhP-C+HU)IUUQmo-)qvfh`zI76Yqx1zV0&XfzSMxLGvGbFMQ~+ z=(Y3m{~l}q`>*>SwD@7vl2_py{zq>5pE~<)_MEHvb8Z#%9?x5TCvVmLlErrtmc7Ye z^(1@q`{eEa%QikQ+y0|u-~Un|+W)`u;QzYA|67+{YhHeP%Er5`D<5=iecZe0VgIfd z6ZSoyyYE@Yq4%wa{&t-D-*@u=lr#UQo%uiG{Quc!{>?l8fByOZOAkC-cNm zdAaJ$n+2EuFS_`D;g$bOF8yC{^Z%AJuQpuyyy5=;?RWm~z4m$Iga5mp{NMZF|DH$x z_dNZ7J^Oa?<^NmHzCC{Z^XcdR&%XSB{pru! zuYbP%{{Q3WpTGb9|NHkJ2pC4ez=eR~PZnkdh6V;5kP|?8f`MZl10$!5$A$$5)il%s zei$5ka6nGTs361eNrP~El!A@oXXa)eCC+CvI2;iHZM67s#E^NJN1wTgOT&i;3Ec;TOAjTi zTyP{|exu5jn1!2~IsF{O7w}9FI^s0Dv3!z%j9{}Lqr9=eiw8w24r1-;JbMZ*Iy$pR TTfCj3pwPfLY5NRjCI)K&rUX|l diff --git a/public/api/resources/images/default/grid/row-check-sprite.gif b/public/api/resources/images/default/grid/row-check-sprite.gif deleted file mode 100644 index 610116465e7e34fe6ec137d674a5a65eb44f3313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1083 zcmZ?wbhEHbG-BXmXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9;Pl_AtZj8)e}DJP-90mRO_;lP-R7O^x9r-qeb1Jidw1;K zKX>_o#p_P2-*JBTzJq)AAKI|<;`aSlckaKi>)_Qrhp!zxeDu(fW5aL2&AYd5-M(@A-tF6WZr{0c>(2e#ckkc1d++>}M|bZ(ymSA_y$28PKYDua;miAv zUOssE@WI2!4<9{x_~`M2N6#KTe)9Oq(zkK@q?aP-hU%!6+_U+q`A3uKn{Q2YOFNRSt)Ivb< zCkrzJgCK(r$l;(o!NBpKL779wW5a@j%^bpFa}I1+c({#=)o#uSgQOPDOrxwjGt!z| zdt@$e$lSc_@o^LJpjAf}JZwJMArZPP=b&Sgps8HqqLPD`kM_zs`Roai*qqK|#L3VT zF?sR}KXId?9~w-oM=!LvF0}h7u%L13YL4V{2NpVaOx6sKXt0%-%sxprU4%n}F=ee| zk7OB3V$o4<2?NtNdOnMp+}aIPI1Cb!oedm&q`N#WDjn;2s@TV#Wb?^^L6Du@WzE4m zBH2;`fg2hOC%gI1Qk$u|ta4(CLnAZyojrZEhG#jire0bj>DOw0Oe9%D!a<-Z<>RHq z%WD>VO!l0r8@nULP;YPhBrdTFH4+!k**uiX3i z{QdXWpZ@~^!zdUHf#DSbia%Kx85kHDbU@w$^aLtQ^>)SRb9SKCQ``Jr`=eVAz{OT z183VTy}$iASS#R nB^X?DXxtttx-R#(S?*zGzsXrO9p?HCdj*-f<$NLv92l$th`d^G diff --git a/public/api/resources/images/default/grid/row-over.gif b/public/api/resources/images/default/grid/row-over.gif deleted file mode 100644 index b288e38739ad9914b73eb32837303a11a37f354a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmV-71IYYGNk%w1VF3Ug0EYko000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LV00930EC2ui0096U000OS0Po$iSC8I2dGX-ATgb4XLx%wY06VC` Bj$r@* diff --git a/public/api/resources/images/default/grid/row-sel.gif b/public/api/resources/images/default/grid/row-sel.gif deleted file mode 100644 index 98209e6e7f1ea8cf1ae6c1d61c49e775a37a246c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmZ?wbhEHbWMq(KXlG!!`QrEOm%s16{{7(1pGR;1JbC};*@r(bKmL9F`S1V#{~1QX wXb24J5K#Qd0`%X11|5(uL3x6KLxe$C!6IP+Ln9*-6GOy_4GW#y85tR@0bQ{sTL1t6 diff --git a/public/api/resources/images/default/grid/sort_asc.gif b/public/api/resources/images/default/grid/sort_asc.gif deleted file mode 100644 index 67a2a4c669fc5821a07fc486228d626e16d6ad9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmZ?wbhEHbE9#Hd|0*@ZIv{eO*Nb# z12yCIrOhLLJlbn33DTB}t(F_b2bV4~y*j=}%v9m90(t13QX1^b_==P$D+H{5*5Mu? z8gKY>BXXf^7@!+sCzFj+>XgJsqfc(1Ya(r=#J=3 zlZtj9{~(p*xA$9X2mMtN6e0bM#^36uHAhJ9Q&;+@HQ_ThCJ=yPPcaaStzMs1DHP_0 zvw_E92pgO+s83$0SnZp{u*pvQ$A3#Rftg(VD(=52XCTzUftd4T-22$PQrgIR*gHx4 z{43C_yk?5j?(i$Mual4dFf?{<9Wn}qfaB%>iNwkdu&q!m&h2IcZ$2Th!C8}<*_&Pr zyKl`OZw8N)3D^4?RK}UoD=o00gbKYHy=yv32mZ9Dl8aIS8x^Z$2?NwcBLzFmZOtoW zzN62&u*QDIz{Fy}^YAXY&Txmg7ATSAhAr8K5fZbFZ*SFa$_qE2L|VVFHOI{wKE8B_ zGXV2p-56OO`rc4Z7g3zbj)2_3YjK$((`OUqD%*mgvS`YELYsVW1or1)YW%;)D$oE>#r zQ3z|D(W$Eg`c?NY^+fD&+nctrc25@u47U__J8-QW7NqK!$T9C@*SpuaHyFRRpIGae rj_Lao#za}+eaj_<`F9!mRdtBiaY8;H`0o(Vu;KK>|7RZkKlk|m`6vG`Jo$g|>HkYl|6hLg|LXJq z*I)d<@$&!8m;Z0Q`hVy3e}+*o8Un*81QdU=FoV3K10q0qf`LPwfssSTW5a@j%?wOD iArS@)&h5PNMll*66^^tBbH?qtQJ{FJU!IwX!5RR^E;%az diff --git a/public/api/resources/images/default/layout/expand.gif b/public/api/resources/images/default/layout/expand.gif deleted file mode 100644 index 7b6e1c1ef82bc36104018936848c3ebfa6e05e6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmZ?wbhEHb`0o(Vu;KK>|7RZkKlk|m`6vG`Jo$g|>HkYl|6hLg|LXJq z*I)d<@$&!8m;Z0Q`hVy3e}+*o8Un*81QdU=FoV3K10q0qf`LPwfssSTW5a@jO^j@6 iCK3sWhnx8sU0hxiEIiaD!s-`t;^Ttj{VdE(4AubXYdZG; diff --git a/public/api/resources/images/default/layout/gradient-bg.gif b/public/api/resources/images/default/layout/gradient-bg.gif deleted file mode 100644 index 8134e4994f2a36da074990b94a5f17aefd378600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1472 zcmeIx`%jZs7{KwDTLnZd*hMh7R3%&{VK|xh5d@TrMjeTpnq?_&b8`}Bh(kowLJ^R= zwLrP_Mz6F*N-1{`N?)K@6i}uD1>V*|OIv8)A|*;9JN<2c#7;i>=A7rpCpmEmrw$)U zc7mcXc@UIVGnG~gOy34*)9Li-becMyuD$~>)ERVj219+9F_Xbm-(}8ZvefrjGxzFd z?gQ+Z2W-&U2kcoQXO_sF&Em{uap$rD-W-Vsija6n4j*~Q*W?J0hYp%tpk9;bpv@I( z@`Tz)B2B(fn=b+vZGl)@(4Z|8YYQ8+MGfzZp1v;z8bNg>jk*$vu2iBclgyVj>B^es z9|O{PvUGvmyzs<9PmwK9WcqTTMPJ^kuV~R%wCXE?Ha*qBP}OFjwi~K|4nuYOVl`;T zVhzx_SPOK48f&|ZG@#o^cQDa=jErs*qsPQ}W@7f3n4r(hETGq1*K1~j_Lq?Dr%LqcFxvPW zut}by5*6B{LZvEO(+Ju$Vv_!sOuZvAc4ePkK}Mg^X|R8{wv3g3jV&Qm0~*o(w;!4zGtP^}q4TE3f=4jcq2s zNTj41IT7{z(FAgK^iIzZ@_2j+Ir8!+!Q#r@%9(ju7k_5|Ghf7eqx2?7%YoH4jP!wx7HA*Q43) zwFOW=pP6ly3pn=?dHpWVl+z~h4aA7q3Dbmfk>A9h*D=1j0=ZkaJtNDl4|Dy58=OQ4 zb=w|rEX#G|6q4dPk_gFV6VcYbmUmazi7x6i6Xb&As-j$U2PJ(S9-JDYvw05^=DZ2M z-q(%65iC7!Sf=Hfs~2MFb#cc_ASYbPO$Z9ewDx-)GFuhcxKI?v{g{Fd`2H?N2mNoG a(II?Zs7)DAnPM9b=8J95L)rdV=-9sjoxm#q diff --git a/public/api/resources/images/default/layout/mini-bottom.gif b/public/api/resources/images/default/layout/mini-bottom.gif deleted file mode 100644 index c18f9e34ac1f4d06525592c5ec25783921e7ab1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAunknz~C;9xU5Gl#^14GRyqF(|p!cuZW_z#t(WR-;k)_;9y`aa9RNLW=VQMPsFy Kokpn+4AubBJRUOu diff --git a/public/api/resources/images/default/layout/mini-left.gif b/public/api/resources/images/default/layout/mini-left.gif deleted file mode 100644 index 99f7993f260b374440c5c8baa41a600eca99d74d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmZ?wbhEHbWMxohXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaA9EP;893e(9p!fE+S&!pm?~AUD|4jgy5sYono4CYdSV2yD|teHi#$`Jzc6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zaAja+k&tj`IMB$%CgZbW!-Ix)HhHZSi@+q84iWvZBN>K^-5Dep8%#8W7*0-Pa>$EW bxpC?7J_E~BDJKIG4z;p#3-JgDFjxZsq+}v; diff --git a/public/api/resources/images/default/layout/mini-top.gif b/public/api/resources/images/default/layout/mini-top.gif deleted file mode 100644 index a4ca2bb20aad89264b9022fee88ee29154dfb192..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmZ?wbhEHbRAyjhXlGz>c6N36?{M+r#W!!>FpPrH5Ex-0p!k!8nSp_kK?me-P@Z7m zFlAuo;89qx;9xU{u$s(?fCCNf0?JM-3L76eGxBgot>IYk*sW87)#{JM#>MWF#5uKM LPHswdV6X-Nu*4oA diff --git a/public/api/resources/images/default/layout/ns-collapse.gif b/public/api/resources/images/default/layout/ns-collapse.gif deleted file mode 100644 index df2a77e9cc50cdb15e8be856710f506d462a9677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 842 zcmZ?wbhEHb`0o(Vu;KK>|7RZkKlk|m`6vG`Jo$g|>HkYl|6hLg|LXJq z*I)d<@$&!8m;Z0Q`hVy3e}+*o8Un*81QdU=FoV3K10q0qf`LPwfssSTW5WW+W=1|P io&z5e4!5x=GEI;OeCX1}EU(tHE{jAJP4AubO%sO%a diff --git a/public/api/resources/images/default/layout/ns-expand.gif b/public/api/resources/images/default/layout/ns-expand.gif deleted file mode 100644 index 77ab9dad2948270706c9b982c5fcdce78940b4c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmZ?wbhEHb`0o(Vu;KK>|7RZkKlk|m`6vG`Jo$g|>HkYl|6hLg|LXJq z*I)d<@$&!8m;Z0Q`hVy3e}+*o8Un*81QdU=FoV3K10q0qf`LPWfssSTW5a@jjf_kR jAsz;b4DD>fMm823AG&mK%ZJ76*!b{ZzXCfO3xhQP{>?dp diff --git a/public/api/resources/images/default/layout/panel-close.gif b/public/api/resources/images/default/layout/panel-close.gif deleted file mode 100644 index 2bdd6239987b95025826fa39f37a036d73ae1c9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmZ?wbhEHbWM^P!XlG!MGRSrK@6dAaKf@>(4S|st0*XIbm>C!t8FWBi2jvL{4k-pk f4i1Na28TvQ9=?!{4GD)^*u|AnEG{HEFjxZs3+oT= diff --git a/public/api/resources/images/default/layout/panel-title-bg.gif b/public/api/resources/images/default/layout/panel-title-bg.gif deleted file mode 100644 index d1daef54c578cced19b7f0c3074dd7a23d071cb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmZ?wbhEHbWMoKTXlGzB%sOhAecUMblu_OpknmbK5V>R(wmyk!^#qaiSiLO}5+3(z&}UbNe&Fw0C0UOPyhe` diff --git a/public/api/resources/images/default/layout/panel-title-light-bg.gif b/public/api/resources/images/default/layout/panel-title-light-bg.gif deleted file mode 100644 index 8c2c83d82536f2e1e8c1fa15ccdf6683047b1d34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 835 zcmZ?wbhEHbWMoKUXlGzJdGFVm`@haV{B`m1uPaY~Uw`)d){EbFU;TOT=Fj7|f1bYo z^Wx***Ps8s`}&t*6pV(zunPgjpDaK>{b$et`3#gN7&sIdqzxh#C@?lLvvCPXC@3&A WvZm{QhJfNv7G{tF#eZVXMX8A; zsVNHOnI#ztAsML(?w-B@3=BFTX;5xq;Lv4YLV0FMhC)b2s)D9)qBYY9s=7v2nHV6X-NX@DCv diff --git a/public/api/resources/images/default/layout/tab-close-on.gif b/public/api/resources/images/default/layout/tab-close-on.gif deleted file mode 100644 index eacea39b623348f656de9a8f0df4ac4b74ceccbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 880 zcmZ?wbhEHb)z|%kKX-x z_TkUV&wm+4!Dt8!#}H8b$pZA&e+C_p=RkRafy0-9okPYWK%u#rLy#**AmKn$J2Q)p zz={Nh21Zf+FqsJojYs=sS(PMy7OF5cvh&sKnGv+0v0q<*pG<%Q!&xR)rDrk@3zqxO MXKm)=;9#%@0E9$42LJ#7 diff --git a/public/api/resources/images/default/layout/tab-close.gif b/public/api/resources/images/default/layout/tab-close.gif deleted file mode 100644 index 45db61e6000bedd9a4eacdd171d99a9af159389b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmZ?wbhEHb+a1fq{uZ2jn48o?zgxVBqGE@d#MZ z(99ty#S`H0kb#knn;}DEVv=)*u)3Vdj=;yqxu0#kX9cC0)w0klmAo1XIMn(o} E0NP7EbN~PV diff --git a/public/api/resources/images/default/menu/checked.gif b/public/api/resources/images/default/menu/checked.gif deleted file mode 100644 index fad5893727ee8a13f428aa777380ae97152adec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 959 zcmZ?wbhEHb6krfwXlGz>j-2EYIms=0ihImdkJxD*ann5GrhCOt_fD7*mN_@JU|~Yh zlH}5*DP>F3%9rQXt#bJ9P}a7(ufM;0=I)-EyC%%tyKeK&xyuhMUUy>sj`JIKUfjO_ z>dyTab{)LB=kT>-Cr%wbdG^%lGbhhnIDP)=+4C1qp1*tM!nLy(uU)-*?dpv?S8v|E zb?f%+J9qBfy?6e~qdWJX+*RNl{ef##~$B&;sfByLSi(wRuh5*qap!k!8nE{v; zbU->ld4hps4uc|xjK_ur2b)<{HDXQ_Japi6Q1W6iYUvPA5Rzlscwpk<4sO9XmXjI+ zi&_OWe7|@wG&BoL67X4M6R7Omz-DfcwPk^l8<#v6OGU!M%_;%{ss?XfI5Zp-5OGar zYW(QXz|GEX#*rx~s>CVD%q0^Mz{1hH&cW`(j0A>8wr;ZvZ4rjePOb7*MGqXL4LK$% TI;tJY@rY17bXb6iiNP8GS6tA5 diff --git a/public/api/resources/images/default/menu/group-checked.gif b/public/api/resources/images/default/menu/group-checked.gif deleted file mode 100644 index d30b3e5a8f138bfbbfea3d1d6d5631a81268fe26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 891 zcmZ?wbhEHb6krfwXlGzxGAUp-FJv++Vzw-1u&!ctt7CJoDF4C-YI>17M;4q>erj}J#1 znRLYtaeQ=iW)bC#?NNBB=*-HhDWD|4xae>zCoh|V$$>=XHZB1n7Kal~O{`q}VgeQu b3s{-ixj1G-bT~0I2=PqTialkbz+epkbq-F$ diff --git a/public/api/resources/images/default/menu/item-over.gif b/public/api/resources/images/default/menu/item-over.gif deleted file mode 100644 index 01678393246989162922ff0051d855ea02b4c464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 820 zcmZ?wbhEHbWMU9yXlGzpb>`d67r$SB{>v~5Mnhoag@EEu7NDp9Gw6W44$2b@9D)q2 W95Nmo7Bnz$2y4ZhC`fc*um%9+ToJhd diff --git a/public/api/resources/images/default/menu/menu-parent.gif b/public/api/resources/images/default/menu/menu-parent.gif deleted file mode 100644 index 1e375622ff951a3a3f1ccc668061e81b9c93b411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 854 zcmZ?wbhEHbOQz{a2h@&qVP zFmM<%@JmQ|Y*@g^%E=?8;=tJG)Wo9VlknjJLnFJO0!M|%0mo(rQBEC(fQyeBCb4lX KFcA=7um%9T95sFb diff --git a/public/api/resources/images/default/menu/menu.gif b/public/api/resources/images/default/menu/menu.gif deleted file mode 100644 index 30a2c4b6c0458751f85126e8bbca6ef2ccc2ff00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 834 zcmZ?wbhEHb{Kde?(9Xc{=<(wZA3ps5|DRzLjE2C-3jxKSEI?2HXV3w89h4^+IOG|a lIb=LGEI8Q6z#`0voy-@k72&h=Y%ZQ8zP%g((!cJJT4@8F*OhYlV-dg#cp zW5-XNI(_EM*|Vq5Up;&A+S!ZOuUxr$qNpFDl?^y$-QVDS9;ix)3mg1{>fcnt(^ zUcUi>w{PFRfB*i&hYz1Vefsj{%h#`8zkU10FbYOPfHonZ_>+YhWU>y30Obh=jxGj9 z4jGRP3l283GHb+~D0p~)!9>Yxj)(FAXDKG5ESZ1@4oAD0WI9R=9v*6Ak!N+{dHKMR zl}FY^$AdFLm4!>ptVN@75u5?#BR20ya;KC(goN;9V qqtnW!)kYaNB(j|}n>i$H<|I5^)XKF~L^CSn=7x7MEgZ~D4AuZjXTU80 diff --git a/public/api/resources/images/default/panel/corners-sprite.gif b/public/api/resources/images/default/panel/corners-sprite.gif deleted file mode 100644 index aa0d0ed8fb4a7af14a00f77c9fb0f456144363d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418 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 I5fA_XJEnatLjV8( diff --git a/public/api/resources/images/default/panel/tools-sprites-trans.gif b/public/api/resources/images/default/panel/tools-sprites-trans.gif deleted file mode 100644 index e58bf20b3119d0da880cd94dc8293f69f715a93d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2640 zcmeH``9IT-1IOQ68#7|AFjtt7C|8b8`4~Azh4pa^ANMsXYx<_BMvgg><715+vzWP$ zqR2gR(D#;_Q0}P=mIm=Mg!Shen>Q3CD6Y>_w0vsWcDEgwa9+ zWq+7Bqt}t9PE)cbAQ)EVP8xWHeM63gh`f=nI&v>`ywuz@-TS45#=9cJIEk(LscO4; zgt>{%my+#yG2BVGX2sJwzYguEaGre@W2p}%b0Q(#xzTb6D<9r>(DZ1vOU8kzP$==_ zEX5dC)e(kN6A-Ttcxm**UDt~FjO0+G_+x#Qk}3~V{w&RKUt&8%n84{RBp_Okb?bAR z)$GDRS^)iFyG4pPce~!C=H9Mjk1}h!wqQ=$ryGGW54m zO8TgpDp5I55~8GPqH?#;WBPqEEeN$>1L5@+#Uyq2=iT{Q7BYJqd!ohX4j&{_eBYdF zmlukHg`z0Nyr`VJV)$cDz(CD@K1@{AZ8<ktnu(#^mJZ4(*UKxubzv&GG?=cB zFQcXTh0*N`8GI&Qs4C8A&8;z4)6>_)CV95ddCL`%_}cnn*gco=7T+j;50+Q;c<$S* zl2?|5t)@&%htil=qAgogH=CKTz_NU;%8Df>_EY6t2R^^mrv`oUNxcwk*4eoE#%#ms zBwgu-bdYsnO50w=WZIjS(5mnxC44CRjelBA^DJ`eQlBzec&6fBciP()4mBpQ6$kFC z^+&>VL4YJIvoRAD3iJ#~lIfso&maH;7TSDI68L?6`0*GJsN3TVb4tcUsYYl1NrFXV zW-;OlKo?j=8|VUww|VTo@wlQG*Xe1hkwr?+Q_OnjX@&s+cmy2)AZK)AR_hH@KhT_xz1})A8PeP{6AtYlWz+6JScYdK(ADqA#Gp$?pYxSe!3S0v zrvOA8$;CigKq|{z#F0TNT4f_-znpUfVPFL~3uRYG>eEA*qWrVU*%1q=K16ZAXh8vy zy`dkrNKRz+$qU$F&P;>JkXk76bZWoZ%>+NiZI;vzXg03-k)IqfnyvIPGJq%SCT7d2 zRgnk;+ASDu8GAHPG&hIVD;=S2*yON|{)5|n?+EEpAC=6_WhGED2Bsy1rX{Eiy<{DA zUzJX2$OGaZ%Xg)&56-&_0}>NneBI_>u>Qlh+h-Pe$Qxz0J?HbY&&a7C7dml~G47xS zkkNT8*$eRAf|uc=nmN&R=aVD~C5D%@9;#LQbQnC4EK%2)yTKp5g4EC+0j(i#nIfWk zz8+5^oVNr;_Qd~k@mQv1u+{fz%itF~o(AcqY85Sd;q%+(DTW@o;I-PW=&zJz5e@F< z%$Q~)uCOek0uap~(itV?PURds_tD@*QwlLl;4fw@1UuQdLt^sMsk$;)+q(r(SNqc| z_1S%nf12QuRQfnJAt7gLsg70k4+HtnX3kwf@1jR67$&BJF8P)yqxFO^N8#3qSypzD zcLc@BEO#u!d%Swse;ES}pKOLps~*O&EFTia+AUY`qb020y${)49@);5gNEChzSFvI zBU#!q!Nhr=MFNO=qhhK11ghP6widM3C2-Yi@rKiL{?Z%f?m=0&CU?SmZ=%81IRG%Azn(4d>p%BN1=IalJCoO=)WNqrPl{f@2X@TwiT zA*xATNv*Qq4F9rpJxmOsSb2ZLD`Zm5Xl)9pQ;dRCNGMHbzFQrv_%%K-o3Mn+T#gfp(^`z%i*-_!H{uK=@=eM-PG5) z=}~?ARByThk>+p^^!|&}lSO>PPb1TSZzCL?5!>$#1u@#I%EEFq(CJ1pG_$UYvoV;7 bDyFN53+Q|j42xu7BaPR3Mn~MJWyz8U}WKvuxLVPkM-ButH#9I< F0{~gSY2E+; diff --git a/public/api/resources/images/default/panel/top-bottom.png b/public/api/resources/images/default/panel/top-bottom.png deleted file mode 100644 index 578ffb6092a47d9af33fd86615855ac328958537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^j6kHr!3Jb81>C#}q}WS5eO=kFvq*AsijL3o~JcpmZ-+$h~ z_Wy_3jh&1fGyeT$7yAGIfBVLN2O~0szQ_GbNqF=$At@m#iKWOT4w?3V`{ps}G&u8y_K7ar7g$G|QJ^XUz(U+@FzFvR&^~SSrx1N9d{QdWj z-+%u9|IaWAMnhnTgn;5t7G{uBbwC6tPcU%&XJBNJ@Yt}xfl*RO%SR(2fsIE%+3C!K zfJH7{j7BjxP82F1;}LV};`zC;>EvWJ`=E%EMNf}&8YCb3qp@(=*;(?+FYc`TtlTo+ zp}tPWVT;DaewImEzP~m$Twd;HFEzuf^wn|Zh|NiVI~J_IzD{1aLst9S;-<|R=j&n) zY}38n&-3V1@9&L`cXyZBTirNa{{A?712gkCNfC{QhXnY zwzDg8A8&6~zAsyC`Qh2A#m@8R-Tqnd^6EzM>veOgi(cJ6SpHx9zpZuUvuBsv!|mtQ z{`~sk_VIfC{dRwUzj*$9`+oWV#ozz3{+M6K{3(1v{q?!!3mQ0?c06e26_QxkD6Dkj zcI%WyT+_vK2mMcNg7q+sp IvM^W!0LCzFhyVZp diff --git a/public/api/resources/images/default/panel/white-left-right.gif b/public/api/resources/images/default/panel/white-left-right.gif deleted file mode 100644 index d82c33784d106a699921e8186376adfe08ed7159..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 815 zcmZ?wbhEHbC) zJaOyO$=jb!-~D{{-ski8KVNw8<p u#Ky(P`xTtKWIQ)5IXPLwHYwudrlqH+8zi5aADi9QnH9n_(1;hQKfi0UeNEKzV_IL!CjML&jsnf`iQ*+*TO}5*nMB cm>F0E91a{{WZ^W*x^rUV;^X}?%uEc{048uWPyhe` diff --git a/public/api/resources/images/default/qtip/bg.gif b/public/api/resources/images/default/qtip/bg.gif deleted file mode 100644 index 43488afdbd4924057e45df94ed68690068fbabac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091 zcmZ?wbhEHbvJG_ z_wB{IZ!h0}dj&)vzP|>dkKf;X{QmaSk9R=y`N#XuKRjL%gg;OJ?2_%ZN9oX+&1IxF3}_H>l603F*t71i4@GZyiE4sw%lkTl{?!^ z6Bo7I-L2~P;_hzq*8BVGLsu~TDQ|svxII!MZqJR@$6^zdt>?XQDtdZif@HSanM&4& z=Nke$o_R~@-`i0Xygcmmtu?PVY}k3~nAhx8xhrg)|NZ;-|Nno6Q7{?;gDC_Qf3h$$FfcOc zfE)$N6ATu z!(r;m%j_$9KP-wo!oMF4bR^Z#pCLVEt6JIYJY>r`(GBHu8TKMAH hV%craN*NY1aV$`Fvrs8ibZTIkpzPfzqoBZG4FEi-n5_T+ diff --git a/public/api/resources/images/default/qtip/tip-sprite.gif b/public/api/resources/images/default/qtip/tip-sprite.gif deleted file mode 100644 index 9810acac5b323d99a641627276e8dbb9a3607d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4271 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 diff --git a/public/api/resources/images/default/shadow-c.psd b/public/api/resources/images/default/shadow-c.psd deleted file mode 100644 index 28bbe694e2b6d082ed8368833c3988f9fb5c41ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23266 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 diff --git a/public/api/resources/images/default/shadow.png b/public/api/resources/images/default/shadow.png deleted file mode 100644 index 75c0eba3e101e3f32cef8bde7bae7383d849e935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^Y(Q+l0V0jwbN>KRk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5XZhE>nhE&`-GTD~D$v~hjI>0gT@Uw(Rj}ARr(#+ZY|Nr|R ztz576{))TQsGN9FjsN;R=N;cX_7>}LNxZmoT3OARN%FUXp-|AVh0k3k3m;=qQcOOgc@EIAyfV(r;i((zEeg z`}y44S?ng!NoE&wcK=*_2F$s1%jHel(|yj_4>tF9g$FFYCZ&0@DQ;=K_|9xe0dH@S zX*Z%4Z8@@VyGFIRewDnzd#yOua)FIqa}4Vg?=kT(Xhpeh(=cjy2J|F@r>mdKI;Vst E09T24*8l(j diff --git a/public/api/resources/images/default/shared/blue-loading.gif b/public/api/resources/images/default/shared/blue-loading.gif deleted file mode 100644 index 3bbf639efae54ae59e83067121a5283ca34fc319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3236 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 JpNE6N8UT=&&-wrW diff --git a/public/api/resources/images/default/shared/glass-bg.gif b/public/api/resources/images/default/shared/glass-bg.gif deleted file mode 100644 index 26fbbae3bc6d2510832a5ed709f0cb029c2c1170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 873 zcmZ?wbhEHbWMpt*XlGzJe&g*4AiDYX)q+w@6G_xop)#NygPUI-MM=} z^!_{$-T!dm{)dbAKU@Mb9(=g)@WaK2A1*!oaQVT<%a1-@ehfsPt~~sB_0h*Gk3U^| z^yxZ~`{dJA5c+)e>E~-e^z6&^=U;C;`E>K?=UY!d-+uP_&hsxfUVOdx;_KT_KNv>A zXb8|f1QdU=0PXzGpaZfQlqVQC+!&%a1WaT)$|)>om2)9Mk%@&tK#^^Rgu{V`ZWgW# wlLCgu<17lIIuQpJG%~aEtN6@tSlD!$TihV!!H0*;9Rf;j6Erp|DKJJSK2bm`zya0vPFVPO+Hzo=EoiUW<# zt-R7&85aT+o!hu13_^AkENo)sW?~Im5RiDNg-b{!q(fjK6AOo^oXv^{2OL}3c(n`? z0um24adC-+cuZKp#Ka=XC$l2qfI}-2tCoO5K;nT0E+&=`4uJ(sK-Uz9X;c_IJk-Xo z?6;=E@bR%edFMWzN~5Qzrs*f2TT>bQ{@gtKWw+(i!R!IjKB)<%j$y1Z!Zof6-y9;DGq~5NJ}7gDVJu-S5NBXy HWUvMRItY+| diff --git a/public/api/resources/images/default/shared/large-loading.gif b/public/api/resources/images/default/shared/large-loading.gif deleted file mode 100644 index b36b555b4ff04f841bb2101514d8f95bcf7358f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3236 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 diff --git a/public/api/resources/images/default/shared/left-btn.gif b/public/api/resources/images/default/shared/left-btn.gif deleted file mode 100644 index a0ddd9ee8203b9fc45eb5ee78ae6bcb7e57aed7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 870 zcmZ?wbhEHbSKV^zd-BO3vC604f{{R1d4Yk$n}L-sZYVSj)zmI o(Q}fL|Dq=uMNdw3X~iE>$=vYlK$lteqcf2P3=A_Zn3))?0bn93t^fc4 diff --git a/public/api/resources/images/default/shared/loading-balls.gif b/public/api/resources/images/default/shared/loading-balls.gif deleted file mode 100644 index 9ce214beb5cd4db00666778d371223c605874519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2118 zcmbW22~ZPf7=}Y29Kir0FmlXvp;AJNF@T|n3=l~OQNReX(lJsJSV$lTCK1p9Cy_(M zQm|OSsz3m3sz4Eyf*^8<#%d)Dpydoi0>~kDK!ll=ZaA%FI-`5dzq{YQ`#%5s?JSAx z1lbx&?h&&9gFi*>!1pzUs7{@wn9`hLm1fx>(Jl7@kz#sNtqbnGu~ zQe16TTxnMP)H3+<{h@2EL)RY+mC2N450&LIW#wqY$lA~nbxPa!&C zu$mg`OY>TK<}eSK12l%IF?DpG!V-0@d@BkYlXMMpg0lep88I%nH28pK5h2~o?kkh6 z2b2xQChiFj0eW(#g;VTwwMJ5_?EDvp>#4GK+r2+JC89@-_OzrTH4{qP8k0!hnWK}9 zap_c+yqJ92gY!};(l)Zfx*I7zMHm#j&@PQG;7HGJgfynxUXLv`)H1{Pg;t0}hNdo2 zEzCw6`;fZ{f2sO<=B5-4@O@rsqC&BzvE4Uy6nRmKzwG>WQa)|oDe}n~loonAD-5{> z?UL_)*}^8e6BlB4$-lNLQ?wCd`#X$Xp*I-B46&`*HeU)u(UfY42oW;RS(7rB(NZ(l zVXa9y3Fg@)|wdEu-^Mr$bM<2lcshb1_0+qU%7*YY5d4R}04b5q{6gDK#lN_Yz+3 zA)Yn+Y!&vbrDwhDx#Nq+`TkLUbU3j!TN`d7b-gn)W>MmQ_}fG`$z)HJCVV5zccWav z)VK6731;9=Y1sl!Lg@h;g8AmhLs23E}Fg8bsA}jW84be zJj3a&!EX+(#)=!^aPHuvE0%9D^z0oWQl`8qV(5Oxp*_o)rkOg&mhP%-u(0XS@f3?_`nfh@f|7!XJ# zk%OqjKq3JM^2G-d4?(;7)p&sbDCoC_x zFgMyk0aQ)fOAm{tLDLuoh6x2UK0R(bi$jkD1vEB~9?s%M(#YylM@%FuVp#;fssZ~@ e5vO$#&5sswUKi2&Xpx=kB8ZO`!7YivcK-uGv{KRl diff --git a/public/api/resources/images/default/shared/right-btn.gif b/public/api/resources/images/default/shared/right-btn.gif deleted file mode 100644 index dee63e2113fcca680699455e8a56ee3eecc81c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmZ?wbhEHbSKV^zd-BO3vC604f{{R1d4Yk$hk=zr!efJiBO@aVPsE804;fk*WxQe}6c#pgOBlzkIk8cxsZYUC>4${T q6OT!%mh)U@eo8sjryPH%CUe8H16^j>kIqCIFfh!NVPs)pum%9ETq}wI diff --git a/public/api/resources/images/default/shared/warning.gif b/public/api/resources/images/default/shared/warning.gif deleted file mode 100644 index 806d4bc09385a98ef1ac19d25e30a21310964e7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmZ?wbhEHb6krfwXlDR{f&hVn2muENhm@owhyM-@5dsqm1SVuCOej#8P@%A(LSO-q zY!KMcp>SY^z=a6{7Zxa7SYhyB1;c|43=ehyk-&!?1`l=wJUAfm;Do@30|Fm_AFI_r#;p+LTS5IEMaRKbDQDQU%2#0{;PZnkd237_gkWx^dVBna` zz|A4!v0=eMCPx*A6NM8NOc1gSve|KQ1H(iiYYu@O7ZQ#gR8*}I_~Dqq(8*@R^@`(W z@)HIIWfz?e!wVeVa#HbKFBUvx;Axbo`SPIg5jz8ey-mRe1I2~|N`gTPEE1a-8hE@l zIU)=NI+%skoc{dSsL0&PpvCnl!Qs*I)AH$&GFuihv|L@Lt98xe!$KzpaZ%Pw4hauj N9~|!BW@BNn1^{&szCZu~ diff --git a/public/api/resources/images/default/sizer/e-handle-dark.gif b/public/api/resources/images/default/sizer/e-handle-dark.gif deleted file mode 100644 index b5486c1a95bcc0f39a88c15c10c04ef7c3c561dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1062 zcmZ?wbhEHb#gW zSa7hJLs%>3#D;~3+Xa-p=6GyebhKN-IP1=djf;=>D>!$_cy3y9a}Xwye0g*kiI*?5Qm)FE0;R>^0YG>#D1(BQ|H< zJ+*c9_4NsdyJWq$t+}~5+bHZ`26bb>Fw+9?{8q{mh;)M z;o;#9VePmxJJK5%IOMqVHRPj^sIT3W`5a^n+Y$P=Sr`RJG*P^>+2hm zPtWt+z3uJo9mTKjo!!0t{rv;Y-12^Vc6@w%VzPGpxjj2SKfkcpd%oY^U0+|{*qnX; T+}_>a-#<9q&HP*pKCAv-hK1$|Ns9CqhK@yMn(uI{$v4q z^gn|R$h)9C!NBpKfm=XAL80MbGZUwri^YZqhZs0z^?H5?BpvP&kx!db5t!`W$7S2b zqB-%Q$7EIBJeSUo%H9(-b?1e=ob=3RreXN4Gm*mSr)OK$9{O`qIOF^RkA5xFQ(IO9 zFA8Y)Qk9(g>dN%6%}IB6ZPp537_~c2R9fuK^(DT0C)w`)@-kv`_TxiyyRYTm+?Dlm z+u82#x%YQh|7ByF6IPITsO+X(*qn%W@yBY|oz3n@jiJwDpWpD!D2@#*RM zbouaqd#t{`KC@K){5zTIFYoRwZ~uS)Uu;d~r?Y35yRVo1RrUSt+WvO_e>SyWKknT> zJ%9fHy1zfqK96ts%NTLLo=K|Xej|%gL_(8*oyNju5wi@%W(mC&iq(=uJ08}`wQ)S^ zU@r4m)TA`+$HFenMHNXcqO(ps>K2aMv8dblS;yl(gIhO}`i(wCBu{X-7xARuS!$-r zBtxy6DwFLl{a7+3@KuG%R2RL@rISOsESFA=YWlf!dTg9#+RVgBGoQ{#TXpj3tc*=F z(`J{P%UnLE;@C>{IW_xUs!yq9`t^KTlbF|wh3RZvD`vN;S*=*yYqTq4ZlxC2%O&OS zey&(Dz3kM>?LPQFywyoHAYVDT0ajVyEf83S5 zYUk}~v)}G~z3g<}j<=J3>+SdwC9S{f)2`L|`~Ez7{eCaQVeNvw_itHmILNZPy5Jy> z_M8uUINa|T91(v1`~4w4?>U7>|FZqra8xea=i@Pz{v4wd67%mAp3VHu<2 zhTV5Ioz;IFV|>wdeI5}aFh%{jYv+pP@iy=AuwcHjMWHRrml`Q7q*+i$mvZu8$Qzn3`O RcKf}i-@V(HGcqz*0{{svxFG-l diff --git a/public/api/resources/images/default/sizer/ne-handle-dark.gif b/public/api/resources/images/default/sizer/ne-handle-dark.gif deleted file mode 100644 index 04e5ecf7d3837aec9510f5467282c10f158a5563..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmZ?wbhEHb+Yh5$94ZWq95Nmo l794Em;N}uwNKib;z{ui|Vj-Z!(9Iz$HK#)0@qq>gYXJ2^5-b1! diff --git a/public/api/resources/images/default/sizer/ne-handle.gif b/public/api/resources/images/default/sizer/ne-handle.gif deleted file mode 100644 index 09405c7ac7b321b3eb9170b1584167448819a071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 854 zcmZ?wbhEHbc63}qqP#3eHjE2L+1SS?XB|ZfS0S0RTeD^Ni diff --git a/public/api/resources/images/default/sizer/nw-handle-dark.gif b/public/api/resources/images/default/sizer/nw-handle-dark.gif deleted file mode 100644 index 6e49d6967c08db2c02a3aeb9c1f3cacb9c8665f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmZ?wbhEHb+Yh5$94ZWq95Nmo l794Em5abeINJw;KWMp#S2{2G%=w_Cco6{kn+|a;a4FKuB5a0j+ diff --git a/public/api/resources/images/default/sizer/nw-handle.gif b/public/api/resources/images/default/sizer/nw-handle.gif deleted file mode 100644 index 2fcea8a9285dc74626ba9374055b25ab77e53a08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmZ?wbhEHb#gW zSa7hJLs%>3#D;~3+Xa-p=6GyebhKN-IP1=djf;=>D>!$_cy3y9a}Xwye0g*kiI*?5UEB1_q}2ZmnDnS(jHwY|grS zYU}Fj>k|%l$$D>Fb8~aX+fl6@9wVn{Oa!M?d$LFZ(!z@^VzW> zaVFC%HL)EM4v!B{Q1+hZvvbqa(=&{-@15DX`T6+;&fRjpySBW%ydrpY+}T}QUtiyl ze0rYm?rm>x?*pKCAv-hK1$|Ns9CqhK@yMn(uI{$v4q z^gn|R$h)9C!NBpKfty3dW5a@j%^bp7F()=GJlrmz>@~+@*_y+_d!cbc5tmb38XMJ3HH=_|=`0o0p%T&eFss>$PRY#l;?zwPH_g zS$TPRz+$htURzgPT^+GG>+Y$otFNz5INT-cy=~3S%^8FMbi#@YAI?A-kP`~v50 zIp1AdUS3`iygKgeuC1@HZ%95pZ|#k>jf~q0nRm>cz3u(|1I^s>etUL&e0*ZEcKo?L zJ3n7!TI4<7Z||eAWv;!(H3F^$JPCf70^_gXw#@wm_C+l$Bj4s4oFCb)=Y zKAGsDw(`j&AG4QFCI`4_KAjR0micsQMB2)y(_+eAKAoP>rul3}%CyX9Gc%U0d^Rg* z+skLO3yx_%pHp%z^ZDG0XDgr2tNHfw`TPbptrrVg#Ijy2>`+_vVo{ITs~3wWxM{sy zG9@hQ<LuU0IXmi21oie;-_ty;6~)vMJTjxl$oIxtuR03tF% AKmY&$ diff --git a/public/api/resources/images/default/sizer/se-handle-dark.gif b/public/api/resources/images/default/sizer/se-handle-dark.gif deleted file mode 100644 index c4c1087868afab5b5bfd329f52d9907eb1c0061a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 838 zcmZ?wbhEHb+YZ5$9Lfxg96SOJ k3mltSSY>Q9925^Vv52er?AV~l(9La}b>~E3vIB!P0N;ZWjQ{`u diff --git a/public/api/resources/images/default/sizer/se-handle.gif b/public/api/resources/images/default/sizer/se-handle.gif deleted file mode 100644 index 972055e7b297a702ab9aa2d799d133b94ac92315..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmZ?wbhEHb{~M&wt%~@%zrJ-wdN* zGz5lq2q^w!0s8MhgAT}-pgh6AVaveCA>$E{(A3N!$mMciL!xsdyOP%wjSCG&yTw_> nZk(97*nvsGxlP1k!4l8OOsp$nb_OLhOgBgro5QJ~z+epkjJq?f diff --git a/public/api/resources/images/default/sizer/sw-handle-dark.gif b/public/api/resources/images/default/sizer/sw-handle-dark.gif deleted file mode 100644 index 77224b0c06f1666685286c5322fb02b4cd2204bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmZ?wbhEHb+Yh5$94ZWq93m15 l2M#ndammSOI2<_C%q421Gvk7Sb33nm)}0d@l^YrutN|0L6o3E# diff --git a/public/api/resources/images/default/sizer/sw-handle.gif b/public/api/resources/images/default/sizer/sw-handle.gif deleted file mode 100644 index 3ca0ed96df2059fe283c1d65fa1032a777e1ff97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmZ?wbhEHb_F_q!3-qVNZQx|DV-A6h!W?b)Wnj^{5*w_%-mFl zkc?6VBXb4c#3BVF0|N^M17j-_11m#w1ziJE1B0DgB7cDlD)IDnWxv59C8liseo9Il zP>8d@BeIx*f$tCqGm2_>H2?)!(j9#r85lP9bN@+X1@ct_d_r9R|Np;d_l_fHFK%AH z^6>thcW+(4aQ66_;|EtQS$O!!!80cg?%BPQLC5($P(5QwkY6x^!?PP{K#rTIi(^Q| zt+Nw$@*Xe{IQ-;9=l;Lnc?BNrIk1yMnla18!|Rfx_=~o=7sXGUdm8y8?D5mi^pr2Z pI^U;TAL(EB=a!G%y}ycg#aS#EpKsu3JPkCF!PC{xWt~$(69A`aaP9yA diff --git a/public/api/resources/images/default/slider/slider-thumb.png b/public/api/resources/images/default/slider/slider-thumb.png deleted file mode 100644 index cd654a4c1680183026145066b4aa1a7802605456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 933 zcmWktYfO^|6#dFz0*jkYAxr02nPDo(Y#3G2We5n&sxU;xD0?`TAk?4`t&?nHc7tSd z3BhbUwh=-{CW2C=R96rO(&5-gscoUWiha@ACv=ooX>pu=`*F^>IX5>s$;rK%mHE!r zP$h3lZ zsu&tSJM$EgWSu@k&1X2N$vNfP1r2#P<>bx>9-HY>X?dzQ`iE=Wlw;RNCAE=}lB(Zo z<6gMZclprm#8~&$>T1JWM}M<~-Ml+E|D-6_*cxWgU-Z?i6ust)nk;MoNq#u7uv;l^ zc%Sp4FTSFge0_U;M2mWF(hez^x65SwD7r47cs}l{u%vZ=dWdj%&y6Bm@aZmsp732n z`nJSRY5d(iFV7q)Zw^u^L<>z!SwVOYYiDTWE^70(u!`A86P*2iZai9?pV48-{yUCV9Ec?o@;sUjk=1>cAm88uY+&dR!6>c{!;b@zv}ZnqTHCISIq3j zrmRZR!4J?JEO}MEgUxOYRO$OSzfMm1HjkLN%MA;yI5!rveWW!)Se@qKRd$^E(bb#N7V}{^w%jXPw*+ z6yhxKh%9Dc;5!7ujG`J|4M0JbbVpxD28NCO+UBR8*c(lVeoYIb6Mw<&;$UDTwkjI diff --git a/public/api/resources/images/default/slider/slider-v-thumb.png b/public/api/resources/images/default/slider/slider-v-thumb.png deleted file mode 100644 index 7b3d7258ada4c81c6fc060bd5eea69524f0ddd65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmWkrX-ty`0R50E#}rYbBu=wW5C%9+p|mz^KUyf-HiDg2qsADUdFzy5J(6V!F6ux{ zaM+2OO$`xO3Uq)R3W!vwP+G1+0l{9h^wh2t1P1Ecw;%7wOWvRN3Pjo4mW8hgCkSGh zfX~}W=_U$Ep}`bKs$wE3`9_+#SDKM~L?S(L_6#XL@#7IfeEd9_vW3i&r8Rg-rR1}uO-*=86B3}KEpj8RNJSwCe z<7ROQqPp;lkCMd%5%jZYyEu~r&Z91X zf9j@W8dR9k4|L3<$&YFmJnu7Kt{FYwd>r5Rl|w2Y#50Oj3~YoXAgst?bG&}PJ#5B*LU z{dhi%PAi5yumtc_57k?YzK3lZCO;fAuuj1>3uQ0r2GKeOg9r8x@cfIq0W`lshXs93 zIA`IVN8>P>-au=Idk*gx@Nx_tR`fbB@($(zCT8GUfYt`J8SN(MT~J+7{6rlSB;A?4 zi{Lm$j#55Vz~hQ9js9@RB1tFCELoIyqu@p3lls?9n^{Tg3m@givo8E|x9G0ECUCv$ zW>S2Nc)=b`i+*yoGx z#+_e9u4`NQ<+fT+t3SUpVSIPU;$N@*R&qb?%B_=I<2M+#S1hId9!oIRt6i-(mIr+o zmUzJ$m2>{w#i(h~Zhb8&|6|8ij!3;n-D6VqYdY^0h8ofXcZ&8bNx3$};+3(67|G0C z237+ptgBK!Xd(M@Vq?UoRC)CgD-;F^C*wA|I6wb-VmZG|v7&PSfrH%d3oaQ}7UiZq zmftCgdwjomxq$gFHJCdQ+PZ_EoJLm54s(eZpwB$-?_*CEA{yP4?kaf^!fVZ&ljHjyZH3qg@$%oTSO4z3`gia3-v=)~KYIE3!JEGi-~N64?(ft0f1iK&`{Lu@ zSD*gA`TY0Im%nen{QdCl-?v}?7)HTp2+%PE6o0ZXGcYhQ=z#15;&S4a5oxH0SN zs>{3yhr48VA6(hFIb*xfjjnHNf_V!bACgrtUw2uk;$t4KK*H+yJ${-Taz2a<42PQM zPKxkJ(vROCEp9#6VdthqhN;HZya#U@-alV!X+70p)|aQ38N94n84nr1IKF1C+YDL8 zubH>}>|d1e-fGQTF3`ljJvU-UF#ieLincdQJ1?_cSRCKycQ>=`^>ta}{qLqUet*xy z)BNWDJCWv}pR=~lGk;&w`1|`i_5=0rzcl^*E&k`x_V*!;|Nk?vt!M}q6Ulhc$Px7* zgo(%O#e-%}i_n8DB4HVctbU3M9=6GpbuB|t=_ytT&nMMP z`uTi9#V?DDDUEfNEBackRz9EIx$NhQITN>8zMMPtSf%EI+Fv_07qYUjFjxZs<-Km4 diff --git a/public/api/resources/images/default/tabs/scroll-right.gif b/public/api/resources/images/default/tabs/scroll-right.gif deleted file mode 100644 index 4c5e7e3958dd31d9591fb86b76bcea760d402589..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcmZ?wbhEHbRAJC&XlG#XDOwU%v(DkaLssvulIcf!H$6UdwB$-?_*CEA{yP4?kaf^!fVZ&ljHjyZH3qg@$%oTSO4z3`gia3-v=)~KYIE3!JEGi-~N64?(ft0f1iK&`{Lu@ zSD*gA`TY0Im%nen{QdCl-?v}?7)HTp2+%PE6o0ZXGB7YP=z#15bKis=idlbh4oJ2jiQWW7vW8%1R%X~mwJayU>VV6oTSu17E0R!3~kx?Aw2 z<@$QPLv^y%A^2nhXpR#NS^OQa!}QC!nD7;IO;8 zMx0HeKEtuD{z(do7CH|P>8bhKX)WCR_&kGEx1E$yOZVv&hST{9O`5VV%#Yn|$HjEy z<(27&ui0@eG=H;qZ?pX04-d`WZ8%~tlY3xKCG+ufGv&WNSh(rqhAS)OQxEL5Zr*!u zxBSPm6AoHE-0~gh?W8#ltoZnb3pn3T+xmtnRW2k2*D$RU8Q9-}2&7w}D*% z12@~1jK{qeQU;5eZN9yD+|MU+!Ku&XmWIj%k8c_&6J6zIs!Z}Wnz?wg|38VPQ_O=R zmrim{nwiQS9d&c*bki)!XH!#V?Npr=w<=O~cEqlqDszHP%~YA|bBpuojLarUwdpBR zFQ3nM{B-l#g8D}{RTia7NvSW+wu(|;lJ7N3eQ9yjE{%mYT3$=$IaFDxF7sq#VXy`O DM15!0 diff --git a/public/api/resources/images/default/tabs/scroller-bg.gif b/public/api/resources/images/default/tabs/scroller-bg.gif deleted file mode 100644 index 099b90d8aca10ad0e0a87552e5eca975a72f985a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1100 zcmZ?wbhEHbRAvxkXlGzB3f<)J-=TNYo33`GCmeE$39%ip(O{=Nqa{`~*` z?|&d*7zLvtFcd;S@h1x-0|O(24#=^fJi);6pMjM_#$&^RgUzhWECL4>ELn-DC~RnIVicC$7cz76!_!<$ z>JQ$${Hzu@UzjE8z|Ms$FE5w2*ptE~x+;X5$?(CI16#El)=4dqV*M?ebAwTWCGCLb z!rW*EhC5yYr?2V8>?~$a3FsDXisvX`{L|_%{qTbW%}d{jE|}`vc)XF(rY@$UsPV+) zrOQ%#E;pnzH`+^U=vaM8Kg*>5z~#U!(>vEVxDMCxM!#ZRY9ajM9&bW<)1iIUzyH}X ztY+Y{kkp7jH^=eevkOau1SA?YzdQ|GUUZ`%w(=VXldOd1+nvQV=ceVVf8Tof`}V7UcV7Lu_vY_|cfTII{rlwo-)A5GzWVg{)n_33 z|K{`GH(&m~{qpzyxBo!EFbYOPU=W9Z;!hT!>;5z7fZPbm6AT=|49qGs6ec`4(8R&7 zWpctG@o+1jveTR&8bSd<0UIDB9_$ireT@Wf$*vuBf>3d;uuMTd5FMl%bJhJ}p` byxeRN0S*aFO-%B91_mD*nV1VVf8Tof`}V7UcV7Lu_vY_|cfTII{rlwo-)A5GzWVg{)n_33 z|K{`GH(&m~{qpzyxBo!EFbYOPU=W9Z;!hT!>;5z7fZPbm6AT>x8PqvsJT@#i*vuiU z6?0<4!o%$X%3gCkHZD5aEoRSf;Kato$NLqWyJS2!B{ngr2Cs@axoPR?Y3lK(=6G&i zc6O>^{;NADH!nXw$F7-6)@zIMg+(5dwPLGER$g8nkZIQIwRKf!fAIROyQe}EudPcs z9QRji+nSq8QqHf6-EFLUdwW6Rq8{(<>tc3SeC{e)y?y=t)|&rZayE(v4-Z%JD#yu$ z8$LdsCF?v-Cd}yR=_uXgdorQM&(C|=Hp|(Dn7q7fhzYodz&w>VTjrBahiCSe0-cybJ4R4j(HVwd#&8~uB^?Te?#&2xA%OzoBzw} z2R5}c2wYkne}3QI-`_txK0V)m|GvM!e|&y@|NQ>_|NlL=Rd~?AB9`%>kwb08gC-uc z7Y~{R+%z7xh=gT4Y!xeeexOaJ?8U=&g*J^x9V*i@9(8IgTk)t%XWNTM-3I$CVwp{@ zWjyY+c(&qkpUt-ykNX|iG@ndx5zBls(L=3Mg^f|?!IQ}WZkkW0goI^2of?t0^69jg zvX@V%C$wokn~{{I(7=?jY~{0AIon=7n_X~B^ZA^TYnjjIRyp5UhSa>TCY|tnU?ix<%(si zUaeZQ?bWN*8;-eiy=G^vNqD_>$Fo(h*X{ZC>h<~qY}#)&91+WYv+;!5>NlHCNgZHd qxZtM!cFUEp?6+HQq^*9t?M~V2x7#1IX}{a?WSX}gvj__dgEat$YLPww diff --git a/public/api/resources/images/default/tabs/tab-btm-left-bg.gif b/public/api/resources/images/default/tabs/tab-btm-left-bg.gif deleted file mode 100644 index e695186d5ebb450c6ebf6b6ef270ba407c735977..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 863 zcmZ?wbhEHbWM(j8XlG#P-SqhEz0a4Q{k!+(?}K;0UVi%X`tzT6U;lpi_V@FTzh8g; z`|4|fnTJWlvlbe=$Pt%A$HOF)Fva?eR z^IzRLxmo@E9J^*NS+5Y~3yVA^Yx!1{th~HDAl0nbYwN13eZlLq?w$%wytXdkaM)k1 zZEJ2WN;$tOw%SQ_jCSclKT^G@bGXMuX5aD#!Z;nSXxHI@h^gZ$rb^*Ecq2-#@o^_xJY?4tM{T_useY z=jRufSI4i9ThRFZ!{gKQ{rB(t`}@b|*Z0rw-w!MY*fbtAu<&VIVB}C+@t}#v?8Sp- z0XL0@Eh1qV4_hVDRy=HzDLb*yfulv^QHRR3j7Oas%T_$<(%JUnQMbV{jmJGE*D{iO znN$}%?z8#!;&HzNo92@VE@GKaCVHr?d@{+$?B$cmeq2iqObH3gd^$BEZROKxF=a2G zPETmld^RIxTIREv8S^wRFy(A}`D}K&3zjwN)<`^_abSv3P=;*2^VR!m?g2osqUGa~YHAgO|$}v}wIsv1D4-tCcI3t$MX; z&9+ysR&O{KuJwA&CMJOf<{i&gy53p&!*>FTG`_0A^YOCLDI%9Tv4Z}7o z?YCR5gk`_odLwQ1+6^oY+y}NlXw!bTJ?|=UP{`(&Y7)HTp2n_uYQ2fcl%)r3Npab#>C{HkO#4<3m zSU7BWz}U#Fsu82{@Bt$ykATIDjt0lW%z^?U8V?ebn>bh$O%xm^r7&}_$QvXWEO>f~ vokdbbz+rM46PqC~1H*!Z<&1OKC3FlnEYJv?!yK*^TN$w6U=tHF6N5DXg62z6 diff --git a/public/api/resources/images/default/tabs/tab-strip-bg.gif b/public/api/resources/images/default/tabs/tab-strip-bg.gif deleted file mode 100644 index 34f13334511d9d8efe3dee18e6f69f3d1277f8e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 835 zcmZ?wbhEHbWMq(HXlGzJee3<1+wafb{&4orhjVv6oWJ|w!rhM-?|r;<|I_6MpRPRk zboC(+eZKbS^YurcZ#@2d^U0T6PruxL`t{DUuXlmy`PX~TzukZFjbRjwhQJUE0mYvz zKv(}~&;hv}lqVQC6d3d)RyZU!wQvY1*c4o7ILO4xDIjB!uz;bFk%@_cgM+~u0EV(m Avj6}9 diff --git a/public/api/resources/images/default/tabs/tab-strip-bg.png b/public/api/resources/images/default/tabs/tab-strip-bg.png deleted file mode 100644 index fa8ab3f462f07ad14c7dbbf76117118a302e35a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0y~yU~>SnxjEQ?q`I@C5s=a;ag8W(E=o--$;{7F2+7P% zWe87AQ7|%Ba7j&8FfuSOQ!q5JGBmO>HB!(uFf}kZ+p+j0P#=4Vr>`sfH6CexDft?u z8*)G)&H|6fVg?4eLmeKJnpZ&P`;>Yb*KkvN$ zdGGD72k(9{jDpb+7>*&J_>%?bt^W) diff --git a/public/api/resources/images/default/tabs/tabs-sprite.gif b/public/api/resources/images/default/tabs/tabs-sprite.gif deleted file mode 100644 index e969fb0b7338c81f8e22e3f69f82fe49fb9b3d2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2120 zcmeH`|3A}t0LMR@Sv#(pzRU-6RFY!pi@u#ZcG;OPS3Isuz7>Quj<9+o%+>iHqydKXVUq3t_j~CU~d;1O=3^k%I zK@b^`uT%}+t{?xq&)D9te$_uGl4xEH&A%Shb`ERb%I3SIy7w}@coY$jfq&$NZiV54 za=zztL9f!-HxBy8kpUIxp8ygSBAEcv31nyzNTM!e8%TbKsW$>0{H=_AsuJ(WpBfSg6Eg;XE65o%BUvD{bXEk zOXWSPEqo%A=v#Hal?Wf>hPPG~`V-;UmYcp0i`uPV+Gua_+QM z+jV}9XjM%UXVRS6?YV-3@6U&nCSD1PY#jK)GL$I7A7l=yuRmuXLlc& zu@F~vWI*)H{TFEUl1yM1Q1?`aK~Y?SJL;YpH0EedBw1L87_?THz$uRK(*dzsGDIRr zN|-oDu000xBPZXiMrBDev$%^N#95@_X;=$Cd;!|xEBsJq?XSTrf4yxQ8O3r=d><9( z$|fA7Z?+Cv6}4?0d(}aA(YxVj&me;IkXQF!hcK$_x&zIB`dxH%z}@AAET`IkY#?-W z$p}0A^jgNzrjTXz(8BD)vKw(l9~dVr_zGG6(PpcLQ%k!J%WoygcA%1$&nV<~7}(J7 zQY@FzM+-6?Q<$mNZpzVnSG{=+X~duCio)EOmnf#~Nu{EgbFmx6bj+qJOSnb!#x$OQ zx309J8HCcIwJqyPQw7b|^|;5i*7XaX39QN3hPrj%RhD2mP!*TgGF~F`a34c;?haG& zx`J%V`8^&zq=y45Z4xVov0;gS$z^#J7eHm)^lR+#H!Oo9khi&`&-UgmsGutKK zo3JG{IQG`S`*8EoS+V&=lHg5rPQu)WxZ?7;?)XQlxt^mhNSa=H@?lM%-@f~@{?s<0 z&`1vYIN) zra0~MyiReB6<(**9P7x_+-5Gmp-umDajq_{K$xRXs*K1n9B%+@W8xbj8=()LXV1q> zMX*6MN)n85BA`R-8Mu=o%`(^n`+Em-BweC&$n`L*==eqTTw-v8Jr{{O(q~Nu5lXI5 zOmaCba9#xEHSd)AVCWluTNGO4?WKyhhl1J$ll<_EGTqg0SK=TsxEO4=3?n(>GxLWT z+Fs!J71z|k&D@lenZG({BP+%iMQDqn^!^rkIa&w7FRn2+vc5;h@EPdNBxq}`#kPbC z!!{vHsb7oUY(CXAY`Y?h>hbZ|hI1IH9cro1&PAQB85HRX%{3qI^-El@T)1yD;q6N* z*pLx1l<(NiH$fRyS&5sN5QggKUQUKG{0r|y+e1x{I|Dc3>xW_#PS&{kV>SHjg&6$f z11U-@noGbjlFRoKHs`+Mp*9sBYCBRn9lAbP_HeiTu9##_UP~ji_3{WK0b80cM#ok+ zttB1zXuJ7p=bEan)?Gi(v2G2VjIEI9b|-hUZmaplWs}LP1I{(G?igl@OCfy#Q^4Yw aY~k|oDS;V9tOD~>PCR>kAPR$l-2Vk@&nw{o diff --git a/public/api/resources/images/default/toolbar/bg.gif b/public/api/resources/images/default/toolbar/bg.gif deleted file mode 100644 index 0b085bf24e173f7a2568c347f3245bdaade1579b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmZ?wbhEHbWMZ&jXlGzJdGqb5TR`;g^zCwCTzUXRA1^)paQWfKD-So0~;Fd71bH3SrYvH+d-pFs!YKv14w;7Da~Z1~~up_!du)~evahJ_E= zc%_Uy&NM7kYU38y$=KqsP`Q;;Sgxby!h)1$R&Ie6E(r^kHZrktoKP`HXkcJuWMa6% p$*}A^6FZ-Z#4LwKrYSs=j0zqwFtu<5D0@r@Sh(uyYDPu|YXAnXewY9N diff --git a/public/api/resources/images/default/toolbar/btn-arrow-light.gif b/public/api/resources/images/default/toolbar/btn-arrow-light.gif deleted file mode 100644 index b0e24b55e7ee53b419bdd5d769bb036b19fe9592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmZ?wbhEHbQ@i%X_#s+qO5ao&#Bg}b_z?(JW>fAX3`Gd3KV zv*q~0?WdOQKC^1y`Sph`ZaH>k$H{AZ&)(dB?ha5d!zdUHfuS4%ia%Kx85kHDbU>Z} zernn7GpqKUUw`Q0mSb0ToV>R8?9Kh>?)?A%A85cR7!84;8v=?yS(q6Z7#Vax zUI66@296R2W)2yT4GRu7a|mm>STHs?w+nNawPX}9G%#|o>fAZ8aq;nf1?Mgq&rM5C zPSyxs6?1aa(*sN*0#Y579~gX_Ir7AO7EE5yG(%Y4FT%k%!-dUUH;Lzh!*aJqzAC;N dg;0f-Rg6jrr6;$pzP>);aF?w2wgd+TYXG#xTAcs@ diff --git a/public/api/resources/images/default/toolbar/btn-over-bg.gif b/public/api/resources/images/default/toolbar/btn-over-bg.gif deleted file mode 100644 index ee2dd9860c799be6dc194b387c36a953c55aac59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmZ?wbhEHbWMoKTXlGzJeCy}&J3mj~|8@T1uggzJpf;!hT!Z~imrfcyl?6AT{b$et`3#gN7&v4Zqzw`_ELgzA$|)pg(Xe14 SBQvX#kb;4O15gDcgEauAx-gUg diff --git a/public/api/resources/images/default/toolbar/tb-bg.gif b/public/api/resources/images/default/toolbar/tb-bg.gif deleted file mode 100644 index 4969e4efeb37821bba1319dce59cd339cec06f86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmZ?wbhEHbWML3xXlG!!aPPx~`#|*Z;=Kx_O l3y+3|gN`0r3Od0)xY0~Iq4Rm?bCJ?B`>oTK&gPd3dz*}CLR%aU_l zD=ze`x;$asm5J-FP1|y7=C<4Oc0KGp@OARxuQQK*oqzJ{(lcLIpZm7u8ukxPurZ-YfblWU`p4o5&%%PX!%{-|5oZ<}b{tn!>Yw4W=u^Uq zQpF50j}MM*?7gx+W?f1zJDKabS=0$Rg*yZqflo?c5Ixr^dQ@Bde4NjsFf-c#W=%hte#Xx8144{oy_EOnT}e!Oo~L)&NLV<%|FT diff --git a/public/api/resources/images/default/tree/arrows.gif b/public/api/resources/images/default/tree/arrows.gif deleted file mode 100644 index f8ff7b8970158ae5d481592c092db745a3a8f6d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 zcmeH`%S%*o6vuy)BTXT3)r#;DOx7$iUnEp0bS6>qNrRnXmuy7j3_I#aYmbm&fGh5=W!qB+~0KPzi82i4~N59efh#UeYWHH ziQYC+Mx2D$Y_{(1?y3d3j+g8Fay>8C`{my6>a7)xW!d53VVBG0cDp%_^LRXSb90UW zOm3)?VVK%bxiCyez!QPli1s+5%|241ssO5h8la+6MbE2x9uPHS(mWc_ zyiW5pUx57QpKrjbnoWfClOu(sg`XgnRT8mOo$*fi1})`>FY{jaypyRp*Q#)#g^_(n zueb8;{JX(w?)JeSMLy@ax$^ixY0B;xYA`cnOw+u*dPn7A&ss28L`c~TGtf&|XSvzp z9q+$8THIVgOPJl(ou&iz4EfUNAeL>Hnje+d_(s|D9$TyZfqA>>&|Vu$o_Bnm>e|Cy z7-?ilSw+dvMOU!)is@LN5P#We>YQjOeZ_d~ZN-khUHdy{GHqiIYr8)AtP=z5ot7KV krf=5p_lK;fJ~ugf+I@>pPF}U&d;LNTycxV!Vj(Sm0qgvcUH||9 diff --git a/public/api/resources/images/default/tree/drop-add.gif b/public/api/resources/images/default/tree/drop-add.gif deleted file mode 100644 index b22cd1448efa13c47ad6d3b75bdea8b4031c31e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1001 zcmZ?wbhEHb6krfwXlG!sZ8LT1HFNH_aOtsj?X~gjxA*9E^z3&Ep6U}i%{O4CWB5GR zxH(~o^CD6fgr+PAPg@j`zBoE{b!f)w;OtcqS!<$mRz>A)jmQU~$dc{RCEH^Pc0?BK zj4s|4Q@Ag_Y)yK_x{UHY2^CvX>NjQ8>`JNKlUBPgy>f3}?ar*)o!Rv}a|;e8R~}5M zI+k5?IJ@p(X5I1prmcC+Tl3ns7k2C@@7Z0}wX?EwUq$b}>dE`-8_$%sovdm*S<`y9 zvg=S~|DoE>6ZKu^Yp3pS>N(xmcc!K9QuCyv4O0&^O+Vf`{Y>lRvmG-|x6L@yKI2T+ z?1R&1ADl7ea@VxWol~!LO}o-P{c88ji`{c?Oj>eo%Chs*mR*>(;O5i?H>WMVJ$u!a zxvQ_tS$1N<@{-~Tgx`xUa|S^%B{CoY`?W?%iUF5@2}Z*cg>Eg z>v!B;zx&SmUDr15xw>=vgZ29!ZQJ`~+mSmvj^5pQ^4^hC_l_QYap3f`!)G2GJNw}H zxtAxeygq;Z-KCo^FW&ihj$;hsoH8C8796zp$T+b>@c4oQ4ptl9{CxcUY?nYS7uzPr^nkf~ zF-KnfWK`sLl+9v^jSOlzC8As$;v$iu&bdH0ut_86$zxX@GwwqiGMCbLCdz4)g$X=7 zcxoaWQ~HIKhmx0vy2>O}Xevx#ky5l?_wGr-qtgtHrgJ}!+;FF#5#6#i2*%nh> zyAFx!#AZoGf3_x%!Zyuz9to2P8w(l~c~334oIij5|Ns9CqhK@yhFS=VTXXjp>_!!i-ZjhjBP9&d=d&P1P-@w z2*?REbZj`-z{teJvFE@96*ex`7^N1;;s=LXIk{il(fr(WZkkH%E}e=3)qp;}RJS=1 ZACr#t%8J+VSOzWgoT4>ViN zU%dGJ;lrOVU;h61@&EsShEXsY0)sdN6o0Y+UH6|s2joUjo?zgZ#9+@MbEA=|m5*7N zuP1?_;V=Wcmd2kAjEoFSyb3l63JeWQEzG)l4<-aOJF{^!n#_11;LyO$#4EyJxnXG= zBd1*n!vlvz??xWBngt9APKV|*$upc#SeW74&N(&d!GU0fOO1}n=k{oQNISc~334!T+I5ReJa7x*DTyS#YWmWQ8@*yChwS&o6 zrsT(mM-FYgx*h@@4;QobG08Hm@c7Wg%*HKZQ}Uv~iG_ooBg3QNK|^B;FB^}5K!V!o j#pc~334eSRT}sa)VS__s8w&@Y zgu;q|!z~;Fasmw<8xA%wGBG*Ccx+O2Y*vXZDtTe_=t!5iao(F9ACgZ@)bm{w(wUgh k*e9SZBf7&RvvH|ppWc*{Usi^4=^EOswG7BU)WBd303hyMjsO4v diff --git a/public/api/resources/images/default/tree/drop-yes.gif b/public/api/resources/images/default/tree/drop-yes.gif deleted file mode 100644 index 8aacb307e89d690f46853e01f5c4726bd5d94e31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1016 zcmZ?wbhEHb6krfwXlGzhFH%vfSJo_7)vQuAsWC9EH&km;*6LR^?KiYxFJMjooS=wa?sdwqwu&r?{0KDI0upwuR+x56{~g zkq<(VSvvztwnvw2k15z6Ua%vwaA$PU&gkM@F@^i$%l9PIZcnS(l~TJWt#)5}{f^9- z1J*HzZPSi=W*zp-IqIEx!mH#^WYOu+{6mTPhZFOT08vuj(d7JNDFp|U3y&lh98WDi zo>p==rRYRP$%%~86B%VEGs{k8RUS;KJD6E_Jiqc}cGa2O`cnnX`*Pb46}28MZ8%lj zaHgpFTzUJ+%FZKY-6tw0oU5O>vwy;#zG=ssCm!gZcDil)nbs*M`lp@kn035;#_6_M zr`l(nX`gwvYwo%3nHRffUg(*1rFZuAiSsW_n15;F+#8b?UYok``qahOr>(v;d-dhn ztL{u+dw=%2>kHRkU$E}Z()D+iZN9m5#o~d_ub#R;qm;f57%vfxPJS?4f`H%+y8jS!N=PUJlT2r&He)i4xD~_ z;M%)OH{V=&_T};0@2@}p{P5-1r$2vx|NZy(|Ns9CqkyasQ2fcl%)rpgpaaqk$`cG6 zR~e)^Wjr=4aC9<_3F%-wzQDoVIAhB~=k&AfoLyW-Re?t*%+d(FBC_aGf`Fq$D3_+D zkjse)Dz(dOBqZEh6jdE-UYxkdEGT3zv4dmE!Dl=ZWi9e%{1g;@!G-s^!P$| z8==@$AR3<{5^GPA?~^>Pma%d|c$9FpHZ#?|? z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$lae%R5x_+pfh=9;jCRWxkA&~=x h2Yp#A(~SZe4mdO}wqloSIC&-M@bZAgN<174)&TX)MQs28 diff --git a/public/api/resources/images/default/tree/elbow-end-minus.gif b/public/api/resources/images/default/tree/elbow-end-minus.gif deleted file mode 100644 index 9a8d727d70ff5161ec18c0cd0156ae8d50a23b75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 905 zcmZ?wbhEHb6krfyXlGzB^h$R6?=)rU-Z?Z#?|? z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$``4~=2xoOmJxRJ?YUCe?7 p4c<*mc6tvw4?K5dl1^^H;N?iZ| diff --git a/public/api/resources/images/default/tree/elbow-end-plus-nl.gif b/public/api/resources/images/default/tree/elbow-end-plus-nl.gif deleted file mode 100644 index 9f7f69880f48db8d86785639055fcc198764617b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 900 zcmZ?wbhEHb6krfyXlGzB^h$R6?=)rU-Z?uiX3i z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$uiX3i z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$y4*XmR1y>vzmpih{E$}o|KC(Juvl9;ogEauy5=OfK diff --git a/public/api/resources/images/default/tree/elbow-end.gif b/public/api/resources/images/default/tree/elbow-end.gif deleted file mode 100644 index f24ddee799ccebea4dfe60fd65a5703a6a59d44f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 844 zcmZ?wbhEHb6krfy_|CxK^xx^&v19*7!DtAK$PiHc$->A01UeuBlqVQCG#MBA01UeuBlqVQCv>6yVWIQ%3 sIM~R@rxjCSpm?~QTh?igM}U%RmzciOnH3WikN0ueH<|n}RA8_M07ViGB>(^b diff --git a/public/api/resources/images/default/tree/elbow-minus-nl.gif b/public/api/resources/images/default/tree/elbow-minus-nl.gif deleted file mode 100644 index 928779e92361aaebfe9446b236d95cb64256e443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmZ?wbhEHb6krfyXlGzB^h$R6?=)rU-Z?Z#?|? z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$lae%R5x_+pfh=9;jCRWxkA&~=x h2Yp#A(~SZe4mdO}wqloSIC&-M@bZAgN<174)&TX)MQs28 diff --git a/public/api/resources/images/default/tree/elbow-minus.gif b/public/api/resources/images/default/tree/elbow-minus.gif deleted file mode 100644 index 97dcc7110f13c3cfb72a66a9891e8ab3ccef4a98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 908 zcmZ?wbhEHb6krfyXlGzB^h$R6?=)rU-Z?Z#?|? z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$``4~=2xoOmJxRJ?YUCe?7 s4c<*mc6tvw4?K5duiX3i z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$uiX3i z{QdXWpZ@~^!zdUHf#DSbia%MH85kHDbU@w$y4*XmR1y>vzmpih{E$}o|KC;?;W0q*gYXG$^NPhqT diff --git a/public/api/resources/images/default/tree/elbow.gif b/public/api/resources/images/default/tree/elbow.gif deleted file mode 100644 index b8f42083895bb98276f01a5d0e33debddb3ccf1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmZ?wbhEHb6krfy_|CxK^xx^&v19*7!DtAK$PiHc$->A01UeuBlqVQC^cfgAWIQ%3 wIM~R@rxjCSpm?~QTh?igM}U%R7pF1PhKh>{$NPBfn?f{-mK<+pWMr@g0DWQ)HUIzs diff --git a/public/api/resources/images/default/tree/folder-open.gif b/public/api/resources/images/default/tree/folder-open.gif deleted file mode 100644 index 56ba737bcc7734693d7ddb2f50c8f3235fceacee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 956 zcmZ?wbhEHb6krfwXlGzB^h$R6?=&-=aaIP?oGg}kIcy8^I2ILfEiU9P24$!>3v-_@?Pw@dZdEXiZDqz?6KotSEHa+=}k8OCR3nw(sqcz%)E z^&Jkk_UAm>?EL6pz~8F{|8JLmcvAKMN&S?id*>|OyM6oiIctwC-Fj{1-dlT*9ou>8 z$^Yvu|6jNKf8Y82L+Ae=lmGvp`Tzf%|NoaBIdbIa(W7V2p1pYS;<0P5Z#?|?{QdXW zpa1{*{pbJx{|uvGGz2IP0mYvz%nS^S3_2i_KzV|JV1OfBquQXEGvI4}0>6q3BdQLvD`XSzZ1sfd8&rn9pxa_cf0 z8;-R|sQDgyVbIvhINu@p(3Fo!OdU)nOn*uow`yILl(G@%_!WGtV|{}AnFkvZ9YR(b rI<1IZ9mc}SXv*Rj;4nR}iJ6T{KqBGLF$ZZACT_Vm-ya@qV6X-NkKMK> diff --git a/public/api/resources/images/default/tree/folder.gif b/public/api/resources/images/default/tree/folder.gif deleted file mode 100644 index 20412f7c1ba83b82dc3421b211db2f2e93f08bf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 952 zcmZ?wbhEHb6krfwXlGzB^h$R6?=&-=aaIP?oGg}kIcy8^I2IRjFD>R>Udq3sOkj1T z@R}--bv0re>LfNdN^fnF-QFU)=hNov3pP6ZL zdwbCB?S=oZs*|No!)|Nor- z|92fYaNzXm(`U|{xqSKZwQJXoU3-1w;m7CizrX(c9|#ym!DtB3CIl3JvM@6+Ff!^t&H2GZdv-WZP}~tRj*oB|LorIYr@vw({}!uwfFDhO(&LbJ2U^lzeR`sUwH800T8|T z00#d*{P_PLi2nZvyK9sf4FQ^mfZ|UUW(Ec>1|5)1pgh6A(Z?XlA>*-O!NF!$M-7&b z2M@Kd^GWGABrIrf5YP;mqG0Ic!oef1<ENsed*j@4Yk?RR_1qN#Xfm)wA diff --git a/public/api/resources/images/default/tree/loading.gif b/public/api/resources/images/default/tree/loading.gif deleted file mode 100644 index e846e1d6c58796558015ffee1fdec546bc207ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ diff --git a/public/api/resources/images/default/tree/s.gif b/public/api/resources/images/default/tree/s.gif deleted file mode 100644 index 1d11fa9ada9e93505b3d736acb204083f45d5fbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx diff --git a/public/api/resources/images/default/window/icon-error.gif b/public/api/resources/images/default/window/icon-error.gif deleted file mode 100644 index 397b655ab83e5362fdc7eb0d18cf361c6f86bd9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1669 zcmV;02738NNk%w1VITk?0QUd@0|NsJ0|X2J00{{R5ds1i7Z(~66B`>G9v&Vb001Kp z5h)oOFaQ8I0021w0Y3o&E-fxEFEBACCN(uSJUcx_0Rc|{08I)CQ~&^5003P90ZlnN zZ2HgaR#tRYR&iNbdS75? zU|?otXJ=+;Yin(FU|@V`YIb#ZeSCg?et>}h0EGYmiU0tO0055<5Rm`?kOl^o005Z) z0GmN+?~005%|1f>7~rUeD5005~41+4%8tpx?M0RglK2)Y6SybBAy92~17B(5YS zt0^g|FE6h$GP@!ovpPDDN=%4PP>)+%g=J@gYio~fZHaSpjd*yLX=#~kY?O0znsITT ze0->1U$sL+wn#|6N=l(?ZKHd8zjAWJ0s_Pf3(Ero%L)p|939OP64C(y(FzLN0RhLMcRH8%DjAoeXS{Ujv)EG+gtJ^wQ^{W?3v zNJh*-LCQ@{#8XqnUth>oR?f~+Utj)HQ~z6A@Lyo#VPouQYVB}x>v?Q{t%gd(L*0R{xyxG~vlatYag2Jb&>V$^kk(2*{ zf&Yw*|C5vdnwsaLq~@lni75b z|Ns8}{@~x^A^8LW00930EC2ui03ZM$000R70RIUbNDv$>R;N^%GKK1uH+KXhN+gI) zQmI(8v}vO?E0!usk6NLdNb;LSjN7_}3)gKMEm^BfQ9=}oWJFkzOv$3fZRN_A+GfF& z32BcxoBv$pj74i3x2G;S3XK)B)FeoEmXWL#snn`jv}gsDrLa^fQ>tQ`viiu;6mb&4 zIih50RjgR4R9RKTR}rL1lO$0B9ElMiAmt)9>blUBj4Y5687efWvLQo=T3ms|nUS42 zGT05w#%K~HN|L}(qt>OeA3m=K#Zlp_nV3Y10NJUdgV?}Dj3P~n6lR(~fAPA&<^wy< z3SY;ip*i$tjvF;7)cwO(hY@E;pU(dEJAMvK96x^EuyA(#I4D2W)wt>4TNE8YjvOf} zG)mrhfAgFX#~WKj)1E)1@X?1HY^b3I4=}g`${ckFf(Rmn_^}B+|J5T5Fy|aN${TUW z0S6mQFhRr!;UgPsq@e^7N-V$&6Kb%bq#Sa*Vdfi^>~mm0dsJzqm1!)YL=j6Upi2{A zuE7S7XQmMhKT=kc#-N0zk;D-~AfZ4mcqp-i8dkz#<`P*@Bc(t0{IW!$Ngy$V5I-1@ zizZxdisc(i!~o5u$IbJ_rv6JTkwg(c{D4CNyI4a65=m^j#u6#8*Ipi;`17AUTJ(BE z5kdIy0|yB7l8z8W9HFeL2U?Ou5|`ZbpQ}X_F@z60{NTU@$Nckz5JFhX#WM$9V(qqN zczc{Zzy$F_4?N^RzzK;Blf(}}6cGhE|5-BcwnvOnPkU1IumcV|U{F8}13B@74?zS0 z#dwzlam2`nic7|EPvkH$4mJotfiVMJGlaxG_)rEWKMWD>&Oe?)03;wIQ58SrAhy#rm+eCjRSRuH))@dW!7dZ& zW5o_u2R%03bq^haWeql1000EIv_ld+Sb#9`4TvW`^x8Ju-~j^zOmNFONd2>m2p`;_ zHs5>m&A|f!9AH8(f>-{JI5cc`2#jD0Go}*+k21NqFv0{8KoG$M PBfNl1GVhQS5C8x>^BLCH diff --git a/public/api/resources/images/default/window/icon-info.gif b/public/api/resources/images/default/window/icon-info.gif deleted file mode 100644 index 58281c3067b309779f5cf949a7196170c8ca97b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1586 zcmV-22F>|LNk%w1VITk?0QUd@002Ay07w84PX`%A3LHrS9ajJYWB>?a019mY3w!_= zeheW`4kS_$BTNt{R2C>w87x&AE?6EhTN5*F88u@cHent&Zy_^VB{*RwJ!T<2Ybrfu zEanAeNJ0@02_k<8;bxSjRY)#049Cl8e5Y1_tY3bkWN(XQaEfVlk7;?7 zZF!SzdY5*8mt2auc!8LDgq&lBt7(C!V~et7k-lw{yKsuMageiql(2i8y-tSTQHA4U zhskM;!F86%bDF?tGlSHx~QzWsjj`Ou)c+z$A_QDf}_NMrOt$@%8RPR zi>%9lsM?CJ)Qqyzkfy4!pytE%CW@Nu*TlB$=|re)xF5pzRlaC#O0*M=&Huzs>kT8$>*ZV^`Xr3 zq{{ZD&GV%F^A_)Y{V6-P_#W#@Xx7+U3jK?!?;j!ruDO*W%II z<s1(&F;b=Ka&^{@UjA-Rbn(?f%pA|J?Ea z-}(RG-{a%sWQF}}=T6!l(LfBVqwLzTzdz--gr zA>~JRUspdjz=SD#uW#3T=*1z15PotP*O<}1TXI=rW8fk~GqY79KP}1YrcVGlvzs zDl$nW+ZJ<7GW-rh3M7OOB8UkZSwRrC?KL;(Q+JJH=Ywg3PC diff --git a/public/api/resources/images/default/window/icon-question.gif b/public/api/resources/images/default/window/icon-question.gif deleted file mode 100644 index 08abd82ae86c9457172c7a4fdbc527641cf28e48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1607 zcmV-N2Dtf0Nk%w1VITk?0QUd@02fyP7F_@vT>uhh032%o9CQF5e-A8e03mY#BzglW zcL_0l6g7B5MoUafO-xQwNKjc)QdCG)VMGais%VD1YKp&Yk+f=&xOI)E zaEiQim9}=7y?K_jd6&3+oV;3t&|-(kYnQ@tj>UPC!+4gSZh?S#&mcD?Rw3D8!n4hVIpuCNxypy7?lBc|sslAz{ zv!1E8nykH`pQ59qrl_Z?tE#T5tFf-Ly0EXZv$D0gx4OH!y?~j^f}_NSpv#4+%#5bO zjit(rsl|+~%!H%Tg{shuuF;CD-i))_m#xK;uF0IQ!Je+okgwa9u*sgY$DOs#l(p29 zwb+%o+nKY|oV(kBuJ?(u=#RDcm$&DYyyKX=;G(m`qqxkgwZo{l%AmW~pu5Wy1~n_!_~3H*|^2hyUEtQ&D)~F!=r_S`L&GoF&_N~(Sv&!PL&+@j??Yq$Bv(odm+WouL^Ss^uzv2JK z#>vRX%gf5m#L3db&e_e*)63J`)6&(_)!NwC+uGXR!PV)++V9BJ>B`#d#N777-1y4d z^3d1g(%a?H-|XGp;>6+p%jEve=>OE=@803%+~e!f;quVt`_t+E+2!%y==0m`{@(Hb z;NRop*MI`>g(&|>+<34{Oa!Wf0xe!3Pge_@yBbqQDAy z^yqLDY^(Y`Bgb#Yy&t*SHt<)MmubQE= zM_%4K|K!o54GAF7UTBq*Ob!?g0o7_ijR4L$#5Cl7WQu5*Y1Gi(Bmg6D)2&N<*T z_(l=0(9+Fy7{;fLf+vi?iGtvWSYtTY0MiN@9f&f^H7LmFMINyXBrZBDyqCps^d=g7F3EF65lHnZVrI>UYlglJe zU~oq>afkv8HsRE$YQu zh#-bkqRKD4cwz`3RWxA(1Qnd&3}YuvgUT2`;GhH*Q&3SwBCD*Dh!i~7&_D!W@DWW; z1F;hgDs>bA#0Ei30Z1pS2x5T)7=Y0SG)EyV5IfR9lMEkstO3X(t9(I08OcCnvDYWD z6Ol7qAd-p~6!7sjC){4MV~P`tbU^{7d>1~=99ZDpN7scTEv^xRGv0Vk((EBd#a;&l F06QAMRrde@ diff --git a/public/api/resources/images/default/window/icon-warning.gif b/public/api/resources/images/default/window/icon-warning.gif deleted file mode 100644 index 27ff98b4f787f776e24227da0227bc781e3b11e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1483 zcmXAoYc$k(9LB%H%(yfgGuR9b<4z3ocd29*O43CNd(`UWmQ=H)a>`a4DYpzOx}c(x zSlvdcWJ?+unZaR-H7>b~v1S^TyJ_?Ptx;{_9t|N0Ki69nENoJ2v3`>&g|W8&busa_So7*+dD)$ zvLc<>kt@t%F{f~h9qzG`vt^ZG;7|7JumJBhJ9Y+8Lf4suZE^fH#5_9C`L|tWUS6U8 z{=uOE0fBzowgqiH9`W<?y6`^?T9Sbi>kIro^$r3_Y4hFwk)R(#Q}G+VFY!jG?tX{A@K zA7Ak-yF;xiAyhqNys9yLRL-ovzEyCSA}UpDxeZO_LcSl+NfU}@28A3*bVbNWrHA>fZ4D_larvD z0o4={9|wFI(DV=ZJRp1#nxdfzI{Lyuvvho356v%?4p|^%j&Mta>}F3~{K0|F!GZpTzVLoC6_EgdgTr?dzB>V$ILvD;-4MrIlR(m27G@h~>JlYZ zVAt|_ro3YUVh;qD&xzwC(+MYO@wD@Y_NS8}VxR3300jn*@X<;}{z{$rL zTQ1Ygt3r~JNZK6NqxROCFAF5#=}AsXB5Gp!SiKu3HLoB=^T~;XI#AbK!S$~9M1UFk{5%nyiu}%*CZiIbNf<7_U*)eK2jmJEb7FxOYX=;RObGwm=_w(}-X91Z& zqYL6B`%{}cDrkMSM*JWx2`jXogS!VNpUr25HWVJ_hwMpzlk(}y+|3YZ)%_6gfm?u*PI1fu~NtNN%<%o?1bnQ|HcP z+A{@eE%wEmbNMT^8Mo3bU$&{4r}IL6UfVqFo%2t*Tz4deYD9aVZE~6`7TH{nSG#4; z<6vfan`>!V4h5%@)!a#Ahc&Ef--@I2iU;@wEYEC-zjIsI(0PM(`f?qQqf=C&8Tb?#p4A}3P=ZzHb8 zU%2?008r{GmdfTSw5X-f*JnevxfSlSM{Cc=no(Hy6^Zi{dugQHUH~t06Bw zQt4307HjGF&8-z0AF;fZZq8-%?^|4nr#0y83LDz+toN8`gZZg2p9Yd5@bP-%L)8(V zUmmP8OS8yf(llyk`BV+l3sY@pR^S)K>*+DB$}jc0e)m$1w?{Mi5Ahq5K8vj4mE(=f iL}jwpve+-)v>A%!R(IJo>4b>g=DL~sm}r{H~ewh?zXI6{+zl(;g`80AbC$$KbLh* G2~7akBV(8V diff --git a/public/api/resources/images/default/window/left-corners.psd b/public/api/resources/images/default/window/left-corners.psd deleted file mode 100644 index 3d7f0623e03727a632cf003e22e11593d547de53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15576 zcmeI1e^3-<7{}lDcK7c172LsrFbH>wVhuI%BO?1j;4ffmCc%<)CPO77wGtJH8DkKN zvKdW7$)+hFN{x{NQZx(GprDKf4pB~$KoLdMl;0e;Z11zs-VFT_IWTkFyze{vx#xZN zeRucy?sLz+w-*-qTpYqkDmZ|ca;b^9+hLK>&$6u8qwtm?BqLSqbA&!FhXCf2IpSP5 zggo9P{i$dM!a|eKidi4x zfe~`or3s2zo7{pj_T(#PN0y$^#Ma;O3tpYP!_MB_V}_^KoVotJaqW$vTu$aD?fhX+mk<5R{ivIbz5BziP4hj!ePN0LL5Kf*=i$Y2sSj0%M#)4G_3kj^dN zMIS6V_F2-)(QEg{@4IBo306n>?Ts$(j9H%a)WLvd8;Y}&k~bPQDERq{1XOVT@R3zT z{sq0-5&?afxSLN~0G&leed!0DtdLcXMC=dm>vSIZV8!-TMdr%mdGYBrLDeG_Isw(M zU$Xp$fF8be-QBm_u~b0%sPx_y^^K+dp4`sqHzT-G@?&Q%XEf&n${+=-9b$U~b&il=5o92>F@0C4S*uP!0LSq>g=xxqCDh z$PgA=B&(A$n&XiVc>?&%BT0UIkqLsO3+BE4M)Jn7t|!L!%p>`obp7|Hj7`|QB{5kW zXgMUY#-2Xnnb>mJr40G!OvcfX_k5-xn2(8<@BpKgDlnM}knfIJ7^amfFv$u)T!~qW zL$p!_CRYI#J#EgyS%rKL&g$XYCHx7N1s9=KCjzJ{TvW z7p!sUfj$bVffdGq83L1nYGA{0VBpP=)#;jnt{J980hatzKONUP^qQ?(0UB4F!NjZ@PPux7WupWNueqZtfW2~iL+q|Xf5;G(` gSegTv9U2%JuJUu7s@>+S2h_yi>FVdQ&MBb@0Pcb&z5oCK diff --git a/public/api/resources/images/default/window/left-right.psd b/public/api/resources/images/default/window/left-right.psd deleted file mode 100644 index f490c5e50e79c509e60dc6aa7baaaa09b8e79210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25060 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 diff --git a/public/api/resources/images/default/window/right-corners.png b/public/api/resources/images/default/window/right-corners.png deleted file mode 100644 index 101118b22ccc617958cbfc857877443ca97fa7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz#HIvhZf;X%)#H9$(I#5JPCxhOTUBr`uxAtW<5 zl_5MeMZw5a!Lgu7!N|bCT*1J|%EZLV&`d$sz{0>_xt^0TP#=4Vr>`sfbrwlZ9nE~5 z59@(KoCO|{#S9E`hd`Jy??R~^P>?0v(btiIVPik{pF~z5f3>HJV@SoVAf5XvrxAQ6Ry3L4|4Xi*vsE)@@~F;uIT!~;q#R!!xo z)uypht+Z-PFI~})hN>+#^`KBdlxS&@1r)i;QLJ(;u!-ndFU z?hVIfH3V=ia=v&SEkb_JknvKq0%5@_bRgB*wE)!HJX6XfWTnAA;h5d z5041bN31j$^q8EckSmremCN-yjZUZkw@s+Vhe;4JEH)C7*f7I#V|~G8*jSxwl&GO-;uI*-972|-go~48IL@=@v+CB*p#(7cgwR|^PbyQShVBi zov*yQYwsIx?t80b|ADs;A36H|2bK>@KRW)&r=OiTS@HR)GgZ}RYijGhsc$@gq3OqF zYfEcqS9j0F-oE~UOT#0hW47^$N&6H=>`XX>e~O3Lj~R|*IR(UnnXTlCw8p{jjh16eys&)26}8rZI&jwcEb^b;}T6Rcji#e)*Im)rtEp z!~9ou5p?YDJh-kerY>3sXDoJ73%0vp(2n51!5s*G`*C?A&zl{=B~FHI)K- zxR_4;9~{^{#P@Xt4Gv`NiY_~CerM0v`hxG2=DlqdRS9=)DgAhx*MTg)-r{Jk|6XW8 zP|?}TVu?_pImfNazC93Fwf}4(ewL z>Va$KfdjIWf_mV#dEg+$9I859Gc3v*b78;Pm*UkpzM8BV9JsOCIgTCkf(_=07z1?$ zMq!MCdf=jYz{8WFpdPqw9`K}?Lsh412D)Zg6bCr+PyJF{>(G04Z3k#xx%Tr}s&~in zB}gD&EXPZn1K2i;9#C`WfUbykP(Mj%1JwesN@xOgo`QPdnt3n<*-1e?aN9hXBE=l4 zI)98*b~~;*=KKxYXYnhjISfKq#3fJz68b>(0xnAE21P+VaM3*A;mJ@?58O5ncv8%v ws`Cw`vh%p5!8wWfd0_(Pi5LfU1#B=zK|OHMJaEF3p`aePZ5}vDF^8)D2iAzm(f|Me diff --git a/public/api/resources/images/default/window/top-bottom.png b/public/api/resources/images/default/window/top-bottom.png deleted file mode 100644 index a73923430760a523c621cfb90251f2bc38735737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^tPBi{Ivi|37WeMT^*~Cp#5JNMI6tkVJh3R1!7(L2 zDOJHUH!(dmC^a#qvhZZ84Ny_3r;B4q#jQ6N47nN%cv>HZ7*(*A_rDUoGuO7g`$4M9 z!G&8&^OaLdei+y75qCPYC8s?^c%8c0is!P~ll^)w&Nwpt&kFH;BWX|Hwp(A5RNl_L ySsV1}-4}Zn7DoXT^uOPVueSU1F7qE;1`JkgO4o}Y8~Xztz~JfX=d#Wzp$Pz38cL}E diff --git a/public/api/resources/images/default/window/top-bottom.psd b/public/api/resources/images/default/window/top-bottom.psd deleted file mode 100644 index d2b2302959822226cbc7e3dcac6ca6a0181b76e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32214 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 diff --git a/public/api/resources/member-collapsed.gif b/public/api/resources/member-collapsed.gif deleted file mode 100644 index 16bce1d3023a0327127a1a3b01c0052a82be4fdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 856 zcmZ?wbhEHb`0vot(lTw@wE6SrFI~EH`SRr_PMo-N=g$56_n$p`_VVS+ zSFc{Ze*OCW`}cqT{9zacqaiT7LO}5+3p2<^Iv@g+Cm1+P85lWaJT@$FWMGq$VR2Z% t(A3N##$%B%p@Er|NkU}H3kAmpRumEJGz1RLG2aZ#?lG#`otN{>aA`t)p diff --git a/public/api/resources/method.gif b/public/api/resources/method.gif deleted file mode 100644 index af74265b823432807ec6ae773617b5a109988db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 zcmZ?wbhEHb6krfwXlGz3R4FP|FRjw9uFa0K`f~pj%L10K2w1r?VAaZ?RlD=|>?zoLI{nPWtV@@&FJH{PbUE+J z)%>enGuO>nvTn}ub!)b+U9)A~*4=B*cbvaF^?Kr)cXQwWn(_PB%-_Fe z|Nb@q_v1B>AFY4%Zt44X``-Op{rlIt-v^JZIdg8!)vIfsK3e_q>FVzvRzErQCeXhYwdje7gPV!{ZO19(?}%`16-%Ul>NgXb2D;0*XIb7#SEi z7<527KzV|Jqk%z?L&jsnf`iQ*!dfB{DJ>IPIi$8pIJ!LS7c@wjBVpL0&?lv6r6BQ8 z$*oI7%}vBnV&S1~QO%Gk1q}?xd!>vWDjXObo4v&}n|NQ;;=imQ-2crL@U^E1VNeC$ZWMO1rU}Vr?00K~+VBkn)VCInV*s$PWGdrh7 zh{l4249zSm9xVR>Udq3sOkj1T z@R}--bv0re>LfNdN^fnF-QFU)=hNov3pP6ZL zdwbCB?S=oZs*|No!)|Nor- z|92fYaNzXm(`U|{xqSKZwQJXoU3-1w;m7CizrX(c9|#ym!DtB3CIl3JvM@6+Ff!siLQ;R`jL33}vPDDt6#iPY1 zrA!zs-W*t%dYVsI#iilH0mg%qu_1}ydp zo%rCWgP=QO2J40`4_HML4tKFuA2@nIz$}1ihGH{IaHCkrk{RCH*KskYv9>u_GB@-H z=W&MxG%nik@URxw6JCL)WA}wrl=kyFII?yC^V@2L4L6QlJ1@iO7w~c6mY0{c*mUwF w9GbZJHzc19Q#_#cy3s_|Bw_)>K}Kd)4vq}Q$7YTadXu!{PE*uY>70Ks>}<^TWy diff --git a/public/api/resources/pkg-open.gif b/public/api/resources/pkg-open.gif deleted file mode 100644 index ffd18a31adf148f72b0500c20f929b7ac4859c59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1040 zcmZ?wbhEHbRA3NbXlGzB^h$R6?=&-=aaIP?oGg}kIcy8^I2ILfEiU9P24$!>3v-_@?Pw@dZdEXiZDqz?6KotSEHa+=}k8OCR3nw(sqcz%)E z^&Jkk_UAm>?EL6pz~8F{|8JLmcvAKMN&S?id*>|OyM6oiIctwC-Fj{1-dlT*9ou>8 z$^Yvu|6jNKf8Y82L+Ae=lmGvp`Tzf%|NoaBIdbIa(W7V2p1pYS;<0P5Z#?|?{QdXW zpa1{*{pbJx{|uvGGz2IP0mYvz%nS^S3_2i_KzV|J<1GU-hm6OD1qYisgtcN$Y)EM1 zkQCysQT24sGq2j>;#)Fg8OV`%}PEMnE$pgy|PW%!9i@m09TyX4wkS#;T)m>8_w5(4!T=(|^6Ju|q z%7j-ZCNi^gEn`$W!oX$X*3PNJGe^`zDf6~y{@!y_r9zK&b1HDX;dO9g?-SJw@Mx1Z zZ|goiL;w7R2aN}kM5CRHMRbx|US3vCE4X2hQ0UxPPfjp1F<1it-f7uY diff --git a/public/api/resources/pkg.gif b/public/api/resources/pkg.gif deleted file mode 100644 index d3d3448c8a43e77f4582aeca06aa8886985019e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmZ?wbhEHb6krfwXlGzxGn>U_F_;AX$Aws{VF# z^fV8@MGoORo%41&7wz`1*q4*DvLtIQXZst@t~V@m{x> zn6zFETJj=p?fa7E(^YF8)^2#RrIF#-WQPAweg40U`2RNL|Hp#=Uu)*fIka}=?JZlb zoxJqsPp?^4$r*vgN83c%GXx4VHYu};Yk15NFi={^!otcS@j}7L z!%5X+s?NiO$sPU6ZJQKq4k@y9a0}@0cI4f4S^va0*XIb7#SEC8FUzc0F);fIC2@7Ib=LG zEI8QA&Z!Ziv0x!XGmD1D6bHj5W_AWHw9DI36qZ}OgWx7`9$KB6Uoy~CQmz+0z}hKrA@k3 zyYOuJ(u*}4A2l>IG&MCgH8r)gwDfeh_4M@g_V!MmJZZ|5DbuD+n=xbR%$YN1&6>4n z(V}I`mMveoX4R@yD_5`ExM|&%En9Z%*s*KZu6_IVwXL|)y!FwZ{YTaxxxMAe=Uvyn z?z#2tz`;F-4<9&m=+NQAhmRgTdiwO~GiT0RxN!E;rAwDDU%qnX%Ju8lZ``C-Huf9Bc`~BtnuWvqmfBE6Z>yJO* z0MVx(Z$JNd`{n1`FTdV>`SJeC&-Y(`efsq2!_4DV?AHV

      ~I}XfXWLadKd8}sPVs(DDNeX;BD}&v9gw@*2Oj?`{A6{TlaBITL zM=cZDSe=a`9tJ*TUSL&pV-4eDRe^R5!FdmMBpq+MzCPitN2bE!KxM7gORIdXkLt8= zcZ;z;bXvMDR?qH{(TWAG-F>?5Ox)Ls7Uwr|y7k;R5wv7uvW~G3e}hAdN1ueDhE2kR z2MvwvQ&}y3II6S>sICZRR&-dx-XJR^GQ;Ca`*}H=@@E=af((wlZ5k14B-Sapa*3%+ Ju(2>$0{|kig4F;3 diff --git a/public/api/resources/prop.gif b/public/api/resources/prop.gif deleted file mode 100644 index 9d99a99d8e9000c5b2fd0a89b045a1db2bc32b23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 923 zcmZ?wbhEHb6krfwXlG#X_V#o03-R^~^!5+(@elI#5Ag{I_6-axF0Jv%-%&gF{-X6q zmK^=R^W@V5$1ff{0YsM$oxFVF{LRz%{$6_YfBSO4$5{B`H$|7Y)h zKm73j#fLxdzx;ml^Z%!Bf4}|z|Kr!+AHV*-O!NFz@VX=?{8x}gVa&l;8IBZ;WltD-`<9WfcOGq_njs)YPW{*jlN=srIoSu4eTPW_)Npxyy=atk5 s;n+2~cCz<$w+r$z3lFr24z;R|lSzp-t;siYaBy&Tb`A{e%&@(MVMi;&?hb}MoeX=s81{8D z?C)XNF;iw`pTdD&hC}@fhbJ%`naFT-62q~{3@4{CoSwmOc&@#Hh@V?7@N@^q zyFE-F53+nb%=P0a!=IB3|Ie}gza;$sisb)m^4~A({=cF2|CY}GJ4XNSTmFA&|Np7a z|CbT}-=_TkSn&UAO-DyZcX#)!S+nNOox5Pcf|V;*o;`c^&Ye3SKYslF{rj(9zyALH z`~UxchEXsY0vI8n_>+a1fx(wS2P6Z^6AT>l8D?|Hcx+g3u$j$&hK8Y%OFOTmL5x8L z(+Pfg+lm(l0v9(q3W*!%tub_Na}<=Qe6zu@k%58Hu}6SqVxfBLz6t-8%~umDzg4G&F1+4m2dN patbP(&`?1cb8DZ_4Nsdm0TnQ7_0%ATVtdE diff --git a/public/api/resources/tree-bg.gif b/public/api/resources/tree-bg.gif deleted file mode 100644 index 00fac636201972c1191a77034f7723753a972920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1925 zcmbu8`BzhS8ixaj1PKCRks<;CD=033Qir9bf=Gjk1&7ww!jV#j)};dumO6qXD6$Ar z=`huLM#>`KvD6mJSR4y&1W8yTB!(^fLK3o)#5#q(ufu%(8|I#Sp7Z(P-p~8od*AzJ zT54?E2a_%ilxhma!NFl=WyNSk!y;JhXtsgMh)M&@n?PemodxxagkZ9v(Mm3WaS2Yy zP@upm70#$}cAgMK8kFi#u1AG|5Y#4A8OiOSwV=UD8o+EvlMP11I4Z_52_cM2NdTS{ zAIp#@g~u|OkmKZw6Zi_`D?p&cCrUC1genqXT1_Ux%sfu3VNOHlf=G*V8W3wyqydQz z#afW+QKAExp2&dQfHFNOjYJ7lCR7?>-i&G!A!sb9TSTn|j5eYNmZxa814oQpF^)(G zVU!q3aYPIw5*U->s07AkI3@+249AJ89C>)G(vL>3Nvd;LJSCX>pdA>rkWxi5|to*?>|#D2ymKfYO8tBdE=&BA>tl z+C|h`i7*&!B!J0|MjLSk4pEgLhe%3EfKeHaNMTGy%wb%PV=~~$aa=|+JXRp@1z|#o z6AGAA;-nJzL{*If6$s}^fT?*Ds$p7#Q$$jWGa8uF;j9)!I-JvjSdStdNDU~_gUpCh z1IUdiGl0T`awDkBs3b4ef@(7%Xvo4?QM(96I~r_Yeu^eL(IXSdESS;a^ow$k7*MPy zB!!?fqrwDg3#!b7qye;KZEU26+)f_$cO}^+E9h;c6AX4RJq5C~WOe`lgR#7dLZPfs zwh~fa{1X)F3Z;iS6usH)%dPK4{AqJd2IJ+uheMKu$(j4EZvV0`yZ2U)n?Ez?jbj1J zY4!f;FUNhgu{gCU{FQbNaQX=OJ0M(!a-E~`9kb*IvkkvvOvO~~h7VQzXze@T#f{o2t_YFc(h zxj%Ak%6rrnanR@Ddb0=jO8VU8?#4p7JejrppIb{|sl)wmJG6G+zsuriUj`17TOdt#s9i0F$q?~d%$pXmK-2F+*Cr=8VxJ-M;Gv-x(XsI%+( zvD@AULXzvh>Hcb^K;-=$-Fw_y^jahLPHj<3dgy*;BlYM{mMtejTWz;1>D-c#dPcgx zAjx}dCu6_2kS-Wvh=W4w?^RbmNcmBDxP+Vki)UNXj(s1OucBZ4)$Y&iPtm&32bMy) z4;nPbD+iW0@!$P$z@P2rl}0=Ny;sV78`CSr`j^>|@(3C=BxNDGX1F}Cb)T0%m2u58 zIh#fuDRs?Ub)=$KayPitojv1O`Y+lL@0{XUwMW8AWAV1cRlMrSdseGUaFX?dF^_ea zTeq#(`b+iudmePWDLiYn`gs)TZSMr%7eO7hw2hPc+%+yC-7c8G}J zI6o?@Xi@*93j?BJg3r>9?+V_XaiY8NdBBc7>%#*_Z#fJG9Q&zd_$^%*|LlS7eHm-O z`XDzIm?QFs`-~G#@!WNljKZ`sr9EtB>8mb zpWos+7#?47{);k4=iCUVH5ts+o^36(TqcA1$E8NUdqpHBxxE@aSXWl*md&hieMqTd zo^q&;jbU%fi*XzZ4e+WytZ>}ZbZzKT48PWwQQ>!!<+WvRX6VMgJii}mJn8xDI#<{B zb?gPt%1VCy$NSp@X1K#U|82WmRNo$`V{zg|wuaN=?LohBIf=j9J};-;3~@>0CI{HB Kl+vh_g#Q6ee|~EK diff --git a/public/api/resources/wel-bg.gif b/public/api/resources/wel-bg.gif deleted file mode 100644 index 90366025293df5bc0b94e38071f2619734444fb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 991 zcmZ?wbhEHbv|(gqXlG!!_Vn|OXJ2nU`+EENx7#ni-+uY+_RH^gUVgg+Bwu~M`|A5W zAbS1%{_7w2-~4#+=EuXgKOVjP`S{(>CqVT6=hOGUo__fC?8C3;K=kp~3lRGK^3(5E zK=k?d>(9U60MVB}Z-MCRpLbvXy#EG7e?I`x_rD*%|NR6+KmL9Op?_a~{`(3j@g#P~oqCfwC0ny+8zyJRK^Y=f)C>RX^DusaJPZpp_{~2^Z=7I7A1IHc) zMiv2s2MmnNtU?M73lbQcSp_6bX52V%u(_LGA)`fLVKNJ+f}`IIhlMGvlSOr6B6bQn zw@sHy%DQo2VcJ%1unoBGpx+C}DqBS=+>t9+`%eXlAwnV|>Q@x6d*TqU2e|oj_;CB69sRm}|ZH_`KvD6mJSR4y&1W8yTB!(^fLK3o)#5#q(ufu%(8|I#Sp7Z(P-p~8od*AzJ zT54?E2M&};mud>d!NFl=WyNSk!y;JhXtsgMh)M&@n?PemodxxagkZ9v(Mm3WaS2Yy zP@upm70#$}cAgMK8kFi#u1AG|5Y#4A8OiOSwV=UD8o+EvlMP11I4Z_52_cM2NdTS{ zAIp#@g~u|OkmKZw6Zi_`D?p&cCrUC1genqXT1_Ux%sfu3VNOHlf=G*V8W3wyqydQz z#afW+QKAExp2&dQfHFNOjYJ7lCR7?>-i&G!A!sb9TSTn|j5eYNmZxa814oQpF^)(G zVU!q3aYPIw5*U->s07AkI3@+249AJ89C>)G(vL>3Nvd;LJSCX>pdA>rkWxi5|to*?>|#D2ymKfYO8tBdE=&BA>tl z+C|h`i7*&!B!J0|MjLSk4pEgLhe%3EfKeHaNMTGy%wb%PV=~~$aa=|+JXRp@1z|#o z6AGAA;-nJzL{*If6$s}^fT?*Ds$p7#Q$$jWGa8uF;j9)!I-JvjSdStdNDU~_gUpCh z1IUdiGl0T`awDkBs3b4ef@(7%Xvo4?QM(96I~r_Yeu^eL(IXSdESS;a^ow$k7*MPy zB!!?fqrwDg3#!b7qye;KZEU26+)f_$cO}^+E9h;c6AX4RJq5C~WOe`lgR#7dLZPfs zwh~fa{1X)F3Z;iS6usH)%dPK4{AqJd2IJ+uheMKu$(j4EZvV0`yZ2U)n?Ez?jbj1J zY4!f;FUNhgu{gCU{FQbNaQX=OJ0M(!a-E~`9kb*IvkkvvOvO~~h7VQzXze@T#f{o2t_YFc(h zxj%Ak%6rrnanR@Ddb0=jO8VU8?#4p7JejrppIb{|sl)wmJG6G+zsuriUj`17TOdt#s9i0F$q?~d%$pXmK-2F+*Cr=8VxJ-M;Gv-x(XsI%+( zvD@AULXzvh>Hcb^K;-=$-Fw_y^jahLPHj<3dgy*;BlYM{mMtejTWz;1>D-c#dPcgx zAjx}dCu6_2kS-Wvh=W4w?^RbmNcmBDxP+Vki)UNXj(s1OucBZ4)$Y&iPtm&32bMy) z4;nPbD+iW0@!$P$z@P2rl}0=Ny;sV78`CSr`j^>|@(3C=BxNDGX1F}Cb)T0%m2u58 zIh#fuDRs?Ub)=$KayPitojv1O`Y+lL@0{XUwMW8AWAV1cRlMrSdseGUaFX?dF^_ea zTeq#(`b+iudmePWDLiYn`gs)TZSMr%7eO7hw2hPc+%+yC-7c8G}J zI6o?@Xi@*93j?BJg3r>9?+V_XaiY8NdBBc7>%#*_Z#fJG9Q&zd_$^%*|LlS7eHm-O z`XDzIm?QFs`-~G#@!WNljKZ`sr9EtB>8mb zpWos+7#?47{);k4=iCUVH5ts+o^36(TqcA1$E8NUdqpHBxxE@aSXWl*md&hieMqTd zo^q&;jbU%fi*XzZ4e+WytZ>}ZbZzKT48PWwQQ>!!<+WvRX6VMgJii}mJn8xDI#<{B zb?gPt%1VCy$NSp@X1K#U|82WmRNo$`V{zg|wuaN=?LohBIf=j9J};-;3~@>0CI{HB Kl+vh_g#Q6bCw^-H diff --git a/public/api/resources/welcome.css b/public/api/resources/welcome.css deleted file mode 100644 index d5b9a21c..00000000 --- a/public/api/resources/welcome.css +++ /dev/null @@ -1,25 +0,0 @@ -body{ - background:url(welcome-bg.gif) top left; - font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; - color: #000000; - margin: 0px; - font-size:13px; - padding-bottom:15px; -} -a { - color: #083772; -} -a:link { - color: #083772; - text-decoration: none; -} - -a:visited { - color: #1e4e8f; - text-decoration: none; -} - -a:hover { - text-decoration: underline; - color: #0000CC; -} \ No newline at end of file diff --git a/public/api/src/src_cartagen.js.html b/public/api/src/src_cartagen.js.html deleted file mode 100644 index ccc05083..00000000 --- a/public/api/src/src_cartagen.js.html +++ /dev/null @@ -1,405 +0,0 @@ -

        1 /* cartagen.js
      -  2  *
      -  3  * Copyright (C) 2009 Jeffrey Warren, Design Ecology, MIT Media Lab
      -  4  *
      -  5  * This file is part of the Cartagen mapping framework. Read more at
      -  6  * <http://cartagen.org>
      -  7  *
      -  8  * Cartagen is free software: you can redistribute it and/or modify
      -  9  * it under the terms of the MIT License. You should have received a copy
      - 10  * of the MIT License along with Cartagen.  If not, see
      - 11  * <http://www.opensource.org/licenses/mit-license.php>.
      - 12  */
      - 13  
      - 14 /* The following sections (until "BEGIN CARTAGEN") are not part of Cartagen. They are, however, 
      - 15  * also available under an MIT license.
      - 16  */
      - 17 
      - 18 /* **** BEGIN PROTOTYPE **** */
      - 19 
      - 20 //= require <../lib/prototype>
      - 21 
      - 22 /* **** END PROTOTYPE **** */
      - 23 
      - 24 /* **** BEGIN PROTOTYPE-GRAPHIC **** */
      - 25 
      - 26 //= require <../lib/prototype-graphic/prototype-graphic>
      - 27 //= require <../lib/prototype-graphic/src/utils>
      - 28 //= require <../lib/prototype-graphic/src/base/event_notifier>
      - 29 //= require <../lib/prototype-graphic/src/base/graphic>
      - 30 //= require <../lib/prototype-graphic/src/base/matrix>
      - 31 //= require <../lib/prototype-graphic/src/renderer/abstract>
      - 32 //= require <../lib/prototype-graphic/src/renderer/canvas>
      - 33 //= require <../lib/prototype-graphic/src/renderer/svg>
      - 34 //= require <../lib/prototype-graphic/src/renderer/vml>
      - 35 //= require <../lib/prototype-graphic/src/shape/shape>
      - 36 //= require <../lib/prototype-graphic/src/shape/rect>
      - 37 //= require <../lib/prototype-graphic/src/shape/circle>
      - 38 //= require <../lib/prototype-graphic/src/shape/ellipse>
      - 39 //= require <../lib/prototype-graphic/src/shape/group>
      - 40 //= require <../lib/prototype-graphic/src/shape/image>
      - 41 //= require <../lib/prototype-graphic/src/shape/line>
      - 42 //= require <../lib/prototype-graphic/src/shape/polyline>
      - 43 //= require <../lib/prototype-graphic/src/shape/polygon>
      - 44 //= require <../lib/prototype-graphic/src/shape/text>
      - 45 //= require <../lib/prototype-graphic/src/tools/tool>
      - 46 //= require <../lib/prototype-graphic/src/tools/drawing>
      - 47 //= require <../lib/prototype-graphic/src/tools/highlight>
      - 48 //= require <../lib/prototype-graphic/src/tools/select>
      - 49 //= require <../lib/prototype-graphic/src/tools/tool_manager>
      - 50 //= require <../lib/prototype-graphic/svg>
      - 51 
      - 52 /* **** END PROTOTYPE-GRAPHIC **** */
      - 53 
      - 54 /* **** BEGIN GEOHASH **** */
      - 55 
      - 56 //= require <../lib/geohash>
      - 57 
      - 58 /* **** END GEOHASH **** */
      - 59 
      - 60 
      - 61 /* **** BEGIN LIVEPIPE **** */
      - 62 
      - 63 //= require <../lib/context-menus/livepipe>
      - 64 //= require <../lib/context-menus/contextmenu>
      - 65 
      - 66 /* **** END LIVEPIPE **** */
      - 67 
      - 68 
      - 69 /* **** BEGIN CARTAGEN **** */
      - 70 
      - 71 //= require <config/config>
      - 72  
      - 73 /**
      - 74  * Array of all objects that should be drawn.
      - 75  * @type Feature[]
      - 76  * @deprecated
      - 77  */
      - 78 var objects = []
      - 79 
      - 80 // temp object unitl PhoneGap is initialized.
      - 81 PhoneGap = window.DeviceInfo && DeviceInfo.uuid != undefined
      - 82 
      - 83 if (typeof cartagen_base_uri == 'undefined') {
      - 84 	/**
      - 85 	 * Path to the cartagen directory. Defaults to "cartagen", which works only
      - 86 	 * if the cartagen directory is named "cartagen" and is located in the
      - 87 	 * same directoy as the current page. This should be set before Cartagen
      - 88 	 * is loaded if it needs to be changed.
      - 89 	 * 
      - 90 	 * @type String
      - 91 	 */
      - 92     cartagen_base_uri = 'cartagen'
      - 93 }
      - 94 
      - 95 // if (Prototype.Browser.MobileSafari) $('brief').hide()
      - 96 
      - 97 /**
      - 98  * @namespace
      - 99  * Namespace for methods and variables that manage Cartagen as a whole, i.e. loading
      -100  * data and creating Nodes and Ways.
      -101  */
      -102 var Cartagen = {
      -103 	/**
      -104 	 * Queue of labels to draw
      -105 	 * @type Label[]
      -106 	 */
      -107 	label_queue: [],
      -108 	/**
      -109 	 * Queue of features to be drawn at the end of draw()
      -110 	 */
      -111 	feature_queue: [],
      -112 	/**
      -113 	 * An array of scripts that will be loaded when Cartagen is initialized.
      -114 	 * 
      -115 	 * @type String[]
      -116 	 * @see Cartagen.initialize
      -117 	 */
      -118 	scripts: [],
      -119 	/**
      -120 	 * Called from HTML page to boot up Cartagen. Registers initialize to run with the given configs when window is loaded.
      -121 	 * @param {Object} configs A set of key/value pairs that will be copied to the Cartagen object
      -122 	 */
      -123 	setup: function(configs) {
      -124 		$(document).observe('dom:loaded', function() {
      -125 			$('canvas').insert('<canvas id="main"></canvas>')
      -126 			Cartagen.initialize(configs)
      -127 		})	
      -128 	},
      -129 	/**
      -130 	 * Performs initialization tasks, mainly fetching map data. This should never be called directly,
      -131 	 * rather it is intended to be called by setup
      -132 	 * @param {Object} configs A set of key/value pairs that will be copied to the Cartagen object
      -133 	 */
      -134 	initialize: function(configs) {
      -135 		Config.init(configs)
      -136 		// add a new layer for dynamic drawing (hovers, clicks)
      -137 		// $C.add('background')
      -138 		
      -139 		// load phonegap js if needed
      -140 		if (window.PhoneGap) {
      -141 			Cartagen.scripts.unshift(cartagen_base_uri + '/lib/phonegap/phonegap.base.js',
      -142 						             cartagen_base_uri + '/lib/phonegap/geolocation.js',
      -143 						             cartagen_base_uri + '/lib/phonegap/iphone/phonegap.js',
      -144 						             cartagen_base_uri + '/lib/phonegap/iphone/geolocation.js')
      -145 		}
      -146 
      -147 		// load extra scripts:
      -148 		Cartagen.load_next_script()
      -149 		
      -150 		// browser stuff:
      -151 		this.browser_check()
      -152 		
      -153 		//if (Prototype.Browser.MobileSafari) window.scrollTo(0, 1) //get rid of url bar
      -154 
      -155 		/**
      -156 		 * @name Cartagen#cartagen:init
      -157 		 * @event
      -158 		 * Fired after Cartagen loads its configuration and the contents of 
      -159 		 * Cartagen.scripts, but before any features are loaded or drawn.
      -160 		 * Note that Cartagen.scripts are loaded asynchronously, so it is not
      -161 		 * guarenteed that they will be finished loading.
      -162 		 */
      -163 		document.fire('cartagen:init')
      -164 		
      -165 		// bind event listeners
      -166 		Glop.observe('glop:draw', Cartagen.draw.bindAsEventListener(this))
      -167 		Glop.observe('glop:postdraw', Cartagen.post_draw.bindAsEventListener(this))
      -168 
      -169 		// Startup:
      -170 		Style.load_styles(Config.stylesheet) // stylesheet
      -171 		
      -172 		if (!Config.static_map) {
      -173 			Importer.get_current_plot(true)
      -174 			new PeriodicalExecuter(Glop.trigger_draw,3)
      -175 			new PeriodicalExecuter(function() { Importer.get_current_plot(false) },3)
      -176 		} else {
      -177 			Config.static_map_layers.each(function(layer_url) {
      -178 				$l('fetching '+layer_url)
      -179 				Importer.get_static_plot(layer_url)
      -180 			},this)
      -181 			// to add user-added map data... messy!
      -182 			if (Config.dynamic_layers.length > 0) {
      -183 				Config.dynamic_layers.each(function(layer_url) {
      -184 					$l('fetching '+layer_url)
      -185 					load_script(layer_url)
      -186 				},this)
      -187 			}
      -188 		}
      -189 		
      -190 		Glop.trigger_draw()
      -191 		
      -192 		/**
      -193 		 * @name cartagen:postinit
      -194 		 * @event
      -195 		 * Fired after Caragen loads map data.
      -196 		 */
      -197 		document.fire('cartagen:postinit')
      -198 	},
      -199 	/**
      -200 	 * Runs every frame in the draw() method. An attempt to isolate cartagen code from general GLOP code.
      -201 	 * Uses Geohash to draw each feature on the map.
      -202 	 * @param {Event} e The Glop draw event.
      -203 	 */
      -204 	draw: function(e) {
      -205 		e.no_draw = true
      -206 
      -207 		// if (Prototype.Browser.MobileSafari || window.PhoneGap) Config.simplify = 2
      -208 		Style.style_body()
      -209         
      -210 		// display fps if Config.fps = true
      -211 		if (Config.fps) {
      -212 			if ($('cartagen_fps')) {
      -213 				$('cartagen_fps').innerHTML = Glop.fps
      -214 			} else {
      -215 				$$('body')[0].insert({top:'<div style="position:absolute;margin:10px;font-weight:bold;background:white" id="cartagen_fps"></div>'})
      -216 			}
      -217 		}
      -218 
      -219 		// $C.canvases.keys().each(function(canvas) {
      -220 		// 	$C.open(canvas)
      -221 			$C.translate(Glop.width / 2, Glop.height / 2)
      -222 			        $C.rotate(Map.rotate)
      -223 			        $C.scale(Map.zoom, Map.zoom)
      -224 			        $C.translate(-Map.x,-Map.y)
      -225 		// })
      -226 		// 
      -227 		// $C.close()
      -228         
      -229 		Viewport.draw() //adjust viewport
      -230 		
      -231 		/**
      -232 		 *@name Cartagen#cartagen:predraw
      -233 		 *Fires just before features are drawn
      -234 		 *@event
      -235 		 */
      -236 		Glop.fire('cartagen:predraw')
      -237 		
      -238 		//Geohash lookup:
      -239 		Geohash.objects.each(function(object) {
      -240 			if (object.user_submitted) {
      -241 				Cartagen.feature_queue.push(object)
      -242 			}
      -243 			else {
      -244 				// try {
      -245 				object.draw()
      -246 				// } catch(e) {$l(e)}
      -247 			}
      -248 		})
      -249 
      -250 		this.feature_queue.each(function(item) {
      -251 			(item.draw.bind(item))()
      -252 		})
      -253 		this.feature_queue = []
      -254 		
      -255 		if (Prototype.Browser.MobileSafari || window.PhoneGap) User.mark()
      -256 	},
      -257     /**
      -258      * Runs every frame, after everything else has been done.
      -259      */
      -260     post_draw: function() {
      -261         this.label_queue.each(function(item) {
      -262             item[0].draw(item[1], item[2])
      -263         })
      -264 
      -265 		this.label_queue = []
      -266 
      -267 		/**
      -268 		 *@name Cartagen#cartagen:predraw
      -269 		 *Fires just after labels are drawn
      -270 		 *@event
      -271 		 */
      -272 		Glop.fire('cartagen:postdraw')
      -273 		
      -274 		// display percentage of features we've imported so far:
      -275 		// $C.close()
      -276 		Interface.display_loading(Importer.parse_manager.completed)
      -277 		
      -278     },
      -279     /**
      -280      * Adds the label to the list of labels to be drawn during post_draw
      -281      * @param {Label}  label The label to draw
      -282      * @param {Number} x     x-coord
      -283      * @param {Number} y     y-coord
      -284      */
      -285     queue_label: function(label, x, y) {
      -286         this.label_queue.push([label, x, y])
      -287     },
      -288 	/**
      -289 	 * Show alert if it's IE.
      -290 	 */
      -291 	browser_check: function() {
      -292 		if ($('browsers')) {
      -293 			$('browsers').absolutize();
      -294 			$('browsers').style.top = "100px";
      -295 			$('browsers').style.margin = "0 auto";
      -296 			if (Prototype.Browser.IE) $('browsers').show();
      -297 		}
      -298 	},
      -299 	/**
      -300 	 * Repositions Cartagen to center on lat,lon with given zoom level
      -301      * @param {Number} lat     latitude to center the map on
      -302      * @param {Number} lon     longitude to center the map on
      -303      * @param {Number} zoom_level     zoom_level to set the map to
      -304 	 */
      -305 	go_to: function(lat,lon,zoom_level) {
      -306 		Map.zoom = zoom_level
      -307 		Map.lat = lat
      -308 		Map.lon = lon
      -309 		Map.x = Projection.lon_to_x(Map.lon)
      -310 		Map.y = Projection.lat_to_y(Map.lat)
      -311 	},
      -312 	/**
      -313 	 * Searches all objects by tags, and sets highlight=true for all matches.
      -314 	 * 
      -315 	 * @param {Object} query The tag to search for
      -316 	 */
      -317 	highlight: function(query) {
      -318 		Geohash.objects.each(function(object) {
      -319 			object.highlight = false
      -320 			if (query != "" && object.tags && object instanceof Way) {
      -321 				object.tags.each(function(tag) {
      -322 					if (tag.key.toLowerCase().match(query.toLowerCase()) || tag.value.toLowerCase().match(query.toLowerCase())) {
      -323 						object.highlight = true
      -324 					}
      -325 				})
      -326 				if (object.user && object.user.toLowerCase().match(query.toLowerCase())) object.highlight = true
      -327 				if (object.description && object.description.toLowerCase().match(query.toLowerCase())) object.highlight = true
      -328 			}
      -329 		})
      -330 	},
      -331 	/**
      -332 	 * Shows the live GSS editor. Generally only for cartgen.org.
      -333 	 */
      -334 	show_gss_editor: function() {
      -335 		$('description').hide()
      -336 		$('brief').style.width = '28%'
      -337 		$('brief_first').style.width = '92%';
      -338 		$('gss').toggle()
      -339 		Config.live_gss = !Config.live_gss
      -340 	},
      -341 	/**
      -342 	 * Sends user to an image of the current canvas
      -343 	 */
      -344 	redirect_to_image: function() {
      -345 		try {
      -346 				window.open($C.to_data_url())
      -347 			} catch(e) {
      -348 				alert("Sorry, this stylesheet uses remote images; JavaScript does not allow these to be used to generate an image.")
      -349 		}
      -350 	},
      -351 	/**
      -352 	 * Loads each script in scripts array, sequentially.
      -353 	 * Requires a load_next_script() call at the end of each
      -354 	 * dependent script to trigger the next one.
      -355 	 */
      -356 	load_next_script: function() {
      -357 		$l("loading: "+Cartagen.scripts[0])
      -358 		if (Cartagen.scripts.length > 0) {
      -359 			Cartagen.load_script(Cartagen.scripts.splice(0,1)[0])
      -360 		}
      -361 	},
      -362 	/**
      -363 	 * Loads a script into <script src="" /> tags, no cross-domain limits.
      -364 	 * @param {String} script Path to the script
      -365 	 */
      -366 	load_script: function(script) {
      -367 		$$('head')[0].insert(new Element('script', { 
      -368 			'src': script, 
      -369 			'type': 'text/javascript', 
      -370 			'charset': 'utf-8', 
      -371 			evalJSON: 'force' 
      -372 		}));
      -373 	},
      -374 	/**
      -375 	 * Loads data from a local KML file and dumps it into the Geohash object.
      -376 	 * @param {String} url Path to the data file
      -377 	 */
      -378 	import_kml: function(url) {
      -379 		new Ajax.Request(url,{
      -380 			method: 'get',
      -381 			onComplete: function(result) {
      -382 				$l('completed load of KML')
      -383 				response = result
      -384 				$l(xml2json.xml_to_object(result.responseText))
      -385 				$l('completed import of KML')
      -386 			}
      -387 		})
      -388 		
      -389 	}
      -390 }
      -391 
      -392 //= require <util/util>
      -393 //= require <config/style>
      -394 //= require <data/feature>
      -395 //= require <glop/glop>
      -396 //= require <interface/interface>
      -397 //= require <mapping/map>
      -398 //= require <warper/warper>
      \ No newline at end of file diff --git a/public/api/src/src_config_config.js.html b/public/api/src/src_config_config.js.html deleted file mode 100644 index e002973d..00000000 --- a/public/api/src/src_config_config.js.html +++ /dev/null @@ -1,83 +0,0 @@ -
        1 var Config = {
      -  2 	// See http://wiki.cartagen.org/wiki/show/CustomizingCartagen for info on the config options
      -  3 	stylesheet: "/style.gss",
      -  4 	live: false,
      -  5 	powersave: true,
      -  6 	zoom_out_limit: 0.02,
      -  7 	simplify: 1,
      -  8 	padding_top: 0,
      -  9 	padding_left: 0,
      - 10 	live_gss: false,
      - 11 	static_map: true,
      - 12 	static_map_layers: ["/static/rome/park.js"],
      - 13 	/**
      - 14 	 * Array of files to load after Cartagen's initialization
      - 15 	 * @deprecated
      - 16 	 */
      - 17 	dynamic_layers: [],
      - 18 	lat: 41.89685,
      - 19 	lng: 12.49715,
      - 20 	fullscreen: false,
      - 21 	debug: false,
      - 22 	load_user_features: false,
      - 23 	aliases: $H({
      - 24 		stylesheet: ['gss'],
      - 25 		zoom_level: ['zoom']
      - 26 	}),
      - 27 	handlers: $H({
      - 28 		debug: function(value) {
      - 29 			$D.enable()
      - 30 			Geohash.grid = true
      - 31 		},
      - 32 		grid: function(value) {
      - 33 			Geohash.grid = true
      - 34 			if (Object.isString(value)) Geohash.grid_color = value
      - 35 		},
      - 36 		fullscreen: function(value) {
      - 37 			if ($('brief')) $('brief').hide()
      - 38 		},
      - 39 		static_map_layers: function(value) {
      - 40 			if (typeof value == "string") {
      - 41 				Config.static_map_layers = value.split(',')
      - 42 			}
      - 43 		},
      - 44 		zoom_level: function(value) {
      - 45 			Map.zoom = value
      - 46 		}
      - 47 	}),
      - 48 	init: function(config) {
      - 49 		// stores passed configs and query string configs in the Config object
      - 50 		Object.extend(this, config)
      - 51 		Object.extend(this, this.get_url_params())
      - 52 		
      - 53 		this.apply_aliases()
      - 54 		
      - 55 		this.run_handlers()
      - 56 	},
      - 57 	get_url_params: function() {
      - 58 		return window.location.href.toQueryParams()
      - 59 	},
      - 60 	apply_aliases: function() {
      - 61 		this.aliases.each(function(pair) {
      - 62 			pair.value.each(function(value) {
      - 63 				if (this[value]) this[pair.key] = this[value]
      - 64 			}, this)
      - 65 		}, this)
      - 66 	},
      - 67 	run_handlers: function() {
      - 68 		this.handlers.each(Config.run_handler)
      - 69 	},
      - 70 	run_handler: function(handler) {
      - 71 		if (Config[handler.key]) handler.value(Config[handler.key])
      - 72 	}
      - 73 }
      - 74 
      - 75 
      - 76 
      \ No newline at end of file diff --git a/public/api/src/src_config_style.js.html b/public/api/src/src_config_style.js.html deleted file mode 100644 index 35d5d080..00000000 --- a/public/api/src/src_config_style.js.html +++ /dev/null @@ -1,236 +0,0 @@ -
        1 /**
      -  2  * @namespace Loads GSS stylesheets and applies styles to features.
      -  3  */
      -  4 var Style = {
      -  5 	/**
      -  6 	 * Whether any dynamic styles have been recalculated. Triggers draw.
      -  7 	 * @type Boolean
      -  8 	 */
      -  9 	styles_changed: false,
      - 10 	properties: ['fillStyle', 'pattern', 'strokeStyle', 'opacity', 'lineWidth', 'outlineColor',
      - 11 	             'outlineWidth', 'radius', 'hover', 'mouseDown', 'distort', 'menu', 'image'],
      - 12 
      - 13 	label_properties: ['text', 'fontColor', 'fontSize', 'fontScale', 'fontBackground',
      - 14 		               'fontRotation'],
      - 15 	/**
      - 16 	 * Storage for loaded styles
      - 17 	 * @type Object (GSS)
      - 18 	 */
      - 19 	styles: {
      - 20 		body: {
      - 21 			// fillStyle: "#eee",
      - 22 			fontColor: "#eee",
      - 23 			fontSize: 12,
      - 24 			fontRotation: 0,
      - 25 			opacity: 1
      - 26 		}
      - 27 	},
      - 28 	/**
      - 29 	 * Applies the global "body" styles
      - 30 	 */
      - 31 	 style_body: function() {
      - 32 		if (Style.styles.body.fillStyle) $C.fill_style(Style.styles.body.fillStyle)
      - 33 		if (Style.styles.body.opacity) $C.opacity(Style.styles.body.opacity)
      - 34 		
      - 35 		if (Style.styles.body.pattern) {
      - 36 			if (!Style.styles.body.pattern.src) {
      - 37 				var value = Style.styles.body.pattern
      - 38 				Style.styles.body.pattern = new Image()
      - 39 				Style.styles.body.pattern.src = Object.value(value)
      - 40 			}
      - 41 			$C.open('main')
      - 42 			$C.fill_pattern(Style.styles.body.pattern, 'repeat')
      - 43 			$C.rect(0,0,Glop.width,Glop.height)
      - 44 		}
      - 45 		$C.close()
      - 46 	},
      - 47 	/**
      - 48 	 * Take styles from GSS and set appropriate properties of a feature
      - 49 	 * @param {Object} feature  Feature to set properties of
      - 50 	 * @param {Object} selector A set of default properties to set first, before parsing styles
      - 51 	 *                          that apply to tags of the feature.
      - 52 	 */
      - 53 	parse_styles: function(feature,selector) {
      - 54 		(this.properties.concat(this.label_properties)).each(function(property) {
      - 55 			var val = null
      - 56 			if (selector) val = selector[property]
      - 57 
      - 58 			if (Style.styles[feature.name] && Style.styles[feature.name][property])
      - 59 				val = this.extend_value(val, Style.styles[feature.name][property])
      - 60 
      - 61 			feature.tags.each(function(tag) {
      - 62 				if (Style.styles[tag.key] && Style.styles[tag.key][property]) {
      - 63 					val = this.extend_value(val, Style.styles[tag.key][property])
      - 64 				}
      - 65 
      - 66 				if (Style.styles[tag.value] && Style.styles[tag.value][property]) {
      - 67 					val = this.extend_value(val, Style.styles[tag.value][property])
      - 68 				}
      - 69 			}, this)
      - 70 
      - 71 			if (val) {
      - 72 				var f = feature
      - 73 				if (this.label_properties.include(property)) {
      - 74 					f = feature.label
      - 75 				}
      - 76 
      - 77 				if (val.gss_update_interval) {
      - 78 					Style.create_refresher(f, property, val, val.gss_update_interval)
      - 79 				}
      - 80 				else {
      - 81 					f[property] = Object.value(val, feature)
      - 82 				}
      - 83 			}
      - 84 		}, this)
      - 85 	},
      - 86 	/**
      - 87 	 * If old_val and new_val are arrays, returns the two arrays, merged. Else, returns
      - 88 	 * new_val.
      - 89 	 */
      - 90 	extend_value: function(old_val, new_val) {
      - 91 		if (old_val instanceof Array && new_val instanceof Array) {
      - 92 			return old_val.concat(new_val)
      - 93 		}
      - 94 		
      - 95 		return new_val
      - 96 	},
      - 97 	/**
      - 98 	 * Creates a periodical executer that updates a property
      - 99 	 * @param {Feature}  feature   Feature to update
      -100 	 * @param {String}   property  Property to update
      -101 	 * @param {Function} generator Fuction that generated the value for the property
      -102 	 * @param {Number}   interval  Number of seconds between updates
      -103 	 */
      -104 	create_refresher: function(feature, property, generator, interval) {
      -105 		if(!feature.style_generators) feature.style_generators = {}
      -106 		if(!feature.style_generators.executers) feature.style_generators.executers = {}
      -107 
      -108 		feature.style_generators[property] = generator
      -109 
      -110 		Style.refresh_style(feature, property)
      -111 		feature.style_generators.executers[property] = new PeriodicalExecuter(function() {
      -112 			Style.refresh_style(feature, property)
      -113 		}, interval)
      -114 	},
      -115 	/**
      -116 	 * Refreshes a property from its generator
      -117 	 * @param {Feature} feature  Feature to update
      -118 	 * @param {String}  property Property to update
      -119 	 */
      -120 	refresh_style: function(feature, property) {
      -121 		Style.styles_changed = true
      -122 		feature[property] = Object.value(feature.style_generators[property], feature)
      -123 	},
      -124 	/**
      -125 	 * Loads a remove stylesheet.
      -126 	 * @param {String} stylesheet_url URL of stylesheet
      -127 	 */
      -128 	load_styles: function(stylesheet_url) {
      -129 		var orig_url = stylesheet_url
      -130 		$l('loading '+stylesheet_url)
      -131 		if (stylesheet_url.slice(0,4) == "http") {
      -132 			stylesheet_url = "/utility/proxy?url="+stylesheet_url
      -133 		}
      -134 		new Ajax.Request(stylesheet_url,{
      -135 			method: 'get',
      -136 			onComplete: function(result) {
      -137 				$l('applying '+stylesheet_url)
      -138 				Style.apply_gss(result.responseText)
      -139 				Glop.fire('styles:loaded')
      -140 				Glop.fire('styles:loaded:'+orig_url)
      -141 			}
      -142 		})
      -143 	},
      -144 	/**
      -145 	 * Cascades a set of styles over another set. More or less merges the two.
      -146 	 * @param {Object} old_styles Existing styles over which to cascade
      -147 	 * @param {Object} new_styles Additional styles to cascade over old ones
      -148 	 */
      -149 	cascade: function(old_styles,new_styles) {
      -150 		// overwrite existing selectors, read as hash:
      -151 		$l('cascading')
      -152 		// $l(old_styles)
      -153 		// $l(new_styles)
      -154 		$l('both')
      -155 		$H(old_styles).each(function(selector) {
      -156 			if (new_styles[selector.key]) {
      -157 				$H(selector.value).each(function(style) {
      -158 					if (new_styles[selector.key][style.key]){
      -159 						old_styles[selector.key][style.key] = new_styles[selector.key][style.key]
      -160 					}
      -161 				})
      -162 			}
      -163 			// add new styles
      -164 			// $l(selector.key)
      -165 			if (new_styles[selector.key]) {
      -166 				// $l(selector.key)
      -167 				$H(new_styles[selector.key]).each(function(new_style) {
      -168 					old_styles[selector.key][new_style.key] = new_style.value
      -169 				})
      -170 			}
      -171 		})
      -172 		// add new selectors
      -173 		$H(new_styles).each(function(style) {
      -174 			if (!old_styles[style.key]) old_styles[style.key] = style.value
      -175 		})
      -176 	},
      -177 	/**
      -178 	 * Copies each style from a gss string into the Styles.styles object, 
      -179 	 * which is the master 'merged' style storage for the map
      -180 	 * @param {String} gss_string
      -181 	 * @param {Boolean} force_update Whether to force all objects in the 
      -182 	 * 			map to refresh with the new styles
      -183 	 */
      -184 	apply_gss: function(gss_string, force_update) {
      -185 		$l('applying gss')
      -186 		var styles = ("{"+gss_string+"}").evalJSON()
      -187 		
      -188 		if (styles.debug) {
      -189 			if (Config.debug) {
      -190 				Object.deep_extend(styles, styles.debug)
      -191 			}
      -192 			delete styles.debug
      -193 		}
      -194 		
      -195 		// convert to a hash and iterate over:
      -196 		$H(styles).each(function(style) {
      -197 			if (style.value.refresh) {
      -198 				$H(style.value.refresh).each(function(pair) {
      -199 					style.value[pair.key].gss_update_interval = pair.value
      -200 				})
      -201 			}
      -202 			if (style.value.menu) {
      -203 				if (style.key == "body") {
      -204 					$H(style.value.menu).each(function(pair) {
      -205 						ContextMenu.add_static_item(pair.key, pair.value)
      -206 					})
      -207 				} else {
      -208 					$H(style.value.menu).each(function(pair) {
      -209 						style.value.menu[pair.key] = ContextMenu.add_cond_item(pair.key, pair.value)
      -210 					})
      -211 					style.value.menu = Object.values(style.value.menu)
      -212 				}
      -213 			}
      -214 		})
      -215 		Style.cascade(Style.styles,styles)
      -216 
      -217 		if ($('gss_textarea')) {
      -218 			$('gss_textarea').value = gss_string
      -219 		}
      -220 		
      -221 		if (force_update) {
      -222 			Geohash.each(function(o) {
      -223 				o.refresh_styles()
      -224 			})
      -225 		}
      -226 	}
      -227 }
      -228 
      -229 
      \ No newline at end of file diff --git a/public/api/src/src_data_coastline.js.html b/public/api/src/src_data_coastline.js.html deleted file mode 100644 index 83927354..00000000 --- a/public/api/src/src_data_coastline.js.html +++ /dev/null @@ -1,297 +0,0 @@ -
        1 var Coastline = {
      -  2 	/**
      -  3 	 * 
      -  4 	 */
      -  5 	initialize: function() {
      -  6 		// Cartagen.observe('predraw',		'draw',this)
      -  7 		// Cartagen.observe('postdraw',		'cleanup',this)
      -  8 		// Cartagen.observe('initialize',	'setup',this)
      -  9 
      - 10 		// Cartagen.observe({
      - 11 		// 	predraw: 'a',
      - 12 		// 	draw: 'b',
      - 13 		// 	postdraw: 'c'
      - 14 		// }, this)
      - 15 		
      - 16 		Glop.observe('cartagen:predraw', Coastline.draw.bindAsEventListener(this))
      - 17 	},
      - 18 	/**
      - 19 	 * Array of coastline ways to be assembled occasionally into coastline 'collected way' relations
      - 20 	 */
      - 21 	coastlines: [],
      - 22 	/**
      - 23 	 * Array of nodes of coastlines within the viewport, combining multiple 
      - 24 	 * coastlines and the viewport corners where applicable; used to 
      - 25 	 * 'walk' around the viewport. Solves peninsula/estuary problem where 
      - 26 	 * multiple unconnected coastlines enter the viewport and must be reconciled
      - 27 	 */
      - 28 	coastline_nodes: [],
      - 29 	/**
      - 30 	 * 
      - 31 	 */
      - 32 	assembled_coastline: [],
      - 33 	/**
      - 34 	 * 
      - 35 	 */
      - 36 	draw: function() {
      - 37 		Coastline.assembled_coastline = []
      - 38 		Feature.relations.values().each(function(object) {
      - 39 			// invent a better way to trigger collect_nodes, based on Viewport change:
      - 40 			// if (Glop.frame == 0 || Glop.frame % 30 == 0) object.collect_nodes()
      - 41 			$l(object.id+' relation')
      - 42 			object.collect_nodes()
      - 43 			if (object.coastline_nodes.length > 0) Coastline.assembled_coastline.push([object.coastline_nodes,[object.entry_angle,object.exit_angle]])
      - 44 		})
      - 45 	
      - 46 		// if we have any coastline relations to run through and draw:
      - 47 		if (Coastline.assembled_coastline.length > 0) {
      - 48 			Coastline.assembled_coastline.sort(Coastline.sort_coastlines_by_angle)
      - 49 
      - 50 			$C.begin_path()
      - 51 		
      - 52 			var start_corner,end_corner,start_angle,end_angle
      - 53 			Coastline.assembled_coastline.each(function(coastline,index) {
      - 54 				coastline.push(Viewport.nearest_corner(coastline[0].first()[0],coastline[0].first()[1]))
      - 55 				coastline.push(Viewport.nearest_corner(coastline[0].last()[0],coastline[0].last()[1]))
      - 56 			})
      - 57 		
      - 58 			var corners = []
      - 59 		
      - 60 			Coastline.assembled_coastline.each(function(coastline,index) { 
      - 61 				//coastline[2] = child start_corner ([x,y])
      - 62 				//coastline[3] = child end_corner ([x,y])
      - 63 				corners.push(coastline[2][2])
      - 64 				$C.move_to(coastline[2][0],coastline[2][1])
      - 65 			
      - 66 				// $l(coastline[0].length+':'+coastline[2][2]+'=start '+coastline[0].first()[0]+','+coastline[0].first()[1]+'=first')
      - 67 			
      - 68 				// $C.save()
      - 69 				// $C.opacity(0.4)
      - 70 				// $C.fill_style('green')
      - 71 				// $C.rect(coastline[2][0]-50,coastline[2][1]-50,100,100)
      - 72 				// $C.restore()
      - 73 			
      - 74 				coastline[0].each(function(node,c_index) { 
      - 75 					$C.line_to(node[0],node[1])
      - 76 					// $C.save()
      - 77 					// $C.fill_style('green')
      - 78 					// $C.rect(node[0]-5,node[1]-5,10,10)
      - 79 					// $C.draw_text("Helvetica",20,'white',node[0]-10,node[1]-10,parseInt((coastline[1][0]*180)/Math.PI)+','+index+':'+c_index)
      - 80 					// $C.save()
      - 81 				}) 
      - 82 				$C.line_to(coastline[3][0],coastline[3][1])
      - 83 			
      - 84 				// if there are remaining coastlines, clockwise of this one:
      - 85 				if (Coastline.assembled_coastline[index+1]) {
      - 86 					// walk back to the start point before going on to the next:
      - 87 					if (index != Coastline.assembled_coastline.length-1) {
      - 88 						corners.push(coastline[3][2],coastline[2][2])
      - 89 						$l('walking to beginning!: '+coastline[3][2]+"/"+coastline[2][2]+':'+Coastline.walk(coastline[3][2],coastline[2][2],false).inspect())
      - 90 						Coastline.walk(coastline[3][2],coastline[2][2],false).each(function(n) {
      - 91 							$C.line_to(n[0],n[1])
      - 92 						})
      - 93 					}
      - 94 					// walk on to the next coastline:
      - 95 					if (coastline[2][2] != Coastline.assembled_coastline[index+1][2][2]) {
      - 96 						corners.push(coastline[2][2],Coastline.assembled_coastline[index+1][2][2])
      - 97 						$l('walking to next!: '+coastline[2][2]+"/"+Coastline.assembled_coastline[index+1][2][2]+':'+Coastline.walk(coastline[2][2],Coastline.assembled_coastline[index+1][2][2]).inspect())
      - 98 						Coastline.walk(coastline[2][2],Coastline.assembled_coastline[index+1][2][2]).each(function(n) {
      - 99 							$C.line_to(n[0],n[1])
      -100 						})
      -101 					}
      -102 				}
      -103 
      -104 				if (index == 0) {
      -105 					start_corner = coastline[2]
      -106 					start_angle = coastline[1][0]
      -107 				}
      -108 				if (index == Coastline.assembled_coastline.length-1) {
      -109 					end_corner = coastline[3]
      -110 					end_angle = coastline[1][1]
      -111 				}
      -112 			},this)
      -113 
      -114 			// $C.save()
      -115 			// $C.opacity(0.4)
      -116 			// $C.fill_style('yellow')
      -117 			// $C.rect(end_corner[0]-35,end_corner[1]-35,70,70)
      -118 			// $C.restore()
      -119 			// 
      -120 			// $C.save()
      -121 			// $C.opacity(1)
      -122 			// $C.fill_style('purple')
      -123 			// $C.rect(start_corner[0]-20,start_corner[1]-20,40,40)
      -124 			// $C.restore()
      -125 		
      -126 		
      -127 			// if 
      -128 			// walk back to the start point ONLY if the start angle is less than the end angle.
      -129 			// it's not enough to know they're both at corner 1; did it turn clockwise or not?
      -130 			// $l('angles: end:'+end_corner[2]+'/'+parseInt((end_angle*180)/Math.PI) +', start:'+start_corner[2]+'/'+ parseInt((start_angle*180)/Math.PI))
      -131 				// $C.save()
      -132 				// $C.opacity(1)
      -133 				// $C.fill_style('red')
      -134 				// $C.translate(Map.x,Map.y)
      -135 				// $C.rotate(end_angle)
      -136 				// $C.rect(0,-100,4,100)
      -137 				// $C.rotate(-end_angle)
      -138 				// $C.fill_style('green')
      -139 				// $C.rotate(start_angle)
      -140 				// $C.rect(0,-100,4,100)
      -141 				// $C.rotate(-start_angle)
      -142 				// $C.translate(-Map.x,-Map.y)
      -143 				// $C.restore()
      -144 			if ((end_corner[2] == start_corner[2]) && (end_angle < start_angle)) {
      -145 				// $l('no-walk!!')
      -146 			} else if (end_corner[2] != start_corner[2] || end_angle > start_angle) {
      -147 				corners.push(end_corner[2],start_corner[2])
      -148 				$l('walking around!: '+end_corner[2]+"/"+start_corner[2]+':'+Coastline.walk(end_corner[2],start_corner[2]).inspect())
      -149 				Coastline.walk(end_corner[2],start_corner[2]).each(function(n) {
      -150 					$C.line_to(n[0],n[1])
      -151 				})
      -152 			}
      -153 			$l('ending: '+corners)
      -154 		
      -155 			var coastline_style = Style.styles.relation
      -156 			if (coastline_style.lineWidth) $C.line_width(coastline_style.lineWidth)
      -157 			if (coastline_style.strokeStyle) $C.stroke_style(coastline_style.strokeStyle)
      -158 			if (coastline_style.opacity) $C.opacity(coastline_style.opacity)
      -159 			$C.stroke()
      -160 			if (coastline_style.pattern) {
      -161 				if (!coastline_style.pattern.src) {
      -162 					var value = coastline_style.pattern
      -163 					coastline_style.pattern = new Image()
      -164 					coastline_style.pattern.src = value
      -165 				}
      -166 				$C.fill_pattern(coastline_style.pattern, 'repeat')	
      -167 			} else $C.fill_style(coastline_style.fillStyle)
      -168 			$C.fill()
      -169 		}
      -170 	},
      -171 	refresh_coastlines: function() {
      -172 		// flush coastline collected_ways relations and re-generate them with new coastlines:
      -173 		Coastline.coastlines.each(function(c){c.neighbors = []})
      -174 		Coastline.coastlines.each(function(coastline_a) {
      -175 			Coastline.coastlines.each(function(coastline_b) {
      -176 				if (coastline_a.id != coastline_b.id) {
      -177 					if (coastline_a.nodes.last().id == coastline_b.nodes.first().id) {
      -178 						coastline_a.neighbors[1] = coastline_b
      -179 						coastline_b.neighbors[0] = coastline_a
      -180 					}
      -181 				}
      -182 			})
      -183 		})
      -184 		
      -185 		var coastline_chains = Coastline.coastlines.clone()
      -186 		Feature.relations = new Hash()
      -187 		while (coastline_chains.length > 0) {
      -188 			var data = {
      -189 				members: coastline_chains.first().chain([],true,true)
      -190 			}
      -191 			// remove chain members from coastline chain:
      -192 			data.members.each(function(member) {
      -193 				coastline_chains.each(function(coastline,index) {
      -194 					if (coastline.id == member.id) coastline_chains.splice(index,1)
      -195 				})
      -196 			})
      -197 			new Relation(data)
      -198 		}
      -199 		$l('refreshed coastlines')
      -200 		Feature.relations.each(function(r) {
      -201 			$l(r.inspect())
      -202 		})
      -203 	},
      -204 	/**
      -205 	 * Returns an array of points (corners) along the edge of the Viewport from the start param to the end param.
      -206 	 * Params are integers where corner is 0,1,2,3 clockwise from top left. Returns as [[x,y],[x,y]...]
      -207 	 * @param {Array} start The corner to begin the walk.
      -208 	 * @param {Array} end The corner to walk to.
      -209 	 */
      -210 	walk: function(start,end,clockwise) {
      -211 		if (Object.isUndefined(clockwise)) clockwise = true
      -212 		$l(start+'/'+end+',clockwise '+clockwise+': '+this.walk_n(start,end,clockwise))
      -213 		var nodes = []
      -214 		var bbox = Viewport.full_bbox()
      -215 		// if (clockwise == false) bbox = bbox.reverse()
      -216 		// this doesn't make sense:
      -217 		if (clockwise) {
      -218 			if (start >= end) var slice_end = bbox.length
      -219 			else var slice_end = end+1
      -220 			var cycle = bbox.slice(start,slice_end) // path clockwise to walk around the viewport
      -221 			if ((start > end) || (start == end && start > 0)) cycle = cycle.concat(bbox.slice(0,end+1)) //loop around from 3 back to 0
      -222 		} else {
      -223 			//this is all fucked up:
      -224 			if (start <= end) var slice_end = bbox.length
      -225 			else var slice_end = start+1
      -226 			// if (end > 0) end -= 1
      -227 			var cycle = bbox.slice(end,slice_end) // path clockwise to walk around the viewport
      -228 			if ((start < end) || (start == end && end > 0)) cycle = cycle.concat(bbox.slice(0,start+1)) //loop around from 3 back to 0
      -229 			cycle = cycle.reverse()
      -230 		}
      -231 		cycle.each(function(coord,index) {
      -232 			nodes.push([coord[0],coord[1]])
      -233 			// if (clockwise) nodes.push([coord[0],coord[1]])
      -234 			// else nodes.unshift([coord[0],coord[1]])
      -235 
      -236 			// $C.line_to(coord[0],coord[1])
      -237 
      -238 			// $C.save()
      -239 			// $C.opacity(1)
      -240 			// $C.fill_style('black')
      -241 			// $C.rect(coord[0]-15,coord[1]-15,30,30)
      -242 			// $C.draw_text("Helvetica",40,'white',coord[0]-20,coord[1]-20,index)
      -243 			// $C.restore()
      -244 		})
      -245 		return nodes
      -246 	},
      -247 	walk_n: function(start,end,clockwise) {
      -248 		if (Object.isUndefined(clockwise)) clockwise = true
      -249 		var nodes = []
      -250 		var bbox = [0,1,2,3]//Viewport.full_bbox()
      -251 		// if (clockwise == false) bbox = bbox.reverse()
      -252 		// this doesn't make sense:
      -253 		if (clockwise) {
      -254 			if (start >= end) var slice_end = bbox.length
      -255 			else var slice_end = end+1
      -256 			var cycle = bbox.slice(start,slice_end) // path clockwise to walk around the viewport
      -257 			if ((start > end) || (start == end && start > 0)) cycle = cycle.concat(bbox.slice(0,end+1)) //loop around from 3 back to 0
      -258 		} else {
      -259 			//this is all fucked up:
      -260 			if (start <= end) var slice_end = bbox.length
      -261 			else var slice_end = start+1
      -262 			// if (end > 0) end -= 1
      -263 			var cycle = bbox.slice(end,slice_end) // path clockwise to walk around the viewport
      -264 			if ((start < end) || (start == end && end > 0)) cycle = cycle.concat(bbox.slice(0,start+1)) //loop around from 3 back to 0
      -265 			cycle = cycle.reverse()
      -266 		}
      -267 		cycle.each(function(coord,index) {
      -268 			// nodes.push([coord[0],coord[1]])
      -269 			nodes.push(coord)
      -270 			// if (clockwise) nodes.push([coord[0],coord[1]])
      -271 			// else nodes.unshift([coord[0],coord[1]])
      -272 
      -273 			// $C.line_to(coord[0],coord[1])
      -274 
      -275 			// $C.save()
      -276 			// $C.opacity(1)
      -277 			// $C.fill_style('black')
      -278 			// $C.rect(coord[0]-15,coord[1]-15,30,30)
      -279 			// $C.draw_text("Helvetica",40,'white',coord[0]-20,coord[1]-20,index)
      -280 			// $C.restore()
      -281 		})
      -282 		return nodes
      -283 	},
      -284 	/**
      -285 	 * Sorts coastlines a and b from assembled_coastlines by angle of entry
      -286 	 */
      -287 	sort_coastlines_by_angle: function(a,b) { return (a[1][0] - b[1][0]) }
      -288 }
      -289 
      -290 document.observe('cartagen:init', Coastline.initialize.bindAsEventListener(Coastline))
      \ No newline at end of file diff --git a/public/api/src/src_data_feature.js.html b/public/api/src/src_data_feature.js.html deleted file mode 100644 index c938a136..00000000 --- a/public/api/src/src_data_feature.js.html +++ /dev/null @@ -1,143 +0,0 @@ -
        1 /**
      -  2  * A abstract base class for map features - nodes and ways. Should not be
      -  3  * instantiated.
      -  4  * @class
      -  5  */
      -  6 var Feature = Class.create(
      -  7 /** 
      -  8  * @lends Feature.prototype 
      -  9  */
      - 10 {
      - 11 	/**
      - 12 	 * Sets defaults for tags, fillStyle, fontColor fontSize, and fontRotation
      - 13 	 * @constructs
      - 14 	 */
      - 15 	initialize: function() {
      - 16 		this.tags = new Hash()
      - 17 		this.apply_default_styles()
      - 18 		/**
      - 19 		 * Label for this way
      - 20 		 * @type Label
      - 21 		 */
      - 22 		this.label = new Label(this)
      - 23 	},
      - 24 	/**
      - 25 	 * Draws this feature using shape(). Saves/restores the canvas and applies styles. Queues
      - 26 	 * this feature's label in the label drawing queue.
      - 27 	 */
      - 28 	draw: function() {
      - 29 		// Formerly drew separately to different canvases. 
      - 30 		// That functionality has been put off for now.
      - 31 		//
      - 32 		// if (this.hover || this.mouseDown) {
      - 33 		// 	// $l('main')
      - 34 		// 	$C.open('main')
      - 35 		// } else {
      - 36 		// 	// $l('background')
      - 37 		// 	$C.open('background')
      - 38 		// }
      - 39 		// $C.save()
      - 40 
      - 41 		// apply styles
      - 42 
      - 43 		$C.fill_style(this.fillStyle)
      - 44 
      - 45 		if (this.pattern) {
      - 46 			if (!this.pattern.src) {
      - 47 				var value = this.pattern
      - 48 				this.pattern = new Image()
      - 49 				this.pattern.src = value
      - 50 			}
      - 51 			$C.fill_pattern(this.pattern, 'repeat')
      - 52 		}
      - 53 
      - 54 		$C.stroke_style(this.strokeStyle)
      - 55 		$C.opacity(this.opacity)
      - 56 		$C.line_width(this.lineWidth)
      - 57 
      - 58 		// draw the shape
      - 59 		this.shape()
      - 60 		$C.restore()
      - 61 		// $C.close()
      - 62 		// draw label if we're zoomed in enough
      - 63 		if (Map.zoom > 0.3) {
      - 64 			Cartagen.queue_label(this.label, this.x, this.y)
      - 65 		}
      - 66 	},
      - 67 	/**
      - 68 	 * By default, does nothing, but can be overriden to perform mouseDown and hover styling
      - 69 	 */
      - 70 	style: Prototype.emptyFunction,
      - 71 	/**
      - 72 	 * Abstract method that should be overridden to draw the feature.
      - 73 	 */
      - 74 	shape: function() {
      - 75 		$D.warn('Feature#shape should be overriden')
      - 76 	},
      - 77 	apply_hover_styles: function() {
      - 78 		$H(this.hover).each(function(pair) {
      - 79 			if (this[pair.key]) this._unhovered_styles[pair.key] = this[pair.key]
      - 80 			this[pair.key] = pair.value
      - 81 		}, this)
      - 82 	},
      - 83 	remove_hover_styles: function() {
      - 84 		Object.extend(this, this._unhovered_styles)
      - 85 	},
      - 86 	apply_click_styles: function() {
      - 87 		$H(this.mouseDown).each(function(pair) {
      - 88 			if (this[pair.key]) this._unclicked_styles[pair.key] = this[pair.key]
      - 89 			this[pair.key] = pair.value
      - 90 		}, this)
      - 91 	},
      - 92 	remove_click_styles: function() {
      - 93 		Object.extend(this, this._unclicked_styles)
      - 94 	},
      - 95 	apply_default_styles: function() {
      - 96 		this.fillStyle = 'rgba(0,0,0,0)'
      - 97 		this.fontColor = '#eee'
      - 98 		this.fontSize = 12
      - 99 		this.fontRotation = 0
      -100 		this.opacity = 1
      -101 		this.strokeStyle = 'black'
      -102 		this.lineWidth = 6
      -103 		this._unhovered_styles = {}
      -104 		this._unclicked_styles = {}
      -105 	},
      -106 	get_type: function() {
      -107 		return this.__type__
      -108 	}
      -109 })
      -110 
      -111 Object.extend(Feature, {
      -112 	/**
      -113 	 * Hash of node id => node
      -114 	 * @type Hash
      -115 	 */
      -116 	nodes: new Hash(),
      -117 	/**
      -118 	 * Hash of way id => way
      -119 	 * @type Way
      -120 	 */
      -121 	ways: new Hash(),
      -122 	/**
      -123 	 * Hash of relation id => relation
      -124 	 * @type Relation
      -125 	 */
      -126 	relations: new Hash()
      -127 })
      -128 
      -129 //= require "types/node"
      -130 //= require "types/way"
      -131 //= require "types/relation"
      -132 //= require "types/label"
      -133 
      -134 //= require "coastline"
      -135 //= require "importer"
      -136 
      \ No newline at end of file diff --git a/public/api/src/src_data_importer.js.html b/public/api/src/src_data_importer.js.html deleted file mode 100644 index b62d2caa..00000000 --- a/public/api/src/src_data_importer.js.html +++ /dev/null @@ -1,302 +0,0 @@ -
        1 var Importer = {
      -  2 	/**
      -  3 	 * An array of bboxes of requested plots... helps in debugging what has been requested.
      -  4 	 */
      -  5 	plot_array: [],
      -  6 	/** 
      -  7 	 * The number of plots that have been requested, but have not been loaded yet.
      -  8 	 * @type Number
      -  9 	 */
      - 10 	requested_plots: 0,
      - 11 	/**
      - 12 	 * Hash of bbox => features
      - 13 	 * @type Hash
      - 14 	 */
      - 15 	plots: new Hash(),
      - 16 	/**
      - 17 	 * A TaskManager that performs feature parsing
      - 18 	 */
      - 19 	parse_manager: null,
      - 20 	init: function() {
      - 21 		Importer.parse_manager = new TaskManager(50)
      - 22 		$l('set up parse_manager')
      - 23 		try {
      - 24 			if (JSON.parse) {
      - 25 				Importer.native_json = true
      - 26 			}
      - 27 			else {
      - 28 				Importer.native_json = false
      - 29 			}
      - 30 		} catch(e) {
      - 31 			Importer.native_json = false
      - 32 		}
      - 33 		
      - 34 		try {
      - 35 			if (localStorage && localStorage.length && localStorage.getItem) {
      - 36 				Importer.localStorage = true
      - 37 			}
      - 38 			else {
      - 39 				Importer.localStorage = false
      - 40 			}
      - 41 		}
      - 42 		catch (e) {
      - 43 			Importer.localStorage = false
      - 44 		}
      - 45 	},
      - 46 	flush_localstorage: function() {
      - 47 		if (Importer.localStorage && !Config.suppress_interface && localStorage.length > 200) {
      - 48 			var answer = confirm('Your localStorage is filling up ('+localStorage.length+' entries) and may cause slowness in some browsers. Click OK to flush it and begin repopulating it from new data.')
      - 49 			if (answer) {
      - 50 				localStorage.clear()
      - 51 			} else {
      - 52 				alert("Your localStorage is intact.")
      - 53 			}	
      - 54 		}
      - 55 	},
      - 56 	/**
      - 57 	 * Parses JSON with either the Prototype (crockford-style) JSON parser,
      - 58 	 * or a native parser if available
      - 59 	 */
      - 60 	parse: function(string) {
      - 61 			// var a = new Date
      - 62 		if (Importer.native_json) {
      - 63 			// var result = string.evalJSON()
      - 64 			var result = JSON.parse(string)
      - 65 			// var b = new Date
      - 66 			// $l('parsed: '+(b.getTime()-a.getTime()))
      - 67 			return result
      - 68 		} else {
      - 69 			var result = string.evalJSON()
      - 70 			// var b = new Date
      - 71 			// $l('parsed: '+(b.getTime()-a.getTime()))
      - 72 			return result
      - 73 		}
      - 74 	},
      - 75 	/**
      - 76 	 * Gets the plot under the current center of the viewport
      - 77 	 */
      - 78 	get_current_plot: function(force) {
      - 79 		force = force || false
      - 80 		if ((Map.x != Map.last_pos[0] && Map.y != Map.last_pos[1]) || force != false || Glop.frame < 100) {
      - 81 			// find all geohashes we want to request:
      - 82 			if (Geohash.keys && Geohash.keys.keys()) {
      - 83 				try {
      - 84 				Geohash.keys.keys().each(function(key) {
      - 85 					// this will look for cached plots, or get new ones if it fails to find cached ones
      - 86 					if (key.length == 6) Importer.get_cached_plot(key)
      - 87 				})
      - 88 				} catch(e) {
      - 89 					$l(e)
      - 90 					// $D._verbose_trace(e)
      - 91 				}
      - 92 			}
      - 93 		}
      - 94 		Map.last_pos[0] = Map.x
      - 95 		Map.last_pos[1] = Map.y
      - 96 	},
      - 97 	/**
      - 98 	 * Fetches a JSON plot from a static file, given a full url.
      - 99 	 */
      -100 	get_static_plot: function(url) {
      -101 		$l('getting static plot for '+url)
      -102 		Importer.requested_plots++
      -103 		new Ajax.Request(url,{
      -104 			method: 'get',
      -105 			onSuccess: function(result) {
      -106 				try {
      -107 					$l('formed correctly: '+result.responseText)
      -108 					Importer.parse_objects(Importer.parse(result.responseText))
      -109 				} catch(e) {
      -110 					$l('Malformed JSON, did not parse. Try removing trailing commas and extra whitespace. Test your JSON by typing \"Importer.parse(\'{"your": "json", "goes": "here"}\')\" ==> '+result.responseText)
      -111 				}
      -112 				Importer.requested_plots--
      -113 				if (Importer.requested_plots == 0) Event.last_event = Glop.frame
      -114 				$l("Total plots: "+Importer.plots.size()+", of which "+Importer.requested_plots+" are still loading.")
      -115 				Glop.trigger_draw()
      -116 			}
      -117 		})
      -118 	},
      -119 	/** 
      -120 	 * Checks against local storage for browers with HTML 5,
      -121 	 * then fetches the plot and parses the data into the objects array.
      -122 	 */
      -123 	get_cached_plot: function(key) {
      -124 		// Remember that parse_objects() will fill localStorage.
      -125 		// We can't do it here because it's an asychronous AJAX call.
      -126 
      -127 		// if we're not live-loading:
      -128 		if (!Config.live) {
      -129 			// check if we've loaded already this session:
      -130 			if (Importer.plots.get(key)) {
      -131 				// no live-loading, so:
      -132 				//$l("already loaded plot")
      -133 			} else {
      -134 				// if we haven't, check if HTML 5 localStorage exists in this browser:
      -135 				if (Importer.localStorage) {
      -136 					var ls = localStorage.getItem('geohash_'+key)
      -137 					if (ls) {
      -138 						$l("localStorage cached plot")
      -139 						Importer.parse_objects(Importer.parse(ls), key)
      -140 						// Cartagen.plot_array.push(Geohash.bbox(key))
      -141 					} else {
      -142 						// it's not in the localStorage:
      -143 						Importer.load_plot(key)
      -144 					}
      -145 				} else {
      -146 					// not loaded this session and no localStorage, so:
      -147 					Importer.load_plot(key)
      -148 				}
      -149 			}
      -150 		} else {
      -151 			// we're live-loading! Gotta get it no matter what:
      -152 			Importer.load_plot(key)
      -153 		}
      -154 
      -155 		Glop.trigger_draw()
      -156 		Importer.plots.set(key, true)
      -157 	},
      -158 	/**
      -159 	 * Requests a JSON plot for a bbox from the server
      -160 	 * 
      -161 	 * @param {Number} _lat1  Upper bound
      -162 	 * @param {Number} _lng1  Left bound
      -163 	 * @param {Number} _lat2  Lower bound
      -164 	 * @param {Number} _lng2  Right bound
      -165 	 */
      -166 	load_plot: function(key) {
      -167 		// Importer.plot_array.push(Geohash.bbox(key))
      -168 		$l('loading geohash plot: '+key)
      -169 		
      -170 		Importer.requested_plots++
      -171 		var finished = false
      -172 		// var req = new Ajax.Request('/api/0.6/map.json?bbox='+_lng1+","+_lat1+','+_lng2+','+_lat2,{
      -173 		var req = new Ajax.Request('/api/0.6/geohash/'+key+'.json',{
      -174 			method: 'get',
      -175 			onSuccess: function(result) {
      -176 				finished = true
      -177 				// $l('loaded '+_lat1+'&lng1='+_lng1+'&lat2='+_lat2+'&lng2='+_lng2)
      -178 				Importer.parse_objects(Importer.parse(result.responseText), key)
      -179 				if (Importer.localStorage) localStorage.setItem('geohash_'+key,result.responseText)
      -180 				Importer.requested_plots--
      -181 				if (Importer.requested_plots == 0) Event.last_event = Glop.frame
      -182 				$l("Total plots: "+Importer.plots.size()+", of which "+Importer.requested_plots+" are still loading.")
      -183 				Geohash.last_get_objects[3] = true // force re-get of geohashes
      -184 				Glop.trigger_draw()
      -185 			},
      -186 			onFailure: function() {
      -187 				Importer.requested_plots--
      -188 			}
      -189 		})
      -190 
      -191 		// abort after 120 secs
      -192 		var f = function(){
      -193 			if (!finished) {
      -194 				Importer.plots.set(key, false)
      -195 				req.transport.onreadystatechange = Prototype.emptyFunction
      -196 				req.transport.abort()
      -197 				// Importer.requested_plots--
      -198 				$l("Request aborted. Total plots: "+Importer.plots.size()+", of which "+Importer.requested_plots+" are still loading.")
      -199 			}
      -200 		}
      -201 		f.delay(120)
      -202 	},
      -203 	parse_node: function(node){
      -204 		var n = new Node
      -205 		n.name = node.name
      -206 		n.author = node.author
      -207 		n.img = node.img
      -208 		n.h = 10
      -209 		n.w = 10
      -210 		n.color = Glop.random_color()
      -211 		n.timestamp = node.timestamp
      -212 		n.user = node.user
      -213 		if (!Object.isUndefined(node.image)) $l('got image!!')
      -214 		n.id = node.id
      -215 		n.lat = node.lat
      -216 		n.lon = node.lon
      -217 		n.x = Projection.lon_to_x(n.lon)
      -218 		n.y = Projection.lat_to_y(n.lat)
      -219 		Style.parse_styles(n,Style.styles.node)
      -220 		// can't currently afford to have all nodes in the map as well as all ways.
      -221 		// but we're missing some nodes when we render... semantic ones i think. cross-check.
      -222 		// objects.push(n)
      -223 		Feature.nodes.set(n.id,n)
      -224 		if (node.display) {
      -225 			n.display = true
      -226 			n.radius = 50
      -227 			$l(n.img)
      -228 			Geohash.put(n.lat, n.lon, n, 1)
      -229 		}
      -230 	},
      -231 	parse_way: function(way){
      -232 		if (Config.live || !Feature.ways.get(way.id)) {
      -233 			var data = {
      -234 				id: way.id,
      -235 				user: way.user,
      -236 				timestamp: way.timestamp,
      -237 				nodes: [],
      -238 				tags: new Hash()
      -239 			}
      -240 			if (way.name) data.name = way.name
      -241 			way.nd.each(function(nd, index) {
      -242 				if ((index % Config.simplify) == 0 || index == 0 || index == way.nd.length-1 || way.nd.length <= Config.simplify*2)  {
      -243 					node = Feature.nodes.get(nd.ref)
      -244 					if (!Object.isUndefined(node)) data.nodes.push(node)
      -245 				}
      -246 			})
      -247 			if (way.tag instanceof Array) {
      -248 				way.tag.each(function(tag) {
      -249 					data.tags.set(tag.k,tag.v)
      -250 					if (tag.v == 'coastline') data.coastline = true
      -251 				})
      -252 			} else {
      -253 				data.tags.set(way.tag.k,way.tag.v)
      -254 				if (tag.v == 'coastline') data.coastline = true
      -255 			}
      -256 			new Way(data)
      -257 		}
      -258 	},
      -259 	/**
      -260 	 * Parses feature data and creates Way and Node objects, registering them with
      -261 	 * Geohash
      -262 	 * @param {Object} data OSM data to parse
      -263 	 */
      -264 	parse_objects: function(data, key) {
      -265 		var cond;
      -266 		if (key) {
      -267 			cond = function() {
      -268 				return (Geohash.keys.get(key) === true)
      -269 			}
      -270 		} else  {
      -271 			// cond = true
      -272 			cond = function() {
      -273 				return true
      -274 			}
      -275 		}
      -276 		if (data.osm.node) {
      -277 			node_task = new Task(data.osm.node, Importer.parse_node, cond)
      -278 			Importer.parse_manager.add(node_task)
      -279 		}
      -280 		if (data.osm.way) {
      -281 			way_task = new Task(data.osm.way, Importer.parse_way, cond, [node_task.id])
      -282 			Importer.parse_manager.add(way_task)
      -283 		}
      -284 		coastline_task = new Task(['placeholder'], Coastline.refresh_coastlines, cond, [way_task.id])
      -285 		Importer.parse_manager.add(coastline_task)
      -286 		// we should load relations -- scheduled for 0.8 rlease
      -287 
      -288 		// sort by polygons' node count:
      -289 		// objects.sort(Geometry.sort_by_area)
      -290 	}
      -291 }
      -292 
      -293 Importer.flush_localstorage()
      -294 document.observe('cartagen:init', Importer.init.bindAsEventListener(Importer))
      -295 
      \ No newline at end of file diff --git a/public/api/src/src_glop_canvas.js.html b/public/api/src/src_glop_canvas.js.html deleted file mode 100644 index fb540ac3..00000000 --- a/public/api/src/src_glop_canvas.js.html +++ /dev/null @@ -1,426 +0,0 @@ -
        1 /**
      -  2  * @namespace Cavas functions, wrapped into shorter, simpler names and abstracted for cross-browser
      -  3  *            compatability
      -  4  * @see <a href="https://developer.mozilla.org/en/Canvas_tutorial/Drawing_shapes>
      -  5  *      MDC Docs</a>
      -  6  */
      -  7 $C = {
      -  8 	/**
      -  9 	 * Loads the canvas and its rendering context.
      - 10 	 */
      - 11 	init: function() {
      - 12 		/**
      - 13 		 * The 2d rendering context of the canvas
      - 14 		 * @type CanvasRenderingContext2D
      - 15 		 */
      - 16 		$('canvas').style.position = 'relative'
      - 17 		$('main').style.position = 'absolute'
      - 18 		$('main').style.top = 0
      - 19 		$('main').style.left = 0
      - 20 		this.canvas =  $('main').getContext('2d')
      - 21 		this.element = $('main')
      - 22 		this.canvases.set('main',this.canvas)
      - 23 		CanvasTextFunctions.enable(this.canvas)
      - 24 	},
      - 25 	/**
      - 26 	 * Current Glop canvas name.
      - 27 	 */
      - 28 	current: 'main',
      - 29 	/**
      - 30 	 * Glop initializes with only 1 canvas but you can add more;
      - 31 	 * they're stored here.
      - 32 	 */
      - 33 	canvases: new Hash,
      - 34 	/**
      - 35 	 * You can 'freeze' a canvas so that draw commands to it are ignored.
      - 36 	 */
      - 37 	freezer: new Hash,
      - 38 	/**
      - 39 	 * This marks whether the current canvas is frozen.
      - 40 	 */
      - 41 	frozen: false,
      - 42 	/**
      - 43 	 * Freezes a named canvas - won't allow it to be drawn to.
      - 44 	 */
      - 45 	freeze: function(name) {
      - 46 		// if ($C.freezer.get(name) != true) {
      - 47 		// 	$l('freezing '+name)
      - 48 		// 	$C.freezer.set(name,true)
      - 49 		// 	if ($C.current == name) $C.frozen = true
      - 50 		// }
      - 51 	},
      - 52 	/**
      - 53 	 * Allows named canvas to be drawn to.
      - 54 	 */
      - 55 	thaw: function(name) {
      - 56 		// $l('thawing '+name)
      - 57 		// $C.freezer.unset(name)
      - 58 		// if ($C.current == name) $C.frozen = false
      - 59 	},
      - 60 	/**
      - 61 	 * To add a new canvas element. For now, added to the bottom of the
      - 62 	 * body element
      - 63 	 * @param {String} name The name of the new layer
      - 64 	 */
      - 65 	add: function(name) {
      - 66 		$('canvas').insert({top:'<canvas style="position:absolute;top:0;left:0" id="'+name+'" ></canvas>'})
      - 67 		var new_canvas = $(name).getContext('2d')
      - 68 		$C.canvases.set(name,new_canvas)
      - 69 	},
      - 70 	/**
      - 71 	 * Open a different canvas to draw to. If called without a parameter,
      - 72 	 * opens the main canvas.
      - 73 	 * @param {String} name The name of the canvas to draw to by default
      - 74 	 */
      - 75 	open: function(name) {
      - 76 		// name = name || 'main'
      - 77 		// $C.current = name
      - 78 		// if ($C.freezer.get(name)) $C.frozen = true
      - 79 		// else $C.frozen = false
      - 80 		// // $l('opening '+name+' canvas')
      - 81 		// this.element = $(name)
      - 82 		// $C.canvas = $C.canvases.get(name)
      - 83 	},
      - 84 	close: function() {
      - 85 		// $C.current = 'main'
      - 86 		// this.element = $('main')
      - 87 		// if ($C.freezer.get('main')) $C.frozen = true
      - 88 		// $C.canvas = $C.canvases.get('main')
      - 89 	},
      - 90 	/**
      - 91 	 * Clears the canvas; if 'name' is supplied, clears the canvas with name 'name'
      - 92 	 */
      - 93 	clear: function(name){
      - 94 		// if ($C.frozen) return
      - 95 		name = name || 'main'
      - 96 		$C.canvases.get(name).clearRect(0, 0, Glop.width, Glop.height)
      - 97 	},	
      - 98 	/**
      - 99 	 * Sets canvas.fillStyle
      -100 	 * @param {String} color Color to use for future fill operations
      -101 	 */
      -102 	fill_style: function(color) {
      -103 		// if ($C.frozen) return
      -104 		$C.canvas.fillStyle = color
      -105 	},
      -106 	/**
      -107 	 * Sets the fill style of the canvas to a pattern.
      -108 	 * @param {Image}  image  Image to use for pattern
      -109 	 * @param {String} repeat How to repeat pattern - "repeat", "repeat-x", "repeat-y", or
      -110 	 *                        "no-repeat"
      -111 	 */
      -112 	fill_pattern: function(image, repeat) {
      -113 		// if ($C.frozen) return
      -114 		// this seems to often fail, so wrapped in a try:
      -115 		// try/fail is inefficient, removed:
      -116 		// try { 
      -117 		if (image.width) {
      -118 			$C.canvas.fillStyle = $C.canvas.createPattern(image, repeat)
      -119 		}
      -120 		// } catch(e) {}
      -121 	},
      -122 	/**
      -123 	 * Draws an image at x,y
      -124 	 * @param {Image}  image  Image to display: a JavaScript Image object. 
      -125 	 * 							Can also accept a Canvas element, but check Canvas docs.
      -126 	 * @param {Number} x coordinate at which to display image
      -127 	 * @param {Number} y coordinate at which to display image
      -128 	 */
      -129 	draw_image: function(image, x,y) {
      -130 		// if ($C.frozen) return
      -131 		// this seems to often fail, so wrapped in a try:
      -132 		// try/fail is inefficient, removed:
      -133 		// try { 
      -134 			$C.canvas.drawImage(image, x, y) 
      -135 		// } catch(e) {$l(e)}
      -136 	},
      -137 	/**
      -138 	 * Alias of canvas.translate
      -139 	 * @param {Number} x Number of pixels to tranlate in the x direction
      -140 	 * @param {Number} y Number of pixels to tranlate in the y direction
      -141 	 */
      -142 	translate: function(x,y) {
      -143 		// if ($C.frozen) return
      -144 		$C.canvas.translate(x,y)
      -145 	},
      -146 	
      -147 	/**
      -148 	 * Alias of canvas.scale
      -149 	 * @param {Number} x Number of pixels to stretch/shring in the x 
      -150 	 *                   direction
      -151 	 * @param {Number} y Number of pixels to stretch/shring in the y 
      -152 	 *                   direction
      -153 	 */
      -154 	scale: function(x,y) {
      -155 		// if ($C.frozen) return
      -156 		$C.canvas.scale(x,y)
      -157 	},
      -158 	
      -159 	/**
      -160 	 * Alias of canvas.rotate
      -161 	 * @param {Number} rotation Amount, in radians, to rotate
      -162 	 */
      -163 	rotate: function(rotation){
      -164 		// if ($C.frozen) return
      -165 		$C.canvas.rotate(rotation)
      -166 	},
      -167 	
      -168 	/**
      -169 	 * Alias of canvas.fillRect (filled rectangle)
      -170 	 * @param {Number} x X-coord of the top-left corner
      -171 	 * @param {Number} y Y-coord of the top-left corner
      -172 	 * @param {Number} w Width of the rectangle
      -173 	 * @param {Number} h Height of the rectangle
      -174 	 */
      -175 	rect: function(x, y, w, h){
      -176 		// if ($C.frozen) return
      -177 		$C.canvas.fillRect(x, y, w, h)
      -178 	},
      -179 	
      -180 	/**
      -181 	 * Alias of canvas.strokeRect (unfilled rectangle)
      -182 	 * @param {Number} x X-coord of the top-left corner
      -183 	 * @param {Number} y Y-coord of the top-left corner
      -184 	 * @param {Number} w Width of the rectangle
      -185 	 * @param {Number} h Height of the rectangle
      -186 
      -187 	 */
      -188 	stroke_rect: function(x, y, w, h){
      -189 		// if ($C.frozen) return
      -190 		$C.canvas.strokeRect(x, y, w, h)
      -191 	},
      -192 	
      -193 	/**
      -194 	 * Alias of canvas.strokeStyle
      -195 	 * @param {String} color Color to use for future stroke operations
      -196 	 */
      -197 	stroke_style: function(color) {
      -198 		// if ($C.frozen) return
      -199 		$C.canvas.strokeStyle = color
      -200 	},
      -201 	
      -202 	/**
      -203 	 * Sets how succesive lines are joined.
      -204 	 * @param {String} style Style string - 'round', 'bevel', or 'miter'
      -205 	 */
      -206 	line_join: function(style) {
      -207 		// if ($C.frozen) return
      -208 		$C.canvas.lineJoin = style
      -209 	},
      -210 	
      -211 	/**
      -212 	 * Sets how the end of a line is styled.
      -213 	 * @param {String} style Style string - 'round', 'butt', or 'square'
      -214 	 */
      -215 	line_cap: function(style) {
      -216 		// if ($C.frozen) return
      -217 		$C.canvas.lineCap = style
      -218 	},
      -219 	
      -220 	/**
      -221 	 * Sets canvas.lineWidth
      -222 	 * @param {Number} lineWidth New width, in pixels, to use for stroke
      -223 	 *                           operations
      -224 	 */
      -225 	line_width: function(lineWidth){
      -226 		// if ($C.frozen) return
      -227 		if (parseInt(lineWidth) == 0) {
      -228 			$C.canvas.lineWidth = 0.000000001	
      -229 		} else {
      -230 			$C.canvas.lineWidth = lineWidth
      -231 		}
      -232 	},
      -233 	
      -234 	/**
      -235 	 * Alias of canvas.beginPath
      -236 	 */
      -237 	begin_path: function(){
      -238 		// if ($C.frozen) return
      -239 		$C.canvas.beginPath()
      -240 	},
      -241 	
      -242 	/**
      -243 	 * Alias of canvas.moveTo
      -244 	 * @param {Number} x X-coord of location to move to
      -245 	 * @param {Number} y Y-coord of location to move to
      -246 	 */
      -247 	move_to: function(x, y){
      -248 		// if ($C.frozen) return
      -249 		$C.canvas.moveTo(x, y)
      -250 	},
      -251 	
      -252 	/**
      -253 	 * Alias of canvas.lineTo
      -254 	 * @param {Number} x X-coord of location to draw line to
      -255 	 * @param {Number} y Y-coord of location to draw line to
      -256 	 */
      -257 	line_to: function(x, y){
      -258 		// if ($C.frozen) return
      -259 		$C.canvas.lineTo(x, y)
      -260 	},
      -261 	
      -262 	/**
      -263 	 * Draws a quadratic curve
      -264 	 * @param {Number} cp_x X-coord of control point
      -265 	 * @param {Number} cp_y Y-coord of control point
      -266 	 * @param {Number} x    X-coord of point to draw to
      -267 	 * @param {Number} y    Y-coord of point to draw to
      -268 	 * @see <a href="https://developer.mozilla.org/en/Canvas_tutorial/Drawing_shapes#Bezier_and_quadratic_curves">
      -269 	 *      MDC Docs</a>
      -270 	 * @function
      -271 	 */
      -272 	quadratic_curve_to: function(cp_x, cp_y, x, y){
      -273 		// if ($C.frozen) return
      -274 		$C.canvas.quadraticCurveTo(cp_x, cp_y, x, y)
      -275 	},
      -276 	
      -277 	/**
      -278 	 * Draws a stroke along the current path.
      -279 	 * @function
      -280 	 */
      -281 	stroke: function(){
      -282 		// if ($C.frozen) return
      -283 		$C.canvas.stroke()
      -284 	},
      -285 	
      -286 	/**
      -287 	 * Draws an outlined (dotted, outlined, etc) stroke along the current path.
      -288 	 * @function
      -289 	 */
      -290 	outline: function(color,width){
      -291 		// if ($C.frozen) return
      -292 		$C.save()
      -293 		// this should eventually inherit from the master default styles
      -294 			$C.stroke_style(color)
      -295 			$C.line_width($C.canvas.lineWidth+(width*2))
      -296 		$C.canvas.stroke()
      -297 		$C.restore()
      -298 		$C.canvas.stroke()
      -299 	},
      -300 	
      -301 	/**
      -302 	 * Closes the current path, then fills it.
      -303 	 */
      -304 	fill: function(){
      -305 		// if ($C.frozen) return
      -306 		$C.canvas.fill()
      -307 	},
      -308 	
      -309 	/**
      -310 	 * Draws an arc
      -311 	 * @param {Number} x                   X-coord of circle's center
      -312 	 * @param {Number} y                   Y-coord of circle's center
      -313 	 * @param {Number} radius              Radius of circle
      -314 	 * @param {Number} startAngle          Angle, in radians, from the +x axis to start the arc
      -315 	 *                                     from
      -316 	 * @param {Number} endAngle            Angle, in radians, from the +x axis to end the arc 
      -317 	 *                                     at
      -318 	 * @param {Boolean} [counterclockwise] If true, arc is drawn counterclockwise. Else, it is
      -319 	 *                                     drawn clockwise
      -320 	 */
      -321 	arc: function(x, y, radius, startAngle, endAngle, counterclockwise){
      -322 		// if ($C.frozen) return
      -323 		$C.canvas.arc(x, y, radius, startAngle, endAngle, counterclockwise)
      -324 	},
      -325 	/**
      -326 	 * Draws text on the canvas. Fonts are not supported in all
      -327 	 * broswers.
      -328 	 * @param {String} font Font to use
      -329 	 * @param {Number} size Size, in pts, of text
      -330 	 * @param {Number} x    X-coord to start drawing at
      -331 	 * @param {Number} y    Y-coord to start drawing at
      -332 	 * @param {String} text Text to draw
      -333 	 */
      -334 	draw_text: function(font, size, color, x, y, text){
      -335 		// if ($C.frozen) return
      -336 		if ($C.canvas.fillText) {
      -337 			$C.canvas.fillStyle = color
      -338 			$C.canvas.font = size+'pt ' + font
      -339 			$C.canvas.fillText(text, x, y)
      -340 		} else {
      -341 			$C.canvas.strokeStyle = color
      -342 			$C.canvas.drawText(font, size, x, y, text)
      -343 		}
      -344 	},
      -345 	/**
      -346 	 * Measures the width, in pixels, that the text will be
      -347 	 * @param {Object} font Font that will be drawn with
      -348 	 * @param {Object} size Size, in pts, of text
      -349 	 * @param {Object} text Text to be measured
      -350 	 */
      -351 	measure_text: function(font, size, text) {
      -352 		// if ($C.frozen) return
      -353 		if ($C.canvas.fillText) {
      -354 			$C.canvas.font = size + 'pt ' + font
      -355 			var width = $C.canvas.measureText(text)
      -356 			// some browsers return TextMetrics
      -357 			if (width.width) return width.width
      -358 			return width
      -359 		}
      -360 		else {
      -361 			return $C.canvas.measureCanvasText(font, size, text)
      -362 		}
      -363 
      -364 
      -365 	},
      -366 	/**
      -367 	 * Sets the canvas' globalAlpha.
      -368 	 * @param {Number} alpha New alpha value, between 0 and 1.
      -369 	 */
      -370 	opacity: function(alpha) {
      -371 		// if ($C.frozen) return
      -372 		$C.canvas.globalAlpha = alpha
      -373 	},
      -374 	/**
      -375 	 * Saves the state of the canvas
      -376 	 * @see $C.restore
      -377 	 */
      -378 	save: function() {
      -379 		// if ($C.frozen) return
      -380 		$C.canvas.save()
      -381 	},
      -382 	/**
      -383 	 * Restores the canvas its last saved state.
      -384 	 * @see $C.save
      -385 	 */
      -386 	restore: function() {
      -387 		// if ($C.frozen) return
      -388 		$C.canvas.restore()
      -389 	},
      -390 	/**
      -391 	 * Return a url that contains all the data in the canvas. Essentially,
      -392 	 * it is a link to an image of the canvas.
      -393 	 * @return Data url
      -394 	 * @type String
      -395 	 */
      -396 	to_data_url: function() {
      -397 		return $C.canvas.canvas.toDataURL()
      -398 	},
      -399 	/**
      -400 	 * Identical to to_data_url, but produces an image much larger than the screen, for print quality
      -401 	 * @param {Number} width Width of resulting image in pixels
      -402 	 * @param {Number} height Height of resulting image in pixels
      -403 	 * @return Data url
      -404 	 * @type String
      -405 	 */
      -406 	to_print_data_url: function(width,height) {
      -407 		var _height = Glop.height, _width = Glop.width
      -408 		Glop.width = width
      -409 		Glop.height = height
      -410 		Glop.draw(true) // with a custom size
      -411 		var url = $C.canvas.canvas.toDataURL()
      -412 		Glop.width = _width
      -413 		Glop.height = _height
      -414 		return url
      -415 	}
      -416 }
      -417 
      -418 document.observe('cartagen:init', $C.init.bindAsEventListener($C))
      -419 
      \ No newline at end of file diff --git a/public/api/src/src_glop_canvastext.js.html b/public/api/src/src_glop_canvastext.js.html deleted file mode 100644 index 38a71abc..00000000 --- a/public/api/src/src_glop_canvastext.js.html +++ /dev/null @@ -1,195 +0,0 @@ -
        1 //
      -  2 // This code is released to the public domain by Jim Studt, 2007.
      -  3 // He may keep some sort of up to date copy at http://www.federated.com/~jim/canvastext/
      -  4 //
      -  5 /** @ignore */
      -  6 var CanvasTextFunctions = { };
      -  7 
      -  8 CanvasTextFunctions.letters = {
      -  9     ' ': { width: 16, points: [] },
      - 10     '!': { width: 10, points: [[5,21],[5,7],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]] },
      - 11     '"': { width: 16, points: [[4,21],[4,14],[-1,-1],[12,21],[12,14]] },
      - 12     '#': { width: 21, points: [[11,25],[4,-7],[-1,-1],[17,25],[10,-7],[-1,-1],[4,12],[18,12],[-1,-1],[3,6],[17,6]] },
      - 13     '$': { width: 20, points: [[8,25],[8,-4],[-1,-1],[12,25],[12,-4],[-1,-1],[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]] },
      - 14     '%': { width: 24, points: [[21,21],[3,0],[-1,-1],[8,21],[10,19],[10,17],[9,15],[7,14],[5,14],[3,16],[3,18],[4,20],[6,21],[8,21],[10,20],[13,19],[16,19],[19,20],[21,21],[-1,-1],[17,7],[15,6],[14,4],[14,2],[16,0],[18,0],[20,1],[21,3],[21,5],[19,7],[17,7]] },
      - 15     '&': { width: 26, points: [[23,12],[23,13],[22,14],[21,14],[20,13],[19,11],[17,6],[15,3],[13,1],[11,0],[7,0],[5,1],[4,2],[3,4],[3,6],[4,8],[5,9],[12,13],[13,14],[14,16],[14,18],[13,20],[11,21],[9,20],[8,18],[8,16],[9,13],[11,10],[16,3],[18,1],[20,0],[22,0],[23,1],[23,2]] },
      - 16     '\'': { width: 10, points: [[5,19],[4,20],[5,21],[6,20],[6,18],[5,16],[4,15]] },
      - 17     '(': { width: 14, points: [[11,25],[9,23],[7,20],[5,16],[4,11],[4,7],[5,2],[7,-2],[9,-5],[11,-7]] },
      - 18     ')': { width: 14, points: [[3,25],[5,23],[7,20],[9,16],[10,11],[10,7],[9,2],[7,-2],[5,-5],[3,-7]] },
      - 19     '*': { width: 16, points: [[8,21],[8,9],[-1,-1],[3,18],[13,12],[-1,-1],[13,18],[3,12]] },
      - 20     '+': { width: 26, points: [[13,18],[13,0],[-1,-1],[4,9],[22,9]] },
      - 21     ',': { width: 10, points: [[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]] },
      - 22     '-': { width: 26, points: [[4,9],[22,9]] },
      - 23     '.': { width: 10, points: [[5,2],[4,1],[5,0],[6,1],[5,2]] },
      - 24     '/': { width: 22, points: [[20,25],[2,-7]] },
      - 25     '0': { width: 20, points: [[9,21],[6,20],[4,17],[3,12],[3,9],[4,4],[6,1],[9,0],[11,0],[14,1],[16,4],[17,9],[17,12],[16,17],[14,20],[11,21],[9,21]] },
      - 26     '1': { width: 20, points: [[6,17],[8,18],[11,21],[11,0]] },
      - 27     '2': { width: 20, points: [[4,16],[4,17],[5,19],[6,20],[8,21],[12,21],[14,20],[15,19],[16,17],[16,15],[15,13],[13,10],[3,0],[17,0]] },
      - 28     '3': { width: 20, points: [[5,21],[16,21],[10,13],[13,13],[15,12],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]] },
      - 29     '4': { width: 20, points: [[13,21],[3,7],[18,7],[-1,-1],[13,21],[13,0]] },
      - 30     '5': { width: 20, points: [[15,21],[5,21],[4,12],[5,13],[8,14],[11,14],[14,13],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]] },
      - 31     '6': { width: 20, points: [[16,18],[15,20],[12,21],[10,21],[7,20],[5,17],[4,12],[4,7],[5,3],[7,1],[10,0],[11,0],[14,1],[16,3],[17,6],[17,7],[16,10],[14,12],[11,13],[10,13],[7,12],[5,10],[4,7]] },
      - 32     '7': { width: 20, points: [[17,21],[7,0],[-1,-1],[3,21],[17,21]] },
      - 33     '8': { width: 20, points: [[8,21],[5,20],[4,18],[4,16],[5,14],[7,13],[11,12],[14,11],[16,9],[17,7],[17,4],[16,2],[15,1],[12,0],[8,0],[5,1],[4,2],[3,4],[3,7],[4,9],[6,11],[9,12],[13,13],[15,14],[16,16],[16,18],[15,20],[12,21],[8,21]] },
      - 34     '9': { width: 20, points: [[16,14],[15,11],[13,9],[10,8],[9,8],[6,9],[4,11],[3,14],[3,15],[4,18],[6,20],[9,21],[10,21],[13,20],[15,18],[16,14],[16,9],[15,4],[13,1],[10,0],[8,0],[5,1],[4,3]] },
      - 35     ':': { width: 10, points: [[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]] },
      - 36     ',': { width: 10, points: [[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]] },
      - 37     '<': { width: 24, points: [[20,18],[4,9],[20,0]] },
      - 38     '=': { width: 26, points: [[4,12],[22,12],[-1,-1],[4,6],[22,6]] },
      - 39     '>': { width: 24, points: [[4,18],[20,9],[4,0]] },
      - 40     '?': { width: 18, points: [[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]] },
      - 41     '@': { width: 27, points: [[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]] },
      - 42     'A': { width: 18, points: [[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]] },
      - 43     'B': { width: 21, points: [[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]] },
      - 44     'C': { width: 21, points: [[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]] },
      - 45     'D': { width: 21, points: [[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]] },
      - 46     'E': { width: 19, points: [[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]] },
      - 47     'F': { width: 18, points: [[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]] },
      - 48     'G': { width: 21, points: [[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]] },
      - 49     'H': { width: 22, points: [[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]] },
      - 50     'I': { width: 8, points: [[4,21],[4,0]] },
      - 51     'J': { width: 16, points: [[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]] },
      - 52     'K': { width: 21, points: [[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]] },
      - 53     'L': { width: 17, points: [[4,21],[4,0],[-1,-1],[4,0],[16,0]] },
      - 54     'M': { width: 24, points: [[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]] },
      - 55     'N': { width: 22, points: [[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]] },
      - 56     'O': { width: 22, points: [[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]] },
      - 57     'P': { width: 21, points: [[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]] },
      - 58     'Q': { width: 22, points: [[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]] },
      - 59     'R': { width: 21, points: [[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]] },
      - 60     'S': { width: 20, points: [[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]] },
      - 61     'T': { width: 16, points: [[8,21],[8,0],[-1,-1],[1,21],[15,21]] },
      - 62     'U': { width: 22, points: [[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]] },
      - 63     'V': { width: 18, points: [[1,21],[9,0],[-1,-1],[17,21],[9,0]] },
      - 64     'W': { width: 24, points: [[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]] },
      - 65     'X': { width: 20, points: [[3,21],[17,0],[-1,-1],[17,21],[3,0]] },
      - 66     'Y': { width: 18, points: [[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]] },
      - 67     'Z': { width: 20, points: [[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]] },
      - 68     '[': { width: 14, points: [[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]] },
      - 69     '\\': { width: 14, points: [[0,21],[14,-3]] },
      - 70     ']': { width: 14, points: [[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]] },
      - 71     '^': { width: 16, points: [[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]] },
      - 72     '_': { width: 16, points: [[0,-2],[16,-2]] },
      - 73     '`': { width: 10, points: [[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]] },
      - 74     'a': { width: 19, points: [[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
      - 75     'b': { width: 19, points: [[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]] },
      - 76     'c': { width: 18, points: [[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
      - 77     'd': { width: 19, points: [[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
      - 78     'e': { width: 18, points: [[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
      - 79     'f': { width: 12, points: [[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]] },
      - 80     'g': { width: 19, points: [[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
      - 81     'h': { width: 19, points: [[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]] },
      - 82     'i': { width: 8, points: [[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]] },
      - 83     'j': { width: 10, points: [[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]] },
      - 84     'k': { width: 17, points: [[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]] },
      - 85     'l': { width: 8, points: [[4,21],[4,0]] },
      - 86     'm': { width: 30, points: [[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]] },
      - 87     'n': { width: 19, points: [[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]] },
      - 88     'o': { width: 19, points: [[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]] },
      - 89     'p': { width: 19, points: [[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]] },
      - 90     'q': { width: 19, points: [[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]] },
      - 91     'r': { width: 13, points: [[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]] },
      - 92     's': { width: 17, points: [[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]] },
      - 93     't': { width: 12, points: [[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]] },
      - 94     'u': { width: 19, points: [[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]] },
      - 95     'v': { width: 16, points: [[2,14],[8,0],[-1,-1],[14,14],[8,0]] },
      - 96     'w': { width: 22, points: [[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]] },
      - 97     'x': { width: 17, points: [[3,14],[14,0],[-1,-1],[14,14],[3,0]] },
      - 98     'y': { width: 16, points: [[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]] },
      - 99     'z': { width: 17, points: [[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]] },
      -100     '{': { width: 14, points: [[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]] },
      -101     '|': { width: 8, points: [[4,25],[4,-7]] },
      -102     '}': { width: 14, points: [[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]] },
      -103     '~': { width: 24, points: [[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]] }
      -104 };
      -105 
      -106 CanvasTextFunctions.letter = function (ch)
      -107 {
      -108     return CanvasTextFunctions.letters[ch];
      -109 }
      -110 
      -111 CanvasTextFunctions.ascent = function( font, size)
      -112 {
      -113     return size;
      -114 }
      -115 
      -116 CanvasTextFunctions.descent = function( font, size)
      -117 {
      -118     return 7.0*size/25.0;
      -119 }
      -120 
      -121 CanvasTextFunctions.measure = function( font, size, str)
      -122 {
      -123     var total = 0;
      -124     var len = str.length;
      -125 
      -126     for ( i = 0; i < len; i++) {
      -127 	var c = CanvasTextFunctions.letter( str.charAt(i));
      -128 	if ( c) total += c.width * size / 25.0;
      -129     }
      -130     return total;
      -131 }
      -132 
      -133 CanvasTextFunctions.draw = function(ctx,font,size,x,y,str)
      -134 {
      -135     var total = 0;
      -136     var len = str.length;
      -137     var mag = size / 25.0;
      -138 
      -139     ctx.save();
      -140     ctx.lineCap = "round";
      -141     ctx.lineWidth = 2.0 * mag;
      -142 
      -143     for ( i = 0; i < len; i++) {
      -144 	var c = CanvasTextFunctions.letter( str.charAt(i));
      -145 	if ( !c) continue;
      -146 
      -147 	ctx.beginPath();
      -148 
      -149 	var penUp = 1;
      -150 	var needStroke = 0;
      -151 	for ( j = 0; j < c.points.length; j++) {
      -152 		var a = c.points[j];
      -153 		if ( a[0] == -1 && a[1] == -1) {
      -154 			penUp = 1;
      -155 			continue;
      -156 		}
      -157 		if ( penUp) {
      -158 			try{
      -159 			ctx.moveTo( x + a[0]*mag, y - a[1]*mag);
      -160 			} catch(e) {$l(e)}
      -161 			penUp = false;
      -162 		} else {
      -163 			ctx.lineTo( x + a[0]*mag, y - a[1]*mag);
      -164 		}
      -165 	}
      -166 	ctx.stroke();
      -167 	x += c.width*mag;
      -168     }
      -169     ctx.restore();
      -170     return total;
      -171 }
      -172 
      -173 CanvasTextFunctions.enable = function( ctx)
      -174 {
      -175     ctx.drawText = function(font,size,x,y,text) { return CanvasTextFunctions.draw( ctx, font,size,x,y,text); };
      -176     ctx.measureCanvasText = function(font,size,text) { return CanvasTextFunctions.measure( font,size,text); };
      -177     ctx.fontAscent = function(font,size) { return CanvasTextFunctions.ascent(font,size); }
      -178     ctx.fontDescent = function(font,size) { return CanvasTextFunctions.descent(font,size); }
      -179 
      -180     ctx.drawTextRight = function(font,size,x,y,text) { 
      -181 	var w = CanvasTextFunctions.measure(font,size,text);
      -182 	return CanvasTextFunctions.draw( ctx, font,size,x-w,y,text); 
      -183     };
      -184     ctx.drawTextCenter = function(font,size,x,y,text) { 
      -185 	var w = CanvasTextFunctions.measure(font,size,text);
      -186 	return CanvasTextFunctions.draw( ctx, font,size,x-w/2,y,text); 
      -187     };
      -188 }
      \ No newline at end of file diff --git a/public/api/src/src_glop_events.js.html b/public/api/src/src_glop_events.js.html deleted file mode 100644 index d43d1408..00000000 --- a/public/api/src/src_glop_events.js.html +++ /dev/null @@ -1,293 +0,0 @@ -
        1 /**
      -  2  * @namespace Contains native event callbacks and binds them to events.
      -  3  */
      -  4 var Events = {
      -  5 	last_event: 0,
      -  6 	
      -  7 	/**
      -  8 	 * Binds each event handler to its event.
      -  9 	 */
      - 10 	init: function() {
      - 11 		// Observe mouse events:
      - 12 		Glop.observe('mousemove', Events.mousemove)
      - 13 		Glop.observe('mousedown', Events.mousedown)
      - 14 		Glop.observe('mouseup', Events.mouseup)
      - 15 		Glop.observe('dblclick', Events.dblclick)
      - 16 		Glop.observe('mouseover', Events.mouseover)
      - 17 		Glop.observe('mouseout', Events.mouseout)
      - 18 
      - 19 		// (Tool-specific events are handled in the Tool namespace)
      - 20 		Tool.initialize()
      - 21 		
      - 22 		// Observe scrollwheel:
      - 23 		if (window.addEventListener) window.addEventListener('DOMMouseScroll', Events.wheel, false)
      - 24 		window.onmousewheel = document.onmousewheel = Events.wheel
      - 25 		
      - 26 		// keyboard:
      - 27 		Event.observe(document, 'keypress', Events.keypress)
      - 28 		Event.observe(document, 'keyup', Events.keyup)
      - 29 		
      - 30 		// touchscreen (mobile phone) events:
      - 31 		element = $('main')
      - 32 		element.ontouchstart = Events.ontouchstart
      - 33 		element.ontouchmove = Events.ontouchmove
      - 34 		element.ontouchend = Events.ontouchend
      - 35 		element.ongesturestart = Events.ongesturestart
      - 36 		element.ongesturechange = Events.ongesturechange
      - 37 		element.ongestureend = Events.ongestureend
      - 38 		
      - 39 		// window events:
      - 40 		Event.observe(window, 'resize', Events.resize);
      - 41 	},
      - 42 	/**
      - 43 	 * Triggered when moused is moved on the canvas
      - 44 	 * @param {Event} event
      - 45 	 */
      - 46 	mousemove: function(event) { 
      - 47 		Events.enabled = true
      - 48 		Mouse.x = -1*Event.pointerX(event)
      - 49 		Mouse.y = -1*Event.pointerY(event)
      - 50 		Glop.trigger_draw(5)
      - 51 	},
      - 52 	/**
      - 53 	 * Triggered when canvas is clicked on
      - 54 	 * @param {Event} event
      - 55 	 */
      - 56 	mousedown: function(event) {
      - 57 		Events.mousemove(event)
      - 58 		if (!event.isLeftClick() || event.ctrlKey) return
      - 59 	        Mouse.down = true
      - 60 	        Mouse.click_frame = Glop.frame
      - 61 	        Mouse.click_x = Mouse.x
      - 62 	        Mouse.click_y = Mouse.y
      - 63 		Mouse.dragging = true
      - 64 		Glop.trigger_draw(5)
      - 65 	},
      - 66 	/**
      - 67 	 * Triggered when mouse is released on canvas
      - 68 	 */
      - 69 	mouseup: function(event) {
      - 70 		if (event && (!event.isLeftClick() || event.ctrlKey)) return
      - 71 	        Mouse.up = true
      - 72 	        Mouse.down = false
      - 73 	        Mouse.release_frame = Glop.frame
      - 74 	        Mouse.dragging = false
      - 75 	        User.update()
      - 76 	},
      - 77 	/**
      - 78 	 * Triggered when the mouse wheel is used
      - 79 	 * @param {Event} event
      - 80 	 */
      - 81 	wheel: function(event){
      - 82 		if (Events.enabled == false) return
      - 83 		var delta = 0
      - 84 		if (!event) event = window.event
      - 85 		if (event.wheelDelta) {
      - 86 			delta = event.wheelDelta/120
      - 87 			if (window.opera) delta = -delta
      - 88 		} else if (event.detail) {
      - 89 			delta = -event.detail/3
      - 90 		}
      - 91 		if (delta && !Config.live_gss) {
      - 92 			if (delta <0) {
      - 93 				Map.zoom = (Map.zoom * 1) + (delta/80)
      - 94 			} else {
      - 95 				Map.zoom = (Map.zoom * 1) + (delta/80)
      - 96 			}
      - 97 			if (Map.zoom < Config.zoom_out_limit) Map.zoom = Config.zoom_out_limit
      - 98 		}
      - 99 		Glop.trigger_draw(5)
      -100 		event.preventDefault()
      -101 	},
      -102 	/**
      -103 	 * Triggered when a key is pressed
      -104 	 * @param {Event} e
      -105 	 */
      -106 	keypress: function(e) {
      -107 		if (Events.enabled === false) return
      -108 
      -109 		var code;
      -110 		if (!e) var e = window.event;
      -111 
      -112 		if (e.keyCode) code = e.keyCode;
      -113 		else if (e.which) code = e.which;
      -114 		var character = String.fromCharCode(code);
      -115 		if (Keyboard.key_input) {
      -116 			switch(character) {
      -117 				case "s": zoom_in(); break
      -118 				case "w": zoom_out(); break
      -119 				case "d": Map.rotate += 0.1; break
      -120 				case "a": Map.rotate -= 0.1; break
      -121 				case "f": Map.x += 20/Map.zoom; break
      -122 				case "h": Map.x -= 20/Map.zoom; break
      -123 				case "t": Map.y += 20/Map.zoom; break
      -124 				case "g": Map.y -= 20/Map.zoom; break
      -125 				case "x": localStorage.clear()
      -126 			}
      -127 		} else {
      -128 			// just modifiers:
      -129 			switch(character){
      -130 				case "r": Keyboard.keys.set("r",true); break
      -131 				case "z": Keyboard.keys.set("z",true); break
      -132 				case "g": if (Config.debug && !Config.live_gss) Cartagen.show_gss_editor(); break
      -133 				case "b": if (Config.debug) Interface.download_bbox()
      -134 			}
      -135 		}
      -136 		Glop.trigger_draw(5)
      -137 		// e.preventDefault()
      -138 	},
      -139 	/**
      -140 	 * Triggered when a key is released
      -141 	 */
      -142 	keyup: function(e) {
      -143 		if (Events.enabled === false) return
      -144 		
      -145 		Keyboard.keys.set("r",false)
      -146 		Keyboard.keys.set("z",false)
      -147 		e.preventDefault()
      -148 	},
      -149 	/**
      -150 	 * Triggered when a touch is started. Mainly for touchscreen mobile platforms
      -151 	 * @param {Event} e
      -152 	 */
      -153 	ontouchstart: function(e){
      -154 		e.preventDefault();
      -155 		if(e.touches.length == 1){ // Only deal with one finger
      -156 	 		var touch = e.touches[0]; // Get the information for finger #1
      -157 		    var node = touch.target; // Find the node the drag started from
      -158 
      -159 			Mouse.down = true
      -160 			Mouse.click_frame = Glop.frame
      -161 			Mouse.click_x = touch.screenX
      -162 			Mouse.click_y = touch.screenY
      -163 			Map.x_old = Map.x
      -164 			Map.y_old = Map.y
      -165 			Mouse.dragging = true
      -166 			Glop.trigger_draw(5)	
      -167 		  }
      -168 	},
      -169 	/**
      -170 	 * Triggered when a touch is moved. Mainly for touchscreen mobile platforms
      -171 	 * @param {Event} e
      -172 	 */
      -173 	ontouchmove: function(e) {	
      -174 		e.preventDefault();
      -175 		if(e.touches.length == 1){ // Only deal with one finger
      -176 			var touch = e.touches[0]; // Get the information for finger #1
      -177 			var node = touch.target; // Find the node the drag started from
      -178 
      -179 			Mouse.drag_x = (touch.screenX - Mouse.click_x)
      -180 			Mouse.drag_y = (touch.screenY - Mouse.click_y)
      -181 
      -182 			var d_x = -Math.cos(Map.rotate)*Mouse.drag_x+Math.sin(Map.rotate)*Mouse.drag_y
      -183 			var d_y = -Math.cos(Map.rotate)*Mouse.drag_y-Math.sin(Map.rotate)*Mouse.drag_x
      -184 
      -185 			Map.x = Map.x_old+(d_x/Map.zoom)
      -186 			Map.y = Map.y_old+(d_y/Map.zoom)
      -187 
      -188 			Glop.trigger_draw(5)
      -189 		}
      -190 	},
      -191 	/**
      -192 	 * Triggered when a touch is ended. Mainly for touchscreen mobile platforms
      -193 	 * @param {Event} e
      -194 	 */
      -195 	ontouchend: function(e) {
      -196 		if(e.touches.length == 1) {
      -197 			Mouse.up = true
      -198 			Mouse.down = false
      -199 			Mouse.release_frame = Glop.frame
      -200 			Mouse.dragging = false
      -201 		}
      -202 		User.update()
      -203 		Glop.trigger_draw(5)
      -204 	},
      -205 	/**
      -206 	 * Triggered when a touch gesture is started. Mainly for touchscreen mobile platforms
      -207 	 * @param {Event} e
      -208 	 */
      -209 	ongesturestart: function(e) {
      -210 		Map.zoom_old = Map.zoom
      -211 	},
      -212 	/**
      -213 	 * Triggered when a touch gesture is changed or moved. Mainly for touchscreen mobile platforms
      -214 	 * @param {Event} e
      -215 	 */
      -216 	ongesturechange: function(e){
      -217 		var node = e.target;
      -218 		if (Map.rotate_old == null) Map.rotate_old = Map.rotate
      -219 		Map.rotate = Map.rotate_old + (e.rotation/180)*Math.PI
      -220 		Map.zoom = Map.zoom_old*e.scale
      -221 		Glop.trigger_draw(5)
      -222 	},
      -223 	/**
      -224 	 * Triggered when a touch gesture is ended. Mainly for touchscreen mobile platforms
      -225 	 * @param {Event} e
      -226 	 */
      -227 	gestureend: function(e){
      -228 		Map.rotate_old = null
      -229 		User.update()
      -230 	},
      -231 	/**
      -232 	 * Triggered when the canvas is double clicked. Currently unused
      -233 	 * @param {Event} event
      -234 	 */
      -235 	dblclick: function(event) {
      -236 	},
      -237 	/**
      -238 	 * Triggered each frame. Moves the map based on drags.
      -239 	 */
      -240 	drag: function() {
      -241 		if (Mouse.dragging && !Prototype.Browser.MobileSafari && !window.PhoneGap) {
      -242 			Mouse.drag_x = (Mouse.x - Mouse.click_x)
      -243 			Mouse.drag_y = (Mouse.y - Mouse.click_y)
      -244 			Tool.drag()
      -245 		}
      -246 	},
      -247 	/**
      -248 	 * Returns the number of frames a click has lasted for.
      -249 	 */
      -250 	click_length: function() {
      -251 		return Mouse.release_frame-Mouse.click_frame
      -252 	},
      -253 	resize: function() {
      -254 		Glop.trigger_draw(5)
      -255 	},
      -256 	mouseover: function() {
      -257 		Events.enabled = true
      -258 	},
      -259 	mouseout: function() {
      -260 		Events.enabled = false
      -261 	}
      -262 }
      -263 // bind event
      -264 document.observe('cartagen:init', Events.init)
      -265 
      -266 
      -267 // This is to adjust for an iPhone turning its orientation - 
      -268 // the x and y dimensions will more or less reverse... this code
      -269 // would keep the url-bar hidden even so
      -270 
      -271 //if (Prototype.Browser.MobileSafari) {
      -272 	// addEventListener("load", function() { setTimeout(updateLayout, 0) }, false)
      -273 	// var currentWidth = 0;
      -274 	// function updateLayout() {
      -275 	//     if (window.innerWidth != currentWidth) {
      -276 	//         currentWidth = window.innerWidth;
      -277 	//         var orient = currentWidth == 320 ? "profile" : "landscape";
      -278 	//         document.body.setAttribute("orient", orient);
      -279 	//         setTimeout(function() {
      -280 	//             window.scrollTo(0, 1);
      -281 	//         }, 100);           
      -282 	//     }
      -283 	// }
      -284 	// setInterval(updateLayout, 400);
      -285 //}
      -286 
      \ No newline at end of file diff --git a/public/api/src/src_glop_glop.js.html b/public/api/src/src_glop_glop.js.html deleted file mode 100644 index d073a2f2..00000000 --- a/public/api/src/src_glop_glop.js.html +++ /dev/null @@ -1,225 +0,0 @@ -
        1 /**
      -  2  * @namespace The base of the interface between javascript and the canvas element. GLOP is a general javascript/canvas drawing system.
      -  3  */
      -  4 var Glop = {
      -  5 	/**
      -  6 	 * The number of frames that have been drawn.
      -  7 	 * @type Number
      -  8 	 */
      -  9 	frame: 0,
      - 10 	/**
      - 11 	 * The startup time in milliseconds since... 1970?
      - 12 	 * @type Number
      - 13 	 */
      - 14 	start_time: 0,
      - 15 	/**
      - 16 	 * The current time in milliseconds since... 1970?
      - 17 	 * @type Number
      - 18 	 */
      - 19 	timestamp: 0,
      - 20 	/**
      - 21 	 * The last 100 frames worth of timestamps, used to calculate fps.
      - 22 	 * @type Number
      - 23 	 */
      - 24 	times: [],
      - 25 	/**
      - 26 	 * The framerate over the last 10 seconds.
      - 27 	 * @type Number
      - 28 	 */
      - 29 	fps: 0,
      - 30 	/**
      - 31 	 * Whether the Glop environment has changed x,y size since the last frame.
      - 32 	 * @type Boolean
      - 33 	 */
      - 34 	changed_size: 0,
      - 35 	/**
      - 36 	 * A Date object updated (regenerated) every frame.
      - 37 	 * @type Date
      - 38 	 */
      - 39 	date: new Date,
      - 40 	/**
      - 41 	 * The width of the canvas
      - 42 	 * @type Number
      - 43 	 */
      - 44 	width: 0,
      - 45 	/**
      - 46 	 * The height of the canvas
      - 47 	 */
      - 48 	height: 0,
      - 49 	/**
      - 50 	 * If set to true, drawing is disabled
      - 51 	 */
      - 52 	paused: false,
      - 53 	/**
      - 54 	 * Binds all events to the main canvas. Use Glop.observe for all events.
      - 55 	 */
      - 56 	observe: function(a,b,c) {
      - 57 		$('main').observe(a,b,c)
      - 58 	},
      - 59 	/**
      - 60 	 * Binds all events to the main canvas. Use Glop.observe for all events.
      - 61 	 */
      - 62 	fire: function(a,b,c) {
      - 63 		$('main').fire(a,b,c)
      - 64 	},
      - 65 	/**
      - 66 	 * Binds all events to the main canvas. Use Glop.observe for all events.
      - 67 	 */
      - 68 	stopObserving: function(a,b,c) {
      - 69 		$('main').stopObserving(a,b,c)
      - 70 	},
      - 71 	/**
      - 72 	 * Sets up powersaving.
      - 73 	 */
      - 74 	init: function() {
      - 75 		// seconds between redraws:
      - 76 		// new PeriodicalExecuter(Glop.draw_powersave, 0.1)
      - 77 		TimerManager.setup(Glop.draw_powersave,this)
      - 78 	},
      - 79 	/**
      - 80 	 * Used to check if anything has changed since the last frame
      - 81 	 */
      - 82 	snapshot: '',
      - 83 	/**
      - 84 	 * Draws a frame. Sets height/width, moves the map as needed, fires draw events, and draws
      - 85 	 * the object array unless told not to (by  subscriber of glop:draw.
      - 86 	 */
      - 87 	draw: function(custom_size, force_draw) {
      - 88 		if (Glop.paused && (force_draw != true)) {
      - 89 			Glop.fire('glop:predraw')
      - 90 			return
      - 91 		}
      - 92 
      - 93 		Glop.timestamp = Glop.date.getTime()
      - 94 		Glop.times.unshift(Glop.timestamp)
      - 95 		// the last 100 frames
      - 96 		if (Glop.times.length > 100) Glop.times.pop()
      - 97 		Glop.fps = parseInt(Glop.times.length/(Glop.timestamp - Glop.times.last())*1000)
      - 98 		
      - 99 		// clear only if anything's changed!
      -100 		var new_snapshot = Map.x +','+ Map.x_old +','+ Map.y +','+ Map.y_old +','+ Map.rotate +','+ Map.rotate_old +','+ Map.zoom +','+ Map.old_zoom
      -101 
      -102 		// consider thawing background:
      -103 		//      a) if there are remaining tasks to be completed
      -104 		//		b) measuring whether a canvas has been drawn on, or drawn 'completely'
      -105 		if (new_snapshot != Glop.snapshot || force_draw || Glop.changed_size) {
      -106 			$C.thaw('background')
      -107 		} else {
      -108 			$C.freeze('background')
      -109 		}
      -110 		Glop.snapshot = new_snapshot
      -111 		
      -112 		Glop.resize(custom_size)
      -113 	
      -114 		// for embedded
      -115 		//Glop.width = $C.element.getWidth()
      -116 		//Glop.height = $C.element.getHeight()
      -117 		//$C.element.width = Glop.width
      -118 		//$C.element.height = Glop.height
      -119 		Events.drag()	
      -120 		/**
      -121 		 * @name Glop#glop:predraw
      -122 		 * @event
      -123 		 * Fired each frame before features are drawn.
      -124 		 */
      -125 		Glop.fire('glop:predraw')
      -126 		/**
      -127 		 * @name Glop#glop:draw
      -128 		 * @event
      -129 		 * Fired each frame between glop:predraw and glop:postdraw. SHould be used
      -130 		 * to draw features on the canvas. If the 'no_draw' property of the event
      -131 		 * is set to true, GLOP will not raw the objects array.
      -132 		 */
      -133 		draw_event = $('main').fire('glop:draw')
      -134 		if (!draw_event.no_draw) {
      -135 			objects.each(function(object) { 
      -136 				object.draw()
      -137 			})
      -138 		}
      -139 		
      -140 		/**
      -141 		 * @name Glop#glop:postdraw
      -142 		 * @event
      -143 		 * Fired at the end of each frame, after features are drawn.
      -144 		 */
      -145 		Glop.fire('glop:postdraw')
      -146 	},
      -147 	/**
      -148 	 * Adjusts size of canvas element to match browser window size
      -149 	 * @return Color in rgb(r, g, b) format
      -150 	 * @type String
      -151 	 */
      -152 	resize: function(custom_size) {
      -153 		if (!custom_size) { // see Canvas.to_print_data_url()
      -154 			Glop.changed_size = (Glop.width != document.viewport.getWidth() || Glop.height != document.viewport.getHeight()-Config.padding_top)
      -155 			$l(Glop.changed_size)
      -156 			Glop.width = document.viewport.getWidth()
      -157 			Glop.height = document.viewport.getHeight()-Config.padding_top
      -158 		}
      -159 		$C.canvases.each(function(canvas) {
      -160 			if ($C.freezer.get(canvas.key) != true || Glop.changed_size) {
      -161 			// we miss the initial draw before freezing
      -162 			// if ($(canvas.key).width != Glop.width || $(canvas.key).height != Glop.height) {
      -163 				// $l()
      -164 				$(canvas.key).width = Glop.width
      -165 				$(canvas.key).height = Glop.height
      -166 			}
      -167 		})
      -168 		$$('body')[0].style.width = Glop.width+"px"
      -169 	},
      -170 	/**
      -171 	 * Creates a random color
      -172 	 * @return Color in rgb(r, g, b) format
      -173 	 * @type String
      -174 	 */
      -175 	random_color: function() {
      -176 		return "rgb("+Math.round(Math.random()*255)+","+Math.round(Math.random()*255)+","+Math.round(Math.random()*255)+")"
      -177 	},
      -178 	/**
      -179 	 * The number of frames to continue rendering, even if there's no further user interaction
      -180 	 */
      -181 	tail: 0,
      -182 	/**
      -183 	 * Triggered when moused is moved on the canvas
      -184 	 * @param {Event} event
      -185 	 */
      -186 	trigger_draw: function(t) {
      -187 		// t = t || 1
      -188 		if (Object.isNumber(t) && !Object.isUndefined(t)) {
      -189 			if (t > this.tail) this.tail = t
      -190 		} else {
      -191 			if (this.tail <= 0) this.tail = 1
      -192 		}
      -193 	},
      -194 	/**
      -195 	 * Draws only if needed. Designed to be called periodically.
      -196 	 */
      -197 	draw_powersave: function() {
      -198 		var delay = 20
      -199 		if (this.tail > 0 || Config.powersave == false || (Importer.requested_plots && Importer.requested_plots > 0) || Cartagen.last_loaded_geohash_frame > Glop.frame-delay || Importer.parse_manager.completed < 100) {
      -200 			if (this.tail > 0) this.tail -= 1
      -201 			Glop.draw()
      -202 			Glop.frame += 1
      -203 		} else {
      -204 			Glop.times = []
      -205 		} //else $l('powersave: '+this.tail)
      -206 		// $l('tail:'+this.tail)
      -207 		Glop.date = new Date
      -208 	}
      -209 }
      -210 
      -211 document.observe('cartagen:init', Glop.init.bindAsEventListener(Glop))
      -212 
      -213 //= require "tasks"
      -214 //= require "timer"
      -215 //= require "events"
      -216 //= require "canvas"
      -217 //= require "canvastext"
      -218 
      \ No newline at end of file diff --git a/public/api/src/src_glop_tasks.js.html b/public/api/src/src_glop_tasks.js.html deleted file mode 100644 index 46f0c150..00000000 --- a/public/api/src/src_glop_tasks.js.html +++ /dev/null @@ -1,250 +0,0 @@ -
        1 /**
      -  2  * Manages long-running tasks; breaks them up to avoid stalling the UI;
      -  3  * uses Web Workers where available.
      -  4  * @class
      -  5  */
      -  6 var TaskManager = Class.create(
      -  7 /**
      -  8  * @lends TaskManager#
      -  9  */
      - 10 {
      - 11 	initialize: function(quota, tasks) {
      - 12 		/**
      - 13 		 * Amount of time, in miliseconds, allocated to the TaskManager each frame.
      - 14 		 */
      - 15 		this.quota = quota
      - 16 		
      - 17 		/**
      - 18 		 * Tasks to be performed; each is a Task object with members
      - 19 		 */
      - 20 		this.tasks = tasks || []
      - 21 		
      - 22 		// This could support Web Workers
      - 23 		//this.workers = []
      - 24 		
      - 25 		this.listener = this.run.bindAsEventListener(this)
      - 26 		
      - 27 		this.completed = 0
      - 28 		
      - 29 		this.start()
      - 30 	},
      - 31 	/**
      - 32 	 * Tasks to be performed; each is a Task object with members
      - 33 	 */ 
      - 34 	run: function() {
      - 35 		var i = 0
      - 36 		var start_time = new Date().getTime()
      - 37 		var cur_tasks = []
      - 38 		var r, task
      - 39 		
      - 40 		for (var j = 0; j < this.tasks.length; j++) {
      - 41 			if (this.tasks[j].pass_condition()) {
      - 42 				cur_tasks.push(this.tasks[j])
      - 43 			}
      - 44 		}
      - 45 		
      - 46 		while (cur_tasks.length > 0 && (new Date().getTime() - start_time) < this.quota) {
      - 47 			task = cur_tasks[(i++) % cur_tasks.length]
      - 48 			r = task.exec_next()
      - 49 			if (r === false) {
      - 50 				this.tasks = this.tasks.without(task)
      - 51 				cur_tasks = cur_tasks.without(task)
      - 52 			}
      - 53 		}
      - 54 		
      - 55 		this.get_completed(cur_tasks)
      - 56 		
      - 57 		Geohash.get_objects()
      - 58 		Glop.trigger_draw()
      - 59 		
      - 60 		if (this.tasks.length < 1) this.stop()
      - 61 	},
      - 62 	add: function(task) {
      - 63 		this.tasks.push(task)
      - 64 		
      - 65 		if (!this.active) this.start()
      - 66 	},
      - 67 	start: function() {
      - 68 		this.active = true
      - 69 		Glop.observe('glop:predraw', this.listener)
      - 70 	},
      - 71 	stop: function() {
      - 72 		this.active = false
      - 73 		Glop.stopObserving('glop:predraw', this.listener)
      - 74 	},
      - 75 	get_completed: function(tasks) {
      - 76 		var total = 0
      - 77 		var left = 0
      - 78 		for (var i = 0; i < tasks.length; ++i) {
      - 79 			total += tasks[i].total_members
      - 80 			left += tasks[i].members.length
      - 81 		}
      - 82 		this.completed = ((total-left)/total) * 100
      - 83 	}
      - 84 })
      - 85 
      - 86 /**
      - 87  * Contains a single task made up of a list of members to be
      - 88  * processed and a process() function to apply to them
      - 89  * @class
      - 90  */
      - 91 var Task = Class.create(
      - 92 /**
      - 93  * @lends Task#
      - 94  */
      - 95 {
      - 96 	initialize: function(members, process, condition, deps) {
      - 97 		/**
      - 98 		 * A list of values upon which to perform the "process" function
      - 99 		 * @type Object[]
      -100 		 */ 
      -101 		this.members = members || []
      -102 		this.total_members = members.length || 0
      -103 		/**
      -104 		 * A function to process objects with
      -105 		 * @type Function
      -106 		 */
      -107 		this.process = process || Prototype.emptyFunction
      -108 		/**
      -109 		 * A function or boolean that determines whther the task should be run.
      -110 		 * @type Function | Boolean
      -111 		 */
      -112 		if (Object.isUndefined(condition)) condition = true
      -113 		this.condition = condition
      -114 	
      -115 		Task.register(this)
      -116 		/**
      -117 		 *  Dependencies of this task.
      -118 		 *  If it has uncompleted deps, it does not run.
      -119 		 */
      -120 		this.deps = deps || []
      -121 	},
      -122 	exec_next: function() {
      -123 		if (!this.should_run()) return true
      -124 		
      -125 		this.process(this.members.shift())
      -126 		
      -127 		if (this.members.length > 0) return true
      -128 		else {
      -129 			Task.complete(this.id)
      -130 			return false
      -131 		}
      -132 	},
      -133 	should_run: function() {
      -134 		if (!this.pass_condition) return false
      -135 		
      -136 		for (var i = 0; i < this.deps.length; i++) {
      -137 			if (Task.is_done(this.deps[i]) === false) {
      -138 				return false
      -139 			}
      -140 		}
      -141 		
      -142 		return true
      -143 	},
      -144 	pass_condition: function() {
      -145 		if (Object.value(this.condition, this) === false) return false
      -146 		
      -147 		return true
      -148 	},
      -149 
      -150 	// Currently unused
      -151 	
      -152 	/**
      -153 	 * Whether this task's progress bar is visible by default.
      -154 	 */ 
      -155 	visible: false,
      -156 	/**
      -157 	 * Displays a progress bar for % of members processed
      -158 	 */ 
      -159 	display: function() {
      -160 		if (this.visible || Config.debug) {
      -161 			// display a 
      -162 		}
      -163 	}
      -164 })
      -165 
      -166 Task.cur_uid = 1
      -167 Task.registry = {}
      -168 Task.register = function(task) {
      -169 	task.id = Task.cur_uid++
      -170 	Task.registry[task.id] = false
      -171 }
      -172 Task.complete = function(id) {
      -173 	Task.registry[id] = true
      -174 }
      -175 Task.is_done = function(id) {
      -176 	return Task.registry[id]
      -177 }
      -178 
      -179 
      -180 // Not currently used
      -181 
      -182 /**
      -183  * Representation of a single timer, which tracks
      -184  * how far behind it's expected interval is.
      -185  * @class
      -186  */
      -187 var Timer = Class.create(
      -188 /**
      -189  * @lends Timer#
      -190  */
      -191 {
      -192 	initialize: function(interval,units) {
      -193 		if (units == 'seconds') {
      -194 			// ############ translate
      -195 		} else if (!Object.isUndefined(interval)) this.interval = interval
      -196 	},
      -197 	/**
      -198 	 * Interval of timer 
      -199 	 */ 
      -200 	interval: 40,
      -201 	/**
      -202 	 * Tracks how far behind projected timer completion we are
      -203 	 */ 
      -204 	lag: 0
      -205 })
      -206 
      -207 /*
      -208 TaskTest = {
      -209 	a: $R(1, 10).toArray(),
      -210 	b: $R(1, 10).toArray(),
      -211 	c: $R(1, 10).toArray(),
      -212 	d: $R(1, 10).toArray(),
      -213 	a2: [],
      -214 	b2: [],
      -215 	c2: [],
      -216 	d2: [],
      -217 	fa: function(o) {
      -218 		for (var i=0; i<9999999; i++){}
      -219 		TaskTest.a2.push(o)
      -220 	},	
      -221 	fb: function(o) {
      -222 		for (var i=0; i<9999999; i++){}
      -223 		TaskTest.b2.push(o)
      -224 	},	
      -225 	fc: function(o) {
      -226 		for (var i=0; i<9999999; i++){}
      -227 		TaskTest.c2.push(o)
      -228 	},
      -229 	fd: function(o) {
      -230 		for (var i=0; i<9999999; i++){}
      -231 		TaskTest.d2.push(o)
      -232 	}
      -233 }
      -234 
      -235 function tt_init() {
      -236 	TaskTest.ta = new Task(TaskTest.a, TaskTest.fa, true),
      -237 	TaskTest.tb = new Task(TaskTest.b, TaskTest.fb, true, [TaskTest.ta.id]),
      -238 	TaskTest.tc = new Task(TaskTest.c, TaskTest.fc, true, [TaskTest.tb.id]),
      -239 	TaskTest.td = new Task(TaskTest.d, TaskTest.fd, true, [TaskTest.tb.id]),
      -240 	TaskTest.tm = new TaskManager(1000, [TaskTest.ta, TaskTest.tb, TaskTest.tc, TaskTest.td])
      -241 }
      -242 */
      -243 
      \ No newline at end of file diff --git a/public/api/src/src_glop_timer.js.html b/public/api/src/src_glop_timer.js.html deleted file mode 100644 index 3def1ac2..00000000 --- a/public/api/src/src_glop_timer.js.html +++ /dev/null @@ -1,84 +0,0 @@ -
        1 /**
      -  2  * @namespace Manages CPU usage by running main loop process,
      -  3  * monitoring loop completion, and adjusting interval to compensate.
      -  4  */
      -  5 var TimerManager = {
      -  6 	/**
      -  7 	 * Date of last execution of TimerManager.f(), in milliseconds
      -  8 	 */
      -  9 	last_date: new Date,
      - 10 	/**
      - 11 	 * The recorded intervals of the last 100 executions. We sample from this to
      - 12 	 * make a good guess at what the next interval should be.
      - 13 	 */
      - 14 	times: [],
      - 15 	/**
      - 16 	 * Factor by which to space out executions. 2 means double the measured interval.
      - 17 	 */
      - 18 	spacing: 0.8,
      - 19 	/**
      - 20 	 * Interval after which to execute the function TimerManager.f() next time it's run;
      - 21 	 * changed every frame based on measured lag.
      - 22 	 */
      - 23 	interval: 10,
      - 24 	/**
      - 25 	 * Sets up TimerManager to run function f in context c every interval i;
      - 26 	 * defaults to c of TimerManager and i of 10. You probably want to pass the scope
      - 27 	 * of the function's parent class as c, as: TimerManager.setup(Foo.function_name,this)
      - 28 	 * @param {Function} f The function to execute
      - 29 	 * @param {Object} c The scope in which to run the function
      - 30 	 * @param {Number} s The amount to space out function executions beyond measured interval. 
      - 31 	 * 						2 means double the measured interval.
      - 32 	 * @param {Number} i The interval at which to run the function
      - 33 	 */
      - 34 	setup: function(f,c,s,i) {
      - 35 		this.f = f || function(){}
      - 36 		this.context = c || this
      - 37 		this.interval = i || this.interval
      - 38 		setTimeout(this.bound_run,i || this.interval)
      - 39 		// this.spacing = Math.max(1,2.5-Viewport.power())
      - 40 	},
      - 41 	/**
      - 42 	 * Binds the scope of TimerManager.run() to TimerManager
      - 43 	 */
      - 44 	bound_run: function() {
      - 45 		TimerManager.run.apply(TimerManager)
      - 46 	},
      - 47 	/**
      - 48 	 * Records Dates for next interval measurement, runs TimerManager.f() with proper
      - 49 	 * scope (TimerManager.context), creates a setTimeout to run itself again in 
      - 50 	 * TimerManager.interval milliseconds.
      - 51 	 */
      - 52 	run: function() {
      - 53 		var start_date = new Date
      - 54 		this.f.apply(this.context)
      - 55 		var execution_time = new Date - start_date
      - 56 		this.times.unshift(parseInt(execution_time))
      - 57 		if (this.times.length > 100) this.times.pop()
      - 58 		setTimeout(this.bound_run,Math.max(50,parseInt(this.spacing*this.sample())))
      - 59 	},
      - 60 	/**
      - 61 	 * Sampling pattern to make a best-guess at 
      - 62 	 * what the next interval should be.
      - 63 	 */
      - 64 	sequence: [1,2,3,5,8,13],//,21,34,55],
      - 65 	/**
      - 66 	 * Samples from recorded intervals to make a best-guess at 
      - 67 	 * what the next interval should be.
      - 68 	 */
      - 69 	sample: function() {
      - 70 		var sample = 0
      - 71 		for (var i = 0;i < this.sequence.length;i++) {
      - 72 			sample += this.times[this.sequence[i]] || 0
      - 73 		}
      - 74 		return sample/9
      - 75 	},
      - 76 }
      - 77 
      \ No newline at end of file diff --git a/public/api/src/src_interface_context_menu.js.html b/public/api/src/src_interface_context_menu.js.html deleted file mode 100644 index 5d169e22..00000000 --- a/public/api/src/src_interface_context_menu.js.html +++ /dev/null @@ -1,45 +0,0 @@ -
        1 var ContextMenu = {
      -  2 	cond_items: {},
      -  3 	init: function() {
      -  4 		this.menu = new Control.ContextMenu('main')
      -  5 	},
      -  6 	add_cond_item: function(name, callback) {
      -  7 		var id = Math.round(Math.random() * 999999999)
      -  8 
      -  9 		//while(!cond_items[id]) {
      - 10 		//	id = Math.round(Math.random() * 999999999)
      - 11 		//}
      - 12 		
      - 13 		callback.avail = false
      - 14 		callback.context = window
      - 15 		ContextMenu.cond_items[id] = callback
      - 16 
      - 17 		this.menu.addItem({
      - 18 				label: name,
      - 19 				callback: function() {
      - 20 					(ContextMenu.cond_items[id].bind(ContextMenu.cond_items[id].context))()
      - 21 				},
      - 22 				condition: function() {
      - 23 					return ContextMenu.cond_items[id].avail
      - 24 				}
      - 25 		})
      - 26 		
      - 27 		return id
      - 28 	},
      - 29 	add_static_item: function(name, _callback) {
      - 30 		this.menu.addItem({
      - 31 			label: name,
      - 32 			callback: _callback
      - 33 		})
      - 34 	}
      - 35 }
      - 36 
      - 37 document.observe('cartagen:init', ContextMenu.init.bindAsEventListener(ContextMenu))
      - 38 
      \ No newline at end of file diff --git a/public/api/src/src_interface_interface.js.html b/public/api/src/src_interface_interface.js.html deleted file mode 100644 index b904feb7..00000000 --- a/public/api/src/src_interface_interface.js.html +++ /dev/null @@ -1,73 +0,0 @@ -
        1 //= require "keyboard"
      -  2 //= require "mouse"
      -  3 //= require "user"
      -  4 //= require "context_menu"
      -  5 //= require "zoom"
      -  6 //= require "tool"
      -  7 //= require "select"
      -  8 //= require "pen"
      -  9 //= require "pan"
      - 10 //= require "warp"
      - 11 
      - 12 /**
      - 13  * @namespace Misc. UI methods that do not related to user-submitted data
      - 14  */
      - 15 var Interface = {
      - 16 	/**
      - 17 	 * Draws the display for how much of the map data has downloaded.
      - 18 	 */
      - 19 	display_loading: function(percent) {
      - 20 		if (percent < 100) {
      - 21 			// $l('bar')
      - 22 			$C.save()
      - 23 	        $C.translate(Map.x,Map.y)
      - 24 			$C.rotate(-Map.rotate)
      - 25 	        $C.translate(-Map.x,-Map.y)
      - 26 			$C.fill_style('white')
      - 27 			$C.line_width(0)
      - 28 			$C.opacity(0.7)
      - 29 			var x = Map.x-(1/Map.zoom*(Glop.width/2))+(40/Map.zoom), y = Map.y-(1/Map.zoom*(Glop.height/2))+(40/Map.zoom)
      - 30 			$C.begin_path()
      - 31 				$C.line_to(x,y)
      - 32 				$C.arc(x,y,24/Map.zoom,-Math.PI/2,Math.PI*2-Math.PI/2,false)
      - 33 				$C.line_to(x,y)
      - 34 			$C.fill()
      - 35 			$C.opacity(0.9)
      - 36 			$C.line_width(6/Map.zoom)
      - 37 			$C.stroke_style('white')
      - 38 			$C.line_cap('square')
      - 39 			$C.begin_path()
      - 40 				$C.arc(x,y,27/Map.zoom,-Math.PI/2,Math.PI*2*(percent/100)-Math.PI/2,false)
      - 41 			$C.stroke()
      - 42 			var width = $C.measure_text("Lucida Grande, sans-serif",
      - 43 			             12,
      - 44 			             parseInt(percent)+"%")
      - 45 			$C.draw_text("Lucida Grande, sans-serif",
      - 46 			             12/Map.zoom,
      - 47 						 "#333",
      - 48 			             x-(width/(2*Map.zoom)),
      - 49 						 y+(6/Map.zoom),
      - 50 						 parseInt(percent)+"%")	
      - 51 			$C.translate(Map.x,Map.y)
      - 52 			$C.rotate(Map.rotate)
      - 53 	        $C.translate(-Map.x,-Map.y)
      - 54 			$C.restore()
      - 55 		}
      - 56 	},
      - 57 	/**
      - 58 	 * Prompts the user to select a bbox, then downloads that bbox
      - 59 	 */
      - 60 	download_bbox: function() {
      - 61 		Glop.paused = true
      - 62 		alert('Please select a bounding box to download')
      - 63 		Tool.change('Select')
      - 64 	}
      - 65 }
      - 66 
      \ No newline at end of file diff --git a/public/api/src/src_interface_keyboard.js.html b/public/api/src/src_interface_keyboard.js.html deleted file mode 100644 index ea3345c9..00000000 --- a/public/api/src/src_interface_keyboard.js.html +++ /dev/null @@ -1,23 +0,0 @@ -
        1 /**
      -  2  * @namespace Stores information about the state of the keyboard
      -  3  */
      -  4 var Keyboard = {
      -  5 	/**
      -  6 	 * Hash of keys and whether they are down
      -  7 	 * @type Hash (String -> Boolean)
      -  8 	 */
      -  9 	keys: new Hash(),
      - 10 	/**
      - 11 	 * Whether Cartagen will be controlled by the keyboard
      - 12 	 * @type Boolean
      - 13 	 */
      - 14 	key_input: false,
      - 15 }
      - 16 
      \ No newline at end of file diff --git a/public/api/src/src_interface_mouse.js.html b/public/api/src/src_interface_mouse.js.html deleted file mode 100644 index 55cb8584..00000000 --- a/public/api/src/src_interface_mouse.js.html +++ /dev/null @@ -1,68 +0,0 @@ -
        1 /**
      -  2  * @namespace Stores information about the state of the mouse
      -  3  */
      -  4 var Mouse = {
      -  5 	/**
      -  6 	 * X-coordiante of the mouse
      -  7 	 * @type Number
      -  8 	 */
      -  9 	x: 0,
      - 10 	/**
      - 11 	 * Y-coordinate of the mouse
      - 12 	 * @type Number
      - 13 	 */
      - 14 	y: 0,
      - 15 	/**
      - 16 	 * Whether the mouse is down
      - 17 	 * @type Boolean
      - 18 	 */
      - 19 	down: false,
      - 20 	/**
      - 21 	 * Whether the mouse is up
      - 22 	 * @type Boolean
      - 23 	 */
      - 24 	up: false,
      - 25 	/**
      - 26 	 * X-coordinate of the last click
      - 27 	 * @type Number
      - 28 	 */
      - 29 	click_x: 0,
      - 30 	/**
      - 31 	 * Y-coordinate of the last click
      - 32 	 * @type Number
      - 33 	 */
      - 34 	click_y: 0,
      - 35 	/**
      - 36 	 * The frame of the last time the mouse was clicked
      - 37 	 * @type Number
      - 38 	 */
      - 39 	click_frame: 0,
      - 40 	/**
      - 41 	 * The frame of the last time the mouse was released
      - 42 	 * @type Number
      - 43 	 */
      - 44 	release_frame: null,
      - 45 	/**
      - 46 	 * Whether the map is being dragged
      - 47 	 * @type Boolean
      - 48 	 */
      - 49 	dragging: false,
      - 50 	/**
      - 51 	 * Length of the drag in the X-direction
      - 52 	 * @type Number
      - 53 	 */
      - 54 	drag_x: null,
      - 55 	/**
      - 56 	 * Length of the drag in the Y-direction
      - 57 	 * @type Number
      - 58 	 */
      - 59 	drag_y: null,
      - 60 	hovered_features: []
      - 61 }
      \ No newline at end of file diff --git a/public/api/src/src_interface_pan.js.html b/public/api/src/src_interface_pan.js.html deleted file mode 100644 index 5e550693..00000000 --- a/public/api/src/src_interface_pan.js.html +++ /dev/null @@ -1,50 +0,0 @@ -
        1 /**
      -  2  * @namespace The 'Pan' tool and associated methods.
      -  3  */
      -  4 Tool.Pan = {
      -  5 	mousedown: function(event) {
      -  6 	        Map.x_old = Map.x
      -  7 	        Map.y_old = Map.y
      -  8 		Map.zoom_old = Map.zoom
      -  9 	        Map.rotate_old = Map.rotate
      - 10 	}.bindAsEventListener(Tool.Pan),
      - 11 	mouseup: function() {
      - 12 
      - 13 	}.bindAsEventListener(Tool.Pan),
      - 14 	mousemove: function() {
      - 15 		var lon = Projection.x_to_lon(-1*Map.pointer_x())
      - 16 		var lat = Projection.y_to_lat(Map.pointer_y())
      - 17 		var features = Geohash.get_current_features_upward(encodeGeoHash(lat, lon))
      - 18 		if (features) features.reverse().concat(Mouse.hovered_features).invoke('style')
      - 19 	}.bindAsEventListener(Tool.Pan),
      - 20 	/*
      - 21 	 * Handles drags. Should rewrite this as an event listener rather than passing from Event > Tool > here
      - 22 	 */
      - 23 	drag: function() {
      - 24 		if (Keyboard.keys.get("r")) { // rotating
      - 25 			Map.rotate = Map.rotate_old + (-1*Mouse.drag_y/Glop.height)
      - 26 		} else if (Keyboard.keys.get("z")) {
      - 27 			if (Map.zoom > 0) {
      - 28 				Map.zoom = Math.abs(Map.zoom - (Mouse.drag_y/Glop.height))
      - 29 			} else {
      - 30 				Map.zoom = 0
      - 31 			}
      - 32 		} else {
      - 33 			var d_x = Math.cos(Map.rotate)*Mouse.drag_x+Math.sin(Map.rotate)*Mouse.drag_y
      - 34 			var d_y = Math.cos(Map.rotate)*Mouse.drag_y-Math.sin(Map.rotate)*Mouse.drag_x				
      - 35 			Map.x = Map.x_old+(d_x/Map.zoom)
      - 36 			Map.y = Map.y_old+(d_y/Map.zoom)
      - 37 		}
      - 38 	},
      - 39 	dblclick: function() {
      - 40 		$l('Pan dblclick')
      - 41 	}.bindAsEventListener(Tool.Pan)
      - 42 }
      - 43 
      \ No newline at end of file diff --git a/public/api/src/src_interface_pen.js.html b/public/api/src/src_interface_pen.js.html deleted file mode 100644 index 442beeaa..00000000 --- a/public/api/src/src_interface_pen.js.html +++ /dev/null @@ -1,56 +0,0 @@ -
        1 /**
      -  2  * @namespace The 'Pen' tool and associated methods.
      -  3  */
      -  4 Tool.Pen = {
      -  5 	/**
      -  6 	 * The tool mode can be 'drawing' when the user is in the process of adding 
      -  7 	 * points to the polygon, or 'inactive' when a polygon has not yet begun.
      -  8 	 */
      -  9 	mode: 'inactive',
      - 10 	/**
      - 11 	 * The polygon currently being drawn. 
      - 12 	 */
      - 13 	current_poly: null,
      - 14 	activate: function() {
      - 15 		$l('Pen activated')
      - 16 	},
      - 17 	deactivate: function() {
      - 18 		$l('Pen deactivated')
      - 19 	},
      - 20 	mousedown: function() {
      - 21 		
      - 22 		if (Tool.Pen.mode == 'inactive') {
      - 23 			$l('pen activated')
      - 24 			
      - 25 		} else if (Tool.Pen.mode == 'drawing') {
      - 26 			$l('pen drawing')
      - 27 		
      - 28 		}
      - 29 		
      - 30 	}.bindAsEventListener(Tool.Pen),
      - 31 	mouseup: function() {
      - 32 		$l('Pen mouseup')
      - 33 	}.bindAsEventListener(Tool.Pen),
      - 34 	mousemove: function() {
      - 35 		$l('Pen mousemove')
      - 36 	}.bindAsEventListener(Tool.Pen),
      - 37 	dblclick: function() {
      - 38 		$l('Pen dblclick')
      - 39 		Tool.Pen.mode = 'inactive'
      - 40 		// Did we end inside the first control point of the polygon?
      - 41 		if (true) {
      - 42 			// close the poly
      - 43 			
      - 44 		}
      - 45 		// complete and store polygon
      - 46 		
      - 47 	}.bindAsEventListener(Tool.Pen)
      - 48 }
      - 49 
      \ No newline at end of file diff --git a/public/api/src/src_interface_select.js.html b/public/api/src/src_interface_select.js.html deleted file mode 100644 index ef928a5c..00000000 --- a/public/api/src/src_interface_select.js.html +++ /dev/null @@ -1,83 +0,0 @@ -
        1 /**
      -  2  * @namespace The 'Select' tool and associated methods.
      -  3  */
      -  4 Tool.Select = {
      -  5 	activate: function() {
      -  6 		Tool.Select.active = true
      -  7 		Tool.Select.dragging = false
      -  8 	},
      -  9 	deactivate: function() {
      - 10 		Tool.Select.active = false
      - 11 		Tool.Select.dragging = false
      - 12 	},
      - 13 	mousemove: function(e) {
      - 14 		if (Tool.Select.active && Tool.Select.dragging) {
      - 15 			var pointer_x = Map.x+(((Glop.width/-2)+Event.pointerX(e))/Map.zoom)
      - 16 			var pointer_y = Map.y+(((Glop.height/-2)+Event.pointerY(e))/Map.zoom)
      - 17 
      - 18 			Tool.Select.end = [pointer_x, pointer_y]
      - 19 
      - 20 			Glop.draw(false, true)
      - 21 
      - 22 			var width = Tool.Select.end[0] - Tool.Select.start[0]
      - 23 			var height = Tool.Select.end[1] - Tool.Select.start[1]
      - 24 
      - 25 			$C.save()
      - 26 			$C.fill_style('#000')
      - 27 			$C.opacity(0.2)
      - 28 			$C.rect(Tool.Select.start[0], Tool.Select.start[1], width, height)
      - 29 			$C.opacity(1)
      - 30 			$C.line_width(3/Map.zoom)
      - 31 			$C.stroke_style('#000')
      - 32 			$C.stroke_rect(Tool.Select.start[0], Tool.Select.start[1], width, height)
      - 33 			$C.restore()
      - 34 		}
      - 35 	}.bindAsEventListener(Tool.Select),
      - 36 	mousedown: function(e) {
      - 37 		if (Tool.Select.active && !Tool.Select.dragging) {
      - 38 			var pointer_x = Map.x+(((Glop.width/-2)+Event.pointerX(e))/Map.zoom)
      - 39 			var pointer_y = Map.y+(((Glop.height/-2)+Event.pointerY(e))/Map.zoom)
      - 40 
      - 41 			Tool.Select.dragging = true
      - 42 			Tool.Select.start = [pointer_x, pointer_y]
      - 43 			Tool.Select.end = Tool.Select.start
      - 44 		}
      - 45 	}.bindAsEventListener(Tool.Select),
      - 46 	mouseup: function() {
      - 47 		if (Tool.Select.active && Tool.Select.dragging) {
      - 48 			Glop.paused = false
      - 49 			$l(Tool.Select.start[0])
      - 50 			$l(Tool.Select.end[0])
      - 51 
      - 52 			var min_lon = Math.min(Projection.x_to_lon(Tool.Select.start[0]), Projection.x_to_lon(Tool.Select.end[0]))
      - 53 			var min_lat = Math.min(Projection.y_to_lat(Tool.Select.start[1]), Projection.y_to_lat(Tool.Select.end[1]))
      - 54 			var max_lon = Math.max(Projection.x_to_lon(Tool.Select.start[0]), Projection.x_to_lon(Tool.Select.end[0]))
      - 55 			var max_lat = Math.max(Projection.y_to_lat(Tool.Select.start[1]), Projection.y_to_lat(Tool.Select.end[1]))
      - 56 
      - 57 			var query = min_lon + ',' + min_lat + ',' + max_lon + ',' + max_lat
      - 58 
      - 59 			window.open('/api/0.6/map.json?bbox=' + query, 'Cartagen data')
      - 60 
      - 61 			var lon = (Map.bbox[0] + Map.bbox[2]) / 2
      - 62 			var lat = (Map.bbox[1] + Map.bbox[3]) / 2
      - 63 
      - 64 			alert('Copy these values into your Cartagen.setup call: \n\nlat: ' + lat + ', \nlng: ' + lon + ',\nzoom_level: ' + Map.zoom)
      - 65 
      - 66 			Tool.change('Pan')
      - 67 		}
      - 68 	}.bindAsEventListener(Tool.Select),
      - 69 	drag: function() {
      - 70 
      - 71 	},
      - 72 	dblclick: function() {
      - 73 		$l('Select dblclick')
      - 74 	}.bindAsEventListener(Tool.Select)
      - 75 }
      - 76 
      \ No newline at end of file diff --git a/public/api/src/src_interface_tool.js.html b/public/api/src/src_interface_tool.js.html deleted file mode 100644 index 3d247750..00000000 --- a/public/api/src/src_interface_tool.js.html +++ /dev/null @@ -1,52 +0,0 @@ -
        1 /**
      -  2  * @namespace A class to contain tool definitions and associated tool methods for user interaction.
      -  3  */
      -  4 var Tool = {			
      -  5 	initialize: function() {
      -  6 		// default tool on startup is the Pan tool:
      -  7 		Glop.observe('mousemove', Tool.Pan.mousemove)
      -  8 		Glop.observe('mousedown', Tool.Pan.mousedown)
      -  9 		Glop.observe('mouseup', Tool.Pan.mouseup)
      - 10 		Glop.observe('dblclick', Tool.Pan.dblclick)
      - 11 	},
      - 12 	/**
      - 13 	 * The tool currently in use. Options include 'Pan', 'Pen', 'Select', 'Warp'
      - 14 	 */
      - 15 	active: 'Pan',
      - 16 	/**
      - 17 	 * Function to change the active tool 
      - 18 	 */
      - 19 	change: function(new_tool) {
      - 20 		old_tool = Tool.active
      - 21 			
      - 22 		tool_events = ['mousemove','mouseup','mousedown']
      - 23 
      - 24 		tool_events.each(function(tool_event) {
      - 25 			Glop.stopObserving(tool_event,Tool[old_tool][tool_event])
      - 26 			Glop.observe(tool_event,Tool[new_tool][tool_event])
      - 27 		})
      - 28 
      - 29 		if (!Object.isUndefined(Tool[old_tool].deactivate)) {
      - 30 			Tool[old_tool].deactivate()
      - 31 		}
      - 32 		if (!Object.isUndefined(Tool[new_tool].activate)) {
      - 33 			Tool[new_tool].activate()
      - 34 		}
      - 35 		
      - 36 		Tool.active = new_tool
      - 37 	},
      - 38 	/**
      - 39 	 * Pass drag call to the active tool:
      - 40 	 */
      - 41 	drag: function() {
      - 42 		Tool[Tool.active].drag()
      - 43 	}
      - 44 }
      - 45 
      \ No newline at end of file diff --git a/public/api/src/src_interface_user.js.html b/public/api/src/src_interface_user.js.html deleted file mode 100644 index 3508c9ab..00000000 --- a/public/api/src/src_interface_user.js.html +++ /dev/null @@ -1,453 +0,0 @@ -
        1 /**
      -  2  * @namespace Data about the user, and function to collect user input and fetch other users' input
      -  3  */
      -  4 var User = {
      -  5 	/**
      -  6 	 * Color assigned to this user's submissions
      -  7 	 * @type String
      -  8 	 */
      -  9 	color: Glop.random_color(),
      - 10 	/**
      - 11 	 * Name of the user
      - 12 	 * @type String
      - 13 	 */
      - 14 	name: 'anonymous',
      - 15 	/**
      - 16 	 * Latitude of the user, from geolocation
      - 17 	 * @type Number
      - 18 	 */
      - 19 	lat: 0,
      - 20 	/**
      - 21 	 * Longitude of the user, from geolocation
      - 22 	 * @type Number
      - 23 	 */
      - 24 	lon: 0,
      - 25 	/**
      - 26 	 * X-coordinate of the user, from geolocation
      - 27 	 * @type Number
      - 28 	 */
      - 29 	x: -118.31700000003664,
      - 30 	/**
      - 31 	 * Y-coordinate of the user, from geolocation
      - 32 	 * @type Number
      - 33 	 */
      - 34 	y: -6562600.9880228145,
      - 35 	/**
      - 36 	 * URI to submit nodes to
      - 37 	 * @type String
      - 38 	 */
      - 39 	node_submit_uri: '/node/write',
      - 40 	/**
      - 41 	 * URI to get updated nodes from
      - 42 	 * @type String
      - 43 	 */
      - 44 	node_updates_uri: '/node/read',
      - 45 	/**
      - 46 	 * URI to submit nodes to
      - 47 	 * @type String
      - 48 	 */
      - 49 	way_submit_uri: '/way/write',
      - 50 	/**
      - 51 	 * URI to get way updates from
      - 52 	 * @type String
      - 53 	 */
      - 54 	way_update_uri: '/way/read',
      - 55 	/**
      - 56 	 * Width of user-submitted lines
      - 57 	 * @type Number
      - 58 	 */
      - 59 	line_width:15,
      - 60 	/**
      - 61 	 * Radius of user-submitted nodes
      - 62 	 * @type Number
      - 63 	 */
      - 64 	node_radius: 30,
      - 65 	/**
      - 66 	 * How often the user's location is updated when following
      - 67 	 * @type Number
      - 68 	 */
      - 69 	follow_interval: 60,
      - 70 	/**
      - 71 	 * Whether we are following the user, like a creepy stalker
      - 72 	 * @type Boolean
      - 73 	 */
      - 74 	following: false,
      - 75 	/**
      - 76 	 * The PeriodicalExecuter that is responsible for updating the user's location
      - 77 	 * @type PeriodicalExecuter
      - 78 	 */
      - 79 	following_executer: null,
      - 80 	/**
      - 81 	 * Whether the user is in the process of drawing a way
      - 82 	 * @type Boolean
      - 83 	 */
      - 84 	drawing_way: false,
      - 85 	/**
      - 86 	 * Ids of user-submitted nodes that have already been loaded
      - 87 	 * @type String[]
      - 88 	 */
      - 89 	loaded_node_ids: [],
      - 90 	/**
      - 91 	 * Loads User-submitted data and sets up the periodical updater to reload
      - 92 	 * data. Bound to cartagen:postinit
      - 93 	 */
      - 94 	init: function() {
      - 95 		if (Config.load_user_features) {
      - 96 			User.update()
      - 97 			new PeriodicalExecuter(User.update, 60)
      - 98 		}
      - 99 	},
      -100 	/**
      -101 	 * Geolocates the user. Geolocation is asynchronous. Location is available as User.lat and
      -102 	 * User.lon once the asynchronous request has completed. Returns true if geolocaion is supported
      -103 	 * by the user agent, else returns false.
      -104 	 */
      -105 	geolocate: function() {
      -106 		// geolocate if available
      -107 		if (navigator.geolocation) {
      -108 			navigator.geolocation.getCurrentPosition(User.set_loc)
      -109 			return true
      -110 		}
      -111 		else return false
      -112 	},
      -113 	/**
      -114 	 * Sets the user's location
      -115 	 * @param {Location} loc The Loction object passed by navigator.geolocation
      -116 	 */
      -117 	set_loc: function(loc) {
      -118 		if (loc.coords) {
      -119 			User.lat = loc.coords.latitude
      -120 			User.lon = loc.coords.longitude
      -121 		}
      -122 		else {
      -123 			User.lat = loc.latitude
      -124 			User.lon = loc.longitude
      -125 		}
      -126 		User.x = Projection.lon_to_x(User.lon)
      -127 		User.y = Projection.lat_to_y(User.lat)
      -128 		// User.calculate_coords()
      -129 		$l('detected location: '+this.lat+","+this.lon)
      -130 	},
      -131 	/**
      -132 	 * Calculates the user's x and y based on the user's lon and lat
      -133 	 */
      -134 	calculate_coords: function() {
      -135 		// this should be based on lat and lon
      -136 	},
      -137 	/**
      -138 	 * Creates a node
      -139 	 * @param {Number} [x]     X-coordinate of node. Defaults to User.x
      -140 	 * @param {Number} [y]     Y-coordinate of node. Defaults to User.y
      -141 	 * @param {Boolean} [draw] Whether this node should be drawn on the canvas. Defaults to false.
      -142 	 *                         If this is ture, the node is registered with Geohash.
      -143 	 * @param {String} [id]    Id of the node. Defaults to a random number below 1000000000
      -144 	 *                         prefixed with "temp_"
      -145 	 * @return The created node
      -146 	 * @type Node
      -147 	 */
      -148 	create_node: function(x, y, draw, id) {
      -149 		if (Object.isUndefined(x)) x = User.x
      -150 		if (Object.isUndefined(y)) y = User.y
      -151 		if (Object.isUndefined(id)) id = 'temp_' + (Math.random() * 999999999).floor()
      -152 		var node = new Node()
      -153 		node.x = x
      -154 		node.y = y
      -155 		node.radius = User.node_radius
      -156 		node.id = id
      -157 		node.lon = Projection.x_to_lon(x)
      -158 		node.lat = Projection.y_to_lat(y)
      -159 		node.fillStyle = User.color
      -160 		node.strokeStyle = "rgba(0,0,0,0)"
      -161 		node.user_submitted = true
      -162 		
      -163 		if (draw) {
      -164 			Geohash.put(node.lat, node.lon, node, 1)
      -165 			objects.push(node)
      -166         	Glop.trigger_draw()
      -167 		}
      -168 
      -169 		return node
      -170 	},
      -171 	/**
      -172 	 * Creates and submits a node to the server. The node is set to be drawn in each frame, and
      -173 	 * sets the id of the node to the server-generated id, prefixed with "cartagen_".
      -174 	 * @param {Object} [x] X-coordinate of the node. Defaults to user's x.
      -175 	 * @param {Object} [y] Y-coordinate of the node. Defaults to user's y.
      -176 	 */
      -177 	submit_node: function(x, y) {
      -178 		var node = User.create_node(x, y, true)
      -179 		var name = prompt('Name for the node')
      -180 		node.label.name = name
      -181 		var params = {
      -182 			color: User.color,
      -183 			lon: node.lon,
      -184 			lat: node.lat,
      -185 			author: User.name,
      -186 			name: name
      -187 		}
      -188 		new Ajax.Request(User.node_submit_uri, {
      -189 			method: 'post',
      -190 			parameters: params,
      -191 			onSuccess: function(transport) {
      -192 				node.id = 'cartagen_' + transport.responseText
      -193 				User.loaded_node_ids.push(id)
      -194 			}
      -195 		})
      -196 	},
      -197 	/**
      -198 	 * Toggles whether the map follows the user.
      -199 	 */
      -200 	toggle_following: function() {
      -201 		if (User.following) {
      -202 			User.following_executer.stop()
      -203 			User.following = false
      -204 		}
      -205 		else {
      -206 			User.following_executer = new PeriodicalExecuter(User.center_map_on_user, 
      -207 			                                                 User.follow_interval)
      -208 			User.following = true
      -209 			User.center_map_on_user()
      -210 		}
      -211 	},
      -212 	/**
      -213 	 * Updates the user's location with geolocation and moves the map to be centered on the user.
      -214 	 */
      -215 	center_map_on_user: function() {
      -216 		navigator.geolocation.getCurrentPosition(User.set_loc_and_center)
      -217 		// User.set_loc_and_center()
      -218 	},
      -219 	/**
      -220 	 * Draws a small circle of desired color centered on the user's latitude and longitude.
      -221 	 */
      -222 	mark: function() {
      -223 		$C.stroke_style('white')
      -224 		$C.line_width(3.5/Map.zoom)
      -225 		$C.begin_path()
      -226 		$C.translate(User.x,User.y)
      -227 		$C.arc(0,0,10/Map.zoom,0,Math.PI*2,true)
      -228 		$C.move_to(10/Map.zoom,0)
      -229 		$C.line_to(6/Map.zoom,0)
      -230 		$C.move_to(-10/Map.zoom,0)
      -231 		$C.line_to(-6/Map.zoom,0)
      -232 		$C.move_to(0,10/Map.zoom)
      -233 		$C.line_to(0,6/Map.zoom)
      -234 		$C.move_to(0,-10/Map.zoom)
      -235 		$C.line_to(0,-6/Map.zoom)
      -236 		$C.stroke()
      -237 				
      -238 		$C.stroke_style('#4C6ACB')
      -239 		$C.line_width(2/Map.zoom)
      -240 		$C.begin_path()
      -241 		$C.arc(0,0,10/Map.zoom,0,Math.PI*2,true)
      -242 		$C.move_to(10/Map.zoom,0)
      -243 		$C.line_to(6/Map.zoom,0)
      -244 		$C.move_to(-10/Map.zoom,0)
      -245 		$C.line_to(-6/Map.zoom,0)
      -246 		$C.move_to(0,10/Map.zoom)
      -247 		$C.line_to(0,6/Map.zoom)
      -248 		$C.move_to(0,-10/Map.zoom)
      -249 		$C.line_to(0,-6/Map.zoom)
      -250 		$C.stroke()
      -251 	},
      -252 	/**
      -253 	 * Sets the user's location and centers the map on the new location
      -254 	 * @param {Location} loc Location object from navigator.geolocation
      -255 	 */
      -256 	set_loc_and_center: function(loc) {
      -257 		User.set_loc(loc)
      -258 		Map.x = User.x
      -259 		Map.y = User.y
      -260 		Glop.trigger_draw()
      -261 	},
      -262 	/**
      -263 	 * Toggles whether the user is drawing a way. When ending a way, submits the way to the server
      -264 	 * and updates the way's id to the server-generated id, prefixed with "cartagen_". When 
      -265 	 * starting a way, the way is created with a node at the user's current position.
      -266 	 * @param {Number} [x] X-coordinate of the start or end node. Defaults to user's x.
      -267 	 * @param {Number} [y] Y-coordinate of the start or end node. Defaults to user's y.
      -268 	 */
      -269 	toggle_way_drawing: function(x, y) {
      -270 		if (User.drawing_way) {
      -271 			User.add_node(x, y)
      -272 			User.submit_way(User.way)
      -273 		}
      -274 		else {
      -275 			User.way = new Way({
      -276 				id: 'temp_' + (Math.random() * 999999999).floor(),
      -277 				author: User.name,
      -278 				nodes: [User.create_node(x,y,true)],
      -279 				tags: new Hash()
      -280 			})
      -281 			User.way.strokeStyle = User.color
      -282 			User.way.lineWidth = User.line_width
      -283 			User.way.age = 40
      -284 			User.way.user_submitted = true
      -285 			Geohash.put(Projection.y_to_lat(User.way.y), Projection.x_to_lon(User.way.x), User.way, 1)
      -286 			Glop.trigger_draw()			
      -287 		}
      -288 		User.drawing_way = !User.drawing_way
      -289 	},
      -290 	/**
      -291 	 * Submits a way to the server and updates its id to the server-generated id, prefixed with
      -292 	 * "cartagen_"
      -293 	 * @param {Way} way Way to submit
      -294 	 */
      -295 	submit_way: function(way) {
      -296 		var name = prompt('Name for the way')
      -297 		way.label.text = name
      -298  		var params = {
      -299 			color: User.color,
      -300 			author: User.name,
      -301 			bbox: way.bbox,
      -302 			name: name,
      -303 			nodes: way.nodes.collect(function(node) {
      -304 				return [node.lat, node.lon]
      -305 			})
      -306 		}
      -307 		new Ajax.Request(User.way_submit_uri, {
      -308 			parameters: {way: Object.toJSON(params)},
      -309 			onSuccess: function(transport) {
      -310 				way.id = 'cartagen_' + transport.responseJSON.way_id
      -311 				var id = 0
      -312 				way.nodes.each(function(nd) {
      -313 					id = transport.responseJSON.node_ids.shift()
      -314 					nd.id = 'cartagen_' + transport.responseJSON.node_ids.shift()
      -315 					User.loaded_node_ids.push(id)
      -316 				})
      -317 			}
      -318 		})
      -319 	},
      -320 	/**
      -321 	 * Adds a node to the way that is currently being drawn
      -322 	 * @param {Number} [x] X-coordinate of node to add
      -323 	 * @param {Number} [y] Y-coordinate of node to add
      -324 	 */
      -325 	add_node: function(x, y) {
      -326 		node = User.create_node(x, y, true)
      -327 		User.way.nodes.push(node)
      -328 		User.way.bbox = Geometry.calculate_bounding_box(User.way.nodes)
      -329 		Glop.trigger_draw()
      -330 	},
      -331 	/**
      -332 	 * Updates the map with other users' nodes and ways
      -333 	 */
      -334 	update: function() {
      -335 		if (!Config.load_user_features) return
      -336 		var params = {
      -337 			bbox: Map.bbox.join(',')
      -338 		}
      -339 		if (User.last_pos && User.last_pos == [Map.x, Map.y]) {
      -340 			 params.timestamp = User.last_update
      -341 		}
      -342 		new Ajax.Request(User.node_updates_uri, {
      -343 			parameters: params,
      -344 			onSuccess: function(transport) {
      -345 				User._update_nodes(transport.responseJSON)
      -346 			}
      -347 		})
      -348 		User.last_pos = [Map.x, Map.y]
      -349 		User.last_update = (new Date()).toUTCString()
      -350 	},
      -351 	// callback for update - takes the server's node data
      -352 	// and creates the nodes, then loads ways, as needed
      -353 	_update_nodes: function(nodes) {
      -354 		var ways = []
      -355 		nodes.each(function(node) {
      -356 			node = node.node
      -357 			if (User.loaded_node_ids.indexOf(node.id) == -1) {				
      -358 				if (node.way_id != 0) {
      -359 					ways.push(node.way_id)
      -360 				}
      -361 				else {
      -362 					var n = new Node
      -363 					n.id = 'cartagen_' + node.id
      -364 					n.height = User.node_radius*2
      -365 					n.width = User.node_radius*2
      -366 					n.radius = User.node_radius
      -367 					n.fillStyle = node.color
      -368 					n.user = node.author
      -369 					n.lat = node.lat
      -370 					n.lon = node.lon
      -371 
      -372 					if (node.name) {
      -373 						n.label.text = node.name
      -374 					}
      -375 
      -376 					// BAD!!! Why do we need a *-1????
      -377 					n.x = -1*Projection.lon_to_x(n.lon)
      -378 					n.y = Projection.lat_to_y(n.lat)
      -379 					n.strokeStyle = "rgba(0,0,0,0)"
      -380 					n.user_submitted = true
      -381 					Geohash.put(n.lat, n.lon, n, 1)
      -382 				}
      -383 			}
      -384 		})
      -385 		Glop.trigger_draw()
      -386 		if (ways.length > 0) {
      -387 			new Ajax.Request(User.way_update_uri, {
      -388 				parameters: {
      -389 					ids: ways.uniq().join(',')
      -390 				},
      -391 				onSuccess: function(transport) {
      -392 					User._update_ways(transport.responseJSON)
      -393 				}
      -394 			})
      -395 		}
      -396 	},
      -397 	// callback for _update_nodes - updates the map with the server's way data
      -398 	_update_ways: function(data) {
      -399 		nodes = new Hash()
      -400 		
      -401 		data.node.each(function(node) {
      -402 			var n = new Node
      -403 			n.height = User.node_radius*2
      -404 			n.width = User.node_radius*2
      -405 			n.radius = User.node_radius
      -406 			n.fillStyle = node.color
      -407 			n.user = node.author
      -408 			n.lat = node.lat
      -409 			n.lon = node.lon
      -410 			// BAD!!! Why do we need a *-1????
      -411 			n.x = -1*Projection.lon_to_x(n.lon)
      -412 			n.y = Projection.lat_to_y(n.lat)
      -413 			n.strokeStyle = "rgba(0,0,0,0)"
      -414 			n.order = node.order
      -415 			n.user_submitted = true
      -416 			if (nodes.get(node.way_id)) {
      -417 				nodes.get(node.way_id).push(n)
      -418 			}
      -419 			else {
      -420 				nodes.set(node.way_id, [n])
      -421 			}
      -422 		})
      -423 			
      -424 		data.way.each(function(way) {
      -425 			var nds = nodes.get(way.id).sort(function(a, b) {return a.order - b.order})
      -426 			var data = {
      -427 				id: 'cartagen_' + way.id,
      -428 				user: way.author,
      -429 				nodes: nds,
      -430 				tags: new Hash()
      -431 			}
      -432 			w = new Way(data)
      -433 			w.strokeStyle = way.color
      -434 			w.lineWidth = User.line_width
      -435 			w.user_submitted = true
      -436 
      -437 			if (way.name) {
      -438 				w.label.text = way.name
      -439 			}
      -440 		})
      -441 	}
      -442 }
      -443 
      -444 // bind events
      -445 document.observe('cartagen:postinit', User.init.bindAsEventListener(User))
      -446 
      \ No newline at end of file diff --git a/public/api/src/src_interface_warp.js.html b/public/api/src/src_interface_warp.js.html deleted file mode 100644 index 49732f4b..00000000 --- a/public/api/src/src_interface_warp.js.html +++ /dev/null @@ -1,34 +0,0 @@ -
        1 /**
      -  2  * @namespace The 'Warp' tool and associated methods.
      -  3  */
      -  4 Tool.Warp = {
      -  5 	/**
      -  6 	 * 
      -  7 	 */
      -  8 	drag: function() {
      -  9 		
      - 10 	},
      - 11 	mousedown: function() {
      - 12 		$l('Warp mousedown')
      - 13 		
      - 14 	}.bindAsEventListener(Tool.Warp),
      - 15 	mouseup: function() {
      - 16 		$l('Warp mouseup')
      - 17 		
      - 18 	}.bindAsEventListener(Tool.Warp),
      - 19 	mousemove: function() {
      - 20 		$l('Warp mousemove')
      - 21 		
      - 22 	}.bindAsEventListener(Tool.Warp),
      - 23 	dblclick: function() {
      - 24 		$l('Warp dblclick')
      - 25 				
      - 26 	}.bindAsEventListener(Tool.Warp)	
      - 27 }
      \ No newline at end of file diff --git a/public/api/src/src_interface_zoom.js.html b/public/api/src/src_interface_zoom.js.html deleted file mode 100644 index 3e9a02ee..00000000 --- a/public/api/src/src_interface_zoom.js.html +++ /dev/null @@ -1,49 +0,0 @@ -
        1 /**
      -  2  * @namespace Provides a non-scrollwheel zooming interface
      -  3  */
      -  4 var Zoom = {
      -  5 	initialize: function() {
      -  6 		Glop.observe('cartagen:postdraw', Zoom.draw.bindAsEventListener(this))
      -  7 	},
      -  8 	zoom_to: function() {
      -  9 		
      - 10 	},
      - 11 	width: 20,
      - 12 	height:0.4,
      - 13 	draw: function() {
      - 14 		
      - 15 		// Glop.height*0.3
      - 16 		// $l('hey')
      - 17 		$C.save()
      - 18 		$C.fill_style('white')
      - 19 		$C.line_width(Zoom.width/Cartagen.zoom_level)
      - 20 		$C.opacity(0.7)
      - 21 		var x = Map.x-(1/Cartagen.zoom_level*(Glop.width/2))+(40/Cartagen.zoom_level), y = Map.y-(1/Cartagen.zoom_level*(Glop.height/2))+(40/Cartagen.zoom_level)
      - 22 		$C.begin_path()
      - 23 			$C.line_to(x,y)
      - 24 			$C.line_to(x,y+(Glop.height*Zoom.height)/Cartagen.zoom_level)
      - 25 		$C.stroke()
      - 26 
      - 27 		$C.opacity(0.9)
      - 28 		$C.line_width(Zoom.width/Cartagen.zoom_level)
      - 29 		$C.stroke_style('white')
      - 30 		$C.line_cap('square')
      - 31 		$C.begin_path()
      - 32 			$C.line_to(x,y)
      - 33 			$C.line_to(x,y+(Cartagen.zoom_level*Glop.height*Zoom.height)/Cartagen.zoom_level)
      - 34 		$C.stroke()
      - 35 
      - 36 		$C.restore()
      - 37 		
      - 38 	}
      - 39 	
      - 40 }
      - 41 
      - 42 document.observe('cartagen:init', Zoom.initialize.bindAsEventListener(Zoom))
      \ No newline at end of file diff --git a/public/api/src/src_mapping_geohash.js.html b/public/api/src/src_mapping_geohash.js.html deleted file mode 100644 index 4fa25223..00000000 --- a/public/api/src/src_mapping_geohash.js.html +++ /dev/null @@ -1,482 +0,0 @@ -
        1 /**
      -  2  * @namespace Contains methods and variables for spacially indexing features using geohashes.
      -  3  */
      -  4 var Geohash = {}
      -  5 
      -  6 Object.extend(Geohash, Enumerable)
      -  7 
      -  8 Object.extend(Geohash, {
      -  9 	_dirs: ['top','bottom','left','right'],
      - 10 	/**
      - 11 	 * Map of geohashes -> features
      - 12 	 * @type Hash (String -> Feature[])
      - 13 	 */
      - 14 	hash: new Hash(),
      - 15 	/**
      - 16 	 * Array of all objects that should be drawn for the current frame
      - 17 	 * @type Feature[]
      - 18 	 */
      - 19 	objects: [],
      - 20 	/**
      - 21 	 * A subset of Geohash.hash that contains only features that should be drawn for
      - 22 	 * the current frame.
      - 23 	 */
      - 24 	object_hash: new Hash(),
      - 25 	/**
      - 26 	 * If true, a grid of geohashes is drawn on the map
      - 27 	 * @type Boolean
      - 28 	 */
      - 29 	grid: false,
      - 30 	/**
      - 31 	 * Color of the grid of geohashes to be drawn on the map
      - 32 	 * @type String
      - 33 	 */
      - 34 	grid_color: 'black',
      - 35 	/**
      - 36 	 * Default length for a geohash, if none is specified or calculated. Note that
      - 37 	 * put_object() will automatically calculate an appropriate geohash for the feature,
      - 38 	 * so this only affects put().
      - 39 	 * @type Number
      - 40 	 */
      - 41 	default_length: 6, // default length of geohash
      - 42 	/**
      - 43 	 * The largest allowable geohash length
      - 44 	 * @type Number
      - 45 	 */
      - 46 	limit_bottom: 8, // 12 is most ever...
      - 47 	/**
      - 48 	 * position when Geohash.get_objects() was last run; in format: [x,y,zoom,force]
      - 49 	 */
      - 50 	last_get_objects: [0,0,0,false],
      - 51 	/**
      - 52 	 * Frame the last plot was loaded on
      - 53 	*/
      - 54 	last_loaded_geohash_frame: 0,
      - 55 	/**
      - 56 	 * Binds to events
      - 57 	 */
      - 58 	init: function() {
      - 59 		Glop.observe('cartagen:predraw', this.draw.bindAsEventListener(this))
      - 60 		Glop.observe('cartagen:postdraw', this.draw_bboxes.bindAsEventListener(this))
      - 61 	},
      - 62 	/**
      - 63 	 * Recalculates which geohashes to request based on the viewport; formerly called every 
      - 64 	 * frame, but now only when viewport changes.
      - 65 	 * @see Geohash.get_objects
      - 66 	 */
      - 67 	draw: function() {
      - 68 		if (this.last_get_objects[3] || Geohash.objects.length == 0 || Map.zoom/this.last_get_objects[2] > 1.1 || Map.zoom/this.last_get_objects[2] < 0.9 || Math.abs(this.last_get_objects[0] - Map.x) > 100 || Math.abs(this.last_get_objects[1] - Map.y) > 100) {
      - 69 		// if (Geohash.objects.length == 0 || Math.abs(this.last_get_objects[0] - Map.x) > 50 || Math.abs(this.last_get_objects[1] - Map.y) > 50) {
      - 70 			this.get_objects()
      - 71 			this.last_get_objects[3] = false
      - 72 			//$l('re-getting-objects')
      - 73 			Cartagen.last_loaded_geohash_frame = Glop.frame
      - 74 		}
      - 75 	},
      - 76 	/**
      - 77 	 * Adds a feature to a geohash index. Use put_object() to automatically
      - 78 	 * calculate latitude, longitude, and appropriate geohash length.
      - 79 	 * @param {Number} lat      Latitude of feature
      - 80 	 * @param {Number} lon      Longitude of feature
      - 81 	 * @param {Feature} feature The feature
      - 82 	 * @param {Number} length   Length of geohash
      - 83 	 * @see Geohash.put_object
      - 84 	 */
      - 85 	put: function(lat,lon,feature,length) {
      - 86 		if (!length) length = this.default_length
      - 87 		var key = this.get_key(lat,lon,length)
      - 88 		
      - 89 		// check to see if the geohash is already populated:
      - 90 		var merge_hash = this.hash.get(key)
      - 91 		if (!merge_hash) {
      - 92 			merge_hash = [feature]
      - 93 		} else {
      - 94 			merge_hash.push(feature)
      - 95 		}
      - 96 		
      - 97 		this.hash.set(key,merge_hash)
      - 98 	},
      - 99 	/**
      -100 	 * Puts a feature into the geohash index. Finds latitude and longitude from
      -101 	 * feature's x and y, and calculates an appropriate geohash based on
      -102 	 * size of feature and size of canvas. Use put() to manually specify latitude,
      -103 	 * longitude, and geohash length.
      -104 	 * @param {Feature} feature
      -105 	 * @see Geohash.put
      -106 	 * @see Geohash.get_key_length
      -107 	 */
      -108 	put_object: function(feature) {
      -109 		this.put(Projection.y_to_lat(feature.y),
      -110 		         Projection.x_to_lon(-feature.x),
      -111 		         feature,
      -112 		         this.get_key_length(feature.width,feature.height))
      -113 	},
      -114 	/**
      -115 	 * Generates a geohash.
      -116 	 * @param {Number} lat    Latitude to hash
      -117 	 * @param {Number} lon    Longitude to hash
      -118 	 * @param {Number} length Length of hash
      -119 	 * @return The generated geohash, truncated to the specified length
      -120 	 * @type String
      -121 	 */
      -122 	get_key: function(lat,lon,length) {
      -123 		if (!length) length = this.default_length
      -124 		if (length < 1) length = 1
      -125 		
      -126 		return encodeGeoHash(lat,lon).truncate(length,'')
      -127 	},
      -128 	/**
      -129 	 * Fetch features in a geohash
      -130 	 * @param {Number} lat    Latitude of geohash
      -131 	 * @param {Number} lon    Longitude of geohash
      -132 	 * @param {Number} length Geohash length
      -133 	 * @return Features in the same geohash as the specified location
      -134 	 * @type Feature[]
      -135 	 * @see Geohash.get_from_key
      -136 	 * @see Geohash.get_upward
      -137 	 */ 
      -138 	get: function(lat,lon,length) {
      -139 		if (!length) length = this.default_length
      -140 		
      -141 		var key = this.get_key(lat,lon,length)
      -142 		return this.hash.get(key)
      -143 	},
      -144 	/**
      -145 	 * Gets features in a geohash.
      -146 	 * @param {Number} key Geohash to find features from
      -147 	 * @return Features in the specified geohash, or an empty array
      -148 	 * @type Feature[]
      -149 	 * @see Geohash.get
      -150 	 * @see Geohash.get_upward
      -151 	 */
      -152 	get_from_key: function(key) {
      -153 		return this.hash.get(key) || []
      -154 	},
      -155 	/**
      -156 	 * Fetch features in a geohash from a geohash key, and all shorter keys
      -157 	 * @param {Object} key Geohash to find features from
      -158 	 * @return Features in this and shorter geohashes, or an empty array
      -159 	 * @type Feature[]
      -160 	 * @see Geohash.get
      -161 	 * @see Geohash.get_from_key
      -162 	 * @see Geohash.get_keys_upward
      -163 	 */ 
      -164 	get_upward: function(key) {
      -165 		key.truncate(this.limit_bottom,'')
      -166 
      -167 		var this_level = this.hash.get(key)
      -168 		
      -169 		if (this_level && key.length > 0) {
      -170 			if (key.length > 1) return this_level.concat(this.get_upward(key.truncate(key.length-1),''))
      -171 			else return this_level
      -172 		} else {
      -173 			if (key.length > 1) return this.get_upward(key.truncate(key.length-1),'')
      -174 			else return []
      -175 		}
      -176 	},
      -177 	/** 
      -178 	 * Fetch keys in a geohash from a geohash key, and all shorter keys, and place
      -179 	 * then in Geohash.keys. Ensures that only one copy of a key will
      -180 	 * be in Geohash.keys.
      -181 	 * @param {String} key Geohash to get keys from.
      -182 	 * @see Geohash.get_upward
      -183 	 */
      -184 	get_keys_upward: function(key) {
      -185 		key.truncate(this.limit_bottom,'')
      -186 		
      -187 		if (key.length > 0) {
      -188 			this.keys.set(key, true)
      -189 			k = key.truncate(key.length-1,'')
      -190 			if (key.length > 1 && !Geohash.keys.get(k)) {
      -191 				this.get_keys_upward(k)
      -192 			}
      -193 		}
      -194 	},
      -195 	/**
      -196 	 * Gets all features that should be drawn in the current frame that are in the specified
      -197 	 * key and all shorter keys.
      -198 	 * @param {String} key Geohash to look in
      -199 	 * @type Feature[]
      -200 	 */
      -201 	get_current_features_upward: function(key) {
      -202 		keys = []
      -203 		for (var i=this.limit_bottom; i > 0; i--) {
      -204 			keys.push(key.truncate(i, ''))
      -205 		}
      -206 		features =  []
      -207 		keys.each(function(k) {
      -208 			if (this.object_hash.get(k)) features = this.object_hash.get(k).concat(features)
      -209 		}, this)
      -210 		return features
      -211 	}, 
      -212 	/**
      -213 	 * Gets the eights neighboring keys of the specified key, including diagonal neighbors.
      -214 	 * @param {String} key Central geohash
      -215 	 * @return Array of neighbors, starting from the key directly above the central key and
      -216 	 *         proceeding clockwise.
      -217 	 * @type String[]
      -218 	 * 
      -219 	 */
      -220 	get_all_neighbor_keys: function(key) {
      -221 		var top = calculateAdjacent(key, 'top')
      -222 		var bottom = calculateAdjacent(key, 'bottom')
      -223 		var left = calculateAdjacent(key, 'left')
      -224 		var right = calculateAdjacent(key, 'right')
      -225 		var top_left = calculateAdjacent(top, 'left')
      -226 		var top_right = calculateAdjacent(top, 'right')
      -227 		var bottom_left = calculateAdjacent(bottom, 'left')
      -228 		var bottom_right = calculateAdjacent(bottom, 'right')
      -229 		return [top, top_right, right, bottom_right, bottom, bottom_left, left, top_left]
      -230 	},
      -231 	/**
      -232 	 * Fetch adjacent geohashes
      -233 	 * @param {String} key Central geohash
      -234 	 * @return Array of neighbors
      -235 	 * @type Feature[]
      -236 	 */ 
      -237 	get_neighbors: function(key) {
      -238 		var neighbors = []
      -239 
      -240 		this._dirs.each(function(dir) {
      -241 			var n_key = calculateAdjacent(key, dir)
      -242 			var n_array = this.get_from_key(n_key)
      -243 			if (n_array) neighbors = neighbors.concat(n_array)
      -244 		}, this)
      -245 
      -246 		return neighbors
      -247 	},
      -248 	/**
      -249 	 *  Given a geohash key, recurses outwards to neighbors while still within the viewport
      -250 	 *  @param {String}                   key  Central geohash
      -251 	 *  @param {Hash (String -> Boolean)} keys Hash of keys and whether they have been included in
      -252 	 *                                         search
      -253 	 **/
      -254 	fill_bbox: function(key,keys) {
      -255 		// we may be able to improve efficiency by only checking certain directions
      -256 		this.get_all_neighbor_keys(key).each(function(k) {
      -257 			if (!keys.get(k)) {
      -258 				keys.set(k, true)
      -259 				
      -260 				// if still inside viewport:
      -261 				var bbox = decodeGeoHash(k) //[lon1, lat2, lon2, lat1]
      -262 				if (Math.in_range(bbox.latitude[0],Map.bbox[3],Map.bbox[1]) &&
      -263 					Math.in_range(bbox.latitude[1],Map.bbox[3],Map.bbox[1]) &&
      -264 				    Math.in_range(bbox.longitude[0],Map.bbox[0],Map.bbox[2]) &&
      -265 					Math.in_range(bbox.longitude[1],Map.bbox[0],Map.bbox[2])) {
      -266 						this.fill_bbox(k,keys)
      -267 				}
      -268 			}
      -269 		}, this)
      -270 	},
      -271 	/**
      -272 	 * Prints debugging information to the console
      -273 	 * @return Number of registered geohashes
      -274 	 * @type Number
      -275 	 */
      -276 	trace: function() {
      -277 		var lengths = new Hash
      -278 		this.hash.keys().each(function(key) {
      -279 			$l(key+': '+this.hash.get(key).length)
      -280 			if (!lengths.get(key.length)) lengths.set(key.length,0)
      -281 			lengths.set(key.length,lengths.get(key.length)+1)
      -282 		}, this)
      -283 		
      -284 		$l('Lengths >>')
      -285 		
      -286 		lengths.keys().sort().each(function(length) {
      -287 			$l(length+": "+lengths.get(length))
      -288 		})
      -289 		
      -290 		return this.hash.size()
      -291 	},
      -292 	/**
      -293 	 * Returns the bounding box of a geohash
      -294 	 * @param {String} geohash Geohash to get bounding box of
      -295 	 * @return Bounding box of geohash, in [lon_1, lat_2, lon_ 2, lat_1] format
      -296 	 * @type Number[]
      -297 	 */
      -298 	bbox: function(geohash) {
      -299 		var geo = decodeGeoHash(geohash)
      -300 		return [geo.longitude[0],geo.latitude[1],geo.longitude[1],geo.latitude[0],geohash]
      -301 	},
      -302 	/**
      -303 	 * Draws the bounding box of a geohash
      -304 	 * @param {String} key Geohash to draw bounding box of 
      -305 	 */
      -306 	draw_bbox: function(key) {
      -307 		var bbox = this.bbox(key)
      -308 
      -309 		var line_width = 1/Map.zoom
      -310 		// line_width < 1
      -311 		$C.line_width(Math.max(line_width,1))
      -312 		$C.stroke_style(this.grid_color)
      -313 
      -314 		var width = Projection.lon_to_x(bbox[2]) - Projection.lon_to_x(bbox[0])
      -315 		var height = Projection.lat_to_y(bbox[1]) - Projection.lat_to_y(bbox[3])
      -316 
      -317 		$C.stroke_rect(Projection.lon_to_x(bbox[0]),
      -318 					   Projection.lat_to_y(bbox[3]),
      -319 					   width,
      -320 					   height)
      -321 		$C.save()
      -322 		$C.translate(Projection.lon_to_x(bbox[0]),Projection.lat_to_y(bbox[3]))
      -323 		$C.fill_style(Object.value(this.fontBackground))
      -324 		var height = 16 / Map.zoom
      -325 		var width = $C.measure_text('Lucida Grande', 
      -326 		                            height,
      -327 		                            key)
      -328 		var padding = 2
      -329 		// $C.fill_style('white')
      -330 		// $C.rect(-padding/2, 
      -331 		// 		-(height + padding/2), 
      -332 		// 		width + padding + 3/Map.zoom,
      -333 		//         height + padding - 3/Map.zoom)
      -334 		$C.draw_text('Lucida Grande',
      -335 					 height,
      -336 					 this.grid_color,
      -337 					 3/Map.zoom,
      -338 					 -3/Map.zoom,
      -339 					 key)
      -340 		$C.restore()
      -341 	},
      -342 	draw_bboxes: function() {
      -343 		if (Geohash.grid) {
      -344 			this.keys.keys().each(function(key){
      -345 				Geohash.draw_bbox(key)
      -346 			})
      -347 		}
      -348 	},
      -349 	/**
      -350 	 * Gets an appropriate key length for a ceratin size of feature
      -351 	 * @param {Object} lat Width, in degrees of latitude, of feature
      -352 	 * @param {Object} lon Height, in degrees of longitude, of feature
      -353 	 * @return Appropriate length of key
      -354 	 * @type Number
      -355 	 */
      -356 	get_key_length: function(lat,lon) {
      -357 		if      (lon < 0.0000003357) lon_key = 12
      -358 		else if (lon < 0.000001341)  lon_key = 11
      -359 		else if (lon < 0.00001072)   lon_key = 10
      -360 		else if (lon < 0.00004291)   lon_key = 9
      -361 		else if (lon < 0.0003433)    lon_key = 8
      -362 		else if (lon < 0.001373)     lon_key = 7
      -363 		else if (lon < 0.01098)      lon_key = 6
      -364 		else if (lon < 0.04394)      lon_key = 5
      -365 		else if (lon < 0.3515)       lon_key = 4
      -366 		else if (lon < 1.406)        lon_key = 3
      -367 		else if (lon < 11.25)        lon_key = 2
      -368 		else if (lon < 45)           lon_key = 1
      -369 		else                         lon_key = 0 // eventually we can map the whole planet at once
      -370 		
      -371 		if      (lat < 0.0000001676) lat_key = 12
      -372 		else if (lat < 0.000001341)  lat_key = 11
      -373 		else if (lat < 0.000005364)  lat_key = 10
      -374 		else if (lat < 0.00004291)   lat_key = 9
      -375 		else if (lat < 0.0001716)    lat_key = 8
      -376 		else if (lat < 0.001373)     lat_key = 7
      -377 		else if (lat < 0.005493)     lat_key = 6
      -378 		else if (lat < 0.04394)      lat_key = 5
      -379 		else if (lat < 0.1757)       lat_key = 4
      -380 		else if (lat < 1.40625)      lat_key = 3
      -381 		else if (lat < 5.625)        lat_key = 2
      -382 		else if (lat < 45)           lat_key = 1
      -383 		else                         lat_key = 0 // eventually we can map the whole planet at once
      -384 		
      -385 		return Math.min(lat_key,lon_key)
      -386 	},
      -387 	/**
      -388 	 * Generates Geohash.objects, populating it with the objects that
      -389 	 * should be drawn this frame.
      -390 	 * @return Geohash.objects, in reverse order
      -391 	 * @type Feature[]
      -392 	 * @see Geohash.objects
      -393 	 */
      -394 	get_objects: function() {
      -395 		this.last_get_objects = [Map.x,Map.y,Map.zoom]
      -396 		this.objects = []
      -397 
      -398 		// get geohash for each of the 4 corners,
      -399 		this.keys = new Hash
      -400 		
      -401 		this.key_length = this.get_key_length(0.0015/Map.zoom, 0.0015/Map.zoom)
      -402 		
      -403 		this.key = this.get_key(Map.lat, Map.lon, this.key_length)
      -404 		
      -405 		var bbox = decodeGeoHash(this.key) //[lon1, lat2, lon2, lat1]
      -406 		
      -407 		this.fill_bbox(this.key, this.keys)
      -408 		this.get_keys_upward(this.key)
      -409 
      -410 		this.keys.keys().each(function(key, index) {
      -411 			this.get_keys_upward(key)
      -412 		}, this)
      -413 
      -414 		//var quota = Geohash.feature_quota()
      -415 
      -416 
      -417 		// This should be re-added for 0.6 release
      -418 
      -419 		// sort by key length
      -420 
      -421 //		var lengths = {}
      -422 //		this.keys.keys().each(function(key) {
      -423 //			if (!lengths[key.length]) lengths[key.length] = []
      -424 //
      -425 //			lengths[key.length].push(Geohash.get_from_key(key))
      -426 //		})
      -427 //
      -428 //		for (i = 1; i <= this.key_length && quota > 0; ++i) {
      -429 //			var features = lengths[i].flatten()
      -430 //			if (quota >= features.length) {
      -431 //				this.objects = this.objects.concat(features)
      -432 //				quota -= features.length
      -433 //			}
      -434 //			else {
      -435 //				j = 0
      -436 //				while (quota > 0) {
      -437 //					var o = lengths[i][j % (lengths[i].length)].shift()
      -438 //					if (o) this.objects.push(o)
      -439 //					++j
      -440 //					--quota
      -441 //				}
      -442 //			}
      -443 //		}
      -444 		var features;
      -445 		this.keys.keys().each(function(key) {
      -446 				features = this.get_from_key(key)
      -447 				this.object_hash.set(key, features)
      -448 				this.objects = features.concat(this.objects)
      -449 		}, this)
      -450 		
      -451 		this.sort_objects()
      -452 
      -453 		//$l(this.objects.length)
      -454 		return this.objects
      -455 	},
      -456 	sort_objects: function() {
      -457 		this.objects.sort(Geometry.sort_by_area)
      -458 	},
      -459 	/**
      -460 	 * Calculates the appropritate density of features based on the hardware' power (estimated by screen
      -461 	 * resolution).
      -462 	 * @return The density, in features per 1,000 square pixels.
      -463 	 */
      -464 	feature_density: function() {
      -465 		return 2 * Viewport.power()
      -466 	},
      -467 	/**
      -468 	 * Calculates the number of features that should be drawn.
      -469 	 */
      -470 	feature_quota: function() {
      -471 		return ((Glop.width * Glop.height) * (Geohash.feature_density() / 1000)).round()
      -472 	},
      -473 	/**
      -474 	 * Iterator for prototype.
      -475 	 *
      \ No newline at end of file diff --git a/public/api/src/src_mapping_map.js.html b/public/api/src/src_mapping_map.js.html deleted file mode 100644 index baf2c88b..00000000 --- a/public/api/src/src_mapping_map.js.html +++ /dev/null @@ -1,133 +0,0 @@ -
        1 //= require "geohash"
      -  2 //= require "projection"
      -  3 //= require "viewport"
      -  4 
      -  5 /**
      -  6  * Stores data about the map and methods to manipulate it
      -  7  * @namespace 
      -  8  */
      -  9 var Map = {
      - 10 	/**
      - 11 	 * Initializes the map properties
      - 12 	 */
      - 13 	init: function() {
      - 14 		this.x = Projection.lon_to_x(Config.lng)
      - 15 		this.y = Projection.lat_to_y(Config.lat)
      - 16 		Glop.observe('glop:predraw', this.draw.bindAsEventListener(this))
      - 17 		this.draw()
      - 18 	},
      - 19 	/**
      - 20 	 * Updates the map properties. Runs every frame.
      - 21 	 */
      - 22 	draw: function() {
      - 23 		var lon1 = Projection.x_to_lon(-Map.x - (Viewport.width/2))
      - 24 		var lon2 = Projection.x_to_lon(-Map.x + (Viewport.width/2))
      - 25 		var lat1 = Projection.y_to_lat(Map.y - (Viewport.height/2))
      - 26 		var lat2 = Projection.y_to_lat(Map.y + (Viewport.height/2))
      - 27 		this.bbox = [lon1, lat2, lon2, lat1]
      - 28 		this.lon_width = Math.abs(this.bbox[0]-this.bbox[2])
      - 29 		this.lat_height = Math.abs(this.bbox[1]-this.bbox[3])
      - 30 		this.lat = Projection.y_to_lat(this.y)
      - 31 		this.lon = Projection.x_to_lon(-this.x)
      - 32 		this.resolution = Math.round(Math.abs(Math.log(Map.zoom)))
      - 33 	},
      - 34 	/**
      - 35 	 * Mouse's x-coordinate, in the map's coordinate system
      - 36 	 * @type Number
      - 37 	 */
      - 38 	pointer_x: function() { return Map.x+(((Glop.width/-2)-Mouse.x)/Map.zoom) },
      - 39 	/**
      - 40 	 * Mouse's y-coordinate, in the map's coordinate system
      - 41 	 * @type Number
      - 42 	 */
      - 43 	pointer_y: function() { return Map.y+(((Glop.height/-2)-Mouse.y)/Map.zoom) },
      - 44 	/**
      - 45 	 * Bounding box of map, in [lon1, lat2, lon2, lat1] format
      - 46 	 * @type Number[]
      - 47 	 */
      - 48 	bbox: [],
      - 49 	/**
      - 50 	 * X-coordinate of map's center. Set this to move the map.
      - 51 	 * @type Number
      - 52 	 */
      - 53 	x: 0,
      - 54 	/**
      - 55 	 * X-coordinate of map's center. Set this to move the map.
      - 56 	 * @type Number
      - 57 	 */
      - 58 	y: 0,
      - 59 	/**
      - 60 	 * Latitude of map's center
      - 61 	 * @type Number
      - 62 	 */
      - 63 	lat: 0,
      - 64 	/**
      - 65 	 * Longitude of map's center
      - 66 	 * @type Number
      - 67 	 */
      - 68 	lon: 0,
      - 69 	/**
      - 70 	 * Tilt degree, in radians
      - 71 	 * @type Number
      - 72 	 */
      - 73 	rotate: 0,
      - 74 	/**
      - 75 	 * Tilt degree from beginning of drag motion
      - 76 	 * @type Number
      - 77 	 */
      - 78 	rotate_old: 0,
      - 79 	/**
      - 80 	 * Zoom factor from beginning of drag or gesture motion
      - 81 	 * @type Number
      - 82 	 */
      - 83 	zoom_old: 0,
      - 84 	/**
      - 85 	 * X-coordinate from beginning of drag motion
      - 86 	 * @type Number
      - 87 	 */
      - 88 	x_old: 0,
      - 89 	/**
      - 90 	 * Y-coordinate from beginning of drag motion
      - 91 	 * @type Number
      - 92 	 */
      - 93 	y_old: 0,
      - 94 	/**
      - 95 	 * Width of the map, in degrees of longitude
      - 96 	 * @type Number
      - 97 	 */
      - 98 	lon_width: 0,
      - 99 	/**
      -100 	 * Height of the map, in degrees of latitude
      -101 	 * @type Number
      -102 	 */
      -103 	lat_height: 0,
      -104 	/**
      -105 	 * Resolution of map - controls the ratio of number of nodes a way has and the number of nodes
      -106 	 * used to that way in the drawing process. Not that much savings yet. Automatically
      -107 	 * generated based on zoom level.
      -108 	 * @type Number
      -109 	 */
      -110 	resolution: 0,
      -111 	/**
      -112 	 * Last map position, as an [x, y] tuple
      -113 	 * @type Number[]
      -114 	 */
      -115 	last_pos: [0,0],
      -116 	/**
      -117 	 * Current zoom level
      -118 	 * @type Number
      -119 	 */
      -120 	 zoom: 0.5
      -121 }
      -122 
      -123 // bind to events
      -124 document.observe('cartagen:init', Map.init.bindAsEventListener(Map))
      -125 document.observe('glop:predraw', Map.draw.bindAsEventListener(Map))
      -126 
      \ No newline at end of file diff --git a/public/api/src/src_mapping_projection.js.html b/public/api/src/src_mapping_projection.js.html deleted file mode 100644 index 508e956c..00000000 --- a/public/api/src/src_mapping_projection.js.html +++ /dev/null @@ -1,93 +0,0 @@ -
        1 /**
      -  2  * @namespace Contains functions to convert x/y to lon/lat and vice-versa. Projection can handle
      -  3  *            multiple projection systems, and the methods are abstracted so projections can
      -  4  *            be switched easily. 
      -  5  */
      -  6 var Projection = {
      -  7 	/**
      -  8 	 * The projection system to use. "spherical_mercator" and "elliptical_mercator". Elliptical
      -  9 	 * mercator does not support y to lat, so it is not recommended.
      - 10 	 * @type String
      - 11 	 * @default "spherical_mercator"
      - 12 	 */
      - 13 	current_projection: 'spherical_mercator',
      - 14 	/**
      - 15 	 * Now many x/y units a pixel represents.
      - 16 	 * @type Number
      - 17 	 * @default 100000
      - 18 	 */
      - 19 	scale_factor: 100000,
      - 20 	/**
      - 21 	 * Converts lon to x using the current projection system
      - 22 	 * @param {Number} lon
      - 23 	 */
      - 24 	lon_to_x: function(lon) { return -1*Projection[Projection.current_projection].lon_to_x(lon) },
      - 25 	/**
      - 26 	 * Converts x to lo using the current projection system
      - 27 	 * @param {Number} x
      - 28 	 */
      - 29 	x_to_lon: function(x) { return Projection[Projection.current_projection].x_to_lon(x) },
      - 30 	/**
      - 31 	 * Converts lat to y using the current projection system
      - 32 	 * @param {Number} lat
      - 33 	 */
      - 34 	lat_to_y: function(lat) { return -1*Projection[Projection.current_projection].lat_to_y(lat) },
      - 35 	/**
      - 36 	 * Converts y to lat using the current projection system
      - 37 	 * @param {Number} y
      - 38 	 */
      - 39 	y_to_lat: function(y) { return -1*Projection[Projection.current_projection].y_to_lat(y) },
      - 40 	/**
      - 41 	 * Finds the longitude of the center of the Map
      - 42 	 */
      - 43 	center_lon: function() { return Config.lng },
      - 44 	/** @ignore */
      - 45 	spherical_mercator: {
      - 46 		lon_to_x: function(lon) { return (lon - Projection.center_lon()) * -1 * Projection.scale_factor },
      - 47 		x_to_lon: function(x) { return (x/(-1*Projection.scale_factor)) + Projection.center_lon() },
      - 48 		lat_to_y: function(lat) { return 180/Math.PI * Math.log(Math.tan(Math.PI/4+lat*(Math.PI/180)/2)) * Projection.scale_factor },
      - 49 		y_to_lat: function(y) { return  180/Math.PI * (2 * Math.atan(Math.exp(y/Projection.scale_factor*Math.PI/180)) - Math.PI/2) }
      - 50 	},
      - 51 	/** @ignore */
      - 52 	elliptical_mercator: {
      - 53 		lon_to_x: function(lon) {
      - 54 		    var r_major = 6378137.000;
      - 55 		    return r_major * lon;
      - 56 		},
      - 57 		x_to_lon: function(x) {
      - 58 		    var r_major = 6378137.000;
      - 59 		    return lon/r_major;
      - 60 		},
      - 61 		lat_to_y: function(lat) {
      - 62 		    if (lat > 89.5)
      - 63 		        lat = 89.5;
      - 64 		    if (lat < -89.5)
      - 65 		        lat = -89.5;
      - 66 		    var r_major = 6378137.000;
      - 67 		    var r_minor = 6356752.3142;
      - 68 		    var temp = r_minor / r_major;
      - 69 		    var es = 1.0 - (temp * temp);
      - 70 		    var eccent = Math.sqrt(es);
      - 71 		    var phi = lat;
      - 72 		    var sinphi = Math.sin(phi);
      - 73 		    var con = eccent * sinphi;
      - 74 		    var com = .5 * eccent;
      - 75 		    con = Math.pow(((1.0-con)/(1.0+con)), com);
      - 76 		    var ts = Math.tan(.5 * ((Math.PI*0.5) - phi))/con;
      - 77 		    var y = 0 - r_major * Math.log(ts);
      - 78 		    return y;
      - 79 		},
      - 80 		y_to_lat: function(y) {
      - 81 			$D.err('y_to_lat is not supported in elliptical mercator')
      - 82 		}
      - 83 		
      - 84 	}
      - 85 }
      - 86 
      \ No newline at end of file diff --git a/public/api/src/src_mapping_viewport.js.html b/public/api/src/src_mapping_viewport.js.html deleted file mode 100644 index 2eb4c88f..00000000 --- a/public/api/src/src_mapping_viewport.js.html +++ /dev/null @@ -1,99 +0,0 @@ -
        1 /**
      -  2  * @namespace Stores information about the current viewport
      -  3  */
      -  4 var Viewport = {
      -  5 	/**
      -  6 	 * Frame to show bbox culling
      -  7 	 * @type Number
      -  8 	 */
      -  9 	padding: 0,
      - 10 	/**
      - 11 	 * Bbox in [y1, x1, y2, x2] format
      - 12 	 * @type Number[]
      - 13 	 */
      - 14 	bbox: [],
      - 15 	/**
      - 16 	 * Bbox in [[x,y],[x,y],[x,y],[x,y]] format, clockwise from top left
      - 17 	 * @type Array[]
      - 18 	 */
      - 19 	full_bbox: function() {
      - 20 		return [[this.bbox[1],this.bbox[0]],[this.bbox[3],this.bbox[0]],[this.bbox[3],this.bbox[2]],[this.bbox[1],this.bbox[2]]]
      - 21 	},
      - 22 	/**
      - 23 	 * X-width of the viewport
      - 24 	 * @type Number
      - 25 	 */ 
      - 26 	width: 0,
      - 27 	/**
      - 28 	 * Y-height of the viewport
      - 29 	 */
      - 30 	height: 0,
      - 31 	/**
      - 32 	 * Yields the x,y of the nearest Viewport corner in an array as [x,y,corner] where corner is 0,1,2,3 clockwise from top left
      - 33 	 * 
      - 34 	 * @param {Number} x  x-coordinate of query
      - 35 	 * @param {Number} y  y-coordinate of query
      - 36 	 */
      - 37 	nearest_corner: function(x,y) {
      - 38 		var corner = []
      - 39 		if (Math.abs(Viewport.bbox[1] - x) < Math.abs(Viewport.bbox[3] - x)) {
      - 40 			corner[0] = Viewport.bbox[1]
      - 41 			corner[2] = 0
      - 42 		} else {
      - 43 			corner[0] = Viewport.bbox[3]
      - 44 			corner[2] = 1
      - 45 		}
      - 46 		if (Math.abs(Viewport.bbox[0] - y) < Math.abs(Viewport.bbox[2] - y)) {
      - 47 			corner[1] = Viewport.bbox[0]
      - 48 		} else {
      - 49 			corner[1] = Viewport.bbox[2]
      - 50 			corner[2] -= 1
      - 51 			corner[2] *= -1 // swap 1 and 0
      - 52 			corner[2] += 2
      - 53 		}
      - 54 		return corner
      - 55 	},
      - 56 	/**
      - 57 	 * Yields the integer index of the nearest Viewport side, as 0,1,2, or 3
      - 58 	 * where top=0,right=1,bottom=2,left=3
      - 59 	 * 
      - 60 	 * @param {Number} x  x-coordinate of query
      - 61 	 * @param {Number} y  y-coordinate of query
      - 62 	 */
      - 63 	// nearest_side: function(x,y) {
      - 64 	// 	if ()
      - 65 	// 	return side
      - 66 	// },
      - 67 	/**
      - 68 	 * Varies around 1.0 as function of hardware resolution. This assumes that resolution is
      - 69 	 * somewhat proportianal to power, which is generally true. This should eventually be replaced
      - 70 	 * with something that measures initial load speed in fps to get a better estimate.
      - 71 	 * @type Number
      - 72 	 */
      - 73 	power: function() {
      - 74 		return window.screen.width/1024
      - 75 	},
      - 76 	/**
      - 77 	 * Performs per-frame setup functions such as resizing the viewport to match the containing 
      - 78 	 * window or element. Also generates Viewport.bbox
      - 79 	 */
      - 80 	draw: function() {
      - 81 		Viewport.width = Glop.width * (1 / Map.zoom) - (2 * Viewport.padding * (1 / Map.zoom))
      - 82         Viewport.height = Glop.height * (1 / Map.zoom) - (2 * Viewport.padding * (1 / Map.zoom))
      - 83         // culling won't work anymore after we fixed rotation... everything's got to be square.
      - 84         if (Map.rotate != 0) {
      - 85 			Viewport.width = Math.sqrt(Math.pow(Math.max(Viewport.width, Viewport.height),2)*2)
      - 86 	   		Viewport.height = Viewport.width
      - 87 		}
      - 88 		Viewport.bbox = [Map.y - Viewport.height / 2, Map.x - Viewport.width / 2, Map.y + Viewport.height / 2, Map.x + Viewport.width / 2]
      - 89         // $C.stroke_rect(Map.x-Viewport.width/2,Map.y-Viewport.height/2,Viewport.width,Viewport.height)
      - 90 	}
      - 91 }
      - 92 
      \ No newline at end of file diff --git a/public/api/src/src_mapping_warper.js.html b/public/api/src/src_mapping_warper.js.html deleted file mode 100644 index 8f0f6534..00000000 --- a/public/api/src/src_mapping_warper.js.html +++ /dev/null @@ -1,69 +0,0 @@ -
        1 /**
      -  2  * @namespace Contains functions to display raster images and distort or warp them onto a 
      -  3  * 	      geographic grid; to orthorectify them. 
      -  4  */
      -  5 var Warper = {
      -  6 	/**
      -  7 	 * The images which are currently being warped. Array members are of type Warper.Image
      -  8 	 * @type Array
      -  9 	 */
      - 10 	images: [],
      - 11 	/**
      - 12 	 * A function which submits all the Images in the Warper.images array to the Ruby backend for full-resolution warping.
      - 13 	 */
      - 14 	flatten: function() {
      - 15 		new Ajax.Request('/warper/warp', {
      - 16 		  method: 'get',
      - 17 		  parameters: {
      - 18 			images: Warper.images,
      - 19 		  },
      - 20 		  onSuccess: function(response) {
      - 21 			// Should respond with a URL for a complete image, or a tileset.
      - 22 			// Display the resulting image or tileset and prompt to trace.
      - 23 		  }
      - 24 		});
      - 25 	},
      - 26 	/**
      - 27 	 * A function which prompts the user for an image file, uploads it, and creates a 
      - 28 	 * Warper.Image object to contain its resulting URI and default coordinates.
      - 29 	 */
      - 30 	new_image: function() {
      - 31 		// consider prompting upload with a form
      - 32 		// and calling this function on success of form submission
      - 33 		
      - 34 	}
      - 35 }
      - 36 	
      - 37 /**
      - 38  * A class for warpable raster images.
      - 39  * @class
      - 40  */
      - 41 var Warper.Image = Class.create(
      - 42 {	
      - 43 	/**
      - 44 	 * The URI of the image resource to be warped
      - 45 	 * @type String
      - 46 	 * @default ""
      - 47 	 */
      - 48 	src: '',
      - 49 	/**
      - 50 	 * An array of the coordinates of the corners of the image, starting from the top left and proceeding clockwise.
      - 51 	 * @type Array
      - 52 	 * @default "[[-100,100],[100,100],[100,-100],[-100,-100]]"
      - 53 	 */
      - 54 	corners: [
      - 55 		[-100,100],
      - 56 		[100,100],
      - 57 		[100,-100],
      - 58 		[-100,-100]
      - 59 		],
      - 60 }
      - 61 )
      - 62 
      \ No newline at end of file diff --git a/public/api/src/src_util_debug.js.html b/public/api/src/src_util_debug.js.html deleted file mode 100644 index 1dde060f..00000000 --- a/public/api/src/src_util_debug.js.html +++ /dev/null @@ -1,134 +0,0 @@ -
        1 /**
      -  2  * @namespace $D is the debuggin namespace - it has a collection of tools to debug
      -  3  *            Cartagen, and can be enabled/disabled. By default, debug mode is
      -  4  *            only enabled if "debug" is passed as true to Cartagen.setup.
      -  5  *            All $D methods have been tested in firebug and safari 4, and most work
      -  6  *            in Chrome.
      -  7  */
      -  8 $D = {
      -  9 	/**
      - 10 	 * Controls whether $D is enabled. If disabled, none of the $D methods
      - 11 	 * will do anything. Defaults to true if "console" is defined, else false.
      - 12 	 * Do not set directly; use enable() and disable().
      - 13 	 * @type Boolean
      - 14 	 */
      - 15 	enabled: false,
      - 16 	/**
      - 17 	 * Enables $D's methods
      - 18 	 */
      - 19 	enable: function() {
      - 20 		$D.enabled = true
      - 21 		if (console.firebug) {
      - 22 			$D.log = console.debug
      - 23 			$D.warn = console.warn
      - 24 			$D.err = console.error
      - 25 			$D.trace = console.trace
      - 26 			$D.verbose_trace = $D._verbose_trace
      - 27 		}
      - 28 		else {
      - 29 			$D.log = $D._log
      - 30 			$D.warn = $D._warn
      - 31 			$D.err = $D._err
      - 32 			$D.trace = $D._trace
      - 33 			$D.verbose_trace = $D._verbose_trace
      - 34 		}
      - 35 		$l = $D.log
      - 36 	},
      - 37 	/**
      - 38 	 * Disables $D's methods
      - 39 	 */
      - 40 	disable: function() {
      - 41 		$D.enabled = false
      - 42 		
      - 43 		(['log', 'warn', 'err', 'trace', 'verbose_trace']).each(function(m) {
      - 44 			$D[m] = Prototype.emptyFunction
      - 45 		})
      - 46 	},
      - 47 
      - 48 	/**
      - 49 	 * @function
      - 50 	 * Logs to the console. In firebug, links to the line number from which the
      - 51 	 * call was made. Also available as $l.
      - 52 	 * @param {Object} msg Object to log
      - 53 	 */
      - 54 	log: Prototype.emptyFunction,
      - 55 	
      - 56 	_log: function(msg) {
      - 57 		console.log(msg)
      - 58 	},
      - 59 	
      - 60 	/**
      - 61 	 * @function
      - 62 	 * Sends a warning to the console.
      - 63 	 * @param {Object} msg Object to send with warning
      - 64 	 */
      - 65 	warn: Prototype.emptyFunction,
      - 66 	
      - 67 	_warn: function(msg) {
      - 68 		console.warn(msg)
      - 69 	},
      - 70 	
      - 71 	/**
      - 72 	 * @function
      - 73 	 * Sends a error to the console.
      - 74 	 * @param {Object} msg Object to send with error
      - 75 	 */
      - 76 	err: Prototype.emptyFunction,
      - 77 	
      - 78 	_err: function(msg) {
      - 79 		console.err(msg)
      - 80 	},
      - 81 	
      - 82 	/**
      - 83 	 * @function
      - 84 	 * Sends a stack trace to the console.
      - 85 	 */
      - 86 	trace: Prototype.emptyFunction,
      - 87 	
      - 88 	_trace: function() {
      - 89 		console.trace()
      - 90 	},
      - 91 	
      - 92 	/**
      - 93 	 * @function
      - 94 	 * Sends a descriptive stack trace to the console.
      - 95 	 */
      - 96 	verbose_trace: Prototype.emptyFunction,
      - 97 	
      - 98 	_verbose_trace: function(msg) {
      - 99 		console.log("An exception occurred in the script. Error name: " + msg.name + ". Error description: " + msg.description + ". Error number: " + msg.number + ". Error message: " + msg.message + ". Line number: "+ msg.lineNumber)
      -100 	},
      -101 	
      -102 	object_count: function() {
      -103 		return $D.node_count() + $D.way_count() + $D.relation_count()
      -104 	},
      -105 	
      -106 	way_count: function() {
      -107 		return Geohash.objects.findAll(function(o){return o.get_type() == 'Way'}).length
      -108 	},
      -109 	
      -110 	relation_count: function() {
      -111 		return Geohash.objects.findAll(function(o){return o.get_type() == 'Relation'}).length
      -112 	},
      -113 	
      -114 	node_count: function() {
      -115 		var c = 0
      -116 		Geohash.objects.each(function(o) {
      -117 			c += o.nodes.length
      -118 		})
      -119 		return c
      -120 	}
      -121 }
      -122 
      -123 /**
      -124  * Alias for $D.log
      -125  */
      -126 $l = $D.log
      -127 
      \ No newline at end of file diff --git a/public/api/src/src_util_geometry.js.html b/public/api/src/src_util_geometry.js.html deleted file mode 100644 index b0c73409..00000000 --- a/public/api/src/src_util_geometry.js.html +++ /dev/null @@ -1,227 +0,0 @@ -
        1 /**
      -  2  * @namespace Collection of functions for doing geometric calculations
      -  3  */
      -  4 var Geometry = {
      -  5 	/**
      -  6 	 * Finds the centroid of a polygon
      -  7 	 * @param {Node[]} polygon Array of nodes that make up the polygon
      -  8 	 * @return A tuple, in [x, y] format, with the coordinates of the centroid
      -  9 	 * @type Number[]
      - 10 	 */
      - 11 	poly_centroid: function(polygon) {
      - 12 		var n = polygon.length
      - 13 		var cx = 0, cy = 0
      - 14 		var a = Geometry.poly_area(polygon,true)
      - 15 		var centroid = []
      - 16 		var i,j
      - 17 		var factor = 0
      - 18 		
      - 19 		for (i=0;i<n;i++) {
      - 20 			j = (i + 1) % n
      - 21 			factor = (polygon[i].x * polygon[j].y - polygon[j].x * polygon[i].y)
      - 22 			cx += (polygon[i].x + polygon[j].x) * factor
      - 23 			cy += (polygon[i].y + polygon[j].y) * factor
      - 24 		}
      - 25 		
      - 26 		a *= 6
      - 27 		factor = 1/a
      - 28 		cx *= factor
      - 29 		cy *= factor
      - 30 		centroid[0] = cx
      - 31 		centroid[1] = cy
      - 32 		return centroid
      - 33 	},
      - 34 	/**
      - 35 	 * Calculates the sides of the smallest possible box that holds all the specified points.
      - 36 	 * Used to calculate the bounding box of a polygon.
      - 37 	 * @param {Node[]} points Array of nodes
      - 38 	 * @return Bounding box, in [y1, x1, y2, x2] format
      - 39 	 * @type Number[]
      - 40 	 */
      - 41 	calculate_bounding_box: function(points) {
      - 42 		var bbox = [0,0,0,0] // top, left, bottom, right
      - 43 		points.each(function(node) {
      - 44 			if (node.x < bbox[1] || bbox[1] == 0) bbox[1] = node.x
      - 45 			if (node.x > bbox[3] || bbox[3] == 0) bbox[3] = node.x
      - 46 			if (node.y < bbox[0] || bbox[0] == 0) bbox[0] = node.y
      - 47 			if (node.y > bbox[2] || bbox[2] == 0) bbox[2] = node.y
      - 48 		})
      - 49 		return bbox
      - 50 	},
      - 51 	/**
      - 52 	 * Determines if a point is within a certain distance of another.
      - 53 	 * @param {Number} x1    X-coordinate of the first point
      - 54 	 * @param {Number} y1    Y-coordinate of the first point
      - 55 	 * @param {Number} x2    X-coordinate of the second point
      - 56 	 * @param {Number} y2    Y-coordinate of the second point
      - 57 	 * @param {Number} fudge Maximum distance between the points
      - 58 	 * @return True if the points are closer than the specified fudge distance, else false
      - 59 	 * @type Boolean
      - 60 	 */
      - 61 	overlaps: function(x1,y1,x2,y2,fudge) {
      - 62 		if (x2 > x1-fudge && x2 < x1+fudge) {
      - 63 			if (y2 > y1-fudge && y2 < y1+fudge) {
      - 64 		  		return true
      - 65 			} else {
      - 66 				return false
      - 67 			}
      - 68 		} else {
      - 69 			return false
      - 70 		}
      - 71 	},
      - 72 	/**
      - 73 	 * Determines if two boxes overlap, given their sides.
      - 74 	 * @param {Number} box1top
      - 75 	 * @param {Number} box1left
      - 76 	 * @param {Number} box1bottom
      - 77 	 * @param {Number} box1right
      - 78 	 * @param {Number} box2top
      - 79 	 * @param {Number} box2left
      - 80 	 * @param {Number} box2bottom
      - 81 	 * @param {Number} box2right
      - 82 	 * 
      - 83 	 * @return True if the boxes overlap, else false
      - 84 	 * @type Boolean
      - 85 	 */
      - 86 	intersect: function(box1top,box1left,box1bottom,box1right,box2top,box2left,box2bottom,box2right) {
      - 87 		return !(box2left > box1right || box2right < box1left || box2top > box1bottom || box2bottom < box1top)
      - 88 	},
      - 89 	/**
      - 90 	 * Determines of a point is in a polygon. This should be rewritten at some point, as the source
      - 91 	 * is really nasty.
      - 92 	 * @param {Node[]} poly Array of nodes that make up the polygon
      - 93 	 * @param {Number} x    X-coordinate of the point to check for
      - 94 	 * @param {Number} y    Y-coordinate of the point to check for
      - 95 	 * 
      - 96 	 * @return True if the point is inside the polygon, else false
      - 97 	 * @type Boolean
      - 98 	 * 
      - 99 	 * @author Jonas Raoni Soares Silva <a href="http://jsfromhell.com/math/is-point-in-poly">
      -100 	 *         http://jsfromhell.com/math/is-point-in-poly</a>
      -101 	 */
      -102 	is_point_in_poly: function(poly, x, y){
      -103 	    for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
      -104 	        ((poly[i].y <= y && y < poly[j].y) || (poly[j].y <= y && y < poly[i].y))
      -105 	        && (x < (poly[j].x - poly[i].x) * (y - poly[i].y) / (poly[j].y - poly[i].y) + poly[i].x)
      -106 	        && (c = !c);
      -107 	    return c;
      -108 	},
      -109 	
      -110 	/**
      -111 	 * Returns the intersection of a line and the line pependicular to it that intersects a point.
      -112 	 * @param {x}  x-coordinate of the point
      -113 	 * @param {y}  y-coordinate of the point
      -114 	 * @param {x0} x-coordate of the first endpoint of the line
      -115 	 * @param {y0} y-coordate of the first endpoint of the line
      -116 	 * @param {x1} x-coordate of the second endpoint of the line
      -117 	 * @param {y1} y-coordate of the second endpoint of the line
      -118 	 *
      -119 	 * @return Object with x and y properties
      -120 	 * @type Object
      -121 	 *
      -122 	 * @author OpenLayers <http://openlayers.org> (adapted from Geometry.LineString#distanceTo)
      -123 	 */
      -124 	 point_line_distance: function(x, y, nodes){
      -125 		 var seg
      -126 		 var stop = nodes.length - 1
      -127 		 min = Number.MAX_VALUE
      -128 		 for(var i = 0; i < stop; ++i) {
      -129 			 seg = {
      -130 				 x1: nodes[i].x,
      -131 				 y1: nodes[i].y,
      -132 				 x2: nodes[i+1].x,
      -133 				 y2: nodes[i+1].y
      -134 			 }
      -135 			 
      -136 			 result = Geometry.distance_to_segment(x, y, seg.x1, seg.y1, seg.x2, seg.y2)
      -137 			 
      -138 			 if(result < min) {
      -139 				 min = result
      -140 				 if(min === 0) {
      -141 					 break
      -142 				 }
      -143 			 } else {
      -144 				 // if distance increases and we cross y0 to the right of x0, no need to keep looking.
      -145 				 if(seg.x2 > x && ((y > seg.y1 && y < seg.y2) || (y < seg.y1 && y > seg.y2))) {
      -146 					 break
      -147 				 }
      -148 			 }
      -149 		 }
      -150 		 return min
      -151 	},
      -152 	/**
      -153 	 * Returns the distance between a point (x0, x1) and a line (with endpoints (x1, y1) and (x2, y2))
      -154 	 *
      -155 	 * @type Number
      -156 	 * @author OpenLayers <http://openlayers.org> (adapted from Geometry.distanceToSegment)
      -157 	 */
      -158 	distance_to_segment: function(x0, y0, x1, y1, x2, y2) {
      -159 		var dx = x2 - x1
      -160 		var dy = y2 - y1
      -161 		var along = ((dx * (x0 - x1)) + (dy * (y0 - y1))) / (Math.pow(dx, 2) + Math.pow(dy, 2))
      -162 		var x, y
      -163 		if(along <= 0.0) {
      -164 			x = x1
      -165 			y = y1
      -166 		} else if(along >= 1.0) {
      -167 			x = x2
      -168 			y = y2
      -169 		} else {
      -170 			x = x1 + along * dx
      -171 			y = y1 + along * dy
      -172 		}
      -173 		return Math.sqrt(Math.pow(x - x0, 2) + Math.pow(y - y0, 2))
      -174 	},
      -175 
      -176 	/**
      -177 	 * Finds the area of a polygon
      -178 	 * @param {Node[]}  nodes    Array of nodes that make up the polygon 
      -179 	 * @param {Boolean} [signed] If true, returns a signed area, else returns a positive area.
      -180 	 *                           Defaults to false.
      -181 	 * @return Area of the polygon
      -182 	 * @type Number
      -183 	 */
      -184 	poly_area: function(nodes, signed) {
      -185 		var area = 0
      -186 		nodes.each(function(node,index) {
      -187 			if (index < nodes.length-1) next = nodes[index+1]
      -188 			else next = nodes[0]
      -189 			if (index > 0) last = nodes[index-1]
      -190 			else last = nodes[nodes.length-1]
      -191 			area += last.x*node.y-node.x*last.y+node.x*next.y-next.x*node.y
      -192 		})
      -193 		if (signed) return area/2
      -194 		else return Math.abs(area/2)
      -195 	},
      -196 	distance: function(x,y,x2,y2) {
      -197 		return Math.sqrt(Math.abs(x-x2)*Math.abs(x-x2)+Math.abs(y-y2)*Math.abs(y-y2))
      -198 	},
      -199 	/**
      -200 	 * Compared two ways based on area
      -201 	 * @param {Way} a
      -202 	 * @param {Way} b
      -203 	 */
      -204 	sort_by_area: function(a,b) {
      -205 		if (a instanceof Way) {
      -206 			if (b instanceof Way) {
      -207 				if ( a.area < b.area )
      -208 			    return 1;
      -209 			  if ( a.area > b.area )
      -210 			    return -1;
      -211 			  return 0; // a == b
      -212 			} else {
      -213 				return -1 // a wins no matter what if b is not a Way
      -214 			}
      -215 		} else {
      -216 			return 1 // b wins no matter what if a is not a Way
      -217 		}
      -218 	}
      -219 }
      -220 
      \ No newline at end of file diff --git a/public/api/src/src_util_util.js.html b/public/api/src/src_util_util.js.html deleted file mode 100644 index 0bc07678..00000000 --- a/public/api/src/src_util_util.js.html +++ /dev/null @@ -1,110 +0,0 @@ -
        1 //= require "geometry"
      -  2 //= require "debug"
      -  3 
      -  4 /**
      -  5  * @name Math.in_range
      -  6  * @function
      -  7  * @memberOf Math
      -  8  * Determines if a value is in a specified range. Order is not significant for the endpoints of
      -  9  * the range.
      - 10  * @param {Number} v  Value to test
      - 11  * @param {Number} r1 One endpoint of the range
      - 12  * @param {Number} r2 Other endpoint of the range
      - 13  * @return Whether the value is in the range
      - 14  * @type Boolean
      - 15  */
      - 16 Math.in_range = function(v,r1,r2) {
      - 17 	return (v > Math.min(r1,r2) && v < Math.max(r1,r2))
      - 18 }
      - 19 
      - 20 /**
      - 21  * Finds the value of the argument, evaluating it as a function if possible.
      - 22  * @param {Object} obj       Object to find value of
      - 23  * @param {Object} [context] Context in which to evaluate the function, if needed.
      - 24  * @return If the argument is a function, the result of evaluating it. Else,
      - 25  *         the argument itself.
      - 26  */
      - 27 Object.value = function(obj, context) {
      - 28 	
      - 29     if(Object.isFunction(obj)) {
      - 30 		context = context || this
      - 31 		f = obj.bind(context)
      - 32 		return f()
      - 33 	}
      - 34     return obj
      - 35 }
      - 36 
      - 37 // based on jQuery.extend
      - 38 Object.deep_extend = function() {
      - 39     // copy reference to target object
      - 40     var target = arguments[0] || {}, i = 1, length = arguments.length, deep = true, options, name, src, copy;
      - 41 
      - 42     // Handle case when target is a string or something (possible in deep copy)
      - 43     if ( typeof target !== "object" && !Object.isFunction(target) ) {
      - 44         target = {};
      - 45     }
      - 46 
      - 47     for ( ; i < length; i++ ) {
      - 48         // Only deal with non-null/undefined values
      - 49         if ( (options = arguments[ i ]) != null ) {
      - 50             // Extend the base object
      - 51             for ( name in options ) {
      - 52                 src = target[ name ];
      - 53                 copy = options[ name ];
      - 54 
      - 55                 // Prevent never-ending loop
      - 56                 if ( target === copy ) {
      - 57                     continue;
      - 58                 }
      - 59 
      - 60                 // Recurse if we're merging object values
      - 61                 if ( deep && copy && typeof copy === "object" && !copy.nodeType ) {
      - 62                     var clone;
      - 63 
      - 64                     if ( src ) {
      - 65                         clone = src;
      - 66                     } else if ( Object.isArray(copy) ) {
      - 67                         clone = [];
      - 68                     } else if ( typeof copy == 'object' ) {
      - 69                         clone = {};
      - 70                     } else {
      - 71                         clone = copy;
      - 72                     }
      - 73 
      - 74                     // Never move original objects, clone them
      - 75                     target[ name ] = Object.deep_extend(clone, copy );
      - 76 
      - 77                 // Don't bring in undefined values
      - 78                 } else if ( copy !== undefined ) {
      - 79                     target[ name ] = copy;
      - 80                 }
      - 81             }
      - 82         }
      - 83     }
      - 84 
      - 85     // Return the modified object
      - 86     return target;
      - 87 }
      - 88 
      - 89 /**
      - 90  * Returns the number, rounded to a certain precision
      - 91  * @param {Number} prec Number of significant figures in the result
      - 92  * @return The rounded number
      - 93  * @type Number
      - 94  */
      - 95 Number.prototype.to_precision = function(prec){
      - 96 	return (this * (1/prec)).round()/(1/prec)
      - 97 }
      - 98 
      - 99 /**
      -100  * Rotates view slowly for cool demo purposes.
      -101  */ 
      -102 Cartagen.demo = function() { Map.rotate += 0.005 }
      -103 
      \ No newline at end of file diff --git a/public/api/src/src_warper_control_point.js.html b/public/api/src/src_warper_control_point.js.html deleted file mode 100644 index aded6f7c..00000000 --- a/public/api/src/src_warper_control_point.js.html +++ /dev/null @@ -1,33 +0,0 @@ -
        1 /**
      -  2  * A class defining draggable points which describe a polygon; used in map warping/orthorectification workflows.
      -  3  * @class
      -  4  */
      -  5 Warper.ControlPoint = Class.create({
      -  6 	initialize: function(x,y) {
      -  7 		//
      -  8 		this.selected = true
      -  9 		this.x = x
      - 10 		this.y = y
      - 11 	},
      - 12 	drag: function() {
      - 13 		console.log('CP dragging')
      - 14 	},
      - 15 	click: function() {
      - 16 		console.log('CP clicked')
      - 17 	},//.bindAsEventListener(Warper), // this wont work because its a class definition, not an instance
      - 18 	/**
      - 19 	 * Called every frame from Cartagen.draw 
      - 20 	 */
      - 21 	draw: function() {
      - 22 		
      - 23 		
      - 24 		
      - 25 	}
      - 26 })
      \ No newline at end of file diff --git a/public/api/src/src_warper_image.js.html b/public/api/src/src_warper_image.js.html deleted file mode 100644 index c14b096d..00000000 --- a/public/api/src/src_warper_image.js.html +++ /dev/null @@ -1,32 +0,0 @@ -
        1 /**
      -  2  * A class for warpable raster images.
      -  3  * @class
      -  4  */
      -  5 Warper.Image = Class.create(
      -  6 {	
      -  7 	/**
      -  8 	 * The URI of the image resource to be warped
      -  9 	 * @type String
      - 10 	 * @default ""
      - 11 	 */
      - 12 	src: '',
      - 13 	/**
      - 14 	 * An array of ControlPoints of the corners of the image, starting from the top left and proceeding clockwise.
      - 15 	 * @type Array
      - 16 	 * @default "[[-100,100],[100,100],[100,-100],[-100,-100]]"
      - 17 	 */
      - 18 	corners: [
      - 19 		[-100,100],
      - 20 		[100,100],
      - 21 		[100,-100],
      - 22 		[-100,-100]
      - 23 		],
      - 24 }
      - 25 )
      \ No newline at end of file diff --git a/public/api/src/src_warper_warper.js.html b/public/api/src/src_warper_warper.js.html deleted file mode 100644 index 5858df8b..00000000 --- a/public/api/src/src_warper_warper.js.html +++ /dev/null @@ -1,45 +0,0 @@ -
        1 /**
      -  2  * @namespace Contains functions to display raster images and distort or warp them onto a 
      -  3  * 	      geographic grid; to orthorectify them. 
      -  4  */
      -  5 var Warper = {
      -  6 	/**
      -  7 	 * The images which are currently being warped. Array members are of type Warper.Image
      -  8 	 * @type Array
      -  9 	 */
      - 10 	images: [],
      - 11 	/**
      - 12 	 * A function which submits all the Images in the Warper.images array to the Ruby backend for full-resolution warping.
      - 13 	 */
      - 14 	flatten: function() {
      - 15 		new Ajax.Request('/warper/warp', {
      - 16 		  method: 'get',
      - 17 		  parameters: {
      - 18 			images: Warper.images,
      - 19 		  },
      - 20 		  onSuccess: function(response) {
      - 21 			// Should respond with a URL for a complete image, or a tileset.
      - 22 			// Display the resulting image or tileset and prompt to trace.
      - 23 		  }
      - 24 		});
      - 25 	},
      - 26 	/**
      - 27 	 * A function which prompts the user for an image file, uploads it, and creates a 
      - 28 	 * Warper.Image object to contain its resulting URI and default coordinates.
      - 29 	 */
      - 30 	new_image: function() {
      - 31 		// consider prompting upload with a form
      - 32 		// and calling this function on success of form submission
      - 33 		
      - 34 	}
      - 35 }
      - 36 
      - 37 //= require "control_point"
      - 38 //= require "image"
      \ No newline at end of file diff --git a/public/api/symbols/$C.html b/public/api/symbols/$C.html deleted file mode 100644 index 4734c72f..00000000 --- a/public/api/symbols/$C.html +++ /dev/null @@ -1,1618 +0,0 @@ - -
      diff --git a/public/api/symbols/$D.html b/public/api/symbols/$D.html deleted file mode 100644 index ba6980cd..00000000 --- a/public/api/symbols/$D.html +++ /dev/null @@ -1,477 +0,0 @@ - -
      - - -
      -
      $D
      -
      - - - -

      Class $D (Wiki Page)

      - - - - - -
      Defined In:debug.js
      Class:$D
      Extends:
      - -
      - -
      - -
      - - - - -

      Public Properties

      - - - - - - - - - - - - - - - - - - -
      PropertyDefined By
      - - -

      Public Methods

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      MethodDefined By
      - - -

      Public Events

      -

      This class has no events

      - - - - - - -
      EventDefined By
      -
      diff --git a/public/api/symbols/Cartagen.html b/public/api/symbols/Cartagen.html deleted file mode 100644 index be7bf588..00000000 --- a/public/api/symbols/Cartagen.html +++ /dev/null @@ -1,761 +0,0 @@ - -
      - - -
      -
      Cartagen
      -
      - - - -

      Class Cartagen (Wiki Page)

      - - - - - -
      Defined In:cartagen.js
      Class:Cartagen
      Extends:
      - -
      - -
      - -
      - - - - -

      Public Properties

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDefined By
      - - -

      Public Methods

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      MethodDefined By
      - - -
      -
      $C
      -
      - - - -

      Class $C (Wiki Page)

      - - - - - -
      Defined In:canvas.js
      Class:$C
      Extends:
      - -
      - -
      - -
      - - - - -

      Public Properties

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      PropertyDefined By
      - - -

      Public Methods

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      MethodDefined By
      - - -

      Public Events

      -

      This class has no events

      - - - - - - -
      EventDefined By
      -