From c81b8df122c0d79431327091be3a86da5c7e5a43 Mon Sep 17 00:00:00 2001 From: Li Jianxuan Date: Fri, 23 Sep 2011 03:45:47 +0000 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86/htdocs/static=20=20?= =?UTF-8?q?/htdocs/upload=20=20/htdocs/plugins=203=E4=B8=AA=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/plugins/JSON.php | 806 ++++++ htdocs/plugins/file_manager_json.php | 138 + htdocs/plugins/upload_json.php | 111 + htdocs/static/css/custom.css | 16 + htdocs/static/css/kindskin/common/blank.gif | Bin 0 -> 43 bytes htdocs/static/css/kindskin/common/flash.gif | Bin 0 -> 1089 bytes htdocs/static/css/kindskin/common/loading.gif | Bin 0 -> 847 bytes htdocs/static/css/kindskin/common/media.gif | Bin 0 -> 1036 bytes htdocs/static/css/kindskin/common/rm.gif | Bin 0 -> 989 bytes htdocs/static/css/kindskin/default/bg.gif | Bin 0 -> 616 bytes .../static/css/kindskin/default/default.css | 942 +++++++ .../static/css/kindskin/default/default.gif | Bin 0 -> 9874 bytes htdocs/static/css/kindskin/simple/simple.css | 148 ++ htdocs/static/css/style.css | 2338 +++++++++++++++++ htdocs/static/img/21.png | Bin 0 -> 373 bytes htdocs/static/img/27.png | Bin 0 -> 313 bytes htdocs/static/img/90.png | Bin 0 -> 3142 bytes htdocs/static/img/accept.png | Bin 0 -> 781 bytes htdocs/static/img/add.png | Bin 0 -> 733 bytes htdocs/static/img/arrows-ffffff.png | Bin 0 -> 244 bytes htdocs/static/img/book.png | Bin 0 -> 593 bytes htdocs/static/img/btn-overlay.png | Bin 0 -> 214 bytes htdocs/static/img/cancel.png | Bin 0 -> 587 bytes htdocs/static/img/datatable/back_disabled.png | Bin 0 -> 159 bytes htdocs/static/img/datatable/back_enabled.png | Bin 0 -> 159 bytes .../static/img/datatable/forward_disabled.png | Bin 0 -> 154 bytes .../static/img/datatable/forward_enabled.png | Bin 0 -> 154 bytes htdocs/static/img/datatable/sort_asc.png | Bin 0 -> 170 bytes .../img/datatable/sort_asc_disabled.png | Bin 0 -> 151 bytes htdocs/static/img/datatable/sort_both.png | Bin 0 -> 174 bytes htdocs/static/img/datatable/sort_desc.png | Bin 0 -> 164 bytes .../img/datatable/sort_desc_disabled.png | Bin 0 -> 162 bytes htdocs/static/img/delete.png | Bin 0 -> 715 bytes htdocs/static/img/error.png | Bin 0 -> 666 bytes htdocs/static/img/exclamation.png | Bin 0 -> 701 bytes htdocs/static/img/favicons/apple.png | Bin 0 -> 3108 bytes htdocs/static/img/favicons/favicon.png | Bin 0 -> 1262 bytes htdocs/static/img/gallery/book01.jpg | Bin 0 -> 12376 bytes htdocs/static/img/gallery/card01.jpg | Bin 0 -> 10133 bytes htdocs/static/img/gallery/leaflet01.jpg | Bin 0 -> 15491 bytes htdocs/static/img/help.png | Bin 0 -> 786 bytes htdocs/static/img/information.png | Bin 0 -> 778 bytes htdocs/static/img/jquery.wysiwyg.gif | Bin 0 -> 4478 bytes htdocs/static/img/key.png | Bin 0 -> 612 bytes htdocs/static/img/logo.gif | Bin 0 -> 10177 bytes htdocs/static/img/logo.png | Bin 0 -> 5325 bytes htdocs/static/img/nyro/ajaxLoader.gif | Bin 0 -> 4659 bytes htdocs/static/img/nyro/close.gif | Bin 0 -> 70 bytes htdocs/static/img/nyro/next.gif | Bin 0 -> 197 bytes htdocs/static/img/nyro/prev.gif | Bin 0 -> 197 bytes htdocs/static/img/page_save.png | Bin 0 -> 774 bytes htdocs/static/img/page_white_go.png | Bin 0 -> 612 bytes htdocs/static/img/preview-not-available.gif | Bin 0 -> 326 bytes htdocs/static/img/quote.png | Bin 0 -> 374 bytes htdocs/static/img/search.gif | Bin 0 -> 261 bytes htdocs/static/img/shadow.png | Bin 0 -> 1698 bytes htdocs/static/img/style.png | Bin 0 -> 813 bytes htdocs/static/img/tag-bg.gif | Bin 0 -> 92 bytes htdocs/static/img/toggle-small-expand.png | Bin 0 -> 160 bytes htdocs/static/img/toggle.gif | Bin 0 -> 49 bytes htdocs/static/img/user_32.png | Bin 0 -> 624 bytes htdocs/static/img/valid.gif | Bin 0 -> 72 bytes htdocs/static/js/administry.js | 189 ++ htdocs/static/js/flot/jquery.flot.min.js | 1 + .../js/flot/jquery.flot.selection.min.js | 1 + htdocs/static/js/jquery-1.4.2.min.js | 154 ++ htdocs/static/js/jquery.dataTables.min.js | 587 +++++ htdocs/static/js/jquery.nyroModal.pack.js | 11 + htdocs/static/js/jquery.sparkline.min.js | 85 + htdocs/static/js/jquery.superfish.min.js | 15 + htdocs/static/js/jquery.supersubs.min.js | 16 + htdocs/static/js/jquery.tagInput.min.js | 35 + htdocs/static/js/jquery.tipTip.min.js | 21 + htdocs/static/js/jquery.ui.core.min.js | 18 + htdocs/static/js/jquery.ui.tabs.min.js | 13 + htdocs/static/js/jquery.ui.widget.min.js | 18 + htdocs/static/js/jquery.validate_pack.js | 15 + htdocs/static/js/jquery.wysiwyg.min.js | 1 + htdocs/static/js/kindeditor-min.js | 158 ++ htdocs/static/js/kindlang/en.js | 208 ++ htdocs/static/js/kindlang/zh_CN.js | 210 ++ htdocs/static/js/kindlang/zh_TW.js | 210 ++ .../static/js/plugins/clearhtml/clearhtml.js | 28 + htdocs/static/js/plugins/code/code.js | 57 + htdocs/static/js/plugins/code/prettify.css | 13 + htdocs/static/js/plugins/code/prettify.js | 28 + .../static/js/plugins/emoticons/emoticons.js | 129 + .../static/js/plugins/emoticons/images/0.gif | Bin 0 -> 1810 bytes .../static/js/plugins/emoticons/images/1.gif | Bin 0 -> 1582 bytes .../static/js/plugins/emoticons/images/10.gif | Bin 0 -> 3716 bytes .../js/plugins/emoticons/images/100.gif | Bin 0 -> 1780 bytes .../js/plugins/emoticons/images/101.gif | Bin 0 -> 2443 bytes .../js/plugins/emoticons/images/102.gif | Bin 0 -> 1446 bytes .../js/plugins/emoticons/images/103.gif | Bin 0 -> 2166 bytes .../js/plugins/emoticons/images/104.gif | Bin 0 -> 2169 bytes .../js/plugins/emoticons/images/105.gif | Bin 0 -> 1277 bytes .../js/plugins/emoticons/images/106.gif | Bin 0 -> 1041 bytes .../js/plugins/emoticons/images/107.gif | Bin 0 -> 1058 bytes .../js/plugins/emoticons/images/108.gif | Bin 0 -> 1046 bytes .../js/plugins/emoticons/images/109.gif | Bin 0 -> 1081 bytes .../static/js/plugins/emoticons/images/11.gif | Bin 0 -> 8033 bytes .../js/plugins/emoticons/images/110.gif | Bin 0 -> 1082 bytes .../js/plugins/emoticons/images/111.gif | Bin 0 -> 1039 bytes .../js/plugins/emoticons/images/112.gif | Bin 0 -> 1111 bytes .../js/plugins/emoticons/images/113.gif | Bin 0 -> 1015 bytes .../js/plugins/emoticons/images/114.gif | Bin 0 -> 1003 bytes .../js/plugins/emoticons/images/115.gif | Bin 0 -> 1061 bytes .../js/plugins/emoticons/images/116.gif | Bin 0 -> 996 bytes .../js/plugins/emoticons/images/117.gif | Bin 0 -> 1041 bytes .../js/plugins/emoticons/images/118.gif | Bin 0 -> 1012 bytes .../js/plugins/emoticons/images/119.gif | Bin 0 -> 1101 bytes .../static/js/plugins/emoticons/images/12.gif | Bin 0 -> 2247 bytes .../js/plugins/emoticons/images/120.gif | Bin 0 -> 1008 bytes .../js/plugins/emoticons/images/121.gif | Bin 0 -> 1060 bytes .../js/plugins/emoticons/images/122.gif | Bin 0 -> 999 bytes .../js/plugins/emoticons/images/123.gif | Bin 0 -> 1055 bytes .../js/plugins/emoticons/images/124.gif | Bin 0 -> 1022 bytes .../js/plugins/emoticons/images/125.gif | Bin 0 -> 1013 bytes .../js/plugins/emoticons/images/126.gif | Bin 0 -> 1030 bytes .../js/plugins/emoticons/images/127.gif | Bin 0 -> 956 bytes .../js/plugins/emoticons/images/128.gif | Bin 0 -> 1022 bytes .../js/plugins/emoticons/images/129.gif | Bin 0 -> 972 bytes .../static/js/plugins/emoticons/images/13.gif | Bin 0 -> 1736 bytes .../js/plugins/emoticons/images/130.gif | Bin 0 -> 980 bytes .../js/plugins/emoticons/images/131.gif | Bin 0 -> 945 bytes .../js/plugins/emoticons/images/132.gif | Bin 0 -> 936 bytes .../js/plugins/emoticons/images/133.gif | Bin 0 -> 1012 bytes .../js/plugins/emoticons/images/134.gif | Bin 0 -> 968 bytes .../static/js/plugins/emoticons/images/14.gif | Bin 0 -> 4006 bytes .../static/js/plugins/emoticons/images/15.gif | Bin 0 -> 1562 bytes .../static/js/plugins/emoticons/images/16.gif | Bin 0 -> 1413 bytes .../static/js/plugins/emoticons/images/17.gif | Bin 0 -> 3366 bytes .../static/js/plugins/emoticons/images/18.gif | Bin 0 -> 8137 bytes .../static/js/plugins/emoticons/images/19.gif | Bin 0 -> 8135 bytes .../static/js/plugins/emoticons/images/2.gif | Bin 0 -> 1804 bytes .../static/js/plugins/emoticons/images/20.gif | Bin 0 -> 1808 bytes .../static/js/plugins/emoticons/images/21.gif | Bin 0 -> 1864 bytes .../static/js/plugins/emoticons/images/22.gif | Bin 0 -> 3010 bytes .../static/js/plugins/emoticons/images/23.gif | Bin 0 -> 1950 bytes .../static/js/plugins/emoticons/images/24.gif | Bin 0 -> 2257 bytes .../static/js/plugins/emoticons/images/25.gif | Bin 0 -> 2446 bytes .../static/js/plugins/emoticons/images/26.gif | Bin 0 -> 4014 bytes .../static/js/plugins/emoticons/images/27.gif | Bin 0 -> 2893 bytes .../static/js/plugins/emoticons/images/28.gif | Bin 0 -> 3262 bytes .../static/js/plugins/emoticons/images/29.gif | Bin 0 -> 5861 bytes .../static/js/plugins/emoticons/images/3.gif | Bin 0 -> 1852 bytes .../static/js/plugins/emoticons/images/30.gif | Bin 0 -> 1780 bytes .../static/js/plugins/emoticons/images/31.gif | Bin 0 -> 5174 bytes .../static/js/plugins/emoticons/images/32.gif | Bin 0 -> 7189 bytes .../static/js/plugins/emoticons/images/33.gif | Bin 0 -> 4317 bytes .../static/js/plugins/emoticons/images/34.gif | Bin 0 -> 2140 bytes .../static/js/plugins/emoticons/images/35.gif | Bin 0 -> 13392 bytes .../static/js/plugins/emoticons/images/36.gif | Bin 0 -> 1417 bytes .../static/js/plugins/emoticons/images/37.gif | Bin 0 -> 1195 bytes .../static/js/plugins/emoticons/images/38.gif | Bin 0 -> 1674 bytes .../static/js/plugins/emoticons/images/39.gif | Bin 0 -> 1798 bytes .../static/js/plugins/emoticons/images/4.gif | Bin 0 -> 1977 bytes .../static/js/plugins/emoticons/images/40.gif | Bin 0 -> 10092 bytes .../static/js/plugins/emoticons/images/41.gif | Bin 0 -> 3368 bytes .../static/js/plugins/emoticons/images/42.gif | Bin 0 -> 13367 bytes .../static/js/plugins/emoticons/images/43.gif | Bin 0 -> 4327 bytes .../static/js/plugins/emoticons/images/44.gif | Bin 0 -> 1571 bytes .../static/js/plugins/emoticons/images/45.gif | Bin 0 -> 4692 bytes .../static/js/plugins/emoticons/images/46.gif | Bin 0 -> 5162 bytes .../static/js/plugins/emoticons/images/47.gif | Bin 0 -> 3685 bytes .../static/js/plugins/emoticons/images/48.gif | Bin 0 -> 1755 bytes .../static/js/plugins/emoticons/images/49.gif | Bin 0 -> 6361 bytes .../static/js/plugins/emoticons/images/5.gif | Bin 0 -> 1866 bytes .../static/js/plugins/emoticons/images/50.gif | Bin 0 -> 3073 bytes .../static/js/plugins/emoticons/images/51.gif | Bin 0 -> 3731 bytes .../static/js/plugins/emoticons/images/52.gif | Bin 0 -> 1532 bytes .../static/js/plugins/emoticons/images/53.gif | Bin 0 -> 2056 bytes .../static/js/plugins/emoticons/images/54.gif | Bin 0 -> 2362 bytes .../static/js/plugins/emoticons/images/55.gif | Bin 0 -> 1582 bytes .../static/js/plugins/emoticons/images/56.gif | Bin 0 -> 1170 bytes .../static/js/plugins/emoticons/images/57.gif | Bin 0 -> 5072 bytes .../static/js/plugins/emoticons/images/58.gif | Bin 0 -> 2596 bytes .../static/js/plugins/emoticons/images/59.gif | Bin 0 -> 1533 bytes .../static/js/plugins/emoticons/images/6.gif | Bin 0 -> 3556 bytes .../static/js/plugins/emoticons/images/60.gif | Bin 0 -> 2667 bytes .../static/js/plugins/emoticons/images/61.gif | Bin 0 -> 1136 bytes .../static/js/plugins/emoticons/images/62.gif | Bin 0 -> 1269 bytes .../static/js/plugins/emoticons/images/63.gif | Bin 0 -> 971 bytes .../static/js/plugins/emoticons/images/64.gif | Bin 0 -> 988 bytes .../static/js/plugins/emoticons/images/65.gif | Bin 0 -> 5285 bytes .../static/js/plugins/emoticons/images/66.gif | Bin 0 -> 1159 bytes .../static/js/plugins/emoticons/images/67.gif | Bin 0 -> 2746 bytes .../static/js/plugins/emoticons/images/68.gif | Bin 0 -> 4148 bytes .../static/js/plugins/emoticons/images/69.gif | Bin 0 -> 1015 bytes .../static/js/plugins/emoticons/images/7.gif | Bin 0 -> 3929 bytes .../static/js/plugins/emoticons/images/70.gif | Bin 0 -> 1162 bytes .../static/js/plugins/emoticons/images/71.gif | Bin 0 -> 824 bytes .../static/js/plugins/emoticons/images/72.gif | Bin 0 -> 3679 bytes .../static/js/plugins/emoticons/images/73.gif | Bin 0 -> 2195 bytes .../static/js/plugins/emoticons/images/74.gif | Bin 0 -> 2454 bytes .../static/js/plugins/emoticons/images/75.gif | Bin 0 -> 1222 bytes .../static/js/plugins/emoticons/images/76.gif | Bin 0 -> 1211 bytes .../static/js/plugins/emoticons/images/77.gif | Bin 0 -> 1151 bytes .../static/js/plugins/emoticons/images/78.gif | Bin 0 -> 1565 bytes .../static/js/plugins/emoticons/images/79.gif | Bin 0 -> 1518 bytes .../static/js/plugins/emoticons/images/8.gif | Bin 0 -> 4679 bytes .../static/js/plugins/emoticons/images/80.gif | Bin 0 -> 1537 bytes .../static/js/plugins/emoticons/images/81.gif | Bin 0 -> 1591 bytes .../static/js/plugins/emoticons/images/82.gif | Bin 0 -> 1547 bytes .../static/js/plugins/emoticons/images/83.gif | Bin 0 -> 1591 bytes .../static/js/plugins/emoticons/images/84.gif | Bin 0 -> 3424 bytes .../static/js/plugins/emoticons/images/85.gif | Bin 0 -> 1581 bytes .../static/js/plugins/emoticons/images/86.gif | Bin 0 -> 1519 bytes .../static/js/plugins/emoticons/images/87.gif | Bin 0 -> 1558 bytes .../static/js/plugins/emoticons/images/88.gif | Bin 0 -> 2134 bytes .../static/js/plugins/emoticons/images/89.gif | Bin 0 -> 1219 bytes .../static/js/plugins/emoticons/images/9.gif | Bin 0 -> 3298 bytes .../static/js/plugins/emoticons/images/90.gif | Bin 0 -> 2743 bytes .../static/js/plugins/emoticons/images/91.gif | Bin 0 -> 654 bytes .../static/js/plugins/emoticons/images/92.gif | Bin 0 -> 1377 bytes .../static/js/plugins/emoticons/images/93.gif | Bin 0 -> 1119 bytes .../static/js/plugins/emoticons/images/94.gif | Bin 0 -> 3426 bytes .../static/js/plugins/emoticons/images/95.gif | Bin 0 -> 3011 bytes .../static/js/plugins/emoticons/images/96.gif | Bin 0 -> 1796 bytes .../static/js/plugins/emoticons/images/97.gif | Bin 0 -> 5300 bytes .../static/js/plugins/emoticons/images/98.gif | Bin 0 -> 1629 bytes .../static/js/plugins/emoticons/images/99.gif | Bin 0 -> 2261 bytes .../js/plugins/emoticons/images/static.gif | Bin 0 -> 35504 bytes .../js/plugins/filemanager/filemanager.js | 189 ++ .../js/plugins/filemanager/images/file-16.gif | Bin 0 -> 170 bytes .../js/plugins/filemanager/images/file-64.gif | Bin 0 -> 1087 bytes .../plugins/filemanager/images/folder-16.gif | Bin 0 -> 226 bytes .../plugins/filemanager/images/folder-64.gif | Bin 0 -> 1220 bytes .../js/plugins/filemanager/images/go-up.gif | Bin 0 -> 562 bytes htdocs/static/js/plugins/flash/flash.js | 128 + htdocs/static/js/plugins/image/image.js | 226 ++ .../js/plugins/image/images/align_left.gif | Bin 0 -> 639 bytes .../js/plugins/image/images/align_right.gif | Bin 0 -> 636 bytes .../js/plugins/image/images/align_top.gif | Bin 0 -> 625 bytes .../js/plugins/image/images/refresh.gif | Bin 0 -> 655 bytes .../js/plugins/insertfile/insertfile.js | 104 + .../js/plugins/lineheight/lineheight.js | 38 + htdocs/static/js/plugins/link/link.js | 59 + htdocs/static/js/plugins/map/map.html | 57 + htdocs/static/js/plugins/map/map.js | 135 + htdocs/static/js/plugins/media/media.js | 136 + .../static/js/plugins/pagebreak/pagebreak.js | 26 + .../js/plugins/plainpaste/plainpaste.js | 41 + htdocs/static/js/plugins/preview/preview.js | 31 + .../js/plugins/quickformat/quickformat.js | 71 + htdocs/static/js/plugins/table/table.js | 661 +++++ htdocs/static/js/plugins/template/html/1.html | 14 + htdocs/static/js/plugins/template/html/2.html | 42 + htdocs/static/js/plugins/template/html/3.html | 36 + htdocs/static/js/plugins/template/template.js | 58 + .../static/js/plugins/wordpaste/wordpaste.js | 57 + htdocs/static/js/swfobject.js | 4 + htdocs/static/video/video.f4v | Bin 0 -> 661906 bytes .../image/20110923/20110923051343_41964.jpg | Bin 0 -> 131300 bytes 254 files changed, 8833 insertions(+) create mode 100644 htdocs/plugins/JSON.php create mode 100644 htdocs/plugins/file_manager_json.php create mode 100644 htdocs/plugins/upload_json.php create mode 100644 htdocs/static/css/custom.css create mode 100644 htdocs/static/css/kindskin/common/blank.gif create mode 100644 htdocs/static/css/kindskin/common/flash.gif create mode 100644 htdocs/static/css/kindskin/common/loading.gif create mode 100644 htdocs/static/css/kindskin/common/media.gif create mode 100644 htdocs/static/css/kindskin/common/rm.gif create mode 100644 htdocs/static/css/kindskin/default/bg.gif create mode 100644 htdocs/static/css/kindskin/default/default.css create mode 100644 htdocs/static/css/kindskin/default/default.gif create mode 100644 htdocs/static/css/kindskin/simple/simple.css create mode 100644 htdocs/static/css/style.css create mode 100644 htdocs/static/img/21.png create mode 100644 htdocs/static/img/27.png create mode 100644 htdocs/static/img/90.png create mode 100644 htdocs/static/img/accept.png create mode 100644 htdocs/static/img/add.png create mode 100644 htdocs/static/img/arrows-ffffff.png create mode 100644 htdocs/static/img/book.png create mode 100644 htdocs/static/img/btn-overlay.png create mode 100644 htdocs/static/img/cancel.png create mode 100644 htdocs/static/img/datatable/back_disabled.png create mode 100644 htdocs/static/img/datatable/back_enabled.png create mode 100644 htdocs/static/img/datatable/forward_disabled.png create mode 100644 htdocs/static/img/datatable/forward_enabled.png create mode 100644 htdocs/static/img/datatable/sort_asc.png create mode 100644 htdocs/static/img/datatable/sort_asc_disabled.png create mode 100644 htdocs/static/img/datatable/sort_both.png create mode 100644 htdocs/static/img/datatable/sort_desc.png create mode 100644 htdocs/static/img/datatable/sort_desc_disabled.png create mode 100644 htdocs/static/img/delete.png create mode 100644 htdocs/static/img/error.png create mode 100644 htdocs/static/img/exclamation.png create mode 100644 htdocs/static/img/favicons/apple.png create mode 100644 htdocs/static/img/favicons/favicon.png create mode 100644 htdocs/static/img/gallery/book01.jpg create mode 100644 htdocs/static/img/gallery/card01.jpg create mode 100644 htdocs/static/img/gallery/leaflet01.jpg create mode 100644 htdocs/static/img/help.png create mode 100644 htdocs/static/img/information.png create mode 100644 htdocs/static/img/jquery.wysiwyg.gif create mode 100644 htdocs/static/img/key.png create mode 100644 htdocs/static/img/logo.gif create mode 100644 htdocs/static/img/logo.png create mode 100644 htdocs/static/img/nyro/ajaxLoader.gif create mode 100644 htdocs/static/img/nyro/close.gif create mode 100644 htdocs/static/img/nyro/next.gif create mode 100644 htdocs/static/img/nyro/prev.gif create mode 100644 htdocs/static/img/page_save.png create mode 100644 htdocs/static/img/page_white_go.png create mode 100644 htdocs/static/img/preview-not-available.gif create mode 100644 htdocs/static/img/quote.png create mode 100644 htdocs/static/img/search.gif create mode 100644 htdocs/static/img/shadow.png create mode 100644 htdocs/static/img/style.png create mode 100644 htdocs/static/img/tag-bg.gif create mode 100644 htdocs/static/img/toggle-small-expand.png create mode 100644 htdocs/static/img/toggle.gif create mode 100644 htdocs/static/img/user_32.png create mode 100644 htdocs/static/img/valid.gif create mode 100644 htdocs/static/js/administry.js create mode 100644 htdocs/static/js/flot/jquery.flot.min.js create mode 100644 htdocs/static/js/flot/jquery.flot.selection.min.js create mode 100644 htdocs/static/js/jquery-1.4.2.min.js create mode 100644 htdocs/static/js/jquery.dataTables.min.js create mode 100644 htdocs/static/js/jquery.nyroModal.pack.js create mode 100644 htdocs/static/js/jquery.sparkline.min.js create mode 100644 htdocs/static/js/jquery.superfish.min.js create mode 100644 htdocs/static/js/jquery.supersubs.min.js create mode 100644 htdocs/static/js/jquery.tagInput.min.js create mode 100644 htdocs/static/js/jquery.tipTip.min.js create mode 100644 htdocs/static/js/jquery.ui.core.min.js create mode 100644 htdocs/static/js/jquery.ui.tabs.min.js create mode 100644 htdocs/static/js/jquery.ui.widget.min.js create mode 100644 htdocs/static/js/jquery.validate_pack.js create mode 100644 htdocs/static/js/jquery.wysiwyg.min.js create mode 100644 htdocs/static/js/kindeditor-min.js create mode 100644 htdocs/static/js/kindlang/en.js create mode 100644 htdocs/static/js/kindlang/zh_CN.js create mode 100644 htdocs/static/js/kindlang/zh_TW.js create mode 100644 htdocs/static/js/plugins/clearhtml/clearhtml.js create mode 100644 htdocs/static/js/plugins/code/code.js create mode 100644 htdocs/static/js/plugins/code/prettify.css create mode 100644 htdocs/static/js/plugins/code/prettify.js create mode 100644 htdocs/static/js/plugins/emoticons/emoticons.js create mode 100644 htdocs/static/js/plugins/emoticons/images/0.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/1.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/10.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/100.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/101.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/102.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/103.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/104.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/105.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/106.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/107.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/108.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/109.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/11.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/110.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/111.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/112.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/113.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/114.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/115.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/116.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/117.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/118.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/119.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/12.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/120.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/121.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/122.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/123.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/124.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/125.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/126.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/127.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/128.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/129.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/13.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/130.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/131.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/132.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/133.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/134.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/14.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/15.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/16.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/17.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/18.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/19.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/2.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/20.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/21.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/22.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/23.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/24.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/25.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/26.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/27.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/28.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/29.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/3.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/30.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/31.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/32.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/33.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/34.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/35.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/36.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/37.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/38.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/39.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/4.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/40.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/41.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/42.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/43.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/44.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/45.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/46.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/47.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/48.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/49.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/5.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/50.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/51.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/52.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/53.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/54.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/55.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/56.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/57.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/58.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/59.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/6.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/60.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/61.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/62.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/63.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/64.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/65.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/66.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/67.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/68.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/69.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/7.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/70.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/71.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/72.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/73.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/74.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/75.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/76.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/77.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/78.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/79.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/8.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/80.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/81.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/82.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/83.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/84.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/85.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/86.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/87.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/88.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/89.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/9.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/90.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/91.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/92.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/93.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/94.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/95.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/96.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/97.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/98.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/99.gif create mode 100644 htdocs/static/js/plugins/emoticons/images/static.gif create mode 100644 htdocs/static/js/plugins/filemanager/filemanager.js create mode 100644 htdocs/static/js/plugins/filemanager/images/file-16.gif create mode 100644 htdocs/static/js/plugins/filemanager/images/file-64.gif create mode 100644 htdocs/static/js/plugins/filemanager/images/folder-16.gif create mode 100644 htdocs/static/js/plugins/filemanager/images/folder-64.gif create mode 100644 htdocs/static/js/plugins/filemanager/images/go-up.gif create mode 100644 htdocs/static/js/plugins/flash/flash.js create mode 100644 htdocs/static/js/plugins/image/image.js create mode 100644 htdocs/static/js/plugins/image/images/align_left.gif create mode 100644 htdocs/static/js/plugins/image/images/align_right.gif create mode 100644 htdocs/static/js/plugins/image/images/align_top.gif create mode 100644 htdocs/static/js/plugins/image/images/refresh.gif create mode 100644 htdocs/static/js/plugins/insertfile/insertfile.js create mode 100644 htdocs/static/js/plugins/lineheight/lineheight.js create mode 100644 htdocs/static/js/plugins/link/link.js create mode 100644 htdocs/static/js/plugins/map/map.html create mode 100644 htdocs/static/js/plugins/map/map.js create mode 100644 htdocs/static/js/plugins/media/media.js create mode 100644 htdocs/static/js/plugins/pagebreak/pagebreak.js create mode 100644 htdocs/static/js/plugins/plainpaste/plainpaste.js create mode 100644 htdocs/static/js/plugins/preview/preview.js create mode 100644 htdocs/static/js/plugins/quickformat/quickformat.js create mode 100644 htdocs/static/js/plugins/table/table.js create mode 100644 htdocs/static/js/plugins/template/html/1.html create mode 100644 htdocs/static/js/plugins/template/html/2.html create mode 100644 htdocs/static/js/plugins/template/html/3.html create mode 100644 htdocs/static/js/plugins/template/template.js create mode 100644 htdocs/static/js/plugins/wordpaste/wordpaste.js create mode 100644 htdocs/static/js/swfobject.js create mode 100644 htdocs/static/video/video.f4v create mode 100644 htdocs/upload/image/20110923/20110923051343_41964.jpg diff --git a/htdocs/plugins/JSON.php b/htdocs/plugins/JSON.php new file mode 100644 index 00000000..0cddbddb --- /dev/null +++ b/htdocs/plugins/JSON.php @@ -0,0 +1,806 @@ + + * @author Matt Knapp + * @author Brett Stimmerman + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_SLICE', 1); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_STR', 2); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_ARR', 3); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_OBJ', 4); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_CMT', 5); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_LOOSE_TYPE', 16); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_SUPPRESS_ERRORS', 32); + +/** + * Converts to and from JSON format. + * + * Brief example of use: + * + * + * // create a new instance of Services_JSON + * $json = new Services_JSON(); + * + * // convert a complexe value to JSON notation, and send it to the browser + * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); + * $output = $json->encode($value); + * + * print($output); + * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] + * + * // accept incoming POST data, assumed to be in JSON notation + * $input = file_get_contents('php://input', 1000000); + * $value = $json->decode($input); + * + */ +class Services_JSON +{ + /** + * constructs a new JSON instance + * + * @param int $use object behavior flags; combine with boolean-OR + * + * possible values: + * - SERVICES_JSON_LOOSE_TYPE: loose typing. + * "{...}" syntax creates associative arrays + * instead of objects in decode(). + * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. + * Values which can't be encoded (e.g. resources) + * appear as NULL instead of throwing errors. + * By default, a deeply-nested resource will + * bubble up with an error, so all return values + * from encode() should be checked with isError() + */ + function Services_JSON($use = 0) + { + $this->use = $use; + } + + /** + * convert a string from one UTF-16 char to one UTF-8 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf16 UTF-16 character + * @return string UTF-8 character + * @access private + */ + function utf162utf8($utf16) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + } + + $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); + + switch(true) { + case ((0x7F & $bytes) == $bytes): + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x7F & $bytes); + + case (0x07FF & $bytes) == $bytes: + // return a 2-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xC0 | (($bytes >> 6) & 0x1F)) + . chr(0x80 | ($bytes & 0x3F)); + + case (0xFFFF & $bytes) == $bytes: + // return a 3-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xE0 | (($bytes >> 12) & 0x0F)) + . chr(0x80 | (($bytes >> 6) & 0x3F)) + . chr(0x80 | ($bytes & 0x3F)); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encode($var) + { + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110XXXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + $properties = array_map(array($this, 'name_value'), + array_keys($var), + array_values($var)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + // treat it like a regular array + $elements = array_map(array($this, 'encode'), $var); + + foreach($elements as $element) { + if(Services_JSON::isError($element)) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = get_object_vars($var); + + $properties = array_map(array($this, 'name_value'), + array_keys($vars), + array_values($vars)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) + { + $encoded_value = $this->encode($value); + + if(Services_JSON::isError($encoded_value)) { + return $encoded_value; + } + + return $this->encode(strval($name)) . ':' . $encoded_value; + } + + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) + { + $str = preg_replace(array( + + // eliminate single line comments in '// ...' form + '#^\s*//(.+)$#m', + + // eliminate multi-line comments in '/* ... */' form, at start of string + '#^\s*/\*(.+)\*/#Us', + + // eliminate multi-line comments in '/* ... */' form, at end of string + '#/\*(.+)\*/\s*$#Us' + + ), '', $str); + + // eliminate extraneous space + return trim($str); + } + + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to Services_JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) + { + $str = $this->reduce_string($str); + + switch (strtolower($str)) { + case 'true': + return true; + + case 'false': + return false; + + case 'null': + return null; + + default: + $m = array(); + + if (is_numeric($str)) { + // Lookie-loo, it's a number + + // This would work on its own, but I'm trying to be + // good about returning integers where appropriate: + // return (float)$str; + + // Return float or int, as appropriate + return ((float)$str == (integer)$str) + ? (integer)$str + : (float)$str; + + } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { + // STRINGS RETURNED IN UTF-8 FORMAT + $delim = substr($str, 0, 1); + $chrs = substr($str, 1, -1); + $utf8 = ''; + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c < $strlen_chrs; ++$c) { + + $substr_chrs_c_2 = substr($chrs, $c, 2); + $ord_chrs_c = ord($chrs{$c}); + + switch (true) { + case $substr_chrs_c_2 == '\b': + $utf8 .= chr(0x08); + ++$c; + break; + case $substr_chrs_c_2 == '\t': + $utf8 .= chr(0x09); + ++$c; + break; + case $substr_chrs_c_2 == '\n': + $utf8 .= chr(0x0A); + ++$c; + break; + case $substr_chrs_c_2 == '\f': + $utf8 .= chr(0x0C); + ++$c; + break; + case $substr_chrs_c_2 == '\r': + $utf8 .= chr(0x0D); + ++$c; + break; + + case $substr_chrs_c_2 == '\\"': + case $substr_chrs_c_2 == '\\\'': + case $substr_chrs_c_2 == '\\\\': + case $substr_chrs_c_2 == '\\/': + if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || + ($delim == "'" && $substr_chrs_c_2 != '\\"')) { + $utf8 .= $chrs{++$c}; + } + break; + + case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): + // single, escaped unicode character + $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) + . chr(hexdec(substr($chrs, ($c + 4), 2))); + $utf8 .= $this->utf162utf8($utf16); + $c += 5; + break; + + case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): + $utf8 .= $chrs{$c}; + break; + + case ($ord_chrs_c & 0xE0) == 0xC0: + // characters U-00000080 - U-000007FF, mask 110XXXXX + //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 2); + ++$c; + break; + + case ($ord_chrs_c & 0xF0) == 0xE0: + // characters U-00000800 - U-0000FFFF, mask 1110XXXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 3); + $c += 2; + break; + + case ($ord_chrs_c & 0xF8) == 0xF0: + // characters U-00010000 - U-001FFFFF, mask 11110XXX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 4); + $c += 3; + break; + + case ($ord_chrs_c & 0xFC) == 0xF8: + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 5); + $c += 4; + break; + + case ($ord_chrs_c & 0xFE) == 0xFC: + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 6); + $c += 5; + break; + + } + + } + + return $utf8; + + } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { + // array, or object notation + + if ($str{0} == '[') { + $stk = array(SERVICES_JSON_IN_ARR); + $arr = array(); + } else { + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = array(); + } else { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = new stdClass(); + } + } + + array_push($stk, array('what' => SERVICES_JSON_SLICE, + 'where' => 0, + 'delim' => false)); + + $chrs = substr($str, 1, -1); + $chrs = $this->reduce_string($chrs); + + if ($chrs == '') { + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } else { + return $obj; + + } + } + + //print("\nparsing {$chrs}\n"); + + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c <= $strlen_chrs; ++$c) { + + $top = end($stk); + $substr_chrs_c_2 = substr($chrs, $c, 2); + + if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { + // found a comma that is not inside a string, array, etc., + // OR we've reached the end of the character list + $slice = substr($chrs, $top['where'], ($c - $top['where'])); + array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); + //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + // we are in an array, so just push an element onto the stack + array_push($arr, $this->decode($slice)); + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + // we are in an object, so figure + // out the property name and set an + // element in an associative array, + // for now + $parts = array(); + + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // "name":value pair + $key = $this->decode($parts[1]); + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // name:value pair, where name is unquoted + $key = $parts[1]; + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } + + } + + } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { + // found a quote, and we are not inside a string + array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); + //print("Found start of string at {$c}\n"); + + } elseif (($chrs{$c} == $top['delim']) && + ($top['what'] == SERVICES_JSON_IN_STR) && + ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { + // found a quote, we're in a string, and it's not escaped + // we know that it's not escaped becase there is _not_ an + // odd number of backslashes at the end of the string so far + array_pop($stk); + //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '[') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-bracket, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); + //print("Found start of array at {$c}\n"); + + } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { + // found a right-bracket, and we're in an array + array_pop($stk); + //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '{') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-brace, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); + //print("Found start of object at {$c}\n"); + + } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { + // found a right-brace, and we're in an object + array_pop($stk); + //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($substr_chrs_c_2 == '/*') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a comment start, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); + $c++; + //print("Found start of comment at {$c}\n"); + + } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { + // found a comment end, and we're in one now + array_pop($stk); + $c++; + + for ($i = $top['where']; $i <= $c; ++$i) + $chrs = substr_replace($chrs, ' ', $i, 1); + + //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } + + } + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + return $obj; + + } + + } + } + } + + /** + * @todo Ultimately, this should just call PEAR::isError() + */ + function isError($data, $code = null) + { + if (class_exists('pear')) { + return PEAR::isError($data, $code); + } elseif (is_object($data) && (get_class($data) == 'services_json_error' || + is_subclass_of($data, 'services_json_error'))) { + return true; + } + + return false; + } +} + +if (class_exists('PEAR_Error')) { + + class Services_JSON_Error extends PEAR_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + parent::PEAR_Error($message, $code, $mode, $options, $userinfo); + } + } + +} else { + + /** + * @todo Ultimately, this class shall be descended from PEAR_Error + */ + class Services_JSON_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + + } + } + +} + +?> diff --git a/htdocs/plugins/file_manager_json.php b/htdocs/plugins/file_manager_json.php new file mode 100644 index 00000000..eaefceeb --- /dev/null +++ b/htdocs/plugins/file_manager_json.php @@ -0,0 +1,138 @@ + 2); //文件夹是否包含文件 + $file_list[$i]['filesize'] = 0; //文件大小 + $file_list[$i]['is_photo'] = false; //是否图片 + $file_list[$i]['filetype'] = ''; //文件类别,用扩展名判断 + } else { + $file_list[$i]['is_dir'] = false; + $file_list[$i]['has_file'] = false; + $file_list[$i]['filesize'] = filesize($file); + $file_list[$i]['dir_path'] = ''; + $file_ext = strtolower(array_pop(explode('.', trim($file)))); + $file_list[$i]['is_photo'] = in_array($file_ext, $ext_arr); + $file_list[$i]['filetype'] = $file_ext; + } + $file_list[$i]['filename'] = $filename; //文件名,包含扩展名 + $file_list[$i]['datetime'] = date('Y-m-d H:i:s', filemtime($file)); //文件最后修改时间 + $i++; + } + closedir($handle); +} + +//排序 +function cmp_func($a, $b) { + global $order; + if ($a['is_dir'] && !$b['is_dir']) { + return -1; + } else if (!$a['is_dir'] && $b['is_dir']) { + return 1; + } else { + if ($order == 'size') { + if ($a['filesize'] > $b['filesize']) { + return 1; + } else if ($a['filesize'] < $b['filesize']) { + return -1; + } else { + return 0; + } + } else if ($order == 'type') { + return strcmp($a['filetype'], $b['filetype']); + } else { + return strcmp($a['filename'], $b['filename']); + } + } +} +usort($file_list, 'cmp_func'); + +$result = array(); +//相对于根目录的上一级目录 +$result['moveup_dir_path'] = $moveup_dir_path; +//相对于根目录的当前目录 +$result['current_dir_path'] = $current_dir_path; +//当前目录的URL +$result['current_url'] = $current_url; +//文件数 +$result['total_count'] = count($file_list); +//文件列表数组 +$result['file_list'] = $file_list; + +//输出JSON字符串 +header('Content-type: application/json; charset=UTF-8'); +$json = new Services_JSON(); +echo $json->encode($result); +?> diff --git a/htdocs/plugins/upload_json.php b/htdocs/plugins/upload_json.php new file mode 100644 index 00000000..0eea5019 --- /dev/null +++ b/htdocs/plugins/upload_json.php @@ -0,0 +1,111 @@ + array('gif', 'jpg', 'jpeg', 'png', 'bmp'), + 'flash' => array('swf', 'flv'), + 'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'), + 'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2'), +); +//最大文件大小 +$max_size = 1000000; + +$save_path = realpath($save_path) . '/'; + +//有上传文件时 +if (empty($_FILES) === false) { + //原文件名 + $file_name = $_FILES['imgFile']['name']; + //服务器上临时文件名 + $tmp_name = $_FILES['imgFile']['tmp_name']; + //文件大小 + $file_size = $_FILES['imgFile']['size']; + //检查文件名 + if (!$file_name) { + alert("请选择文件。"); + } + //检查目录 + if (@is_dir($save_path) === false) { + alert("上传目录不存在。"); + } + //检查目录写权限 + if (@is_writable($save_path) === false) { + alert("上传目录没有写权限。"); + } + //检查是否已上传 + if (@is_uploaded_file($tmp_name) === false) { + alert("临时文件可能不是上传文件。"); + } + //检查文件大小 + if ($file_size > $max_size) { + alert("上传文件大小超过限制。"); + } + //检查目录名 + $dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']); + if (empty($ext_arr[$dir_name])) { + alert("目录名不正确。"); + } + //获得文件扩展名 + $temp_arr = explode(".", $file_name); + $file_ext = array_pop($temp_arr); + $file_ext = trim($file_ext); + $file_ext = strtolower($file_ext); + //检查扩展名 + if (in_array($file_ext, $ext_arr[$dir_name]) === false) { + alert("上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $ext_arr[$dir_name]) . "格式。"); + } + //创建文件夹 + if ($dir_name !== '') { + $save_path .= $dir_name . "/"; + $save_url .= $dir_name . "/"; + if (!file_exists($save_path)) { + mkdir($save_path); + } + } + $ymd = date("Ymd"); + $save_path .= $ymd . "/"; + $save_url .= $ymd . "/"; + if (!file_exists($save_path)) { + mkdir($save_path); + } + //新文件名 + $new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext; + //移动文件 + $file_path = $save_path . $new_file_name; + if (move_uploaded_file($tmp_name, $file_path) === false) { + alert("上传文件失败。"); + } + @chmod($file_path, 0644); + $file_url = $save_url . $new_file_name; + + header('Content-type: text/html; charset=UTF-8'); + $json = new Services_JSON(); + echo $json->encode(array('error' => 0, 'url' => $file_url)); + exit; +} + +function alert($msg) { + header('Content-type: text/html; charset=UTF-8'); + $json = new Services_JSON(); + echo $json->encode(array('error' => 1, 'message' => $msg)); + exit; +} +?> \ No newline at end of file diff --git a/htdocs/static/css/custom.css b/htdocs/static/css/custom.css new file mode 100644 index 00000000..01dcbf51 --- /dev/null +++ b/htdocs/static/css/custom.css @@ -0,0 +1,16 @@ +/* + +CUSTOM STYLESHEET + +*/ + + +/* + * paginationControl + */ +.paginationControl{float:right;padding-left:30px;margin:10px auto;} +.paginationControl A {border:#9aafe5 1px solid;padding:2px 5px;color:#2e6ab1;margin-right:2px;TEXT-DECORATION:none} +.paginationControl A:hover {border:#2b66a5 1px solid;COLOR: #000;BACKGROUND-COLOR:lightyellow} +.paginationControl A:active {border:#2b66a5 1px solid;COLOR: #000;BACKGROUND-COLOR:lightyellow} +.paginationControl SPAN.current {border:navy 1px solid;margin-right:2px;padding:2px 5px;FONT-WEIGHT: bold;COLOR: #fff;BACKGROUND-COLOR: #2e6ab1} +.paginationControl SPAN.disabled {border:#929292 1px solid;padding:2px 5px;COLOR: #929292; MARGIN-RIGHT: 2px;} \ No newline at end of file diff --git a/htdocs/static/css/kindskin/common/blank.gif b/htdocs/static/css/kindskin/common/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bfd67a2d6f72ac3a55cbfcea5866e841d22f5d9 GIT binary patch literal 43 mcmZ?wbhEHbWMp7uXkdT>#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1 literal 0 HcmV?d00001 diff --git a/htdocs/static/css/kindskin/common/flash.gif b/htdocs/static/css/kindskin/common/flash.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cb12b28429f8c2e5294a177e14dfda6f533e6fc GIT binary patch literal 1089 zcmV-H1it%6Nk%w1VITk?0OkMy03afP|W&d}4=YJZZjyvFwT_~zc`k)Er>%FkqZjiIl;5K(o%zrQM3b^te9 zd4`jDi=FT9?{#&eq?= z&Da1aLZ`OBD`bS6tF=*bg7@$DY?G-hUVMa=piygoaD&NUadR3gv@04*cpk2HtAZvUIW`(NU|>7P#~?T>bqX|Nt1v+(S;PTf64}~3U<`K* zQ47$GNYff1*Ai|w>^DYkFnuK@BVh*%D~w4xavESj>TdAhksv{a02d;V89-(NkSuI; z@L1#^M-~tO-3&CsF~bdc0~it*00hhu2Mr1pabN>S0CfZnW|*lULdY2te1viHB@CVg z1qgY7;qQyaf-`3(IU!=e3^X@bV92&33(G+gUc?FW@&?kR8L&(l;AaAlsoK7*fT3iN z0U~q%z!>FW1nj{GBFO03AO)K?31H&ra3iS90S#U0+HDYFh8`v}B6JudMca-!L3sT^ zB4-6QuXZzBP@(6_l|57_pkSd5ND(Cl1R*iu`HMTd2E>>~fPf1Z)vU7t(V(D)Y}#Lv z-%h%q%M}DvqCe@fy0r!+#{ZCzBP6+ZHyZ7Ti2>ch3OeWm$Y^af)1M-T0sfWn#*7#Q z57J1*z<<5vB_D7g$Pfy|HD3m001!hA6j%`4eA$42M_Yq1qe%EK|&)k zXh97SJe+Zc4BqwW9T;;c;l(B#Xc2{!1+=56qF~s7#h|Om(1QYaXaIyvU>PAn5irQv z%OD}Npnx28(D6@68rYBn78UUL=^z+{(1R8VC{e2eSZKkAtFJC1!w^jb+eRKz^lI#< HfdBwIq8;my literal 0 HcmV?d00001 diff --git a/htdocs/static/css/kindskin/common/loading.gif b/htdocs/static/css/kindskin/common/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..e192ca895cd00d6b752ec84619b787188f30ee41 GIT binary patch literal 847 zcmZ?wbhEHb6krfw_`<;O|Nnmm28JI$eppyow6wIav9YPCsa?BvZN-WeVq#)tWo2n; zX-}R!nK5I=v17+PJUqg}!hq_D2a5l>{aizWogD*Qjr0td8G$+#|4BI)r6!i7rYMwW zmSiX-W+hhSNI#p{aB=u^kJ9BqzM)+D@@g7D>_ZH z6>Nk>K2^#dec$hd&5{fSg)a9?JsDb3M<1+M;h^GLd*HyqYe$(ldZsj_W{3#!96X@l zAjsu&py5MupnEfu)0U^(0!(Kp*sL-QO$pql{X%Kq;`Av7E5z0lI$B?E`RzKdsAZ)9=nHHN!5+~JF4SY+VADb}iE(C2i8t1nx?>)BhL zPS>_TA<--6ZN7=uLx=rfr*28JR#UU9l!(BR!@3s} qR&*pBVEQRw*vTQWVY)*bLIMx~ literal 0 HcmV?d00001 diff --git a/htdocs/static/css/kindskin/common/media.gif b/htdocs/static/css/kindskin/common/media.gif new file mode 100644 index 0000000000000000000000000000000000000000..e1c0e30afb2587f6d4ed4f8bd90bd4f865a98aa6 GIT binary patch literal 1036 zcmV+n1oQhxNk%w1VITk?0OkMy0A@37!Q*M$LcQvWmF_2mBqn_S(Z}jxMfqHi`g}=qph8>ajebfv(>`m;o;&^Lc|^(|NrX%akkXw-P74|0GZ6czP`)p_nDcQGnvdD zc0~XGnV{C}vBAMgeD0s2|`x$DghH8$$U7>xK#;fx3!ne0y#NE=_*_PMt z_y>GB^Uu$Ge1HG_;FiYa=8%l{_V#|d-OC&c_xDxA;Ovc%k|v_lc$J`Bwb{dadH?@r z@x;Xc|NqR)%}29%<|$If5zj<+@0oSRV;#1JEGEmvzHHo zK^dCR=H%o1@9)CL*8l%AwbJdn)bQZ%_W*P=|NlRu%(O41eiycq}AUsoyi)CnB1Zg8JKLBrW4U~m-5(Hdm1!Wys z4Ipt4096R0e^4V_5gm0MWn~S&2w8n^EmxFg1QETHV3Fir9=USl7#n1P3KbeR3g1gYqk`oMXDUdJ zg6G5<1`H+;N>ZXUoIFKRM`?WK43#rR-li^s2Z;d#4Ac+;Q@Vtg4^vcISU~)S9(%L( zWLR^X0f|Bt4oEkWMfidX7Ld;_BBsr40~!n&k?v(lk}OlwTaZ0F{ggZ!u-tZFNROBM zUII+Xg1(6R|5=FP02TxqAjBatc!2^6bG#4?e-QFV2OWA$Py>NjJb?%pb1?XT9|=uC zM+hX6s0SDm@Nvh5H9Uui3Ue%xR$D%Rv0V{DxbVaieAG~bZi-m(VE{u6@xoO;2%!dP z87{~m1CMu*K}ix#5P6jfD)^wrmPuopT&2f}B#@w_3l8kC!dHw;kpcxC zFu_3*$Ei6%4`Fx^L<(@mDTM+`1d)IeE3BYI0zoLDfE0n!l0^toq+n?ZQiPBNEu1nE G2mm`UjPBh4 literal 0 HcmV?d00001 diff --git a/htdocs/static/css/kindskin/common/rm.gif b/htdocs/static/css/kindskin/common/rm.gif new file mode 100644 index 0000000000000000000000000000000000000000..d013d551de909a5588a7d81be96aba60089a846b GIT binary patch literal 989 zcmV<310wuKNk%w1VITk?0OkMy0!fO7(d!x1vrw+q9#)Y6nas=J??8L1wang{j*6Pl=&;@Hf}+8--sXvYcn4dU zBZIas|JI-=;-JdPm1R7 z_XtOZ$=c^+!QzqB>;;U(l*HkTz1wT0#bS`RMUul|e~QY(!2kdMA^8La6aaq!EC2ui z03ZM$000O7fPaF6goTEOh>41ei!?V?RW~$@i!&HvFmVtNaWG;SGn9o&UUMfHRWmd+ zGgTNTb6!fKe>V^(Kr~9MGrhVrKqnA4lvV%^Sy?yB%+1LT09K1P0DE**6clA;Of@x3 z+u0O!djQ0UN@EigKM1Af(LLXatAr11&%Z_h6`n=>lNV z^yR^)?+hs*-k51&=*gSwS6oPNys-?J0@t4$no{7-ofRFn=RGLr!Ik$@5FIFD9txBn z7M?WOueJ%1BS+j(!~uzL0pNXFXt9P6FFe80K`&@QMu1!_ase4+D7eNCYj9!J0d{nt zMFeDAKuH55?C?V!b#MU{14O9s!ww@fAW8`zEI@_;P6WUJ16{~Y*f4+wG9-Cp2n1B1!4Q40z(OBGXixzGA!td9AaI}%LI{5N@g@pz LtZAnrfdBwIov+u= literal 0 HcmV?d00001 diff --git a/htdocs/static/css/kindskin/default/bg.gif b/htdocs/static/css/kindskin/default/bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c337033cee1d818aaf8ad1332fedcd741a29c32 GIT binary patch literal 616 zcmV-u0+;f$jGIo zrT_o`000000000000000A^8La6aWhVEC2ui09XPU000F4aH&bFy*TU5yZ>M)j$~<` zD7vg{>%MR-&vb3yc&_h!@BhG`LV^GokI1BQ$!t2G(5Q4uty-_xtahsndcWYXcuX#v zZHNhX&2GEj@VI;~J=^d2yne3-sOf-#f`f#GgnWpJii?bRehP+>l9QB`gN>M(nwy*p zkCvdJqNAinou{a&sz9HmuCK7MTdTCSwzaLYy1Tr(x4*!_in+bT#>bJu%FE1Q#K_Rm z(reAt*4H)9)7#wLOxWPz*V^9Y=F#Hm>cHgZ?(eee^7E*V2lx2-`uqI-{{H|23LHqV zpuvL(6DnNDkRiQ?5E&hq(6FM#ix@L%+{m%xz=$CKL*kjJz@y2NC{wCjxl*Ldmtja6 zm`Ssy&6_xL>fFh*r_Y~2g9;r=w5ZXeNRh%^%9MwJ2}z?$ol3Q;)vH*u{%p#%>x`!g z3Wyy`wyfE+Xw#})%eJlCw{YXiolCc_-Me?a>fO7bzytz-0}CEZxUk{Fh!ZPb%($`R z$B-jSo=mxNWxkl35|}Wcv**vCLyI0wy0q!js8g$6&APSg*RW&DmYuow%K;Mv=-$n{ zx9{J;g9{%{ytwh>$dfBy&b+zv=g)0R2Pq&o^y}EOYv0bjyZ7(Kr;DdoT|t5X=+moT z&%V9;_weJ(pHIKO{rmXy>)+46KmYLns*}JK5GfRB;DHDxsNjMOHuyn+5P~yA1OPi) C7GUxK literal 0 HcmV?d00001 diff --git a/htdocs/static/css/kindskin/default/default.css b/htdocs/static/css/kindskin/default/default.css new file mode 100644 index 00000000..24870954 --- /dev/null +++ b/htdocs/static/css/kindskin/default/default.css @@ -0,0 +1,942 @@ +/* common */ +.ke-inline-block { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-clearfix { + zoom: 1; +} +.ke-clearfix:after { + content: "."; + display: block; + clear: both; + font-size: 0; + height: 0; + line-height: 0; + visibility: hidden; +} +.ke-menu a, +.ke-menu a:hover, +.ke-dialog a, +.ke-dialog a:hover { + color: #337FE5; + text-decoration: none; +} +/* icons */ +.ke-icon-source { + background-position: 0px 0px; + width: 16px; + height: 16px; +} +.ke-icon-preview { + background-position: 0px -16px; + width: 16px; + height: 16px; +} +.ke-icon-print { + background-position: 0px -32px; + width: 16px; + height: 16px; +} +.ke-icon-undo { + background-position: 0px -48px; + width: 16px; + height: 16px; +} +.ke-icon-redo { + background-position: 0px -64px; + width: 16px; + height: 16px; +} +.ke-icon-cut { + background-position: 0px -80px; + width: 16px; + height: 16px; +} +.ke-icon-copy { + background-position: 0px -96px; + width: 16px; + height: 16px; +} +.ke-icon-paste { + background-position: 0px -112px; + width: 16px; + height: 16px; +} +.ke-icon-selectall { + background-position: 0px -128px; + width: 16px; + height: 16px; +} +.ke-icon-justifyleft { + background-position: 0px -144px; + width: 16px; + height: 16px; +} +.ke-icon-justifycenter { + background-position: 0px -160px; + width: 16px; + height: 16px; +} +.ke-icon-justifyright { + background-position: 0px -176px; + width: 16px; + height: 16px; +} +.ke-icon-justifyfull { + background-position: 0px -192px; + width: 16px; + height: 16px; +} +.ke-icon-insertorderedlist { + background-position: 0px -208px; + width: 16px; + height: 16px; +} +.ke-icon-insertunorderedlist { + background-position: 0px -224px; + width: 16px; + height: 16px; +} +.ke-icon-indent { + background-position: 0px -240px; + width: 16px; + height: 16px; +} +.ke-icon-outdent { + background-position: 0px -256px; + width: 16px; + height: 16px; +} +.ke-icon-subscript { + background-position: 0px -272px; + width: 16px; + height: 16px; +} +.ke-icon-superscript { + background-position: 0px -288px; + width: 16px; + height: 16px; +} +.ke-icon-formatblock { + background-position: 0px -336px; + width: 25px; + height: 16px; +} +.ke-icon-fontname { + background-position: 0px -352px; + width: 21px; + height: 16px; +} +.ke-icon-fontsize { + background-position: 0px -368px; + width: 23px; + height: 16px; +} +.ke-icon-forecolor { + background-position: 0px -384px; + width: 20px; + height: 16px; +} +.ke-icon-hilitecolor { + background-position: 0px -400px; + width: 20px; + height: 16px; +} +.ke-icon-bold { + background-position: 0px -416px; + width: 16px; + height: 16px; +} +.ke-icon-italic { + background-position: 0px -432px; + width: 16px; + height: 16px; +} +.ke-icon-underline { + background-position: 0px -448px; + width: 16px; + height: 16px; +} +.ke-icon-strikethrough { + background-position: 0px -464px; + width: 16px; + height: 16px; +} +.ke-icon-removeformat { + background-position: 0px -480px; + width: 16px; + height: 16px; +} +.ke-icon-image { + background-position: 0px -496px; + width: 16px; + height: 16px; +} +.ke-icon-flash { + background-position: 0px -512px; + width: 16px; + height: 16px; +} +.ke-icon-media { + background-position: 0px -528px; + width: 16px; + height: 16px; +} +.ke-icon-hr { + background-position: 0px -592px; + width: 16px; + height: 16px; +} +.ke-icon-emoticons { + background-position: 0px -608px; + width: 16px; + height: 16px; +} +.ke-icon-link { + background-position: 0px -624px; + width: 16px; + height: 16px; +} +.ke-icon-unlink { + background-position: 0px -640px; + width: 16px; + height: 16px; +} +.ke-icon-fullscreen { + background-position: 0px -656px; + width: 16px; + height: 16px; +} +.ke-icon-about { + background-position: 0px -672px; + width: 16px; + height: 16px; +} +.ke-icon-plainpaste { + background-position: 0px -704px; + width: 16px; + height: 16px; +} +.ke-icon-wordpaste { + background-position: 0px -720px; + width: 16px; + height: 16px; +} +.ke-icon-table { + background-position: 0px -784px; + width: 16px; + height: 16px; +} +.ke-icon-tablemenu { + background-position: 0px -768px; + width: 16px; + height: 16px; +} +.ke-icon-tableinsert { + background-position: 0px -784px; + width: 16px; + height: 16px; +} +.ke-icon-tabledelete { + background-position: 0px -800px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolinsertleft { + background-position: 0px -816px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolinsertright { + background-position: 0px -832px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowinsertabove { + background-position: 0px -848px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowinsertbelow { + background-position: 0px -864px; + width: 16px; + height: 16px; +} +.ke-icon-tablecoldelete { + background-position: 0px -880px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowdelete { + background-position: 0px -896px; + width: 16px; + height: 16px; +} +.ke-icon-tablecellprop { + background-position: 0px -912px; + width: 16px; + height: 16px; +} +.ke-icon-tableprop { + background-position: 0px -928px; + width: 16px; + height: 16px; +} +.ke-icon-checked { + background-position: 0px -944px; + width: 16px; + height: 16px; +} +.ke-icon-code { + background-position: 0px -960px; + width: 16px; + height: 16px; +} +.ke-icon-map { + background-position: 0px -976px; + width: 16px; + height: 16px; +} +.ke-icon-lineheight { + background-position: 0px -992px; + width: 16px; + height: 16px; +} +.ke-icon-clearhtml { + background-position: 0px -1008px; + width: 16px; + height: 16px; +} +.ke-icon-pagebreak { + background-position: 0px -1024px; + width: 16px; + height: 16px; +} +.ke-icon-insertfile { + background-position: 0px -1040px; + width: 16px; + height: 16px; +} +.ke-icon-quickformat { + background-position: 0px -1056px; + width: 16px; + height: 16px; +} +.ke-icon-template { + background-position: 0px -1072px; + width: 16px; + height: 16px; +} +.ke-icon-tablecellsplit { + background-position: 0px -1088px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowmerge { + background-position: 0px -1104px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowsplit { + background-position: 0px -1120px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolmerge { + background-position: 0px -1136px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolsplit { + background-position: 0px -1152px; + width: 16px; + height: 16px; +} +/* container */ +.ke-container { + display: block; + border: 1px solid #CCCCCC; + background-color: #FFF; + overflow: hidden; + margin: 0; + padding: 0; +} +/* toolbar */ +.ke-toolbar { + border-bottom: 1px solid #CCC; + background-color: #F0F0EE; + padding: 2px 5px; + overflow: hidden; +} +.ke-toolbar-icon { + background-repeat: no-repeat; + font-size: 0; + line-height: 0; + overflow: hidden; +} +.ke-toolbar-icon-url { + background-image: url(default.gif); +} +.ke-toolbar .ke-outline { + border: 1px solid #F0F0EE; + margin: 1px; + padding: 1px 2px; + font-size: 0; + line-height: 0; + overflow: hidden; + cursor: pointer; +} +.ke-toolbar .ke-on { + border: 1px solid #5690D2; +} +.ke-toolbar .ke-selected { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-toolbar .ke-disabled { + cursor: default; +} +.ke-toolbar .ke-separator { + height: 16px; + margin: 2px 3px; + border-left: 1px solid #A0A0A0; + border-right: 1px solid #FFFFFF; + border-top:0; + border-bottom:0; + width: 0; + font-size: 0; + line-height: 0; + overflow: hidden; +} +/* edit */ +.ke-edit { + padding: 0; +} +.ke-edit-iframe, +.ke-edit-textarea { + border: 0; + margin: 0; + padding: 0; +} +.ke-edit-textarea { + font: 12px/1.5 "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; + color: #000; + overflow: auto; + resize: none; +} +.ke-edit-textarea:focus { + outline: none; +} +/* statusbar */ +.ke-statusbar { + position: relative; + background-color: #F0F0EE; + border-top: 1px solid #CCCCCC; + font-size: 0; + line-height: 0; + *height: 12px; + overflow: hidden; + text-align: center; + cursor: s-resize; +} +.ke-statusbar-center-icon { + background-position: -0px -754px; + width: 15px; + height: 11px; + background-image: url(default.gif); +} +.ke-statusbar-right-icon { + position: absolute; + right: 0; + bottom: 0; + cursor: se-resize; + background-position: -5px -741px; + width: 11px; + height: 11px; + background-image: url(default.gif); +} +/* menu */ +.ke-menu { + border: 1px solid #A0A0A0; + background-color: #F1F1F1; + color: #222222; + padding: 2px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + text-align: left; + overflow: hidden; +} +.ke-menu-item { + border: 1px solid #F1F1F1; + background-color: #F1F1F1; + color: #222222; + height: 24px; + overflow: hidden; + cursor: pointer; +} +.ke-menu-item-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-menu-item-left { + width: 27px; + text-align: center; + overflow: hidden; +} +.ke-menu-item-center { + width: 0; + height: 24px; + border-left: 1px solid #E3E3E3; + border-right: 1px solid #FFFFFF; + border-top: 0; + border-bottom: 0; +} +.ke-menu-item-center-on { + border-left: 1px solid #E9EFF6; + border-right: 1px solid #E9EFF6; +} +.ke-menu-item-right { + border: 0; + padding: 0 0 0 5px; + line-height: 24px; + text-align: left; + overflow: hidden; +} +.ke-menu-separator { + margin: 2px 0; + height: 0; + overflow: hidden; + border-top: 1px solid #CCCCCC; + border-bottom: 1px solid #FFFFFF; + border-left: 0; + border-right: 0; +} +/* colorpicker */ +.ke-colorpicker { + border: 1px solid #A0A0A0; + background-color: #F1F1F1; + color: #222222; + padding: 2px; +} +.ke-colorpicker-table { + border:0; + margin:0; + padding:0; + border-collapse: separate; +} +.ke-colorpicker-cell { + font-size: 0; + line-height: 0; + border: 1px solid #F0F0EE; + cursor: pointer; + margin:3px; + padding:0; +} +.ke-colorpicker-cell-top { + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 24px; + border: 1px solid #F0F0EE; + cursor: pointer; + margin:0; + padding:0; + text-align: center; +} +.ke-colorpicker-cell-on { + border: 1px solid #5690D2; +} +.ke-colorpicker-cell-selected { + border: 1px solid #2446AB; +} +.ke-colorpicker-cell-color { + width: 14px; + height: 14px; + margin: 3px; + padding: 0; + border: 0; +} +/* dialog */ +.ke-dialog { + position: absolute; + margin: 0; + padding: 0; + color: #333; + background-color: #F0F0EE; +} +.ke-dialog-shadow { + border: 1px solid #A0A0A0; + border-radius: 0 0 4px 4px; + box-shadow: 0 4px 16px #A0A0A0; +} +.ke-dialog-no-shadow { + border: 1px solid #A0A0A0; +} +.ke-dialog-header { + border:0; + margin:0; + background-color: #F0F0EE; + padding: 10px; + text-align: left; + font: 14px/1 "sans serif",tahoma,verdana,helvetica; + font-weight: bold; + color: #222222; + cursor: move; +} +.ke-dialog-icon-close { + display: block; + background-position: 0px -688px; + width: 16px; + height: 16px; + position: absolute; + right: 15px; + top: 15px; + cursor: pointer; + background-image: url(default.gif); + overflow: hidden; + right: 10px; + top: 10px; +} +.ke-dialog-body { + font: 12px/1.5 "sans serif",tahoma,verdana,helvetica; + text-align: left; + overflow: hidden; +} +.ke-dialog-body textarea { + display: block; + overflow: auto; + padding: 0; + resize: none; +} +.ke-dialog-body textarea:focus, +.ke-dialog-body input:focus, +.ke-dialog-body select:focus { + outline: none; +} +.ke-dialog-body label { + margin-right: 10px; + cursor: pointer; + font-weight: bold; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body img { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body select { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body .ke-textarea { + display: block; + width: 408px; + height: 260px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; +} +.ke-dialog-body .ke-form { + margin: 0; + padding: 0; +} +.ke-dialog-row { + margin-bottom: 10px; +} +.ke-dialog-footer { + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + text-align: right; + padding:0 0 5px 0; +} +.ke-dialog-preview, +.ke-dialog-yes { + margin: 5px; +} +.ke-dialog-no { + margin: 5px 10px 5px 5px; +} +.ke-dialog-mask { + background-color:#FFF; + filter:alpha(opacity=50); + opacity:0.5; +} +.ke-button-common { + background: url(bg.gif) no-repeat scroll 0 0 transparent; + cursor: pointer; + height: 25px; + line-height: 25px; + overflow: visible; + display: inline-block; + vertical-align: top; +} +.ke-button-outer { + background-position: 0 0; + padding: 0; + position: relative; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-button { + background-position: right 0; + padding: 0 12px; + margin: 0; + font-family: "sans serif",tahoma,verdana,helvetica; + border: 0 none; + color: #333; + font-size: 12px; + font-weight: bold; + left: 2px; + text-decoration: none; +} +/* inputbox */ +.ke-input-text { + background-color:#FFFFFF; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 17px; + height: 17px; + padding: 2px 4px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-input-number { + width: 50px; +} +.ke-input-color { + border: 1px solid #A0A0A0; + background-color: #FFFFFF; + font-size: 12px; + width: 60px; + height: 20px; + line-height: 20px; + padding-left: 5px; + overflow: hidden; + cursor: pointer; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-upload-area { + position: relative; + overflow: hidden; +} +.ke-upload-area .ke-upload-file { + position: absolute; + top: 0; + right: 0; + height: 25px; + padding: 0; + margin: 0; + z-index: 811212; + border: 0 none; + opacity:0; + filter:alpha(opacity=0); +} +/* tabs */ +.ke-tabs { + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + border-bottom:1px solid #A0A0A0; + padding-left:5px; + margin-bottom:10px; +} +.ke-tabs-ul { + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin:0; + padding:0; +} +.ke-tabs-li { + position: relative; + border: 1px solid #A0A0A0; + background-color: #E0E0E0; + margin: 0 2px -1px 0; + padding: 0 20px; + float: left; + line-height: 25px; + text-align: center; + color: #555555; + cursor: pointer; +} +.ke-tabs-li-selected { + background-color: #F0F0EE; + border-bottom: 1px solid #F0F0EE; + color: #000; + cursor: default; +} +.ke-tabs-li-on { + background-color: #F0F0EE; + color: #000; +} +/* emoticons */ +.ke-plugin-emoticons { + position: relative; +} +.ke-plugin-emoticons .ke-preview { + position: absolute; + text-align: center; + margin: 2px; + padding: 10px; + top: 0; + border: 1px solid #A0A0A0; + background-color: #FFFFFF; + display: none; +} +.ke-plugin-emoticons .ke-preview-img { + border:0; + margin:0; + padding:0; +} +.ke-plugin-emoticons .ke-table { + border:0; + margin:0; + padding:0; + border-collapse:separate; +} +.ke-plugin-emoticons .ke-cell { + margin:0; + padding:1px; + border:1px solid #F0F0EE; + cursor:pointer; +} +.ke-plugin-emoticons .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-plugin-emoticons .ke-img { + display:block; + background-repeat:no-repeat; + overflow:hidden; + margin:2px; + width:24px; + height:24px; + margin: 0; + padding: 0; + border: 0; +} +.ke-plugin-emoticons .ke-page { + text-align: right; + margin: 5px; + padding: 0; + border: 0; + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + color: #333; + text-decoration: none; +} +.ke-plugin-plainpaste-textarea, +.ke-plugin-wordpaste-iframe { + display: block; + width: 408px; + height: 260px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; +} +/* filemanager */ +.ke-plugin-filemanager-header { + width: 100%; + margin-bottom: 10px; +} +.ke-plugin-filemanager-header .ke-left { + float: left; +} +.ke-plugin-filemanager-header .ke-right { + float: right; +} +.ke-plugin-filemanager-body { + overflow: scroll; + background-color:#FFFFFF; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + width: 470px; + height: 370px; + padding: 5px; +} +.ke-plugin-filemanager-body .ke-item { + width: 100px; + margin: 5px; +} +.ke-plugin-filemanager-body .ke-photo { + border: 1px solid #DDDDDD; + background-color:#FFFFFF; + padding: 10px; +} +.ke-plugin-filemanager-body .ke-name { + width: 100px; + text-align: center; + overflow: hidden; +} +.ke-plugin-filemanager-body .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-plugin-filemanager-body .ke-table { + width: 95%; + border: 0; + margin: 0; + padding: 0; + border-collapse: separate; +} +.ke-plugin-filemanager-body .ke-table .ke-cell { + margin: 0; + padding: 0; + border: 0; +} +.ke-plugin-filemanager-body .ke-table .ke-name { + width: 55%; + text-align: left; +} +.ke-plugin-filemanager-body .ke-table .ke-size { + width: 15%; + text-align: left; +} +.ke-plugin-filemanager-body .ke-table .ke-datetime { + width: 30%; + text-align: center; +} +/* template */ +.ke-plugin-template .ke-header { + width: 100%; + margin-bottom: 10px; +} +.ke-plugin-template label { + margin-right: 0; + cursor: pointer; + font-weight: normal; + display: inline; + vertical-align: top; +} +.ke-plugin-template .ke-left { + float: left; +} +.ke-plugin-template .ke-right { + float: right; +} \ No newline at end of file diff --git a/htdocs/static/css/kindskin/default/default.gif b/htdocs/static/css/kindskin/default/default.gif new file mode 100644 index 0000000000000000000000000000000000000000..e9a639254461e5707dbc920f9473f5104985d7d5 GIT binary patch literal 9874 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 p1`5Xd_li { + border-top-right-radius:4px; + border-top-left-radius:4px; + -moz-border-radius-topleft:4px; + -webkit-border-top-left-radius:4px; + -moz-border-radius-topright:4px; + -webkit-border-top-right-radius:4px; +} +.sf-menu li li { + background:#444; +} +.sf-menu li li li { + background:#444; +} +.sf-menu li:hover,.sf-menu li.sfHover,.sf-menu a:focus,.sf-menu a:hover,.sf-menu a:active { + background:#555; + outline:0; +} +.sf-menu>li:hover,.sf-menu>li.sfHover,.sf-menu a:focus,.sf-menu a:hover,.sf-menu a:active { + border-top-right-radius:4px; + border-top-left-radius:4px; + -moz-border-radius-topleft:4px; + -webkit-border-top-left-radius:4px; + -moz-border-radius-topright:4px; + -webkit-border-top-right-radius:4px; +} +.sf-menu li.current { + background: #266DBB; +} + +/*** arrows **/ +.sf-menu a.sf-with-ul { + padding-right:2.25em; + min-width: 1px; /* trigger IE7 hasLayout so spans position accurately */ +} +.sf-sub-indicator { + position:absolute; + display:block; + right:.75em; + top:1.05em; /* IE6 only */ + width:10px; + height:10px; + text-indent:-999em; + overflow:hidden; + background:url('../img/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ +} +a>.sf-sub-indicator { /* give all except IE6 the correct values */ + top:.8em; + background-position:0 -100px; /* use translucent arrow for modern browsers*/ +} +/* apply hovers to modern browsers */ +a:focus>.sf-sub-indicator,a:hover>.sf-sub-indicator,a:active>.sf-sub-indicator,li:hover>a>.sf-sub-indicator,li.sfHover>a>.sf-sub-indicator { + background-position: -10px -100px; /* arrow hovers for modern browsers*/ +} +/* point right for anchors in subs */ +.sf-menu ul .sf-sub-indicator { + background-position:-10px 0; +} +.sf-menu ul a>.sf-sub-indicator { + background-position: 0 0; +} +/* apply hovers to modern browsers */ +.sf-menu ul a:focus>.sf-sub-indicator,.sf-menu ul a:hover>.sf-sub-indicator,.sf-menu ul a:active>.sf-sub-indicator,.sf-menu ul li:hover>a>.sf-sub-indicator,.sf-menu ul li.sfHover>a>.sf-sub-indicator { + background-position: -10px 0; + /* arrow hovers for modern browsers*/ +} +/*** shadows for all but IE6 ***/ +.sf-shadow ul { + background:url('../img/shadow.png') no-repeat bottom right; + padding:0 8px 9px 0; + -moz-border-radius-bottomleft:17px; + -moz-border-radius-topright:17px; + -webkit-border-top-right-radius:17px; + -webkit-border-bottom-left-radius:17px; +} +.sf-shadow ul.sf-shadow-off { + background: transparent; +} + +/* Page title +---------------------------------------------------------------------*/ + +#title { + color:#FFF; + font:bold 2.4em/26px 'Trebuchet MS',Trebuchet,Arial,sans-serif; + letter-spacing:-0.02em; + padding:20px 0 22px; + text-shadow:1px 1px 3px #111; +} +#title span { + color: #FFC806; +} + +#pagetitle { + background-color:#5D9ADF; + border-top:4px solid #266DBB; + border-bottom:1px solid #2A7AD2; + float:left; + width:100%; + background: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.2, rgb(80,146,220)), + color-stop(0.8, rgb(107,163,226)) + ); + background: -moz-linear-gradient( + center bottom, + rgb(80,146,220) 20%, + rgb(107,163,226) 80% + ); +} +#pagetitle h1 { + color:#fff; + font-size:1.6em; + padding:12px 0; + text-shadow:0 -1px 1px #2A7AD2; + margin:0; + top:0; + line-height:1.2em; + float:left; +} +#pagetitle h1 span { + color:#C4E3FF; +} +#pagetitle input { + border:2px solid #5D9ADF; + color:#666; + float:right; + line-height:18px; + margin:10px 0 0; + padding:4px 24px 4px 4px; + vertical-align:middle; + width:202px; + background:#fff url("../img/search.gif") no-repeat 99% 56%; + -moz-box-shadow:0 0; + -webkit-box-shadow:0 0; + box-shadow:0 0; +} +#pagetitle input:focus { + border:2px solid #266DBB; + -webkit-focus-ring-color: none; +} + +#page { + float:left; + width:100%; + background-color:#FFF; +} + +#page a { + color: #329ECC; + text-decoration:none; + border-bottom:1px solid #A1CFD4; +} +#page a:hover, #page a:focus, #page a:active { + background-color:#E2EFFF; + border-bottom:1px solid #329ECC; +} + +#page .subtitle { + text-transform:uppercase; + color:#93BB3A; + font-size:9px; + font-family: Tahoma, Arial, sans-serif; +} + +/* Footers +---------------------------------------------------------------------*/ + +footer#bottom { + background-color:#F2F2F2; + border-top:4px solid #D9D9D9; + color:#999; + float:left; + font-size:11px; + width:100%; + background:-webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.2, rgb(242,242,242)), + color-stop(0.8, rgb(254,254,254)) + ); + background: -moz-linear-gradient( + center bottom, + rgb(242,242,242) 20%, + rgb(254,254,254) 80% + ); + padding-bottom:2em; +} +footer#bottom nav{ + float:none; + text-align: center; + padding-top:20px; +} +footer#bottom a { + color:#999; + margin:0 4px; + text-decoration:none; + white-space:nowrap; + border-bottom:1px solid #ccc; + line-height:1.2em; +} +footer#bottom a:hover, footer#bottom a:active, footer#bottom a:focus { + color:#666; + border-bottom:1px solid #999; + text-decoration:none; +} +footer#bottom p{ + clear:both; + text-align:center; + margin-bottom:24px; + padding-top:12px; + text-shadow:1px 1px 0 #fff; +} + +footer#animated { + background:#222; + bottom:0; + padding:10px 0 8px; + position:fixed; + width:100%; + opacity:0; + -khtml-opacity: 0; + -moz-opacity: 0; +} +footer#animated ul { + list-style:none outside none; + margin:0 auto; + text-align:center; +} +footer#animated ul li { + color:#fff; + display:inline; + padding:0 10px; + text-shadow:1px 1px 3px #000; +} +footer#animated a { + color:#aaa; + text-decoration:none; +} +footer#animated a:hover, footer#animated a:focus, footer#animated a:active { + color:#fff; + text-decoration:none; +} + +/* Buttons +---------------------------------------------------------------------*/ + +.btn { + display: inline-block; + padding: 5px 10px; + color: #777 !important; + text-decoration: none; + font-weight: bold; + font-size: 11px; + font-family: Tahoma, Arial, sans-serif; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + text-shadow: 0 1px 1px rgba(255,255,255,0.9); + position: relative; + cursor: pointer; + border:1px solid #ccc !important; + background:#fff url("../img/btn-overlay.png") repeat-x !important; +} +.btn:hover, .btn:focus, .btn:active { + outline:medium none; + border:1px solid #329ECC !important; + opacity:0.9; + -khtml-opacity: .9; + -moz-opacity: 0.9; + -moz-box-shadow:0 0 5px rgba(82, 168, 236, 0.5); + -webkit-box-shadow: 0 0 5px rgba(82, 168, 236, 0.5); + box-shadow: 0 0 5px rgba(82, 168, 236, 0.5); +} + +.btn-green { + color: #fff !important; + text-shadow: 0 1px 1px rgba(0,0,0,0.25); + border:1px solid #749217 !important; + background-color: #6AB620 !important; +} +.btn-green:hover, .btn-green:focus, .btn-green:active { + -moz-box-shadow:0 0 5px rgba(116, 146, 23, 0.9); + -webkit-box-shadow: 0 0 5px rgba(116, 146, 23, 0.9); + box-shadow: 0 0 5px rgba(116, 146, 23, 0.9); + border:1px solid #749217 !important; +} + +.btn-blue { + color: #fff !important; + text-shadow: 0 1px 1px rgba(0,0,0,0.25); + border:1px solid #2D69AC !important; + background-color: #3C6ED1 !important; +} +.btn-blue:hover, .btn-blue:focus, .btn-blue:active { + -moz-box-shadow:0 0 5px rgba(71, 131, 243, 0.9); + -webkit-box-shadow:0 0 5px rgba(71, 131, 243, 0.9); + box-shadow: 0 0 5px rgba(71, 131, 243, 0.9); + border:1px solid #2D69AC !important; +} + +.btn-red { + color: #fff !important; + text-shadow: 0 1px 1px rgba(0,0,0,0.25); + border:1px solid #AE2B2B !important; + background-color: #D22A2A !important; +} +.btn-red:hover, .btn-red:focus, .btn-red:active { + -moz-box-shadow:0 0 5px rgba(174, 43, 43, 0.9); + -webkit-box-shadow:0 0 5px rgba(174, 43, 43, 0.9); + box-shadow: 0 0 5px rgba(174, 43, 43, 0.9); + border:1px solid #AE2B2B !important; +} + +.btn-special { + font-size:110%; + width: 210px; +} + +/* Icons +---------------------------------------------------------------------*/ + +.icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + width: 16px; + height: 16px; + float:left; + margin-right: 4px; +} +.icon-add { + background:url("../img/add.png") no-repeat; +} +.icon-ok { + background:url("../img/accept.png") no-repeat; +} +.icon-cancel { + background:url("../img/cancel.png") no-repeat; +} + +.btn-special .icon { + margin-top: 2px +} + +/* Right menu +---------------------------------------------------------------------*/ + +#rightmenu { + border-top:4px solid #C4E3FF; + border-bottom:1px solid #C4E3FF; + margin-top:18px; + background-color:#E1F1FF; + background:-webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.1, rgb(225,241,255)), + color-stop(0.8, rgb(245,250,255)) + ); + background: -moz-linear-gradient( + center bottom, + rgb(225,241,255) 10%, + rgb(245,250,255) 80% + ); +} +#rightmenu header, #rightmenu dl{ + padding:12px 12px 0; + margin: 0; +} +#rightmenu h3 { + color:#555; + font-size:13px; + margin: 0; +} + +#rightmenu dl dt { + float:left; + height:40px; + margin-top:2px; + width:26px; +} +#rightmenu dd { + color:#828282; + font-size:11px; + margin-left:25px; + padding-bottom:4px; +} +#rightmenu dd.last { + margin-bottom:10px; +} +#rightmenu dd a { + font-size:12px; + font-weight:700; +} +#rightmenu dd a:hover, #rightmenu dd a:active, #rightmenu dd a:focus { + background-color: #2A7AD2; + color:#fff; + border-color: #2A7AD2; +} + +/* Tabs +---------------------------------------------------------------------*/ + +/* position:relative prevents IE scroll bug (element with position:relative inside container with overflow:auto appear as "fixed") */ +.ui-tabs { + position:relative; + padding:.2em 0; + zoom:1; + margin: 1em 0 +} +.ui-tabs .ui-tabs-nav { + margin:0; + padding:0; +} +.ui-tabs .ui-tabs-nav li { + list-style:none; + /*float:left;*/ + display:inline; + position:relative; + top:0; + margin:0; + border-bottom:0 !important; + padding:0; + white-space:nowrap; +} +.ui-tabs .ui-tabs-nav li a { + /*float:left;*/ + padding:5px 12px 6px 12px; + text-decoration:none; + background:#999; + color:#FFFFFF !important; + border-bottom:0 !important; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { + margin-bottom:0; + padding-bottom:1px; + top:1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-hover a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a { + text-decoration:none; + background:#2A7AD2 !important; + padding-top:6px +} +/* first selector in group seems obsolete,but required to overcome bug in Opera applying cursor:text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display:block; + border:0; + padding:3px 0; + background:none; + clear:both; + margin-top:5px; + border-top:2px solid #2A7AD2; +} +.ui-tabs .ui-tabs-hide { + display: none !important; +} + +/* Content boxes +---------------------------------------------------------------------*/ + +.content-box { + background:#fff; + border:1px solid #999; + margin:1em 0 0; + display:inline-block; + width:99%; +} +.content-box header { + background:#999; + width:100%; +} +.content-box header h3 { + float:left; + margin:0; + padding:6px 8px; + font-size: 14px; + color: #fff; +} +.content-box header h3 img{ + float:left; + margin:1px 4px 0 0; +} +.content-box section { + margin: 8px; +} +.content-box-closed { +} +.content-box-closed header{ + background: #999 url("../img/toggle.gif") no-repeat scroll 96% 15px; +} +.content-box-closed section { + display:none +} + +/* Progress bars +---------------------------------------------------------------------*/ + +div.progress { + display: block; + height: 22px; + padding: 0; + min-width: 200px; + margin:4px 0; + background-color: #DEDEDE; + background: -moz-linear-gradient(top, #ccc, #e9e9e9); + background: -webkit-gradient(linear, left top, bottom, #ccc, #e9e9e9); +} +div.progress, div.progress span { + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; +} +div.progress span { + display: block; + height: 22px; + margin: 0; + padding: 0; + text-align:center; + width:0; + -moz-box-shadow:1px 0 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow:1px 0 1px rgba(0, 0, 0, 0.2); + box-shadow:1px 0 1px rgba(0, 0, 0, 0.2); +} +div.progress span b{ + color:#fff; + line-height:22px; + padding-left:2px; + text-shadow:0 1px 1px rgba(0, 0, 0, 0.5); +} + +.progress-blue span { + background-color: #5C9ADE; + background: -moz-linear-gradient(top, #6C92DC 10%, #395FA8 90%); + background:-webkit-gradient(linear, left top, left bottom, color-stop(0.1, #6C92DC), color-stop(0.9, #395FA8)); +} +.progress-green span { + background-color: #77AF3F; + background: -moz-linear-gradient(top, #8FC857 10%, #5C9425 90%); + background:-webkit-gradient(linear, left top, left bottom, color-stop(0.1, #8FC857), color-stop(0.9, #5C9425)); +} +.progress-red span { + background-color: #C44747; + background: -moz-linear-gradient(top, #DD5F5F 10%, #A92C2C 90%); + background:-webkit-gradient(linear, left top, left bottom, color-stop(0.1, #DD5F5F), color-stop(0.9, #A92C2C)); +} + +/* Top +---------------------------------------------------------------------*/ + +a#totop { + background:#ccc; + bottom:2px; + display:block; + font-size:11px; + opacity:0.9; + -khtml-opacity: .9; + -moz-opacity: 0.9; + padding:3px 6px; + position:fixed; + right:2px; + color:#666; + text-decoration:none; + cursor:pointer; +} +a#totop:hover, a#totop:focus, a#totop:active{ + color:#333; + text-decoration:none; +} + +/* Labels +---------------------------------------------------------------------*/ + +span.label { + background:url("../img/tag-bg.gif") no-repeat scroll 100% 50% transparent; + font:bold 10px/1.2 "tahoma",sans-serif; + padding:4px 16px 5px 5px; + text-transform:uppercase; + color:#fff; +} +span.label-red { + background-color:#df0000; +} +span.label-green { + background-color:#4BA508; +} +span.label-blue { + background-color:#0085CC; +} +span.label-purple { + background-color:#6E0A9E; +} +span.label-gray { + background-color:#555; +} +span.label-gold { + background-color:#b90; +} +span.label-silver { + background-color:#ccc; +} +span.label-yellow { + background-color:#FFC806; +} +span.label-black { + background-color: #111; +} + +/* jWYSIWYG +---------------------------------------------------------------------*/ + +div.wysiwyg { + border:1px solid #ccc; + padding:5px; + background-color:#fff; +} +div.wysiwyg * { + margin:0; + padding:0; +} +div.wysiwyg ul.panel { + border-bottom:1px solid #ccc; + float:left; + width:100%; + padding:0; + color:#666 +} +div.wysiwyg ul.panel li { + list-style:none; + float:left; + margin:1px 2px 3px 0; + background:#fff; +} +div.wysiwyg ul.panel li.separator { + height:16px; + margin:0 4px; + border-left:1px solid #ccc; +} +div.wysiwyg ul.panel li a { + border:0 none !important; + text-indent:-5000px; + opacity:0.85; + display:block; + width:16px; + height:16px; + background:url('../img/jquery.wysiwyg.gif') no-repeat -64px -80px; + border:0; + cursor:pointer; + margin:1px; +} +div.wysiwyg ul.panel li a:hover,div.wysiwyg ul.panel li a.active { + opacity:1.00; +} +div.wysiwyg ul.panel li a.active { + background-color:#f9f9f9; + border:1px solid #ccc; + border-left-color:#aaa; + border-top-color:#aaa; + margin:0; +} +div.wysiwyg ul.panel li a.bold { + background-position:0 -16px; +} +div.wysiwyg ul.panel li a.italic { + background-position:-16px -16px; +} +div.wysiwyg ul.panel li a.strikeThrough { + background-position:-32px -16px; +} +div.wysiwyg ul.panel li a.underline { + background-position:-48px -16px; +} +div.wysiwyg ul.panel li a.justifyLeft { + background-position:0 0; +} +div.wysiwyg ul.panel li a.justifyCenter { + background-position:-16px 0; +} +div.wysiwyg ul.panel li a.justifyRight { + background-position:-32px 0; +} +div.wysiwyg ul.panel li a.justifyFull { + background-position:-48px 0; +} +div.wysiwyg ul.panel li a.indent { + background-position:-64px 0; +} +div.wysiwyg ul.panel li a.outdent { + background-position:-80px 0; +} +div.wysiwyg ul.panel li a.subscript { + background-position:-64px -16px; +} +div.wysiwyg ul.panel li a.superscript { + background-position:-80px -16px; +} +div.wysiwyg ul.panel li a.undo { + background-position:0 -64px; +} +div.wysiwyg ul.panel li a.redo { + background-position:-16px -64px; +} +div.wysiwyg ul.panel li a.insertOrderedList { + background-position:-32px -48px; +} +div.wysiwyg ul.panel li a.insertUnorderedList { + background-position:-16px -48px; +} +div.wysiwyg ul.panel li a.insertHorizontalRule { + background-position:0 -48px; +} +div.wysiwyg ul.panel li a.h1 { + background-position:0 -32px; +} +div.wysiwyg ul.panel li a.h2 { + background-position:-16px -32px; +} +div.wysiwyg ul.panel li a.h3 { + background-position:-32px -32px; +} +div.wysiwyg ul.panel li a.h4 { + background-position:-48px -32px; +} +div.wysiwyg ul.panel li a.h5 { + background-position:-64px -32px; +} +div.wysiwyg ul.panel li a.h6 { + background-position:-80px -32px; +} +div.wysiwyg ul.panel li a.cut { + background-position:-32px -64px; +} +div.wysiwyg ul.panel li a.copy { + background-position:-48px -64px; +} +div.wysiwyg ul.panel li a.paste { + background-position:-64px -64px; +} +div.wysiwyg ul.panel li a.insertTable { + background-position:-64px -48px; +} +div.wysiwyg ul.panel li a.increaseFontSize { + background-position:-16px -80px; +} +div.wysiwyg ul.panel li a.decreaseFontSize { + background-position:-32px -80px; +} +div.wysiwyg ul.panel li a.createLink { + background-position:-80px -48px; +} +div.wysiwyg ul.panel li a.insertImage { + background-position:-80px -80px; +} +div.wysiwyg ul.panel li a.html { + background-position:-47px -46px; +} +div.wysiwyg ul.panel li a.removeFormat { + background-position:-80px -63px; +} +div.wysiwyg ul.panel li a.empty { + background-position:-64px -80px; +} +div.wysiwyg iframe { + border:0; + clear:left; + margin: 4px 0 0 1px; +} + +/* Tag input fields +---------------------------------------------------------------------*/ + +.tagInput { +} + +.tagInputDiv { + display: none; + background-color: white; + position: absolute; + overflow: auto; + border: 1px solid lightgray; + margin-top:-1px; +} + +.tagInputLine { + color: black; + font-weight: normal; + padding:4px; +} + +.tagInputSel { + background-color: gray; + color:white; +} + +.tagInputLineTag { + min-width: 150px; + display: inline-block; +} + +.tagInputLineFreq { + min-width: 50px; + text-align: right; + display: inline-block; + float:right; +} + +.tagInputSuggestedTags { + font-size: 11px; +} + +.tagInputSuggestedTags .label{ + display:block; + background:0 none; + color:#666; + padding:0; + margin-top:4px; +} + +.tagInputSuggestedTagList{ +} + +.tagInputSuggestedTagList .tag{ + padding:1px 4px; + cursor:pointer; + display:inline-block; + margin:2px 1px; + border:1px solid #bbb; +} + +.tagInputSuggestedTagList span.tag:hover{ + background-color:#bbb; + color:#fff; +} + +.tagInputSuggestedTagList .tagUsed{ + border:1px solid #999; + background-color:#999; + color:#fff; +} + +/* Calendar table +---------------------------------------------------------------------*/ + +.calendar { + height:100%; +} + +.calendar th { + border-left:1px solid #2A7AD2; + border-right:1px solid #2A7AD2; +} +.calendar td { + border:1px solid #eee; + width: 12%; + padding:0 !important; +} +.calendar td.day:hover, .calendar td.day.hover { + background:#F5F5F5; +} + +.calendar td.today { + background:#ffc; +} +.calendar td div.day { + text-align:right; + background: #E8EEF7 +} +.calendar td div.day a{ + margin:1px 6px; + padding:0 2px; +} +.events { + padding:2px 4px; + color:#fff; + margin:2px 0 +} +.event1 { + background: #369; +} +.event2 { + background: #2a9; +} +.event3 { + background: #d66; +} +.event4 { + background: #d51; +} + +/* TipTip CSS - Version 1.2 +---------------------------------------------------------------------*/ + +#tiptip_holder { + display: none; + position: absolute; + top: 0; + left: 0; + z-index: 99999; +} + +#tiptip_holder.tip_top { + padding-bottom: 5px; +} + +#tiptip_holder.tip_bottom { + padding-top: 5px; +} + +#tiptip_holder.tip_right { + padding-left: 5px; +} + +#tiptip_holder.tip_left { + padding-right: 5px; +} + +#tiptip_content { + font-size: 11px; + color: #fff; + text-shadow: 0 0 2px #000; + padding: 4px 8px; + border: 1px solid rgba(255,255,255,0.25); + background-color: rgb(25,25,25); + background-color: rgba(25,25,25,0.92); + background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(transparent), to(#000)); + border-radius: 3px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + box-shadow: 0 0 3px #555; + -webkit-box-shadow: 0 0 3px #555; + -moz-box-shadow: 0 0 3px #555; +} + +#tiptip_arrow, #tiptip_arrow_inner { + position: absolute; + border-color: transparent; + border-style: solid; + border-width: 6px; + height: 0; + width: 0; +} + +#tiptip_holder.tip_top #tiptip_arrow { + border-top-color: #fff; + border-top-color: rgba(255,255,255,0.35); + border-top-color: #191919; +} + +#tiptip_holder.tip_bottom #tiptip_arrow { + border-bottom-color: #fff; + border-bottom-color: rgba(255,255,255,0.35); +} + +#tiptip_holder.tip_right #tiptip_arrow { + border-right-color: #fff; + border-right-color: rgba(255,255,255,0.35); +} + +#tiptip_holder.tip_left #tiptip_arrow { + border-left-color: #fff; + border-left-color: rgba(255,255,255,0.35); +} + +#tiptip_holder.tip_top #tiptip_arrow_inner { + margin-top: -7px; + margin-left: -6px; + border-top-color: rgb(25,25,25); + border-top-color: rgba(25,25,25,0.92); +} + +#tiptip_holder.tip_bottom #tiptip_arrow_inner { + margin-top: -5px; + margin-left: -6px; + border-bottom-color: rgb(25,25,25); + border-bottom-color: rgba(25,25,25,0.92); +} + +#tiptip_holder.tip_right #tiptip_arrow_inner { + margin-top: -6px; + margin-left: -5px; + border-right-color: rgb(25,25,25); + border-right-color: rgba(25,25,25,0.92); +} + +#tiptip_holder.tip_left #tiptip_arrow_inner { + margin-top: -6px; + margin-left: -7px; + border-left-color: rgb(25,25,25); + border-left-color: rgba(25,25,25,0.92); +} + +/* Webkit Hacks */ +@media screen and (-webkit-min-device-pixel-ratio:0) { + #tiptip_content { + padding: 4px 8px 5px 8px; + background-color: rgba(45,45,45,0.88); + } + #tiptip_holder.tip_bottom #tiptip_arrow_inner { + border-bottom-color: rgba(45,45,45,0.88); + } + #tiptip_holder.tip_top #tiptip_arrow_inner { + border-top-color: rgba(20,20,20,0.92); + } +} + +/* Datatables +---------------------------------------------------------------------*/ + +.dataTables_wrapper { + position: relative; + margin:1em 0; + min-height: 302px; + clear: both; +} + +.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 250px; + height: 30px; + margin-left: -125px; + margin-top: -15px; + padding: 14px 0 2px 0; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 14px; + background-color: white; +} + +.dataTables_length { + width: 40%; + float: left; +} + +.dataTables_filter { + width: 50%; + float: right; + text-align: right; +} + +.dataTables_info { + width: 60%; + float: left; +} + +.dataTables_paginate { + width: 42px; + float: right; + text-align: right; + cursor: pointer; +} + +/* Pagination nested */ +.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next { + height: 19px; + width: 19px; + margin-left: 1px; + float: left; +} + +.paginate_disabled_previous { + background-image: url('../img/datatable/back_disabled.png'); +} + +.paginate_enabled_previous { + background-image: url('../img/datatable/back_enabled.png'); +} + +.paginate_disabled_next { + background-image: url('../img/datatable/forward_disabled.png'); +} + +.paginate_enabled_next { + background-image: url('../img/datatable/forward_enabled.png'); +} + +table.display { + margin: 4px auto; + width: 100%; + clear: both; +} + +table.display thead th { + cursor: pointer; +} + +table.display tfoot th { + padding: 3px 10px; +} + +table.display tr.heading2 td { + border-bottom: 1px solid #aaa; +} + +table.display td { + /*padding: 3px 10px;*/ +} + +table.display td.center { + text-align: center; +} + +.sorting_asc { + background: url('../img/datatable/sort_asc.png') no-repeat center right; +} + +.sorting_desc { + background: url('../img/datatable/sort_desc.png') no-repeat center right; +} + +.sorting { + background: url('../img/datatable/sort_both.png') no-repeat center right; +} + +.sorting_asc_disabled { + background: url('../img/datatable/sort_asc_disabled.png') no-repeat center right; +} + +.sorting_desc_disabled { + background: url('../img/datatable/sort_desc_disabled.png') no-repeat center right; +} + +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + +table.display tr.odd.gradeC { + background-color: #ddddff; +} + +table.display tr.even.gradeC { + background-color: #eeeeff; +} + +table.display tr.odd.gradeX { + background-color: #ffdddd; +} + +table.display tr.even.gradeX { + background-color: #ffeeee; +} + +table.display tr.odd.gradeU { + background-color: #ddd; +} + +table.display tr.even.gradeU { + background-color: #eee; +} + +/* Sorting classes for columns */ +/* For the standard odd/even */ +tr.odd td.sorting_1 { + background-color: #D3D6FF; +} + +tr.odd td.sorting_2 { + background-color: #DADCFF; +} + +tr.odd td.sorting_3 { + background-color: #E0E2FF; +} + +tr.even td.sorting_1 { + background-color: #EAEBFF; +} + +tr.even td.sorting_2 { + background-color: #F2F3FF; +} + +tr.even td.sorting_3 { + background-color: #F9F9FF; +} + +/* For the Conditional-CSS grading rows */ +/* + Colour calculations (based off the main row colours) + Level 1: + dd > c4 + ee > d5 + Level 2: + dd > d1 + ee > e2 + */ +tr.odd.gradeA td.sorting_1 { + background-color: #c4ffc4; +} + +tr.odd.gradeA td.sorting_2 { + background-color: #d1ffd1; +} + +tr.odd.gradeA td.sorting_3 { + background-color: #d1ffd1; +} + +tr.even.gradeA td.sorting_1 { + background-color: #d5ffd5; +} + +tr.even.gradeA td.sorting_2 { + background-color: #e2ffe2; +} + +tr.even.gradeA td.sorting_3 { + background-color: #e2ffe2; +} + +tr.odd.gradeC td.sorting_1 { + background-color: #c4c4ff; +} + +tr.odd.gradeC td.sorting_2 { + background-color: #d1d1ff; +} + +tr.odd.gradeC td.sorting_3 { + background-color: #d1d1ff; +} + +tr.even.gradeC td.sorting_1 { + background-color: #d5d5ff; +} + +tr.even.gradeC td.sorting_2 { + background-color: #e2e2ff; +} + +tr.even.gradeC td.sorting_3 { + background-color: #e2e2ff; +} + +tr.odd.gradeX td.sorting_1 { + background-color: #ffc4c4; +} + +tr.odd.gradeX td.sorting_2 { + background-color: #ffd1d1; +} + +tr.odd.gradeX td.sorting_3 { + background-color: #ffd1d1; +} + +tr.even.gradeX td.sorting_1 { + background-color: #ffd5d5; +} + +tr.even.gradeX td.sorting_2 { + background-color: #ffe2e2; +} + +tr.even.gradeX td.sorting_3 { + background-color: #ffe2e2; +} + +tr.odd.gradeU td.sorting_1 { + background-color: #c4c4c4; +} + +tr.odd.gradeU td.sorting_2 { + background-color: #d1d1d1; +} + +tr.odd.gradeU td.sorting_3 { + background-color: #d1d1d1; +} + +tr.even.gradeU td.sorting_1 { + background-color: #d5d5d5; +} + +tr.even.gradeU td.sorting_2 { + background-color: #e2e2e2; +} + +tr.even.gradeU td.sorting_3 { + background-color: #e2e2e2; +} + +table.stylized td.highlighted { + background-color: #E2EFFF !important; +} + +table.stylized td.title > div { + position:relative; + display:block; + background:url("../img/toggle-small-expand.png") 0 2px no-repeat; + padding:0 0 0 16px; +} + +table.stylized td.title div.listingDetails { + background-color:#FFF; + border-color:#E2EFFF; + border-style:solid; + border-width:1px 1px 3px; + left:-12px; + position:absolute; + text-align:left; + top:26px; + display:none; + -moz-box-shadow:0 0 8px rgba(82, 168, 236, 0.5); + -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.5); + box-shadow: 0 0 8px rgba(82, 168, 236, 0.5); +} +table.stylized td.title div.listingDetails div.pad{ + padding:8px 10px; +} + +/* Tagclouds +---------------------------------------------------------------------*/ + +.tagcloud { + text-align: justify; +} +.tagcloud a { + border:0 none !important; +} +a.tag1 { + font-size: 1em; +} +a.tag2{ + font-size: 1.1em; +} +a.tag3{ + font-size: 1.2em; +} +a.tag4{ + font-size: 1.4em; +} +a.tag5{ + font-size: 1.5em; +} + +/* Pagination +---------------------------------------------------------------------*/ + +.pagination a { + padding:2px 6px; + border:0 none !important; +} +.pagination a.pagination-active, .pagination a.pagination-active:hover { + background-color:#266DBB !important; + color:#fff !important; +} + +/* Nyro popup window +---------------------------------------------------------------------*/ + +div#nyroModalFull { + font-size: 12px; + color: #777; +} +div#nyroModalFull div#nyroModalLoading { + border: 4px solid #777; + width: 150px; + height: 150px; + text-indent: -9999em; + background: #fff url(../img/nyro/ajaxLoader.gif) no-repeat; + background-position: center; +} +div#nyroModalFull div#nyroModalLoading.error { + border: 4px solid #f66; + line-height: 20px; + padding: 20px; + width: 300px; + height: 100px; + text-indent: 0; + background: #fff; +} +div#nyroModalFull div#nyroModalWrapper { + background: #fff; + border: 4px solid #777; +} +div#nyroModalFull div#nyroModalWrapper a#closeBut { + position: absolute; + display: block; + top: -13px; + right: -13px; + width: 12px; + height: 12px; + text-indent: -9999em; + background: url(../img/nyro/close.gif) no-repeat; + outline: 0; +} +div#nyroModalFull div#nyroModalWrapper h1#nyroModalTitle { + margin: 0; + padding: 0; + position: absolute; + top: -22px; + left: 5px; + font-size: 12px; + color: #ddd; +} +div#nyroModalFull div#nyroModalWrapper div#nyroModalContent { + overflow: auto; +} +div#nyroModalFull div#nyroModalWrapper div.wrapper div#nyroModalContent { + padding: 5px; +} +div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent { + position: relative; + overflow: hidden; + text-align: center; +} +div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent img { + vertical-align: baseline; +} +div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent div { + position: absolute; + bottom: 0; + left: 0; + background: black; + padding: 10px; + margin: 10px; + border: 1px white dotted; + overflow: hidden; + opacity: 0.2; +} +div#nyroModalFull div#nyroModalWrapper div.wrapperImg div#nyroModalContent div:hover { + opacity: 0.5; + cursor: help; +} +div#nyroModalFull div#nyroModalWrapper a.nyroModalPrev, div#nyroModalFull div#nyroModalWrapper a.nyroModalNext { + z-index: 105; + outline: none; + position: absolute; + top: 0; + height: 100%; + width: 40%; + cursor: pointer; + text-indent: -9999em; + background: left 20% no-repeat; + background-image: url(data-3Aimage/gif;base64,AAAA); /* Trick IE6 */ +} +div#nyroModalFull div#nyroModalWrapper div.wrapperSwf a.nyroModalPrev, div#nyroModalFull div#nyroModalWrapper div.wrapperSwf a.nyroModalNext, div#nyroModalFull div#nyroModalWrapper div.wrapper a.nyroModalPrev, div#nyroModalFull div#nyroModalWrapper div.wrapper a.nyroModalNext { + height: 60%; + width: 20%; +} +div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalPrev { + left: 0; +} +div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalPrev:hover { + background-image: url(../img/nyro/prev.gif); +} +div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalNext { + right: 0; + background-position: right 20%; +} +div#nyroModalFull div#nyroModalWrapper div#nyroModalContent a.nyroModalNext:hover { + background-image: url(../img/nyro/next.gif); +} \ No newline at end of file diff --git a/htdocs/static/img/21.png b/htdocs/static/img/21.png new file mode 100644 index 0000000000000000000000000000000000000000..b905c5f9fa8c6663ff35bf50d519e5543ee00ace GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP*5S+ zBgmJ5p-Pp3p`n?9;pcxK{gQ#9)PRBERRRNp)eHs(@%%~gN8NyGe|x$(hE&{|Gs!pa zhyqXRe9zWN9uuqD?<{*Y$@`1iL!AxT{08o?nvS~s*%K+~>*nZME3}F6_hweHNem3x zZ^awf(-|Wep#l?N5-zqgrPDwDow~ar)n^D)p{6IDT``WMk zC!+J8rblMi&uR$ba(Pnm;MMiLLC=@zGn)SRy4_1t;`m1XfVCYBDnVWfH`x_B=X{Qj;Q-;Jo*Um~HC3O?SvbYYs>^U2<6(n@S!x+;4bOjG zIjh6LWx>{cY%KzL*KVy_$fbCPuVAf`l5#^i!(;iMjc*acl9QUt9*|^ zSCM6QYa6gRrOGgC|d1S{QjuWNTdmlIL!f;F{mr=yagze90tU wi9>NWc9m+o>U~&zguCbe|NqN1co>)&*6!AMVqdPR3-k(ur>mdKI;Vst026a+kN^Mx literal 0 HcmV?d00001 diff --git a/htdocs/static/img/90.png b/htdocs/static/img/90.png new file mode 100644 index 0000000000000000000000000000000000000000..3e11770638d91af2bcf07e89b4aa0ac767376865 GIT binary patch literal 3142 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 literal 0 HcmV?d00001 diff --git a/htdocs/static/img/accept.png b/htdocs/static/img/accept.png new file mode 100644 index 0000000000000000000000000000000000000000..89c8129a490b329f3165f32fa0781701aab417ea GIT binary patch literal 781 zcmV+o1M>WdP)4-QibtN)VXQDpczE`xXAkUjh%RI>;okxb7K@0kpyQ1k_Y(|Oe7$m(^ zNYX>mI||sUbmn+c3<&FnE=4u#()KBS^SH8e)Qs5i!#lY=$-1gbH6VluzU=m=EP78&5vQ z-?+fFP-G2l&l_QzYealK$;1Rl?FkzXR&Jv@fBPNjCr#AYRyJ7UJQ0v#?)7Ott=>3`#-pV!7>9}>Q1jL)H6h&gkP@3nI=+F3nA~M>u#(n* z8T!#8oEw&-mED4!h4s!N@Jo3S7N&Q6%6l3}nlcd~X@>;uelvPsSkXIgg~e+^T1zSf z3SNj(5%jK~i8@b;C9VHk(~TedF+gQSL8D5xnVSSWAVY>J9b+m>@{iq7_KE}go~11+5s4;8hc+i0Xa zI1j@EX5!S+Me6HNqKzU5YQwL;-W5$p%ZMKMeR<%zp69-~?<4?8|C8S?bklXr4v&Ov zb&06v2|-x?qB`90yn>Qi%Sh2^G4n)$ZdyvTPf9}1)_buUT7>`e2G&2VU@~Bb(o+Mz zi4)>IxlSY${Dj4k={-9RzU^W5g9|2V5RZ2ZulL9s2xQbZ@r6eP9Ra5u(s|C0Nj#&4>wTSkb?%#=9?@ z^oxDy-O@tyN{L@by(WWvQ3%CyEu8x{+#Jb4-h&K9Owi)2pgg+heWDyked|3R$$kL@A z#sp1v-r+=G4B8D6DqsDH0@7OztA7aT9qc1Py{()w`m``?Y0&gi2=ROcc-9+nU^I6< zT=e_Y=vSnG@?3Ue{BW5ONFttcE!R-R_W4O01|0-|K-YNXLo2`4Qv z`r1LxR6#yf3FB%T95gJnaKKivA~Z}S9A(ZxEDK}O3T04USJ P00000NkvXXu0mjf^IS-S literal 0 HcmV?d00001 diff --git a/htdocs/static/img/arrows-ffffff.png b/htdocs/static/img/arrows-ffffff.png new file mode 100644 index 0000000000000000000000000000000000000000..995df52065bc250180081f895070ee63de05bfe7 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^B0!wS#0(^(;%-|4Ddu7)&kzm{j@u9Y9{{*+s`nvx*DV21Ml+qsS;fz%XuL>4nJa0`Jjl6k>CGhc0FIuigU9U^L+D`6bSr zIEp(+L4eIgaZT(|{B!*DbrTYc1t0J9*MLJm+n zOEVloE20S^g6s|1rvjjuW1W$TV;&TbK2|slm=91)Q{X{Kg;c!Saglq7xo8`(>{A}G zw@`8gScq(adr(4@;>^%e<~7+uNMv&?8L0#%0yj~@DW&fPImKeyFHkRKuNERO3(SOB z?S)niZbFEN`0<|w+LjBKR#DU7F3d&rQGGY&Y)Fv0w002i=Jm_>x9jBX>wg3XCKK`E f>xbvJ_5i;DeEQXvyE?}U00000NkvXXu0mjfKqCEw literal 0 HcmV?d00001 diff --git a/htdocs/static/img/btn-overlay.png b/htdocs/static/img/btn-overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..dde6034c06e3c1e09e47be2fcb511544609a9485 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!3HEfN&F!Hs`GQjwtZ31k`Idh=_!gaPE9?uY~{bdWN;r z9i}|XT=LO_P4K4xLrwmZr`s<}IIq~s_Np~&t&^r|%+a|GMdx;0UNog?cIBT9T{|O; zp9mcC+*_XVzBc7~OiK3KM@h+Nj(V*;5%u~+N5zMl7YRyM|Cx9go+`R9Zr;p%ALs@K MPgg&ebxsLQ04>#0TmS$7 literal 0 HcmV?d00001 diff --git a/htdocs/static/img/cancel.png b/htdocs/static/img/cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..c149c2bc017d5ce5a8ae9330dd7dbd012482e0f4 GIT binary patch literal 587 zcmV-R0<`^!P)FS^-G}e*;M)Q6>s#cP zI`Y#S($G6W`W@NI5g|L-MKl0Zmu$m^(0~^Lwo5OO~d#(vPfzig>`hZfKuWZ=o4Y#}R)^6bvZ(v|%_{zuVIm`FSC!kgaPgg&ebxsLQ0QMR( AwEzGB literal 0 HcmV?d00001 diff --git a/htdocs/static/img/datatable/back_enabled.png b/htdocs/static/img/datatable/back_enabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ac842443db07e0671c3a41e877d1a6f01ddb223a GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S3?yCqj{O5tk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X*aCb)T>t<7KXc~Hz5uUHKoNaU7srr_TS*B=Sa`OGBp(1G zf#d`S@#F*`eL$(rS2pbPhTGkDYqxNTH!v_WeC1>GoaOuE6HqIIr>mdKI;Vst05X3w AbN~PV literal 0 HcmV?d00001 diff --git a/htdocs/static/img/datatable/forward_disabled.png b/htdocs/static/img/datatable/forward_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4fdd9e98bc0398c45b4400a17ca89f4a6654dc14 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S3?yCqj{O5tk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X*aCb)TsLptJagvEUEG&4fFfF+E{-7;w~`W$u<&dVOg^A? ytihMZQ^b=;uS@Be!xXDUZt<7KXc~Hz5uUHKoKoZ7srr_TS*B=Sa`MwCLd5c y*5J$IDdNea*QIpKVT#qFH%px*7BDn0Ff)8P#ppTf@TEeaE(T9mKbLh*2~7YGGBBn9 literal 0 HcmV?d00001 diff --git a/htdocs/static/img/datatable/sort_asc.png b/htdocs/static/img/datatable/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..fc79f8b91d6836a80a6d38cf713f596ef2071c57 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S3?yCqj{O5tk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X*aCb)T>pbXXwBCgpa@e*kYDhBhNs&Nyns9%PZ!6Kid#tu zM_7151P>odN=R@JPfl>)FjC+=$RatRbwLx4NwIP5Q3fU+hHn!X15Z5uB?{EX;OXk; Jvd$@?2>^V=HShoc literal 0 HcmV?d00001 diff --git a/htdocs/static/img/datatable/sort_asc_disabled.png b/htdocs/static/img/datatable/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dda4a2d9266312033f9981ea24f64367c6204fef GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GmYyz-Ar-fh{`~)M&%BjEm|67T1@kqHQEjFI*$Tp)dRYqB wH?RfmJ>!xlkvKJ7#&^r&w%&}x3`{%>d!xlkvKJdN!p^+g$m!KGG6)aa$$({Y-SW;ba}v*bj7ew%u$88fq|J}t&`WI Ukdlk5fMzpzy85}Sb4q9e0QV?2SpWb4 literal 0 HcmV?d00001 diff --git a/htdocs/static/img/datatable/sort_desc.png b/htdocs/static/img/datatable/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..1d41767a934813051eca78639ea3940721655018 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S3?yCqj{O5tk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5X*aCb)T>pbXXwBCgpa@e*kYDhBhNs&NynsA4PZ!6Kid#tu zM_72A!+IFmCR|nIKKNCMQ}K*5hvLnH4#wupED{X=H5db@>CXgeU|{fc^>bP0l+XkK DD?BoF literal 0 HcmV?d00001 diff --git a/htdocs/static/img/datatable/sort_desc_disabled.png b/htdocs/static/img/datatable/sort_desc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d03d2edb698c35541ae8f3538a3f4cfd5dbee2ac GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^!XV7S1|*9D%+3HQ$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWw1GE}kxqAr-fh{`~)M&%BjEm|67Tip0fj7Y`eV$von9d6BDd zEtPkPl*@_Pyi1~vxGduSuv;P|OQ2D@Bk;II6w5>&1|}W`1z+d1*c`jxK=T+pUHx3v IIVCg!0E`tfxc~qF literal 0 HcmV?d00001 diff --git a/htdocs/static/img/delete.png b/htdocs/static/img/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..08f249365afd29594b51210c6e21ba253897505d GIT binary patch literal 715 zcmV;+0yO=JP)C4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/htdocs/static/img/error.png b/htdocs/static/img/error.png new file mode 100644 index 0000000000000000000000000000000000000000..628cf2dae3d419ae220c8928ac71393b480745a3 GIT binary patch literal 666 zcmV;L0%iS)P)eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/htdocs/static/img/exclamation.png b/htdocs/static/img/exclamation.png new file mode 100644 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/htdocs/static/img/favicons/apple.png b/htdocs/static/img/favicons/apple.png new file mode 100644 index 0000000000000000000000000000000000000000..68ff44f1c2a4aa0ff8afc27918bdbfbf9ad4e530 GIT binary patch literal 3108 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 Y08eMzrKP6E8~^|S07*qoM6N<$f(%h2EC2ui literal 0 HcmV?d00001 diff --git a/htdocs/static/img/gallery/book01.jpg b/htdocs/static/img/gallery/book01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfc74ca884bdfa36a0a8b997b13d78cc1541caf3 GIT binary patch literal 12376 zcmb8VWmH^Eur@llyE_96?(S}b+XR9I0txQ!FlZ()zyuHOZow@V1XdPErgHv zobRr??$6u%$L`g=S9MoC)m^o#>UrsT3qYu$3RVRmAt3>5Umn2oDnJQrNhnB60AwO06e6VO0RSxkfC4~9 zK?3~04G9?q0~HM&^JP|%5P*b&f{cQOhJlQVhKd3JAiaEyibjMEBoAYszCCKdFE zNM=?vcw5lWOXkUT;J$1XnFxglAO~0hnqZ;H^KlhK zTQiaY%B}U(Ik5|(6<+!gQQs7;_4@3!*kefKwK#EEGqA$rkgbuVIf)&LFi~fbunVk( zStEeL*2s$fiV;9*;LBT;kflD0P=}av28g;1G69o;n8-lUWFRp1sEPum0VF9|0hI+p z8mFfK)>n@*B4gp=Af@FeLj{yGWne=AMr2A@;o%vW?5KSJEk9b;smPaPc&_^aw%vU4~S9D+`%p%3Y+QuX%jKabyKn4pls&I3v=ckIl zQdDNjFNP2zUWJpvJ7>lqxsvZVS#vV3| zCPU=_+Hz_@F%2N8AkTb{m&r24|yyb#jWX27r`mR=nA!6bB%=m z7CbQ4?7(-8j7CfrzT0Cz8eo{-Cp%MC3G*LFR$rz(>Cf`S9;d~=$Iv|*+sI9loOe$n zzfP3alDo-Co1Ud>J16ficR7%;D|s5z{bRI2wdZxSq3Diq?}PvKO(HL3Q)ISG_K-B`>|dW5NvIr&Qh#c7)7XvsE&fcpvBQI z>c)wwUiH5yB^4L873isZ8j<0my=WSvwcdXyVM7)4l=-U=2zis;bXvrqu{5B*$G{gS z(yQHI)qc0C%}6jeS0G*H0KfyRd$g%&qhj|SBI6M~@zJMDeg>@GsU4Nxdz+SyEYcM% zUsciJ6qBXi{h1x~io8!$$-nk(?sDuvJSHeO1NKtRj|YQ0@(elv?vqId6jE$trnLCwV12 zM!@nM&`LfIXfbPH75i=pl|q0Ky(d4vM?y;5(7I4;V%NyeDLyR@Jx^dc0z>4F`i)E( zaDs(A4|bczJAZbgCMf6huS^5*2O>5ocS`f`w#PTM%I_xf<6J3_8K_p-*I=BH3%v;EC4GGW;WBimL<1~27@D2l75&R4&4f3un<%!js7OjZ15vIp@l3tQR{@zwjR=chp#HzOS+3v)%t!!1uehuxPVPZ=8zSTte>up2 zoh=o}4~1GYMw2P<8#k$*?rjhM}ECJh4a>lhw61&cM>5>(V4MNTC%r^WIt zPo2jr>kNyAQ1$)-Ea4vy7bG^<0kg4jl9B3R%b#@!#t9%A>u&>qr?v^qv2?N_kMfR4Yn}m|RlMJ>`~)6q z8cH7RW*03nYgKM4BU@MQir5}w`7&^NS2|e}7IL|oz4B{6`Nq}1W+<2v**{zVyjf#z zpg>p`?ly#eiZb8zFY}EYzFf@QsQVDlMtqxv$;XTkO|S);IbK$l{lSMFo?usehx_Oe zr`|X8ug{F11cX@gE2~=1cVn_++-{Yza7%F0;LG5nI{pkNGh{$urn zaJ78P)c`y4KZ=)uPNpW!v{oyw`dWW&`*!*n@0w1#QQl#^t@)yfHp4=FOM#tf@t}fxvV1yI^tw>7cB(!jEW3{P2 zPg~t{ao!W5e;Qed@i@(gX;p7&7>6>G+@yQuxc z(<}ZYZ8YQzgK~CCZ2-^2@-yHqk>#cP(ra`os(F}%fpxv^Kr;c`v+WphZl3|8+2Bhx3R>)%!L9D2c`O2* z>~1`k*2nZ4Qg4Seom=TvX4bU%uQ1l>%MRyV$JE|GD9&pvF*X=z_CsyU<27y>1T9j) z=@SoJUnUf)=^0#0PVFyaAya9CvUKL5I3d4uMye$(Wp64)Eu7ZS-oRQcycq#+YxF!eMH&!;4g${-67)Xk&yv@BuZ# zG&&yQ4l4?&UO=ldLFb|M*KZ1CHsM<8DLI{eFCy5Jb~?hg?Zr~zUT(8~t3>dJ|EpYGRn6eeL~MHq zZ)vD3@T%!gzoHXwPq5@;!c1=6>UvG45BzuJ@wC|SPrD?Poq4|p(N4(g|k%@hE9IRld;wOf6Zk68XzN9g^SVUAV`GGi{*ioyBi)G^cAMGcH>int_uL8diuGd@w zcj_$SA;#g0riyvmk`y!R%$4s{kE8pEV{*%Ah<-O-h33@6kQ_IDh%alozBt-A{w#NeyE?y;PRqF#9n8uym&w#lcca}l0=0yH?Uv+}TA6IX z&eMV|kzHh3485K` zD9}d-YsiXQY~;)@u8Xnz6z&P*V)%dgPSe99#bHQCRkl>Hb**iGBCuNSr6dAsm;l6d zlz#Gs1}}wTBp;5r@W@m-cf>G0%8X(c#b@+4Fo*I;B^IXdaco*M6*NXpSSmn>4LD&h z{t$%ae?3$ch5!6i6%XY6Bn5XQ{ny`2K&Yyc7=W!c)7l zzcEysym3ChF*EkAMbx%9a5}#CBgwr){7m7;|AR$4J15K#G!<5P1}B1Fj8BwOYJJYb z39!AERj~E0jm5ROYYVV-ok{t$-9H{dTIHOA_7fto5*xV~PtRg7bruqc zC^d0lD-9n+;w|^eBFO(HRg;QgHQ(&Zeo)#zI2I=!>}l2a40t8e&b&|VD#@kGiQ_bX zLlja}4}nP9|K{cKQYLLGw(gf@lb9OP+Cr;#^<7!jHmh*;{$yYzl!El1&S~%VO;`**yG}G2(DYi?d%TfLN&a z>fHq|AszMP%$gEtJCrq=X;)$%Q37sa;Sv%y(rV&UrKESnR|4IQ0(I77=13Uh+y>JI z6A&_^rXM|pv~hc0NI^nV7#Xi;A>mO#Kon~@m+~`UU@{vIv01_RZRZ()A$}><9(y<- z`_bL;bBNFAgs|x6l(f=0x!x^s5r3#T#g+$)3R3*)I4 zcsbQd8?}_4eIJ>%DGHAL-1Bk9F~^vNyqzbI9;WYF{KyGgu^({`b+Nv@^!sPbS!8Vd z#*DdX{M9e#xd2$$k&d%-Hc>r_1l~~por#O_3653gqY9b#ixc~2438squ1hTwknkkQ zmt0X%Rg))MOOon6C>Hk&NUu96T84{TC-Rb5+C6wm$#t8CREqz)ma&TZ68jJ`6#Fsp zVmL4m`HNGx97@$|zgb$`IntT>jO`%7zt>&_<{=QrC!zQAuSy{fclLP}dP+s*@oCVt zyN_+Ymo$m<9yJROcs$y#-K;7~D|2(Ed!B@Kh(4%OI_XIBP#q+R?rU7Cn&^bC>bw^` z6dw<9t=!pjZ5A0x*X53X7b4{UK7{TTQZI4x;WVLVct)s|>DZg0@u!k!^W<0p=yX%x z(8JqVpx4uiWQzA6f;jVedB=>(Y&aOw;brMgh_yn&E@Te(4cQ z-e*8{j*?4hvl*v~kB_h`%&9ZRQt1OIx$O*|ZQ{%U2ra5 zpgo;)Cn!>V@WBzxAY=3S##^vU6Ys0|Fz@5(6mNvTX=bIX2=V;lhkH@59^Y0%x5DRA@@kkiHkXYSG!Ho&bIn(QGo9T|&F_`HMrCgJ zBTw&bPf{<<`xJmec5&H=fYck&%EqCfI%6<$(nCXt(HI)G?Z-=-}2R@wiF8 z``k8s=iFf@+_c?~=KJBp22}-A3y57%N{k($5=h5fu~!dfwnc1%xVl0ov`ru0%WB8G z>2If`;}39cd1Lp~Jcp-1##$_Vm1d`EWBmc{@!=k=WRj%~Zk1Pq)TL zMM~UyPD~YUa#NPKr(Cvd(+TD4q;+8cAYa~2gp^c!bkE;*$loMB=&Q3NJ-D}mfIkJ9y9j84xFR zEp44HWkKeFvT5zjD@Sj0g|lWKx_Z2rQ5jQo>ikJjAyH7`B(+Q$E)nl}t*PN+l&z$| zvW0J3E7Gw8_H5~OFU$ag^(oUN_~pISho$QHs?Nl)94zn<=%YWk1aHyfeWWh0Xl!>_ z&~|>_O~}&Fj8$JHPEM{!N;poaDa{2|lFv!P@WmR!CH=ktRA)z~SmFtE>`-@b29Bg4 zG?grs`TUy38x8Zqb)j1AQtwvVGiXj4P-1ba{6kcRmXGYihI)$PLy}{Pg+9OY%Dizy znpkp`@MNq#Rnt3^3OZeUNT1NV6$VSVkz}9B1LUmh8S3_Ynni@>62PBFgVe%e%MPlJ z54YizMk-1mnHG3NVpV&0${$(zZPLa&|3qLqLs0-9$gtAw%T0uRX&tO^+BwT$X$w>^ zi?@O^xdlCT*&Ca%=`wMZ$)~CnHjRn#ci8+#p2okmAa)tqX&IvMz$aHx+5yXA?^I}k zXyUPZF;^7x#JACg9Ft3>^I@$A`nxhUvJ!!;i;dQj9U(SqvpKz{1w_ zji$N7+je;;9#MZ=JVa$fKdg??--c=_GD!#XcMj~@cR~SD#!SC%?ZcYuMSTQj_qQW# z&Ge2g-pzrBg*xiWW{0koNf)(Pl+6aTUp?HZSC{#hU-^ix4(36Z4XtlzvdJ@w;X?ZK z%JY1_x+}u|{T9jL=>M|Q>1kX(bnm#xj=8t0SSKQ!eW| z!a^{1Z5ha}Nwv`#m4vk|BXD`}ZU`uVv0}NufuVXn4otZ~qo9aOhS}T_Crhe} z5Nt17p|unVW)#)h5`hojJ#g5d8{+q6m!zuLas9F!5cXLZlXvxlb(DvcXz9)n8Vw9A?l(DF6On0{(6Z$9@)t zby7!a)$`?(M;&!X?|IFt3QElc?%W$eEXrN4h%q#OaA843sql3JHBA(r^t+QSr#4TI z{=2wuhoAO)io8|21u638I%Fp*n0VR@TDu2d%p{-N)E(zak8Ahg%9vqqlE}2&T5=gr z*teIM-w`I`Ry+fwr7jCc|1iBJ=rsk5(%f<>cZ2N_5S7t38G+122wN;|7}ai{Goh9d(Z>6wnCah;(RqoPUp61|ul8QFkS zE1|0I!L1_{KNp^*4k67j$Tfnz69Ed75~ala(i6#o=Q?&|93H+6{-Uw9AP@-}xWY0p zoG><|6XDiPb1jtT@!yZ+bfC^;O{E*>zKvEd0A$Y|Md*5-M*Dc_#HxOa%1UJ=TgCrG<^&+6UtK z!2*XHzw={7a`a?{5V}Y^t;MfT{czf2bgy{pcko4*@+chc#I!<#LmKlD{=0s-j^!GK zTTV{SeYLT+uETWwkdpK~g;dd?`5@r1*khCT*K|++Skjx6DMOjyQ$Fslu+ZGZIymLw zPS1~1S3}Y7cC{VjvxdTi9mWjbBa${1Qnxy#$_f{*eQss6`P+3K*-@=-T*@m)HmO^VrHXkWfqU1 zBr?*@<~(>!Wv&N$3ky!qjICOdh`d&P2Jm!9I6A5Z46$A>H=GGyb@*wRzp=jwQu8C( zbJ|HL=<;8E%Mbp>AhPS?1DRjZ$;x}JCgMErL+fp%?T33E`F4X}AO-~iUZuRC+LBF^ zkuuiuky+ZPoe>YBqkE^|EPTJm{e58PN9f-{V{_-lQP{nROZT67HAZI&DI2@w#O>iR z+LzpoEQWL=>Fo6G;M2)j7IPSlch;qxF6-;HyQ_bXQaA}6zXf3Tntp}()oygOq-2H6 zcoGt{MD4}lfANE-%<jsoiIGoQQP=T#K|z`q=esRPoKn2XEKF1=eS0l{YB2?Nl4O z;N^t5SR#}rUvGUbN-!Tzl0kNYR2Z!%6Y?IujHikt1zEWS+S&F5J%s#a} zz`I%v%l*xb@beJX8kCZ1!X-}*$0*+ngM2pSD2B6()2w$U0qD7}WdeeYvDGBi+Rr4s z;9!NdJzmEF1FZsA`tO~>|MIQpOk)WCBuIOwOu0ST+^xwGB>kRBm!+@?$&%938C$;~ z<`Iw*P~J{-bbki?lFaSuTKtjWL`^*y(}XLMZ-ul=!K3x4K&Z27-7XEC(k1Zw>3b$U z%JeaI;4J9owZ@?M!tU^>x_WJOvU;fjCs$OKf}VVRvSX7qI`Q{}bChY%`sBB;ZAn2% zTRy(ZCbC3Bk*UhEQ_i@RLOz^-Ap{dag5MLSQKnUbpF*ay(!qk3M*_ah$+6@@prZM% zp(Bd45K!$Oi{rd)HaxG+3Vfxw?QisDyq9~!d=+bb=$ONnV#dA>HgmyVf^yb1Qn!Bq zf?+}d44d;d2)@sBB{L$dRXp35sgtu1mvRJl+}dLO7Ca2^p_YKx$>s=8pu+p(u8)s+ z`)c;S$N2Ohj_L9C@_Hw+*pv+H7i-JP>3N5ydG|m;ZBTy7DSrTdnOh=nc3P3?i>M4_ zJ?{#ZbfV@4ZAH|x+}-tX(KF!u7MhWhQuA}+;h4))V^()?yMLecsu$ z3aeniJ=(qVmxa0c3|MwqUD@Xo{nf`1`*{AL(7ZgqQs^cgVhTc+mYR?xaM7H=a1GjC zl`Rf$ma~0;FDeDM>6X98t*zP?SkN7&&E>ba^-BKAlVVY~(y!{M;qSUwy5Q0LMg7}9 z@i8n$C_j$QP!j#e*136$%nhyi3nQ)3Y>Lih=3uv!zqA{)c{1G^R}Su%B{3#P$_MbW z$APvlH`GDbDr69?X1tw};yU-8pl%ZY z<*ug!CG$Ai0rykIraf0N!u6;Up=P&ik;F`|Eg2@H}%QT znC8RWN{EyUJh}bQDMbw1^!|-_mPy9h(M7|oHjq-9d;bUR&TuxdNBB#$Hqi3>+piE! z*+MwBeX-22ZvM;ke zyctw#_mVG$4?$kJw}^w6Y~QDGM0b}MT3UckU^?ZLx!u(D-@lT7<`?2%Ljf0$I_rTA z=F|=+w_G9WfTkhR;lLEhbPLx%Ydd)g!5X!|cdqw_;0<3pP zDetfvYJ(z8aI$p(bb6vq-Muxa2zS8ID-R7p%AK7-b(HU8Y4}1H2E!(tOg0-V_~J~` z*$jMtxoa~U`b?E|fJ;R2?ZsBRTNj68*qoJG+KGG#?Tmk#kTEYV2Bqu0_S-mfZ`Chu z+tTSqI3Wp1X=BHUUpPdB$2%=;ynX%G)0&Qt3MC0x?{m9i4fq;$##!bXhx~d3rcEh5 zhbJd1na4(Q?dpL0vT-o+iY;4y)#1Vq1=Tj_)ITHul4xVnzwNQbcgmuZ`UZzcU2ttE z`KbZl0Qd^;W4Qg-r}8h91jyTXBAx63NQt6|NKc-*tv+?4fpgt=y<5LfBh1(DHI){iJ@J@g-XYnZoayabFB-i5??-|FkeHyqQ3yD#m8S=?GWnlL9FtodbF#tUX9uFp@ge|+jDQZv?9 zf{;O2regdp21Y2|Um^xKbKT|IuT_qzv!FOp_{{KEgVR8iaRw~eBAk9%3FdwA&v(!P zlg0Sfti76k2dBlRkF`(#YOJer^E&woxU))oLz+J8~c7x3=!|%xg5P* zv>X~PhC5j-sF|CJ7YiLPGmIyxo@`FZk(H`@VIJ-pH_hafzi~DvocsEaO5=Na;FnNz z@ipUqmoGW*aOJPaUhlzTwYJ-3;LeABV;B1ep?-af;yN!nYb*G^V?FJ|CQUZYJc73A zYD!k#x!a_o!BlwHuSTh)rYZG{bPp84sI*7BVm>>J*QhJU^G)Nd<_fZqi>F|SI!~bi z?8n0``9?vToZP9Yu*p1Z>xpBsan_vvnB9EKG5%%b0*{V*`UhH#4DDSPO+VT%OYr}oqFcGb?urPT2JA-3t~m4l1TqgR__&w}1G~F;nDG79y zV5cf!_K{#IY8r5(+4lKs@C}HK;hxBnH@of|E9qypb z@9U3WWfj4zG>xzwBp$g3GNx`iKZgb|pta@Dzhb7s05ZSbWZI}+l)|$v?wlUevyL8C^)fKA!diXMvb#Nn}HH$k>}U+RgoYe zmi5@^4NVV_xQ>Iv8YneQb%cHfHxUvald}@4sqPXK%hZS!w@*$ABHzVQ_?4VKVl^t5 zVg^iI-iQCG4k5bKppqI2DC+jh8cHEf5&V#|=>2%663ITQ@2Z|zmOCaQgnA~GG6QeJa5lCw67xU8r!Ppx}&Jh-aSih6h(quISYe(wfobS8N z|f%di@_0~1^lmN6v zS>yFG;j00dYBreh86b3#s4KL1n{~L`HYXXAFrYm9VUI41@n7i2wxW`E+&pm6aKPXg zTzpwbD`{ZK2G{CE?~t2-K2|JQDtatg8c{~6Dqt1xe~vRgrV(kh0-1uI0SP7#f07nE zJ0~^-O<#c@VXY6|X3T(~6Gi=i;uy7m6eaFU5uZ%tBC^TyHJ_QsPtY({3Y)#jQBgZy zgt1q?zSWGOoqE;gDyymEME||&m;aIX_{KV5G(^^ z@x{cD=P^-Go2qvD!wC>;wuaDXPt{+O^q7XxrRr=cEHI)J7!igrDNCfZ2q-yYV{nX0 zV%tyYmm(-H0V*ocFo^GOmNS(p^NN&1Bfw%Xc{cT-@=@2JMeRHH5N`lIWrjrehJ0B5 zzVU0Yrp!AdqqzoIhkf@K?A}d!hy&2BV{ISs=?JWFGek9OObDt{+#+X0^H>k|J%byv zFZQ5x`$@A#)EeK>Dwn2EZ3NZTV8*#_eicvX7%FLd5boI^Je;_cXTW??Seo?Lwtuiw zpE_qKA`!nb$!njPA@1QGZM4~JSp^e?H(-5IDxJQ#j$377%!0zT01iVRqLKe*{(^id z7FKaNu{KB^fvtkfK{|?nserYa^0%TD~E#J zru^TN{mtBs5|dPa3gK2eTy~(Z&bI$KKyhb8!`*@bGy~!oU^g;V0QRGSu?v87hVq|~ zK+T;v#|Qsx+i*_y8J<{Q>e%dPV&(bf%Qq;?i&q`*9Y4;A*Oc4c zv1g0L2+CaEXG;X2{BBunf0gxKRNRz7pLhDpy==t$%ABTiiZ%*wCp9tpaQ0TcHua;* zF3CcjP;EMD8RUzJ1JOmrrqyUJT*N1q3wpNhwGj)L1J8hvR1_-)?5qPIkNIv$uRw!01=b6Ri?`Ps<_!Peg^~vf08G`ny-AX`|5CAxdpu#4rzm+ z{W|Tq)6#k0ew!`Pu9}fqaG9ZN!y6jzg^Cbpu*V~5Jg+^K2e6KpR~)G*nI(I>NLn`V zzU-7-%07URT{>R`AgPhp+)Z|rWo1eABf426<&QD@=Z1%|s zwG(9i>S@d`DsDC_C@hRlxoR3G8lq91cu9GLi7eWm2)WI?V&{1^Xq^n_05RidK3Sd_ zKH%bi?19lU(Vo}u%BAj)aZKvO3ttU_RaE5HTxbZ^7>>gJ@mecz@F*LKSz{{xAbg1` z12KugDM?JpS{0m81`6us{~3Hlqd1a@N$)E%2Wve&?EDvO$^M^1sQ+UBk@SpAw8((` z<@Fhyiq=L34ye<3SgaAHCBk@^ib$A>Xi;%SX@m-ngZtcf28xmKCTgI;n$ohGvJe>; zX|I09?O;!SiCTJPI@mGJD=}4U*lgfX11EI>NGCO?$soJ)<@bI-cTaltArboL0eixK zmacr+q4vsPM&rG^gZr4JIIT1l zwY46kR33r`sKoq;4Go8&sk~f5oDs@;oY3%c#{by0s{Dw?U(8BIPJ;a(>yCz_diIK> zFYK4wgN5^fm>S3?+Sq!CWb7FYk|?BTbq#{u2ck+m@J8E|6$@iQ3YhYJA%xL- zKcX0mCNLF&Q9w*eMZ$7I2_UvQi6W8urJ4~?`9=8ov`JA+Q9x|eC?K*l;#U+Sm=uUK dud56s?ch)(#VPzWUVyFsX#%WBYW%$Xe*nDq>s|l= literal 0 HcmV?d00001 diff --git a/htdocs/static/img/gallery/card01.jpg b/htdocs/static/img/gallery/card01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ee7bdd9610900270aa5ec73edefd756dc294456 GIT binary patch literal 10133 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

nGm1=GPCqcNVoP zhYni2XoW(@l*mf~%f}3@`ZI&uKoCX(g`Db&j)-%-1z(Gx&wu+$FWHnAowTy_i?Lf# ztj+XX;=MP$2EN!qj7Sz)Fz%V!_RR^w#BwUT{CJxMh>5w=UC_($SRkE_0F&y&Vpj&@ z-5EyehVH&_aV(}dCGLWr(6PfS?NB^&mKjm6~-YFeyE>DxWWN3xExjwY(Mx7kz6t#^BEFO2-B z=wLZY_dv<@D=*}xFDX>+(zNEwDY`lRODXkc!ab-zXnSnsA<(8>zmc~>x)4gnrvbG`*CgimttA$s6gP7}*&@>)hFl0l%Tj9yeoib>Vt?A@`f;+{_#V{|_lDn?FgXP#>Jm=-?3clf;x!TXJ%&j^ zJo^Fnxy|364SKB{vXftcPb~RmBuOSVQR7_(qL~Fa07ck<4Q=K5xGjtD7_539^)uot zA{7^oqzXeEP*HsHaYt-ZWiulRTt&lbL;5>jUxysi7yOPweGa8CBZ7$pZn(ZAaC zzSc8O>XZvnKd>k&uNlaO4n9~hVy5e;9zP=V%stk(TQwD;=`RD()U-BZpWpI!#W9{2 zmSmM;Rs?AtjnYyJXt>O8=TX?g7b&5o$t-nJyS^!L#MXIvTYg;gP)$mOQtCKz&T4#d zHZ%8=e~W$00fKJ;3W-=@vHQzHveV|{84?+_BfPdkp|zgXT}DEje?s5F7I01b2q&TD z8fqFb!+(;r?d1pWc3NB>UfBNQEuznkDM3!s84|cf{!L}IbOD()Skv3r$#1X^ZaE7@ zDy6_S9{nM~EIJuup%N_oE5ivrY? zQD1hIPHM^%GwxBp%0*2~OqDv!iwMlg4%euDM79~Slp_dA%Fc2ICJ23UC`1AsBOUyb~z8} zWnm=}>N)Hg_tv0yNuB!d&MtT9fl#Pf)GWa)W5NjOwYuoX_hrO3&sKHFrjkgKTQ@|L zEt`JLjLZ8lf;|C7N*Ol>s#slFP_}6qeOI#UwzzRhSkA{P6`=$l%0R27AwwncU!Sx1 za6MTA=#BWUs|GjCmkO%zbfm!k+~l$>z?T6aVk~d39%v(}xRqc#EhnGk#_0%A%VIpP zKQ;r~@e7a-uQCmnJb3*}s0URy_q<%xSJ(Q#Ddd`Lo?WmA(#p{p%3;3)lE*%!ALN~` z+cCZa*bBm6!_Xu5zaodoK$MKQyZZ!_F8kZvZ1UZLcHWu@bpgHj`z zF0W(wF!EL!t6^gKS1IL1J@=QhJs`hCtd!!lWu-^VTG)0dW7wgx#2sb-rsW{BBeKwn z&!>RnoPx!f%TW0@wKx2FHn$EQn6C>wQCpa zuc{vFM`~24*}LU(>8%!CBMI z5XryI5VtjFRs3d%v=&YDqI+=D+kP6K52!>#D&S`)*1Yhd@XMp-`K>ZJ3!YCP7KN$4 z3hr3_#RIQNMbvBf@9PF~4s%AfV|I0#Z&szz%j>>w=?5-5Q&?eoDNRjvBaFQIs%Mlz zH=ko=0RVNAgQ)Q_5<72CLgh4i-Hc{sQsrzFDJ|_VaP+SSIID*}vV}8z_?yKR+5s{R zs>FD`QPtVCowv7zes{Z9?&P5qJ4|a+d@yXx zp)53c=G{RA`;s^?H*PC@UT~TmoHcwL zcyoZXmHD6`{30CvR$Is9%(An$BtzGHIhJYXL1<gzvKjCl#Qx#jx(JM|;>%_hYTH#G#b{#PI#S}dO4rorDBEG7vc7ItGn_nZM= zHm1jLRkzzYp`)iy1v_3`>muI8HzrUa|xBXVPck|0zyp+Mk{qq1FbU0~8QQL*Em ze(YLb_ddz4i^?_~{4q$Giv%pz@5tbjh`p7(+>2Gv9;DLdj!TS)aix9Py5z4m;> z$11hXCy%0e#$TJ=-(w+Q%&g>Y{gI0Qs=O@r9gt=rHG{7s+!Cx7xHM^KccE&*VFp}s z2eWTbqJBg`;Jo$6EsV;?PuvvMZp{p!Qf27_wNK1yOc~a#Q3=y7vnKw@m&`rd+lzIa zmGjJ=xssX0_mi_|Abq|lvTT$W?~p-6Txc~cqqecBxNR-_Kl5aAYJ@HcVbMnK7muOu zv*|~7LOtUd%14v8V}Hp1SJ4i@9y$J8E+ueMi&&n3NkcYyHGRw4nciJ@{I2_h@9WXY zJ=KibY-l!jz3~^LdWvddD9t|{pqoZ+)lze_zU1KSlf(jM1y7&g@Niur8WN`GKN&kM zJv|-6D?ObbI_pKTt$UnTVW;naMsr95>~R0ERZ~`o!o3#DZ+72dIbI_bD#-;O51-d; zMaNUTf^ngBw4L%`#>*ay1(5J>rDi7z+PR+x-e7@k1Q&$}{bj%&VN7w$*8P!MD#p-h z^2K@59M#e2zjr{M`VphFjdP5U1?@2L;t3^yh~9YdXmdlpE{}O#*tbS4JK`tKV*Bt= zZFx1-5BVCZrw2VCu#-P^O^5eLVkF>&`9IxcpJbcA%_F#F3(Qeb)gjudQKR`AJEbeV3eUu!y2CTMW#;A6n${38!i&a}FESoqBe^56SfW3fEH zvlQOC%S(?$4G9j;3V^{N<+8+|3re55LBu%2EF=v71g; zBO>yN;%txGf=rqgX1HtUP3QDW5Wk`Jcpo)zf1ZlkRmU*xj=c8cuf zQ=#*{!kKuCbd{ttv(FzonhbvBEKQ6&n$|@gZJTZ#VJ5vLgG*&p>@n?eC`lYe;!$JD zZ;Pj-rQO36_{+jSoiRLWuQ%v@$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*2ZH`znWWp(Bkf$;-s@XLUSeY@$ujM0z_5nC~5z<<}8gyQ&?Eon3wSJ z2w-7hF*`dur&L~6_Ep>}E9)4z&cxKJc*pBrDg|55wCA}99d~BFR5u?EFATpw_&Kif zAE{hOrBV~BM${j4uj<4_4MPC|0fMSFrBbQev$vz8V_@`K{mrSLkNe9+5g{c(1DdC@ z$I)?l!!Mh{6#g_pi{?iE)L!Z9pi|;)NA5&NM}K6x&YhRTaVvjKw`e|o%W4aKTI!=q zOx8Y0U^1D~hbM~VH){t<_oY45*VkXSZr#BP;4;ESaZPoB)X_QI_g}gZ~6A5 z($UW^Qm3bA=^GjyFD)eJQPySErGci8 zo1Kf5A5uGf?!VBK-YP1IwAST#7xm`u%TVHQIG+=1_MLbhf9!I{uI6w~!_U%)uoHtCAL ziW01R4&Kd29;jV;H@C949A36_=x%Inr@5W~(LRAn(_>4%4J|GD66wo79AQwyqEFo{ zS}DjZo%mo-k-D~GzmZs(v4I!4?3__VUd^zbDGNIHW9HDSj?F*Z7B)#P1hgN+I3?ws ze=;Q8TvGjcZ`8TBvYktHOZ*>OR`{e%M7_^i)YNk$(T)}-$E_E&n?Of-MbtF%GW3aS zkCKbo5xn#RFKqqh4{%p+x~WdhCpt{11(2KN zh|q8^sE?>ExTS!P{FILze4Cg@UX9V0D{#~SyKVS+n{I`niy_;KX%z^eQ6}~h7Tye! zGEZSnvwDzv;>TPo*lBFX#+aXO5DH^MV=XiE?o{Dih!rZF*;<7W)7n@%2Ir@+;20Ad znD3fqI2$HK2C)s9KUrD+$&H;Z|Sa}5*>pk%SZZU_uO2Os22F*a^yXfXl$RdE@bCL?yAzX=e5_hCr74g zf>QjEeETJ?z<#0~U33LmLH`7=EVz_ol@E8G5343d=n=X0wH5X?)rxuzVni~<1Zm+&TDh@f&g|2A> zM%|A^-7{RHTe0!&$_-~2(_6QQD*O~iI$q&x2}z;pd(I?gB5%ZgR0Kc>v^1TNp{ z{i@XOT~A%8Fpxcl<)MDMN8L75puZDQW-{)O#ajcMx0M}`Fo^ROcbFxRY^}p8?z6P! z&D|29jVkH#C|G11P)W8FlZd*Y$A3JP0GMCjaTsL&^+m>E8K}rgE1{pgrO#nvzLtyh6zi48k`Gu8bzYwN}<`WS{> zNWOQ~?PcuP$+Y=VktOW0IYeQ=H5}{p;#QLwRzAlpxr1n?r|rUMZk7HB>=fylogzbE zv|%M{eeWUtCOxXojjh=cxtgSWoOdP$kP=v3-SeN$D2TQ6bWd*)-E-rR0_~iiLGf~2 zv|P(Y5G^m3g~%&RNx`TkQbER^#Lva*FSQ$28`x%XgbtQrTbEv0j4tJfXfF&)H@UCV zPbonX-#|SZ+SNMH-LY%&gku`mkn}JnYTd?fz5=GnJr>U(4AisiM9!IKifw7}aZ5-} z<(JE`r92{X@oi_~t;{_UpQ|koc3B15d99y8Rj!hwUHH&$OveZ*Hrj*sNZTj*I7;Nv zz*XK2SO=RgRK0EJ?K(Sj!+OQ>n9RAyUngwcf(p@ zzH(p_+Vi&oG!q?N!l0twxj9R`GOKJ8mduL#aUmOuPd*Uwrwzc>KKHQUnG*)-3+_v8 z85Sa)!r=-rLtsxe&u%^4MQsn7a#80{d`xFs<5n>vbe*S=PZ*SA^@43>OI{*XS)_+| z4lTX11m|rTU%1JSMU(e|mSEV`L2wdgvjW#|4z8#Mh0F~0Up)J($M%5L9+?Br58g1o zvI*pHSNUWj-CYed3+eXNe?s4!M>-*ATdRrdWft#cAbE(fvj>TCZJ+HRY@1A(DlS`A zy`tSjOG)^4+t{$t6ke7s-U#tP8#WIT()cI;^?vi#&$Nq(=Q!qek>kY*qw{x^Tk;=_ zB~Mfpuuk4_(8Nk0Q-8FdL(h6cCLfVFbpHx;-|RW8*-_vRo#bxYvJ`nD4H(rK;q20> zNPThKpuh1Gd(ee%$7KYX8&u@k@ovQ|O>s0~^h6Mo=YKL3QkiII+MSPs&Iq z8X~idiDCDU`V5*qV=|6R@~UwZ9SEE{rgvA}av|?xny+s#?H~HOmd0fi_ry-UVZYljO-uSa zk+HOAV9l+|$07FS;3a+&3B%nxKE{m-jA$Fu?~D!|T1{t|TI$@}j5VxjzV^D&zIwnc zr8M(D_fYc|_?F8k55*IQl+Qh=bL8+&2;xKgagjWWD+}lVqU-PjwrGo3L0CUHKbgVp zaq+Sx{+_rnW#i(pHn%S`?B_MjSs8O{m^vf%9)p&|xm`Uvld%hgfnoLSbq0@-7VUgU zK?9#u9ir?-Gg0CVEm*(KlZYqq+klB4{ne>LPxvp&+aK=MbH@)u^$WCrR*Q+P2vrm~ zrgrUdU`W{5os0N}WyU|P65-@<)3PT;mRNHrmT$9 z$}8Ghary*?OHN3~D%=O;16k0;gmIpwlI;DXPwW#rBoPXERQRQ6h(>1{BSqfiEx;Jnfznd~iLm1GB zzr)~XHD&xS%DcalM+g3+vWRch$?M@%f|gtfBW>sSKb}R?yb)tf{S)g#pu}BaMdmkZUPY@DOqSK}APcIkxJVH)6|Wy&E6Zk#wQ;g-RIi5#Ix709I%kJHIEUooTda4XShTJ;yxD@2aD5M5mO$}S2+pU zhdW`3(3e4H5|3EC(;Jsy4>$me=_yM0lzByJ_EG4SskuI#tgo;K&5<{BG>i`fI9XwC zK-g24Tz*tJHS}-az1Mt58+(pskrWPj;^VvvpRt* z@Gyu0;s}6}aiPa;s3(!7_?*%gNu`)hRKBi|^p{6qVj~!aDsIz(k2KGUMx4&lmk@RPfrQ7WH^QZ)aVY~d{6iY4 z8Lw|NN$%xVEY8GYA>?u|NDNgD%F)|7AYGxizpc9WO?A48?7$`7QA>1i&5rNYA{E+J zh2Em2xT?{YBqS*YwF$tmIH*_vvz?}o=Yk_z!Uq+;6d=#25udr$^F!ryZPj*G<#8+M zCA}Usf>7(UdPgOg>k?F9O+7LgY@{PkaS4qoREC0(J44BoqhbKefTG|bfWZ)|#d7Zp za_keB6iuhRRFOQbp$&3WE(e9=fuA6Jj{G1hwz2J6;~lNuO&Qi-f~jIRwl*{dJx8zL z=uN?7i3*M5;q|Ra_5daq!iypOBhL|UoWT8Ou(vtqTdtwo<>x<1D6TLL0bNL!fyj#U z?aq+&()O}0popVsvC77GQ z+1yNMi=1$pd&!nni^?HMVU)dm?+WS#_#2d3Nb%X!;`{I$^K&GQJNL;#G^O hX!c45k+I+m^@2VEr;rh2UR*hpobMjF7=Zvb{U3Ub*!Tbd literal 0 HcmV?d00001 diff --git a/htdocs/static/img/key.png b/htdocs/static/img/key.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec1a928140311ff30a0a9120e958096c77f446e GIT binary patch literal 612 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

x6oA;IiFbp9$SH?MQ_fc0ZvJH3zHQ6I*mX$Q Z-B7aYG_>oox4Y?OcPn(F6N3Z{{uf?WqQw9J literal 0 HcmV?d00001 diff --git a/htdocs/static/img/logo.png b/htdocs/static/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8c56e1935e277aea7b0606a1cc09c1917c399365 GIT binary patch literal 5325 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 literal 0 HcmV?d00001 diff --git a/htdocs/static/img/nyro/ajaxLoader.gif b/htdocs/static/img/nyro/ajaxLoader.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b3542497207707021696d31ab3f04b3a458690a GIT binary patch literal 4659 zcmZ{mdpwluqQ~EP-+5==cP>VA5po$!j7v3Hb|I~1lrq9X5o(oN5^15!BEq=GklcmV z3}He-R78zyt~D-+NJ0@R(tWj8yLI+H=X1_Jd;RzP@qC^?ewXj_+r{5$Y~rpD=mXa& zz_)MTR#sL@N=kBbbA>|Tnc;VZsr(WVK?r5WYr|k-&`;-e!V{yiI2e4OU*1NX zP+VM6s!agPD=NGlFx55Juh!X~zg~~IaW$)~4+ZUS}!dW`)CF+k(UOY}6$X zoT>%}kX98E`e-W7lr%Ogqry{*Gv=7tv0g*`;v=+oMSaP2`3Y@do7>ILQY9Hu>2&iioOK4qCOXfpl-4)Z zZw#p}?9Q7vbIM4Y^xBlSi#O9dwdetz-Ifjpn4HA_ltC|aLaG9IJJ(_o)qF&I{9;qS zoDA@{V???Tt%>f)EL^&IK@o!Dz3JUF`6Tq`Xzkoh8xJu1If zYd86RYMTPj-$G)bVu>f+Dpz9HPsQ*o2{{Z`Ty~L4TFjc$Q4+F3I=ep6EXI1us_1m4 zWG%RKd+)6d9dji;%C9hA&SxVY6mFvv_v2N}ER{DBg}DTn2JHJu1twUE5_5AmP$N{y zX`Y1AWam)loYH*HdMa5M-Eg<^ZcA%hy8@oj)!p3&+0UoF(@8?%agS50a#01{=JwBd;s>@1XQ2@t?~?pXUCP5O$y*wR$qCD z{8MZ^It6gG0;~Y&@BV6Eum37HfjI=xSX@tgmQpG%%Z@wpcB)ZV&oN3*dP2<_QuTY= zl{?3K5Tfo*Xn(uDw6};Jei~cDoVAhA(xSe`GLM*|&WEBhT=Yw0tEh@!ha4S??P{s= zZFFxD8@^T6EqHb1CN!bA>fapD`)BySJK(1}jrQDrqxd2DKo$EO!<#XX`b4AG*9VQM zl4cqb|Ut=wYa#)Y!TRN4M z?6N*?crQ~H?ovS9X@?2%Tj=mM@-LfrTJOQjK?n_w&*jkx8`N;#0vd{yE6MXB=jL9r z45Q+plIxj#e0hQ|2E2Y9dybJ)?u%=>E>T6}uQ?E!z{9NdS-x;FB=UV6{P>AFihnjW z)jzRudhUh#+{<}Y^5WF%m3Qwy_yR{Q5#n=)&p-&>Qo5)v4b#F=S&~^I+l?8^yiSnO$hg-uYVjR4@vw!+2=G z?ThR`2Ar%kI^rhjDAL*U`rV6KmAwQj7pp+!ck}e(FR9o7*JeMB;)ij#vu+H62Tfivhb`x3YPDfAdQce8f@O0SdFA{T<5VYbx0_ST-$QhW`ZqopE5@1* z#p&$cn(yW5?pei>iwxalxQ#?bsGBXU)hXBjdSn{;EDet)s2+!MsYD1XCNm<^B2i0I zVv&uwl5&McE)g&f5-KZyzF3m!P+wW0N+Jr5Q0s+jPu~-z-a8T`8&o5rk48p@aB@#3 zCa|MZ-uEz1XP-?!9-5tFp7Wn>4ZjQ8Vr2Xz=3j z_y)kO2L=M&BZid+nz3aaNzQeVxUurINVFHYT`&;21*=r6$;Owk)rv1*C~xJLd#^} z80+7||1a|Y8Ggr4BYmOwa&*q{-38q@uv*zFyG}$6YnXZOZ(0iKX9$)`%B3C%Vcsx< zq1(9K9L+F@YttzXG_ua3Ra|Qyp{Lx(f9h8(aZPZjZ;5?AJVGvSac2E-kdEV!J*g)s zo6MC@Lch>(5ots|4UJoGt^h&>d+2alnu&$jszBmGL&6JDT!I!r#Y?VSW?U$ArQVSI zrY4rU)=7lxFmR~r!IZ`aBH4f@{BZcuAO$-%J`O#ay!GJ8jPbMK(V3aqxxxAI(dD=F zo|SbVzSlZ( zRpUuqhaH>+UXKn2o58Z{DzXZH_oa@_k$T0RLq1~_%TDY7LCDv<261ECqd?&u`h}p@ zA=EbBHucP@gHAgRymIfe(x`C8xs+b4`&ifF8e&u68cba6zpY`Vp&>)h2|Jm6F_(;~DgleXNs~)lNl5)v!S=c5zdgBHhyBS`?xU?ig5C z@8aNHYf<|*T~_9B;)&g#1qPYjDujoF)ArM4G!C+{Tl^eQ0_+GPy{1@54pS|r%2$0+$fi*7KS<1 zl_zd(aWB9(`1CpU$+QvN(8Gr%ebD2vF>v@P?t1_D3^Y01PklZ<`*2FOF!u60e%@_) zvz3(L4q>6YW&pyK&trfH%F(Mn@5VFwgQ|JVQ7mqa-+jy|HD}31oFwPhI>&Ae1mGmO z6^yg)b^(NsAt9DNi_P44+`jom=45d+2B%JP4mRZ4<(aP7b0!CQect>`r-09Cz&3sR z;s(vhbdMZ~wz84MFjRr!pfG~5YfHsB(6gUaH*g~Io^VSx);a67UK8>kx6hyY+XRpP zR|A4b4orm{;bNPjMSj%F3yS`Xd&b4C@orkX&_%-P$5AEUarKe?Okgyy?yrs zo56v>LBjn<_4cHpad6~*H|5FD)4uMp>49epi|b$QxNHxsco{=roz}`bS3L9$qR)-p z{3!{D1g0ICovGGf46xeJ!18i7HUeo{m#YZlF`$AI9jN^z5+|%rVzECVHNB94Dh>(Y z4mM-6u$EZ|_6@$U$bu&9=lJeG4m!w#ZEhgG{vP) zc&#F>(lKeZEeunPYB|#1nQl|1ui&<4%Ax7Jc|f2i)|L_3f3m|89JzvD3fIy(?BGd_ zK5E0pqm1Kc!+)eiDClq%$oTBQWU1(zDQjJFT{@9hyK_ch5a4;ekws?-|N(?H?gL?Cl%vAM5U;Ovt8Q%+7U?6JHvD zAmNoJ`OO>rTQ9=<_Z6QQ#NX$uH400&mmR`P*J+4EIk6Cg3r-8*GA}@KhI%9L#==PQ z^6{8+TrRUHI+TJ)SWFDBEdk;)-Z7;t3`^g|%4g~AbTz20+SY3#5JYBED(aNnf&jR1 z_d&UwE=`{7oE^F~_=>y}KbcWu#bIWa;cJx81nc^s*2qd%k_uDy=IDOnVv0>ZbNJ9m zLaXNg8av?krLX%xV`srgakS55L~%G-jmB~EaVABjG30xjcU?JJ-NM+q&)7=DHCSS6 zD|7bh&Zn3^O*Y{fi|IA~cERJW$(rpEig?jK#o^k=eP{XG7Jx|4c3 zdJ|QLPUfl90#SDOn&<+mDA7088IxRD?p#=R ztKJNQZ@O~_ZBV(}hHqKZe)pb2R};BM);~~@Ye&S^?m`FzyhH^D$;lDQ(eZKeO&SKA ze)GTsKR1USpyJ^FMwaw@{5iv@_sxE9U#vcY6<`h!{}>zBsU)d zn@_Nfm|QoH_#}`nEzIEvqM?s!of>@RL}Z?}x`>|YU))P3_`GP#9h_>%ZxqW|Tmc(~ z+1ouZ%t-AH)K-T+Qtx{-wt^-)cnmoV*wj#^wv&m)zI>wZGHRSk-WiQ?sGb_Hl8O{p z2Yj?8R-ACe{$&-&#{a4U_o!gM@$ur2!wMeEdDFVrF-|*w8DSiFU7h#ITgpsvV5y}m zh~>QBJrq%{TxPGh7wy)}T>h%JpT}SA!lRRftc$J4yQzk#JCU4F4jmU78m=D|eP&;* zLc*D|Nt*Fzwx#N)XL50gIo?>g-$bGeZ?w3igm_6T&f}I|L(9vPs!Gdhz)VXtTfT%(qogQ=UpBN~jLeqT&=jRj>ac-G1 zH4V;#4^+<*-srJ%yah@E%p{wo=vJYAX%`CU&FvElwxU;zIbP1Tk-ISaU066X%#3tr zD)q<0uqv)*`v%-5IcC;dtyqXkyEtn6R?tn*yn4!+xngf~o)G}<#l;FDlVN`ct~@;n zjMLZoN|!|HDqztX-%MA5w+3K;0XMc(t&{rKjE5EfsdmafZ;Z8NCB+Bkv{tTfmsXiZ zXvenRwzmmteHoRfF{z`a;oN%2Ei(YQ)G`rWf7DhUivKkEGyf27afW%EM!h}N&)sZ& z_t}kLx15cQB;?ddUm6j6#)EK}1w=)k6#AVb2d19C<_rM9j8X5Dwjm&0ebz~I0Z42lwCH3<-Ob#$~u z6aRFU7)YF&no&S!mtXR5i&G37xcn4P%T>dTkJj9j5*vdFdThyzSSo;G!HOPlo2Z)@ z(7-@mdO>5=c8U*0dL@!6kfM;8!(?aRrKoIltr6m~iVtONRG0R?ToPNc41Ta3;k&%q*~emlcwbj}dM?)n)(-qx8RK4XRDyv1FOHG03FkY`Y;(3& zgb2JfrVP^Q)4OTDp?<~+<~x9dj9@C1?5F9Nk)d)X8MRF>z$B^=jyY1|FPVY3a!Nv0 zjUlP@Mgs$c?%ciGK*F`Pw&+cw+c+k;5P}4Wmc6z@=&~Fsr31tTG2~N4S^V^9xw-sK>hpDE^tkP~Nk6bVyGDL| zuk<`S_R`lfm0MSq1cRjp{_CCxpK1ZKv_h=6eh$>>xKyq@-YYxR(haXZjAaKfD;%%K U-3q*%u=+qe&h)IpIRM!553u`&EdT%j literal 0 HcmV?d00001 diff --git a/htdocs/static/img/nyro/close.gif b/htdocs/static/img/nyro/close.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa0962168ee41011c56c6b8f5cebbe75afbb0bb6 GIT binary patch literal 70 zcmZ?wbhEHbFaLjV8( literal 0 HcmV?d00001 diff --git a/htdocs/static/img/nyro/next.gif b/htdocs/static/img/nyro/next.gif new file mode 100644 index 0000000000000000000000000000000000000000..76e7666708f7458619bad17f07fa031361163ec0 GIT binary patch literal 197 zcmZ?wbhEHbkso>(ru;bQ)28k;?91aT0BMdUynv1?!OXNC49SB^YDa97GaQ5V*8P8{~GV@yR H#9$2oTW3TP literal 0 HcmV?d00001 diff --git a/htdocs/static/img/nyro/prev.gif b/htdocs/static/img/nyro/prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..4c4379bc45e2fda0bd50ad94288fa7f99a4932c7 GIT binary patch literal 197 zcmZ?wbhEHbSV2@MRD}JQ4(c%G%=dG@_vxH?>gcH#*Ue2HC}9sapf8X?R$Z;XEnm&g zW99mh)5jNw008mK8)r^`_{yH0rNn%u1|SpC(tjf#om=+r#lh+?Kb>DVb9`|C0Bvbv zN3U(>f4-tAC1hosRoA7p(b(hL*V}(j>ug<`&U)|l$6o$)!>PBQ9RQSwn9asj2p*|xhU*R^vq?*Twb0t!lm5}`yW5lRy-U0ZYK?8to!;o!r!XeOE$ z0HB3T+6EEoI4PlR=wonwqJ+TvCoWh&$?CAPVYcU= zD{DS0?AkOtb@-hh^ZLq~FMjxYf19X?pa_YqtgZGvv2TaxcF#KT?O%=_*a-kW_;N|D zakkWsOe!)HsT5WRBiC+p;N-c>0Qwy(1D2MDBC595oXSiR07)sKNk-%9*rDBOO^HUD zZW#;)R&EZpqha<(HK$(tZYU#V29<@0qCXgU{gXeGpc_|pTqQD-WO|}%yKZbeX7k*H z2W~CK$v8NBAq~czrc5A(v51g0Wma7`G8}f=ZcuAiYYxZan@gP(;Ku66M6?bquGiHe z3Q0ya)%Lvk@kLixZfZyU@#UFbv+>pYhcj8TRKSr_sWG8i^X~UA**LvbD3(_Lba3xm ziYcpup*A9qJ$?AA=Og05lndxfwr`!C+O~h|B~4 z01q8H`StcY);%&mId7_+)76ovRpeNWRp&4M?#jx@|E-)x%P*A6t^fc407*qoM6N<$ Ef@ddc(f|Me literal 0 HcmV?d00001 diff --git a/htdocs/static/img/page_white_go.png b/htdocs/static/img/page_white_go.png new file mode 100644 index 0000000000000000000000000000000000000000..7e62a924bc57bc306a6017dd37eab38f23388c8f GIT binary patch literal 612 zcmV-q0-ODbP)#DY{xaiib^#X=YT4@yE_&2#eBulEdzjE`u&@G%2(&u{J-<}d(^uY4W_kMfEX z@!X)AR9F&FL?RJyJRUzvBoeqN{5kY`z3wcM0+du73~_0|*lac! z42Dw(Eg1o{Ash}P8jXrqN+1w`*XxDD;ShmPCZC7#4;wWbHoMvBl$=zF-`?*9j*Nbjd=v@OWt_BgKxP-3wd zy37?ATx&$b+&zRM!K;BD%Okw`Sb@&Pak8$KRX19jWZmC0&n*Ggv%j8nvSPDFw zEkV65AGOoBQ8kf`R|}Px*&INNS%osq9b{Fq2I(x6@xM>tg=vRLF?I`0rWzaALuGf4Y`vF_RVX9~>A(O8F z)3$t?oYEk*O1xr^+O4u{5r_qmF&SV+OUUf8`hA{(D{=PvUB27z@M$NF<`!7jCwO+~ zrxBOeH?g;uXSaxfG)V}E*Cxh@C+DRS^?5TV8bVr{5sDh2O2=o2$kN()(LO}%zZ!E>nxzW5#K=otq1n09TZiMTyE z;r-gED-KT1dm+y$Ea`R$Yg4Rv%9^bxXmAHYgV8=U^zv{^L@X1lRFrb@Nk%3Y8x-0+yJ4NJ{`2YX_ literal 0 HcmV?d00001 diff --git a/htdocs/static/img/quote.png b/htdocs/static/img/quote.png new file mode 100644 index 0000000000000000000000000000000000000000..18831d42d53b22115bb4d6b2a8853ed970f04889 GIT binary patch literal 374 zcmV-+0g3*JP)5I_zn)Cp6KQpT*9*UH-X?joWTsd zK`N6Io#uk)aOwrc>uT@^PT)bp8?d8?KH(xTbr0sXeu670B;10E8n4jzf--H_^p7xc z;ZYC;FzeV9JDpq0mU&ZE)eU-h{S4A%D1-=93ms$G(fA}ZB05fYc UVM9X2J^%m!07*qoM6N<$f=-~Ja{vGU literal 0 HcmV?d00001 diff --git a/htdocs/static/img/search.gif b/htdocs/static/img/search.gif new file mode 100644 index 0000000000000000000000000000000000000000..366345710f96271e90eb5d4b7ecb1d643baafd8c GIT binary patch literal 261 zcmZ?wbhEHb6k`x$IKsg2_U+q$|Nh;)dGo=82ag{={_x?$j~_ptJ$v@*)vMpXe_y_Q z`Olv}*REZ=d-v|ut5^U2{d@oZ{m-92KY8-x_3PJ9pFaKa<;$Z-k1k!hbn)WF|Ns9p zU;xFREMPGm5DBuAfwd_?tuG~WUPhN#O97|L!oHJ*i57LTCu<%sH!vC;kPT^-Rx;pH zFc6pQYLGPWY*bQIJ;30{(4$alJclP>ow$x);M%1+X}g2sjQv)82?=Cqb#c?;wX(Fb y(cl)d6w%c;)DpJfi#PUVt&!&F)SOWma=5mn$ literal 0 HcmV?d00001 diff --git a/htdocs/static/img/shadow.png b/htdocs/static/img/shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..c04d21b76ecfec013db907302f6bd35afff6cef9 GIT binary patch literal 1698 zcmeAS@N?(olHy`uVBq!ia0y~yV4TOmz!by50u)K!%e4$hNtU=qlmzFem6RtIr7}3C zX}uDbwD2HC(*ycgt4t?ty+@+wPUlR;uUiAH4mbx%Td3O?Q*$ zf&zQmF8}g8dC^~1Y@56N`Id%svugXbOJqMzNq%PY>BN*-n!)@W7LRXkPCY$Kvh?pylS=lQEeJmx&}%I_=-`FKFUe^aWI+!LPc+s5;Ys_!vxdGhVg=U0pN)oi@O zH(|f%$AZ)c_dD2+Fh64a*igX$#11wJasvDy3=tjxDF+*z&Y+=G2RoXV5q8l~>f;U; zSXkqU26{?8VjPWfP)eX#Y8W|De&GL-eKmQ98S63@?fZFZo^AD{N4pM&9@*aVN_Vbp z^|qYI$u>urZReRrZ&O^TJg>~`(x&v&vs8m8`Pvvv*_d*2mhSJFey=A#Uy1q3A9|9{K22WQ% Jmvv4FO#s~6iZ1{F literal 0 HcmV?d00001 diff --git a/htdocs/static/img/style.png b/htdocs/static/img/style.png new file mode 100644 index 0000000000000000000000000000000000000000..81e41de7d3a9bcc50267b34d0005487d5c7cc7c0 GIT binary patch literal 813 zcmV+|1JeA7P)%S8Yz4}?d^ZEOv#Sc!)mtIgHXaEQ+_ullV zJO1Y8v8UhuAAS7ozvIlitK{;}YszGvVI*jPQs)gu{RuZGF1qsJqxF>Ai*mOY zeUVJ^Xn04=g+vNN2-6q_7DHe6!8fa@! z^ZEB_2Vebf-umoI@{HTtK!PIfdyIp7Zk$|p=*|D=N%#IIE_w1_EaGe}ST5wWclgx% z|Fx4ZY{8likTKA?G12oM|4&}@o+);3yYs=L?ao)At-(S*$63Le zJ&q^>ZEbL?y!O>L=h9<7rvvdA2Do?L{p8zs_rGt?o&P=^cm5ltT|5S~l@laqmU8i; rSIv!oK>XjU`o@3v@@qdCD9z3Q7_5=EFk?|V00000NkvXXu0mjffa;^e literal 0 HcmV?d00001 diff --git a/htdocs/static/img/tag-bg.gif b/htdocs/static/img/tag-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..77d025542d038ef2285de4aebfbec0f61af07339 GIT binary patch literal 92 zcmZ?wbhEHbrAiv=M3{STkcma7zo-U3d z6}OTST$p)6L=qGf4lpn+$#mS_+Q^v5VLFFTAc3Lr4#UTPN8Vfqs%G$X^>bP0l+XkK DJsL33 literal 0 HcmV?d00001 diff --git a/htdocs/static/img/toggle.gif b/htdocs/static/img/toggle.gif new file mode 100644 index 0000000000000000000000000000000000000000..9718e4c6798fc8b11244f1bc84bbc54b7f6cbc6d GIT binary patch literal 49 zcmZ?wbhEHbWM^PuXkcWxd-v}D|Nj+#vM@3*Ff!;c00Bsbfr+Dqzfm%aH&TPa8URtb B3yJ^$ literal 0 HcmV?d00001 diff --git a/htdocs/static/img/user_32.png b/htdocs/static/img/user_32.png new file mode 100644 index 0000000000000000000000000000000000000000..2865d0ad5d4d8169d6949a1b0eb23eda2e00e85d GIT binary patch literal 624 zcmV-$0+0QPP)!pz^y z)a3sD|JU8>_xbz7&EU(^hk#c`@zfJ&(`Md@%F{d;PCSI{r>*N&f&|_ zHGWr+u`iJ$K1!z;@siv>+baB z>hjjy>gVh8+1~5i;qBJk>C@Th_V@bl@%F>Z-|zDG;Ni78j;pXq+=J3?p z>CV;V#LeLU|NmR0{B8gM0U1d|K~#9!gwxe>#4rp6P+7La*)C%j%goG-$^U;&U)r@~ zd!~BJ=!{0Ouc7#-fPM&2fKmWRFR1Ft%}Z~)UmrzXZ~^M0W?24Ke5=s{*u5xe^<=_8 z(ta*^tpNl0dTfE=L{I=xXo0c<1jxpg-7n)EX#hl}TQy;Ty7qu8n1iQa>;a1gh-v5n zZw9EPq1#_h@ek$b>t zB?Ei*fK9~$g9q;xsJD^jK{f3Wk3~X3e(7vE6+EY9P0ZwP`Wzu&c(u{&} zpgF*m0bgQ6aUf>amV<_*z!S?4U=#Kokex{bM9q_lyJ}JV2rvM_dJk>X$R$Sr0000< KMNUMnLSTZgcXT%Z literal 0 HcmV?d00001 diff --git a/htdocs/static/img/valid.gif b/htdocs/static/img/valid.gif new file mode 100644 index 0000000000000000000000000000000000000000..218b23329a7681ddd5471045381332a3301c01f8 GIT binary patch literal 72 zcmZ?wbhEHb6krfwXkcVe-@yI<|9{1wEQ|~cj0`#qKmd|qV3P0YUwQg1$34c7ORw{M ZFTUUlo&PD*hg0uyv!~;$WB!Z`)&T0&7pVXM literal 0 HcmV?d00001 diff --git a/htdocs/static/js/administry.js b/htdocs/static/js/administry.js new file mode 100644 index 00000000..6ad5d612 --- /dev/null +++ b/htdocs/static/js/administry.js @@ -0,0 +1,189 @@ +/*--------------------------------------------------------------------- + +Template Name: Administry +Version: 1.0 +Release Date: July 12, 2010 + +File: administry.js +Updated: 2010-07-12 + +Copyright (c) 2010 Zoran Juric - http://themeforest.net/user/zoranjuric + +----------------------------------------------------------------------- + +WARNING! DO NOT EDIT THIS FILE UNLESS YOU KNOW WHAT YOU ARE DOING! + +---------------------------------------------------------------------*/ + +// Preload images +imageObj = new Image(); +imgs = ["img/toggle.gif", "img/nyro/ajaxLoader.gif", "img/nyro/prev.gif", "img/nyro/next.gif"]; +for (i = 0; i <= imgs.length; i++) imageObj.src = imgs[i]; + +// Administry object setup +if (!Administry) var Administry = {} + +// scrollToTop() - scroll window to the top +Administry.scrollToTop = function (e) { + $(e).hide().removeAttr("href"); + if ($(window).scrollTop() != "0") { + $(e).fadeIn("slow") + } + var scrollDiv = $(e); + $(window).scroll(function () { + if ($(window).scrollTop() == "0") { + $(scrollDiv).fadeOut("slow") + } else { + $(scrollDiv).fadeIn("slow") + } + }); + $(e).click(function () { + $("html, body").animate({ + scrollTop: 0 + }, "slow") + }) +} + +// setup() - Administry init and setup +Administry.setup = function () { + // Open an external link in a new window + $('a[href^="http://"]').filter(function () { + return this.hostname && this.hostname !== location.hostname; + }).attr('target', '_blank'); + + // build animated dropdown navigation + $('#menu ul').supersubs({ + minWidth: 12, // minimum width of sub-menus in em units + maxWidth: 27, // maximum width of sub-menus in em units + extraWidth: 1 // extra width can ensure lines don't sometimes turn over + // due to slight rounding differences and font-family + }).superfish(); + + // build an animated footer + $('#animated').each(function () { + $(this).hover(function () { + $(this).stop().animate({ + opacity: 0.9 + }, 400); + }, function () { + $(this).stop().animate({ + opacity: 0.0 + }, 200); + }); + }); + + // scroll to top on request + if ($("a#totop").length) Administry.scrollToTop("a#totop"); + + // setup content boxes + if ($(".content-box").length) { + $(".content-box header").css({ + "cursor": "s-resize" + }); + // Give the header in content-box a different cursor + $(".content-box header").click( + function () { + $(this).parent().find('section').toggle(); // Toggle the content + $(this).parent().toggleClass("content-box-closed"); // Toggle the class "content-box-closed" on the content + }); + } + + // setup nyro popup window + $.nyroModalSettings({ + debug: false, + processHandler: function(settings) { + var url = settings.url; + if (url && url.indexOf('http://www.youtube.com/watch?v=') == 0) { + $.nyroModalSettings({ + type: 'swf', + height: 355, + width: 425, + url: url.replace(new RegExp("watch\\?v=", "i"), 'v/') + }); + } + }, + endShowContent: function(elts, settings) { + $('.resizeLink', elts.contentWrapper).click(function(e) { + e.preventDefault(); + $.nyroModalSettings({ + width: Math.random()*1000, + height: Math.random()*1000 + }); + return false; + }); + $('.bgLink', elts.contentWrapper).click(function(e) { + e.preventDefault(); + $.nyroModalSettings({ + bgColor: '#'+parseInt(255*Math.random()).toString(16)+parseInt(255*Math.random()).toString(16)+parseInt(255*Math.random()).toString(16) + }); + return false; + }); + } + }); + + // custom tooltips to replace the default browser tooltips for

and + $("a[title], div[title], span[title]").tipTip(); +} + +// progress() - animate a progress bar "el" to the value "val" +Administry.progress = function (el, val, max) { + var duration = 400; + var span = $(el).find("span"); + var b = $(el).find("b"); + var w = Math.round((val / max) * 100); + $(b).fadeOut('fast'); + $(span).animate({ + width: w + '%' + }, duration, function () { + $(el).attr("value", val); + $(b).text(w + '%').fadeIn('fast'); + }); +} + +// videoSupport() -
")}}if(AS.length>0){var AO=C('
'+AS.join("")+'
').appendTo(l);AR.labelHeight=AO.height();AO.remove()}}}else{if(AR.labelWidth==null||AR.labelHeight==null){for(AQ=0;AQ'+AP+"")}}if(AS.length>0){var AO=C('
'+AS.join("")+"
").appendTo(l);if(AR.labelWidth==null){AR.labelWidth=AO.width()}if(AR.labelHeight==null){AR.labelHeight=AO.find("div").height()}AO.remove()}}}if(AR.labelWidth==null){AR.labelWidth=0}if(AR.labelHeight==null){AR.labelHeight=0}}function AM(){var AP=g.grid.borderWidth;for(i=0;i0){e.bottom=Math.max(AP,s.xaxis.labelHeight+AO)}if(s.yaxis.labelWidth>0){e.left=Math.max(AP,s.yaxis.labelWidth+AO)}if(s.x2axis.labelHeight>0){e.top=Math.max(AP,s.x2axis.labelHeight+AO)}if(s.y2axis.labelWidth>0){e.right=Math.max(AP,s.y2axis.labelWidth+AO)}I=y-e.left-e.right;t=Q-e.bottom-e.top}var AK;for(AK in s){K(s[AK],g[AK])}if(g.grid.show){for(AK in s){F(s[AK],g[AK]);p(s[AK],g[AK]);AN(s[AK],g[AK])}AM()}else{e.left=e.right=e.top=e.bottom=0;I=y;t=Q}for(AK in s){AL(s[AK],g[AK])}if(g.grid.show){h()}AI()}function K(AN,AQ){var AM=+(AQ.min!=null?AQ.min:AN.datamin),AK=+(AQ.max!=null?AQ.max:AN.datamax),AP=AK-AM;if(AP==0){var AL=AK==0?1:0.01;if(AQ.min==null){AM-=AL}if(AQ.max==null||AQ.min!=null){AK+=AL}}else{var AO=AQ.autoscaleMargin;if(AO!=null){if(AQ.min==null){AM-=AP*AO;if(AM<0&&AN.datamin!=null&&AN.datamin>=0){AM=0}}if(AQ.max==null){AK+=AP*AO;if(AK>0&&AN.datamax!=null&&AN.datamax<=0){AK=0}}}}AN.min=AM;AN.max=AK}function F(AP,AS){var AO;if(typeof AS.ticks=="number"&&AS.ticks>0){AO=AS.ticks}else{if(AP==s.xaxis||AP==s.x2axis){AO=0.3*Math.sqrt(y)}else{AO=0.3*Math.sqrt(Q)}}var AX=(AP.max-AP.min)/AO,AZ,AT,AV,AW,AR,AM,AL;if(AS.mode=="time"){var AU={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var AY=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var AN=0;if(AS.minTickSize!=null){if(typeof AS.tickSize=="number"){AN=AS.tickSize}else{AN=AS.minTickSize[0]*AU[AS.minTickSize[1]]}}for(AR=0;AR=AN){break}}AZ=AY[AR][0];AV=AY[AR][1];if(AV=="year"){AM=Math.pow(10,Math.floor(Math.log(AX/AU.year)/Math.LN10));AL=(AX/AU.year)/AM;if(AL<1.5){AZ=1}else{if(AL<3){AZ=2}else{if(AL<7.5){AZ=5}else{AZ=10}}}AZ*=AM}if(AS.tickSize){AZ=AS.tickSize[0];AV=AS.tickSize[1]}AT=function(Ac){var Ah=[],Af=Ac.tickSize[0],Ai=Ac.tickSize[1],Ag=new Date(Ac.min);var Ab=Af*AU[Ai];if(Ai=="second"){Ag.setUTCSeconds(A(Ag.getUTCSeconds(),Af))}if(Ai=="minute"){Ag.setUTCMinutes(A(Ag.getUTCMinutes(),Af))}if(Ai=="hour"){Ag.setUTCHours(A(Ag.getUTCHours(),Af))}if(Ai=="month"){Ag.setUTCMonth(A(Ag.getUTCMonth(),Af))}if(Ai=="year"){Ag.setUTCFullYear(A(Ag.getUTCFullYear(),Af))}Ag.setUTCMilliseconds(0);if(Ab>=AU.minute){Ag.setUTCSeconds(0)}if(Ab>=AU.hour){Ag.setUTCMinutes(0)}if(Ab>=AU.day){Ag.setUTCHours(0)}if(Ab>=AU.day*4){Ag.setUTCDate(1)}if(Ab>=AU.year){Ag.setUTCMonth(0)}var Ak=0,Aj=Number.NaN,Ad;do{Ad=Aj;Aj=Ag.getTime();Ah.push({v:Aj,label:Ac.tickFormatter(Aj,Ac)});if(Ai=="month"){if(Af<1){Ag.setUTCDate(1);var Aa=Ag.getTime();Ag.setUTCMonth(Ag.getUTCMonth()+1);var Ae=Ag.getTime();Ag.setTime(Aj+Ak*AU.hour+(Ae-Aa)*Af);Ak=Ag.getUTCHours();Ag.setUTCHours(0)}else{Ag.setUTCMonth(Ag.getUTCMonth()+Af)}}else{if(Ai=="year"){Ag.setUTCFullYear(Ag.getUTCFullYear()+Af)}else{Ag.setTime(Aj+Ab)}}}while(AjAK){AQ=AK}AM=Math.pow(10,-AQ);AL=AX/AM;if(AL<1.5){AZ=1}else{if(AL<3){AZ=2;if(AL>2.25&&(AK==null||AQ+1<=AK)){AZ=2.5;++AQ}}else{if(AL<7.5){AZ=5}else{AZ=10}}}AZ*=AM;if(AS.minTickSize!=null&&AZ0){AO.ticks=AO.tickGenerator(AO)}}else{if(AQ.ticks){var AP=AQ.ticks;if(C.isFunction(AP)){AP=AP({min:AO.min,max:AO.max})}var AN,AK;for(AN=0;AN1){AL=AM[1]}}else{AK=AM}if(AL==null){AL=AO.tickFormatter(AK,AO)}AO.ticks[AN]={v:AK,label:AL}}}}}if(AQ.autoscaleMargin!=null&&AO.ticks.length>0){if(AQ.min==null){AO.min=Math.min(AO.min,AO.ticks[0].v)}if(AQ.max==null&&AO.ticks.length>1){AO.max=Math.max(AO.max,AO.ticks[AO.ticks.length-1].v)}}}function AH(){Y.clearRect(0,0,y,Q);var AL=g.grid;if(AL.show&&!AL.aboveData){S()}for(var AK=0;AKAP){return{from:AP,to:AQ,axis:AN}}return{from:AQ,to:AP,axis:AN}}function S(){var AO;Y.save();Y.translate(e.left,e.top);if(g.grid.backgroundColor){Y.fillStyle=R(g.grid.backgroundColor,t,0,"rgba(255, 255, 255, 0)");Y.fillRect(0,0,I,t)}var AL=g.grid.markings;if(AL){if(C.isFunction(AL)){AL=AL({xmin:s.xaxis.min,xmax:s.xaxis.max,ymin:s.yaxis.min,ymax:s.yaxis.max,xaxis:s.xaxis,yaxis:s.yaxis,x2axis:s.x2axis,y2axis:s.y2axis})}for(AO=0;AOAQ.axis.max||AN.toAN.axis.max){continue}AQ.from=Math.max(AQ.from,AQ.axis.min);AQ.to=Math.min(AQ.to,AQ.axis.max);AN.from=Math.max(AN.from,AN.axis.min);AN.to=Math.min(AN.to,AN.axis.max);if(AQ.from==AQ.to&&AN.from==AN.to){continue}AQ.from=AQ.axis.p2c(AQ.from);AQ.to=AQ.axis.p2c(AQ.to);AN.from=AN.axis.p2c(AN.from);AN.to=AN.axis.p2c(AN.to);if(AQ.from==AQ.to||AN.from==AN.to){Y.beginPath();Y.strokeStyle=AK.color||g.grid.markingsColor;Y.lineWidth=AK.lineWidth||g.grid.markingsLineWidth;Y.moveTo(AQ.from,AN.from);Y.lineTo(AQ.to,AN.to);Y.stroke()}else{Y.fillStyle=AK.color||g.grid.markingsColor;Y.fillRect(AQ.from,AN.to,AQ.to-AQ.from,AN.from-AN.to)}}}Y.lineWidth=1;Y.strokeStyle=g.grid.tickColor;Y.beginPath();var AM,AP=s.xaxis;for(AO=0;AO=s.xaxis.max){continue}Y.moveTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,0);Y.lineTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,t)}AP=s.yaxis;for(AO=0;AO=AP.max){continue}Y.moveTo(0,Math.floor(AP.p2c(AM))+Y.lineWidth/2);Y.lineTo(I,Math.floor(AP.p2c(AM))+Y.lineWidth/2)}AP=s.x2axis;for(AO=0;AO=AP.max){continue}Y.moveTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,-5);Y.lineTo(Math.floor(AP.p2c(AM))+Y.lineWidth/2,5)}AP=s.y2axis;for(AO=0;AO=AP.max){continue}Y.moveTo(I-5,Math.floor(AP.p2c(AM))+Y.lineWidth/2);Y.lineTo(I+5,Math.floor(AP.p2c(AM))+Y.lineWidth/2)}Y.stroke();if(g.grid.borderWidth){var AR=g.grid.borderWidth;Y.lineWidth=AR;Y.strokeStyle=g.grid.borderColor;Y.strokeRect(-AR/2,-AR/2,I+AR,t+AR)}Y.restore()}function h(){l.find(".tickLabels").remove();var AK=['
'];function AM(AP,AQ){for(var AO=0;AOAP.max){continue}AK.push(AQ(AN,AP))}}var AL=g.grid.labelMargin+g.grid.borderWidth;AM(s.xaxis,function(AN,AO){return'
'+AN.label+"
"});AM(s.yaxis,function(AN,AO){return'
'+AN.label+"
"});AM(s.x2axis,function(AN,AO){return'
'+AN.label+"
"});AM(s.y2axis,function(AN,AO){return'
'+AN.label+"
"});AK.push("
");l.append(AK.join(""))}function AA(AK){if(AK.lines.show){a(AK)}if(AK.bars.show){n(AK)}if(AK.points.show){o(AK)}}function a(AN){function AM(AY,AZ,AR,Ad,Ac){var Ae=AY.points,AS=AY.pointsize,AW=null,AV=null;Y.beginPath();for(var AX=AS;AX=Aa&&Ab>Ac.max){if(Aa>Ac.max){continue}AU=(Ac.max-Ab)/(Aa-Ab)*(AT-AU)+AU;Ab=Ac.max}else{if(Aa>=Ab&&Aa>Ac.max){if(Ab>Ac.max){continue}AT=(Ac.max-Ab)/(Aa-Ab)*(AT-AU)+AU;Aa=Ac.max}}if(AU<=AT&&AU=AT&&AU>Ad.max){if(AT>Ad.max){continue}Ab=(Ad.max-AU)/(AT-AU)*(Aa-Ab)+Ab;AU=Ad.max}else{if(AT>=AU&&AT>Ad.max){if(AU>Ad.max){continue}Aa=(Ad.max-AU)/(AT-AU)*(Aa-Ab)+Ab;AT=Ad.max}}if(AU!=AW||Ab!=AV){Y.moveTo(Ad.p2c(AU)+AZ,Ac.p2c(Ab)+AR)}AW=AT;AV=Aa;Y.lineTo(Ad.p2c(AT)+AZ,Ac.p2c(Aa)+AR)}Y.stroke()}function AO(AX,Ae,Ac){var Af=AX.points,AR=AX.pointsize,AS=Math.min(Math.max(0,Ac.min),Ac.max),Aa,AV=0,Ad=false;for(var AW=AR;AW=AT&&AU>Ae.max){if(AT>Ae.max){continue}Ab=(Ae.max-AU)/(AT-AU)*(AZ-Ab)+Ab;AU=Ae.max}else{if(AT>=AU&&AT>Ae.max){if(AU>Ae.max){continue}AZ=(Ae.max-AU)/(AT-AU)*(AZ-Ab)+Ab;AT=Ae.max}}if(!Ad){Y.beginPath();Y.moveTo(Ae.p2c(AU),Ac.p2c(AS));Ad=true}if(Ab>=Ac.max&&AZ>=Ac.max){Y.lineTo(Ae.p2c(AU),Ac.p2c(Ac.max));Y.lineTo(Ae.p2c(AT),Ac.p2c(Ac.max));AV=AT;continue}else{if(Ab<=Ac.min&&AZ<=Ac.min){Y.lineTo(Ae.p2c(AU),Ac.p2c(Ac.min));Y.lineTo(Ae.p2c(AT),Ac.p2c(Ac.min));AV=AT;continue}}var Ag=AU,AY=AT;if(Ab<=AZ&&Ab=Ac.min){AU=(Ac.min-Ab)/(AZ-Ab)*(AT-AU)+AU;Ab=Ac.min}else{if(AZ<=Ab&&AZ=Ac.min){AT=(Ac.min-Ab)/(AZ-Ab)*(AT-AU)+AU;AZ=Ac.min}}if(Ab>=AZ&&Ab>Ac.max&&AZ<=Ac.max){AU=(Ac.max-Ab)/(AZ-Ab)*(AT-AU)+AU;Ab=Ac.max}else{if(AZ>=Ab&&AZ>Ac.max&&Ab<=Ac.max){AT=(Ac.max-Ab)/(AZ-Ab)*(AT-AU)+AU;AZ=Ac.max}}if(AU!=Ag){if(Ab<=Ac.min){Aa=Ac.min}else{Aa=Ac.max}Y.lineTo(Ae.p2c(Ag),Ac.p2c(Aa));Y.lineTo(Ae.p2c(AU),Ac.p2c(Aa))}Y.lineTo(Ae.p2c(AU),Ac.p2c(Ab));Y.lineTo(Ae.p2c(AT),Ac.p2c(AZ));if(AT!=AY){if(AZ<=Ac.min){Aa=Ac.min}else{Aa=Ac.max}Y.lineTo(Ae.p2c(AT),Ac.p2c(Aa));Y.lineTo(Ae.p2c(AY),Ac.p2c(Aa))}AV=Math.max(AT,AY)}if(Ad){Y.lineTo(Ae.p2c(AV),Ac.p2c(AS));Y.fill()}}Y.save();Y.translate(e.left,e.top);Y.lineJoin="round";var AP=AN.lines.lineWidth,AK=AN.shadowSize;if(AP>0&&AK>0){Y.lineWidth=AK;Y.strokeStyle="rgba(0,0,0,0.1)";var AQ=Math.PI/18;AM(AN.datapoints,Math.sin(AQ)*(AP/2+AK/2),Math.cos(AQ)*(AP/2+AK/2),AN.xaxis,AN.yaxis);Y.lineWidth=AK/2;AM(AN.datapoints,Math.sin(AQ)*(AP/2+AK/4),Math.cos(AQ)*(AP/2+AK/4),AN.xaxis,AN.yaxis)}Y.lineWidth=AP;Y.strokeStyle=AN.color;var AL=V(AN.lines,AN.color,0,t);if(AL){Y.fillStyle=AL;AO(AN.datapoints,AN.xaxis,AN.yaxis)}if(AP>0){AM(AN.datapoints,0,0,AN.xaxis,AN.yaxis)}Y.restore()}function o(AN){function AP(AU,AT,Ab,AR,AV,AZ,AY){var Aa=AU.points,AQ=AU.pointsize;for(var AS=0;ASAZ.max||AWAY.max){continue}Y.beginPath();Y.arc(AZ.p2c(AX),AY.p2c(AW)+AR,AT,0,AV,false);if(Ab){Y.fillStyle=Ab;Y.fill()}Y.stroke()}}Y.save();Y.translate(e.left,e.top);var AO=AN.lines.lineWidth,AL=AN.shadowSize,AK=AN.points.radius;if(AO>0&&AL>0){var AM=AL/2;Y.lineWidth=AM;Y.strokeStyle="rgba(0,0,0,0.1)";AP(AN.datapoints,AK,null,AM+AM/2,Math.PI,AN.xaxis,AN.yaxis);Y.strokeStyle="rgba(0,0,0,0.2)";AP(AN.datapoints,AK,null,AM/2,Math.PI,AN.xaxis,AN.yaxis)}Y.lineWidth=AO;Y.strokeStyle=AN.color;AP(AN.datapoints,AK,V(AN.points,AN.color),0,2*Math.PI,AN.xaxis,AN.yaxis);Y.restore()}function AB(AV,AU,Ad,AQ,AY,AN,AL,AT,AS,Ac,AZ){var AM,Ab,AR,AX,AO,AK,AW,AP,Aa;if(AZ){AP=AK=AW=true;AO=false;AM=Ad;Ab=AV;AX=AU+AQ;AR=AU+AY;if(AbAT.max||AXAS.max){return }if(AMAT.max){Ab=AT.max;AK=false}if(ARAS.max){AX=AS.max;AW=false}AM=AT.p2c(AM);AR=AS.p2c(AR);Ab=AT.p2c(Ab);AX=AS.p2c(AX);if(AL){Ac.beginPath();Ac.moveTo(AM,AR);Ac.lineTo(AM,AX);Ac.lineTo(Ab,AX);Ac.lineTo(Ab,AR);Ac.fillStyle=AL(AR,AX);Ac.fill()}if(AO||AK||AW||AP){Ac.beginPath();Ac.moveTo(AM,AR+AN);if(AO){Ac.lineTo(AM,AX+AN)}else{Ac.moveTo(AM,AX+AN)}if(AW){Ac.lineTo(Ab,AX+AN)}else{Ac.moveTo(Ab,AX+AN)}if(AK){Ac.lineTo(Ab,AR+AN)}else{Ac.moveTo(Ab,AR+AN)}if(AP){Ac.lineTo(AM,AR+AN)}else{Ac.moveTo(AM,AR+AN)}Ac.stroke()}}function n(AM){function AL(AS,AR,AU,AP,AT,AW,AV){var AX=AS.points,AO=AS.pointsize;for(var AQ=0;AQ")}AP.push("");AN=true}if(AV){AR=AV(AR,AU)}AP.push('
'+AR+"")}if(AN){AP.push("")}if(AP.length==0){return }var AT=''+AP.join("")+"
";if(g.legend.container!=null){C(g.legend.container).html(AT)}else{var AQ="",AL=g.legend.position,AM=g.legend.margin;if(AM[0]==null){AM=[AM,AM]}if(AL.charAt(0)=="n"){AQ+="top:"+(AM[1]+e.top)+"px;"}else{if(AL.charAt(0)=="s"){AQ+="bottom:"+(AM[1]+e.bottom)+"px;"}}if(AL.charAt(1)=="e"){AQ+="right:"+(AM[0]+e.right)+"px;"}else{if(AL.charAt(1)=="w"){AQ+="left:"+(AM[0]+e.left)+"px;"}}var AS=C('
'+AT.replace('style="','style="position:absolute;'+AQ+";")+"
").appendTo(l);if(g.legend.backgroundOpacity!=0){var AO=g.legend.backgroundColor;if(AO==null){AO=g.grid.backgroundColor;if(AO&&typeof AO=="string"){AO=C.color.parse(AO)}else{AO=C.color.extract(AS,"background-color")}AO.a=1;AO=AO.toString()}var AK=AS.children();C('
').prependTo(AS).css("opacity",g.legend.backgroundOpacity)}}}var w=[],J=null;function AF(AR,AP,AM){var AX=g.grid.mouseActiveRadius,Aj=AX*AX+1,Ah=null,Aa=false,Af,Ad;for(Af=0;AfAL||AT-AZ<-AL||AS-AW>AK||AS-AW<-AK){continue}var AV=Math.abs(AQ.p2c(AT)-AR),AU=Math.abs(AO.p2c(AS)-AP),Ab=AV*AV+AU*AU;if(Ab<=Aj){Aj=Ab;Ah=[Af,Ad/Ac]}}}if(AY.bars.show&&!Ah){var AN=AY.bars.align=="left"?0:-AY.bars.barWidth/2,Ag=AN+AY.bars.barWidth;for(Ad=0;Ad=Math.min(Ai,AT)&&AW>=AS+AN&&AW<=AS+Ag):(AZ>=AT+AN&&AZ<=AT+Ag&&AW>=Math.min(Ai,AS)&&AW<=Math.max(Ai,AS))){Ah=[Af,Ad/Ac]}}}}if(Ah){Af=Ah[0];Ad=Ah[1];Ac=O[Af].datapoints.pointsize;return{datapoint:O[Af].datapoints.points.slice(Ad*Ac,(Ad+1)*Ac),dataIndex:Ad,series:O[Af],seriesIndex:Af}}return null}function D(AK){if(g.grid.hoverable){H("plothover",AK,function(AL){return AL.hoverable!=false})}}function d(AK){H("plotclick",AK,function(AL){return AL.clickable!=false})}function H(AL,AK,AM){var AN=AD.offset(),AS={pageX:AK.pageX,pageY:AK.pageY},AQ=AK.pageX-AN.left-e.left,AO=AK.pageY-AN.top-e.top;if(s.xaxis.used){AS.x=s.xaxis.c2p(AQ)}if(s.yaxis.used){AS.y=s.yaxis.c2p(AO)}if(s.x2axis.used){AS.x2=s.x2axis.c2p(AQ)}if(s.y2axis.used){AS.y2=s.y2axis.c2p(AO)}var AT=AF(AQ,AO,AM);if(AT){AT.pageX=parseInt(AT.series.xaxis.p2c(AT.datapoint[0])+AN.left+e.left);AT.pageY=parseInt(AT.series.yaxis.p2c(AT.datapoint[1])+AN.top+e.top)}if(g.grid.autoHighlight){for(var AP=0;APAQ.max||ARAP.max){return }var AO=AN.points.radius+AN.points.lineWidth/2;AJ.lineWidth=AO;AJ.strokeStyle=C.color.parse(AN.color).scale("a",0.5).toString();var AK=1.5*AO;AJ.beginPath();AJ.arc(AQ.p2c(AL),AP.p2c(AR),AK,0,2*Math.PI,false);AJ.stroke()}function z(AN,AK){AJ.lineWidth=AN.bars.lineWidth;AJ.strokeStyle=C.color.parse(AN.color).scale("a",0.5).toString();var AM=C.color.parse(AN.color).scale("a",0.5).toString();var AL=AN.bars.align=="left"?0:-AN.bars.barWidth/2;AB(AK[0],AK[1],AK[2]||0,AL,AL+AN.bars.barWidth,0,function(){return AM},AN.xaxis,AN.yaxis,AJ,AN.bars.horizontal)}function R(AM,AL,AQ,AO){if(typeof AM=="string"){return AM}else{var AP=Y.createLinearGradient(0,AQ,0,AL);for(var AN=0,AK=AM.colors.length;AN12){K=K-12}else{if(K==0){K=12}}}for(var F=0;FQ?Q:S)}function C(U,R){var T=J.getOptions();var S=J.getPlaceholder().offset();var Q=J.getPlotOffset();U.x=G(0,R.pageX-S.left-Q.left,J.width());U.y=G(0,R.pageY-S.top-Q.top,J.height());if(T.selection.mode=="y"){U.x=U==O.first?0:J.width()}if(T.selection.mode=="x"){U.y=U==O.first?0:J.height()}}function K(Q){if(Q.pageX==null){return }C(O.second,Q);if(E()){O.show=true;J.triggerRedrawOverlay()}else{P(true)}}function P(Q){if(O.show){O.show=false;J.triggerRedrawOverlay();if(!Q){J.getPlaceholder().trigger("plotunselected",[])}}}function N(R,Q){var T,S,U=J.getAxes();var V=J.getOptions();if(V.selection.mode=="y"){O.first.x=0;O.second.x=J.width()}else{T=R.xaxis?U.xaxis:(R.x2axis?U.x2axis:U.xaxis);S=R.xaxis||R.x2axis||{from:R.x1,to:R.x2};O.first.x=T.p2c(Math.min(S.from,S.to));O.second.x=T.p2c(Math.max(S.from,S.to))}if(V.selection.mode=="x"){O.first.y=0;O.second.y=J.height()}else{T=R.yaxis?U.yaxis:(R.y2axis?U.y2axis:U.yaxis);S=R.yaxis||R.y2axis||{from:R.y1,to:R.y2};O.first.y=T.p2c(Math.min(S.from,S.to));O.second.y=T.p2c(Math.max(S.from,S.to))}O.show=true;J.triggerRedrawOverlay();if(!Q){H()}}function E(){var Q=5;return Math.abs(O.second.x-O.first.x)>=Q&&Math.abs(O.second.y-O.first.y)>=Q}J.clearSelection=P;J.setSelection=N;J.getSelection=F;J.hooks.bindEvents.push(function(R,Q){var S=R.getOptions();if(S.selection.mode!=null){Q.mousemove(D)}if(S.selection.mode!=null){Q.mousedown(M)}});J.hooks.drawOverlay.push(function(T,Y){if(O.show&&E()){var R=T.getPlotOffset();var Q=T.getOptions();Y.save();Y.translate(R.left,R.top);var U=A.color.parse(Q.selection.color);Y.strokeStyle=U.scale("a",0.8).toString();Y.lineWidth=1;Y.lineJoin="round";Y.fillStyle=U.scale("a",0.4).toString();var W=Math.min(O.first.x,O.second.x),V=Math.min(O.first.y,O.second.y),X=Math.abs(O.second.x-O.first.x),S=Math.abs(O.second.y-O.first.y);Y.fillRect(W,V,X,S);Y.strokeRect(W,V,X,S);Y.restore()}})}A.plot.plugins.push({init:B,options:{selection:{mode:null,color:"#e8cfac"}},name:"selection",version:"1.0"})})(jQuery); \ No newline at end of file diff --git a/htdocs/static/js/jquery-1.4.2.min.js b/htdocs/static/js/jquery-1.4.2.min.js new file mode 100644 index 00000000..7c243080 --- /dev/null +++ b/htdocs/static/js/jquery-1.4.2.min.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/htdocs/static/js/jquery.dataTables.min.js b/htdocs/static/js/jquery.dataTables.min.js new file mode 100644 index 00000000..bcf9c984 --- /dev/null +++ b/htdocs/static/js/jquery.dataTables.min.js @@ -0,0 +1,587 @@ +/* + * File: jquery.dataTables.min.js + * Version: 1.6.2 + * Author: Allan Jardine (www.sprymedia.co.uk) + * Info: www.datatables.net + * + * Copyright 2008-2010 Allan Jardine, all rights reserved. + * + * This source file is free software, under either the GPL v2 license or a + * BSD style license, as supplied with this software. + * + * This source file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. + */ +(function($){$.fn.dataTableSettings=[];var _aoSettings=$.fn.dataTableSettings;$.fn.dataTableExt={}; +var _oExt=$.fn.dataTableExt;_oExt.sVersion="1.6.2";_oExt.iApiIndex=0;_oExt.oApi={}; +_oExt.afnFiltering=[];_oExt.aoFeatures=[];_oExt.ofnSearch={};_oExt.afnSortData=[]; +_oExt.oStdClasses={sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",sPageButtonStaticDisabled:"paginate_button",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:""}; +_oExt.oJUIClasses={sPagePrevEnabled:"fg-button ui-state-default ui-corner-left",sPagePrevDisabled:"fg-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-state-default",sPageButtonActive:"fg-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-state-default ui-state-disabled",sPageFirst:"first ui-corner-tl ui-corner-bl",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last ui-corner-tr ui-corner-br",sStripOdd:"odd",sStripEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate fg-buttonset fg-buttonset-multi paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortColumn:"sorting_",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s"}; +_oExt.oPagination={two_button:{fnInit:function(oSettings,nPaging,fnCallbackDraw){var nPrevious,nNext,nPreviousInner,nNextInner; +if(!oSettings.bJUI){nPrevious=document.createElement("div");nNext=document.createElement("div") +}else{nPrevious=document.createElement("a");nNext=document.createElement("a");nNextInner=document.createElement("span"); +nNextInner.className=oSettings.oClasses.sPageJUINext;nNext.appendChild(nNextInner); +nPreviousInner=document.createElement("span");nPreviousInner.className=oSettings.oClasses.sPageJUIPrev; +nPrevious.appendChild(nPreviousInner)}nPrevious.className=oSettings.oClasses.sPagePrevDisabled; +nNext.className=oSettings.oClasses.sPageNextDisabled;nPrevious.title=oSettings.oLanguage.oPaginate.sPrevious; +nNext.title=oSettings.oLanguage.oPaginate.sNext;nPaging.appendChild(nPrevious);nPaging.appendChild(nNext); +$(nPrevious).click(function(){if(oSettings.oApi._fnPageChange(oSettings,"previous")){fnCallbackDraw(oSettings) +}});$(nNext).click(function(){if(oSettings.oApi._fnPageChange(oSettings,"next")){fnCallbackDraw(oSettings) +}});$(nPrevious).bind("selectstart",function(){return false});$(nNext).bind("selectstart",function(){return false +});if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.p=="undefined"){nPaging.setAttribute("id",oSettings.sTableId+"_paginate"); +nPrevious.setAttribute("id",oSettings.sTableId+"_previous");nNext.setAttribute("id",oSettings.sTableId+"_next") +}},fnUpdate:function(oSettings,fnCallbackDraw){if(!oSettings.aanFeatures.p){return +}var an=oSettings.aanFeatures.p;for(var i=0,iLen=an.length;i=(iPages-iPageCountHalf)){iStartButton=iPages-iPageCount+1; +iEndButton=iPages}else{iStartButton=iCurrentPage-Math.ceil(iPageCount/2)+1;iEndButton=iStartButton+iPageCount-1 +}}}for(i=iStartButton;i<=iEndButton;i++){if(iCurrentPage!=i){sList+=''+i+"" +}else{sList+=''+i+""}}var an=oSettings.aanFeatures.p; +var anButtons,anStatic,nPaginateList;var fnClick=function(){var iTarget=(this.innerHTML*1)-1; +oSettings._iDisplayStart=iTarget*oSettings._iDisplayLength;fnCallbackDraw(oSettings); +return false};var fnFalse=function(){return false};for(i=0,iLen=an.length;iy)?1:0))},"string-desc":function(a,b){var x=a.toLowerCase(); +var y=b.toLowerCase();return((xy)?-1:0))},"html-asc":function(a,b){var x=a.replace(/<.*?>/g,"").toLowerCase(); +var y=b.replace(/<.*?>/g,"").toLowerCase();return((xy)?1:0))},"html-desc":function(a,b){var x=a.replace(/<.*?>/g,"").toLowerCase(); +var y=b.replace(/<.*?>/g,"").toLowerCase();return((xy)?-1:0))},"date-asc":function(a,b){var x=Date.parse(a); +var y=Date.parse(b);if(isNaN(x)){x=Date.parse("01/01/1970 00:00:00")}if(isNaN(y)){y=Date.parse("01/01/1970 00:00:00") +}return x-y},"date-desc":function(a,b){var x=Date.parse(a);var y=Date.parse(b);if(isNaN(x)){x=Date.parse("01/01/1970 00:00:00") +}if(isNaN(y)){y=Date.parse("01/01/1970 00:00:00")}return y-x},"numeric-asc":function(a,b){var x=a=="-"?0:a; +var y=b=="-"?0:b;return x-y},"numeric-desc":function(a,b){var x=a=="-"?0:a;var y=b=="-"?0:b; +return y-x}};_oExt.aTypes=[function(sData){if(typeof sData=="number"){return"numeric" +}else{if(typeof sData.charAt!="function"){return null}}var sValidFirstChars="0123456789-"; +var sValidChars="0123456789.";var Char;var bDecimal=false;Char=sData.charAt(0);if(sValidFirstChars.indexOf(Char)==-1){return null +}for(var i=1;i=parseInt(sThat,10)};this.fnSort=function(aaSort){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]); +oSettings.aaSorting=aaSort;_fnSort(oSettings)};this.fnSortListener=function(nNode,iColumn,fnCallback){_fnSortAttachListener(_fnSettingsFromNode(this[_oExt.iApiIndex]),nNode,iColumn,fnCallback) +};this.fnAddData=function(mData,bRedraw){if(mData.length===0){return[]}var aiReturn=[]; +var iTest;var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]);if(typeof mData[0]=="object"){for(var i=0; +i=oSettings.aiDisplay.length){oSettings._iDisplayStart-=oSettings._iDisplayLength; +if(oSettings._iDisplayStart<0){oSettings._iDisplayStart=0}}_fnCalculateEnd(oSettings); +_fnDraw(oSettings);var aData=oSettings.aoData[iAODataIndex]._aData.slice();if(typeof bNullRow!="undefined"&&bNullRow===true){oSettings.aoData[iAODataIndex]=null +}return aData};this.fnClearTable=function(bRedraw){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]); +_fnClearTable(oSettings);if(typeof bRedraw=="undefined"||bRedraw){_fnDraw(oSettings) +}};this.fnOpen=function(nTr,sHtml,sClass){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]); +this.fnClose(nTr);var nNewRow=document.createElement("tr");var nNewCell=document.createElement("td"); +nNewRow.appendChild(nNewCell);nNewCell.className=sClass;nNewCell.colSpan=_fnVisbleColumns(oSettings); +nNewCell.innerHTML=sHtml;var nTrs=$("tbody tr",oSettings.nTable);if($.inArray(nTr,nTrs)!=-1){$(nNewRow).insertAfter(nTr) +}if(!oSettings.oFeatures.bServerSide){oSettings.aoOpenRows.push({nTr:nNewRow,nParent:nTr}) +}return nNewRow};this.fnClose=function(nTr){var oSettings=_fnSettingsFromNode(this[_oExt.iApiIndex]); +for(var i=0;itr",oSettings.nTable)[0];var nTrFoot=$("tfoot:eq(0)>tr",oSettings.nTable)[0]; +var anTheadTh=[];var anTfootTh=[];for(i=0;i=_fnVisbleColumns(oSettings)){nTrHead.appendChild(anTheadTh[iCol]); +if(nTrFoot){nTrFoot.appendChild(anTfootTh[iCol])}for(i=0,iLen=oSettings.aoData.length; +itd:eq("+iBefore+")",oSettings.aoData[i].nTr)[0]) +}}oSettings.aoColumns[iCol].bVisible=true}else{nTrHead.removeChild(anTheadTh[iCol]); +if(nTrFoot){nTrFoot.removeChild(anTfootTh[iCol])}anTds=_fnGetTdNodes(oSettings);for(i=0,iLen=oSettings.aoData.length; +i=oSettings.fnRecordsDisplay())?0:oSettings.iInitDisplayStart; +oSettings.iInitDisplayStart=-1;_fnCalculateEnd(oSettings)}if(oSettings.aiDisplay.length!==0){var iStart=oSettings._iDisplayStart; +var iEnd=oSettings._iDisplayEnd;if(oSettings.oFeatures.bServerSide){iStart=0;iEnd=oSettings.aoData.length +}for(var j=iStart;jtr",oSettings.nTable)[0],_fnGetDataMaster(oSettings),oSettings._iDisplayStart,oSettings.fnDisplayEnd(),oSettings.aiDisplay) +}if(typeof oSettings.fnFooterCallback=="function"){oSettings.fnFooterCallback($("tfoot:eq(0)>tr",oSettings.nTable)[0],_fnGetDataMaster(oSettings),oSettings._iDisplayStart,oSettings.fnDisplayEnd(),oSettings.aiDisplay) +}var nBody=oSettings.nTable.getElementsByTagName("tbody");if(nBody[0]){var nTrs=nBody[0].childNodes; +for(i=nTrs.length-1;i>=0;i--){nTrs[i].parentNode.removeChild(nTrs[i])}for(i=0,iLen=anRows.length; +i"){nInsertNode=nInsertNode.parentNode}else{if(cOption=="l"&&oSettings.oFeatures.bPaginate&&oSettings.oFeatures.bLengthChange){nTmp=_fnFeatureHtmlLength(oSettings); +iPushFeature=1}else{if(cOption=="f"&&oSettings.oFeatures.bFilter){nTmp=_fnFeatureHtmlFilter(oSettings); +iPushFeature=1}else{if(cOption=="r"&&oSettings.oFeatures.bProcessing){nTmp=_fnFeatureHtmlProcessing(oSettings); +iPushFeature=1}else{if(cOption=="t"){nTmp=oSettings.nTable;iPushFeature=1}else{if(cOption=="i"&&oSettings.oFeatures.bInfo){nTmp=_fnFeatureHtmlInfo(oSettings); +iPushFeature=1}else{if(cOption=="p"&&oSettings.oFeatures.bPaginate){nTmp=_fnFeatureHtmlPaginate(oSettings); +iPushFeature=1}else{if(_oExt.aoFeatures.length!==0){var aoFeatures=_oExt.aoFeatures; +for(var k=0,kLen=aoFeatures.length;k';var jqFilter=$("input",nFilter); +jqFilter.val(oSettings.oPreviousSearch.sSearch.replace('"',"""));jqFilter.keyup(function(e){var n=oSettings.aanFeatures.f; +for(var i=0,iLen=n.length;i=0; +i--){var sData=_fnDataToSearch(oSettings.aoData[oSettings.aiDisplay[i]]._aData[iColumn],oSettings.aoColumns[iColumn].sType); +if(!rpSearch.test(sData)){oSettings.aiDisplay.splice(i,1);iIndexCorrector++}}}function _fnFilter(oSettings,sInput,iForce,bEscapeRegex){var i; +if(typeof iForce=="undefined"||iForce===null){iForce=0}if(_oExt.afnFiltering.length!==0){iForce=1 +}var asSearch=bEscapeRegex?_fnEscapeRegex(sInput).split(" "):sInput.split(" ");var sRegExpString="^(?=.*?"+asSearch.join(")(?=.*?")+").*$"; +var rpSearch=new RegExp(sRegExpString,"i");if(sInput.length<=0){oSettings.aiDisplay.splice(0,oSettings.aiDisplay.length); +oSettings.aiDisplay=oSettings.aiDisplayMaster.slice()}else{if(oSettings.aiDisplay.length==oSettings.aiDisplayMaster.length||oSettings.oPreviousSearch.sSearch.length>sInput.length||iForce==1||sInput.indexOf(oSettings.oPreviousSearch.sSearch)!==0){oSettings.aiDisplay.splice(0,oSettings.aiDisplay.length); +_fnBuildSearchArray(oSettings,1);for(i=0;i/g,"")}else{if(typeof sData=="string"){return sData.replace(/\n/g," ") +}}}return sData}function _fnSort(oSettings,bApplyClasses){var aaSort=[];var oSort=_oExt.oSort; +var aoData=oSettings.aoData;var iDataSort;var iDataType;var i,j,jLen;if(!oSettings.oFeatures.bServerSide&&(oSettings.aaSorting.length!==0||oSettings.aaSortingFixed!==null)){if(oSettings.aaSortingFixed!==null){aaSort=oSettings.aaSortingFixed.concat(oSettings.aaSorting) +}else{aaSort=oSettings.aaSorting.slice()}for(i=0;i=iColumns){for(i=0;i=0?oSettings._iDisplayStart-oSettings._iDisplayLength:0; +if(oSettings._iDisplayStart<0){oSettings._iDisplayStart=0}}else{if(sAction=="next"){if(oSettings._iDisplayLength>=0){if(oSettings._iDisplayStart+oSettings._iDisplayLength=0){var iPages=parseInt((oSettings.fnRecordsDisplay()-1)/oSettings._iDisplayLength,10)+1; +oSettings._iDisplayStart=(iPages-1)*oSettings._iDisplayLength}else{oSettings._iDisplayStart=0 +}}else{alert("DataTables warning: unknown paging action: "+sAction)}}}}return iOldStart!=oSettings._iDisplayStart +}function _fnFeatureHtmlInfo(oSettings){var nInfo=document.createElement("div");nInfo.className=oSettings.oClasses.sInfo; +if(typeof oSettings.aanFeatures.i=="undefined"){oSettings.aoDrawCallback.push({fn:_fnUpdateInfo,sName:"information"}); +if(oSettings.sTableId!==""){nInfo.setAttribute("id",oSettings.sTableId+"_info")}}return nInfo +}function _fnUpdateInfo(oSettings){if(!oSettings.oFeatures.bInfo||oSettings.aanFeatures.i.length===0){return +}var nFirst=oSettings.aanFeatures.i[0];if(oSettings.fnRecordsDisplay()===0&&oSettings.fnRecordsDisplay()==oSettings.fnRecordsTotal()){nFirst.innerHTML=oSettings.oLanguage.sInfoEmpty+oSettings.oLanguage.sInfoPostFix +}else{if(oSettings.fnRecordsDisplay()===0){nFirst.innerHTML=oSettings.oLanguage.sInfoEmpty+" "+oSettings.oLanguage.sInfoFiltered.replace("_MAX_",oSettings.fnRecordsTotal())+oSettings.oLanguage.sInfoPostFix +}else{if(oSettings.fnRecordsDisplay()==oSettings.fnRecordsTotal()){nFirst.innerHTML=oSettings.oLanguage.sInfo.replace("_START_",oSettings._iDisplayStart+1).replace("_END_",oSettings.fnDisplayEnd()).replace("_TOTAL_",oSettings.fnRecordsDisplay())+oSettings.oLanguage.sInfoPostFix +}else{nFirst.innerHTML=oSettings.oLanguage.sInfo.replace("_START_",oSettings._iDisplayStart+1).replace("_END_",oSettings.fnDisplayEnd()).replace("_TOTAL_",oSettings.fnRecordsDisplay())+" "+oSettings.oLanguage.sInfoFiltered.replace("_MAX_",oSettings.fnRecordsTotal())+oSettings.oLanguage.sInfoPostFix +}}}var n=oSettings.aanFeatures.i;if(n.length>1){var sInfo=nFirst.innerHTML;for(var i=1,iLen=n.length; +i'; +var nLength=document.createElement("div");if(oSettings.sTableId!==""&&typeof oSettings.aanFeatures.l=="undefined"){nLength.setAttribute("id",oSettings.sTableId+"_length") +}nLength.className=oSettings.oClasses.sLength;nLength.innerHTML=oSettings.oLanguage.sLengthMenu.replace("_MENU_",sStdMenu); +$('select option[value="'+oSettings._iDisplayLength+'"]',nLength).attr("selected",true); +$("select",nLength).change(function(e){var iVal=$(this).val();var n=oSettings.aanFeatures.l; +for(var i=0,iLen=n.length;ioSettings.aiDisplay.length||oSettings._iDisplayLength==-1){oSettings._iDisplayEnd=oSettings.aiDisplay.length +}else{oSettings._iDisplayEnd=oSettings._iDisplayStart+oSettings._iDisplayLength}}}function _fnConvertToWidth(sWidth,nParent){if(!sWidth||sWidth===null||sWidth===""){return 0 +}if(typeof nParent=="undefined"){nParent=document.getElementsByTagName("body")[0] +}var iWidth;var nTmp=document.createElement("div");nTmp.style.width=sWidth;nParent.appendChild(nTmp); +iWidth=nTmp.offsetWidth;nParent.removeChild(nTmp);return(iWidth)}function _fnCalculateColumnWidths(oSettings){var iTableWidth=oSettings.nTable.offsetWidth; +var iTotalUserIpSize=0;var iTmpWidth;var iVisibleColumns=0;var iColums=oSettings.aoColumns.length; +var i;var oHeaders=$("thead:eq(0)>th",oSettings.nTable);for(i=0;i';var sCalcHead="";var sCalcHtml=""; +for(i=0;i"+oSettings.aoColumns[i].sTitle+""; +if(oSettings.aoColumns[i].sWidth!==null){var sWidth="";if(oSettings.aoColumns[i].sWidth!==null){sWidth=' style="width:'+oSettings.aoColumns[i].sWidth+';"' +}sCalcHtml+="'+fnGetMaxLenString(oSettings,i)+"" +}else{sCalcHtml+=''+fnGetMaxLenString(oSettings,i)+""}}}sCalcHead+=""; +sCalcHtml+="";nCalcTmp=$(sTableTmp+sCalcHead+sCalcHtml+"")[0];nCalcTmp.style.width=iTableWidth+"px"; +nCalcTmp.style.visibility="hidden";nCalcTmp.style.position="absolute";oSettings.nTable.parentNode.appendChild(nCalcTmp); +var oNodes=$("tr:eq(1)>td",nCalcTmp);var iIndex;for(i=0;iiMax){iMax=oSettings.aoData[i]._aData[iCol].length; +iMaxIndex=i}}if(iMaxIndex>=0){return oSettings.aoData[iMaxIndex]._aData[iCol]}return"" +}function _fnArrayCmp(aArray1,aArray2){if(aArray1.length!=aArray2.length){return 1 +}for(var i=0;it<"F"ip>'}}if(typeof oInit.iDisplayStart!="undefined"&&typeof oSettings.iInitDisplayStart=="undefined"){oSettings.iInitDisplayStart=oInit.iDisplayStart; +oSettings._iDisplayStart=oInit.iDisplayStart}if(typeof oInit.bStateSave!="undefined"){oSettings.oFeatures.bStateSave=oInit.bStateSave; +_fnLoadState(oSettings,oInit);oSettings.aoDrawCallback.push({fn:_fnSaveState,sName:"state_save"}) +}if(typeof oInit.aaData!="undefined"){bUsePassedData=true}if(typeof oInit!="undefined"&&typeof oInit.aoData!="undefined"){oInit.aoColumns=oInit.aoData +}if(typeof oInit.oLanguage!="undefined"){if(typeof oInit.oLanguage.sUrl!="undefined"&&oInit.oLanguage.sUrl!==""){oSettings.oLanguage.sUrl=oInit.oLanguage.sUrl; +$.getJSON(oSettings.oLanguage.sUrl,null,function(json){_fnLanguageProcess(oSettings,json,true) +});bInitHandedOff=true}else{_fnLanguageProcess(oSettings,oInit.oLanguage,false)}}}else{oInit={} +}if(typeof oInit.asStripClasses=="undefined"){oSettings.asStripClasses.push(oSettings.oClasses.sStripOdd); +oSettings.asStripClasses.push(oSettings.oClasses.sStripEven)}var nThead=this.getElementsByTagName("thead"); +var nThs=nThead.length===0?null:_fnGetUniqueThs(nThead[0]);var bUseCols=typeof oInit.aoColumns!="undefined"; +for(i=0,iLen=bUseCols?oInit.aoColumns.length:nThs.length;i35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('6o(k($){c 1F=6F.1F.2F();c 58=(1F.6i(/.+(?:7N|6h|7w|6g|44)[\\/: ]([\\d.]+)/)||[0,\'0\'])[1];c 26=(/44/.22(1F)&&!/6g/.22(1F)&&6b(58)<7&&(!14.67||3Z(67)===\'k\'));c U=$(\'U\');c 4;c 4X;c 32=m;c W={};c 2r=m;c 2g;c 30;c 5={3W:m,1N:m,1q:m,16:m,2p:m,1G:m,1r:m,1K:m,3V:m,1B:m,1g:D,2a:D,1n:D,15:D,P:D,j:D,l:D,N:D,C:D,3S:1S 2X(),3R:1S 2X()};c 1o={8:m,b:m,2K:m};c 1j={8:D,b:D,2K:p};c 4M;$.1C.K=k(f){6(!R)u m;u R.3Q(k(){c 3P=$(R);6(R.3k.2F()==\'23\'){3P.1D(\'4J.K\').1Y(\'4J.K\',k(e){6(e.5E())u m;6(3P.L(\'4H\'))u p;6(R.5A==\'5y/23-L\'){1O($.Q(f,{E:R}));u p}e.1U();1O($.Q(f,{E:R}));u m})}q{3P.1D(\'1u.K\').1Y(\'1u.K\',k(e){6(e.5E())u m;e.1U();1O($.Q(f,{E:R}));u m})}})};$.1C.3O=k(f){6(!R.1i)1O(f);u R.3Q(k(){1O($.Q(f,{E:R}))})};$.3O=k(f){1O(f)};$.3N=k(f,1m,28){Z(f,1m,28);6(!1m&&5.3W){6(5.15&&f.2Y)4.3L(5,4,k(){});6(5.C&&f.O)4v();6(!5.1B&&(f.2K||(!5.1K&&((\'8\'3I f&&f.8==4.8)||(\'b\'3I f&&f.b==4.b))))){5.1K=p;6(5.C)3H(p);6(5.C&&5.C.6C(\':4q\')&&!5.2p){6(2r)5.l.o({12:\'\'});4.2A(5,4,k(){4.2K=m;5.1K=m;6(2r)5.l.o({12:\'4n\'});6($.1J(4.4k))4.4k(5,4)})}}}};$.7J=k(){1V()};$.2B=k(){c 2D=2W(1);6(2D)u 2D.3O(2L());u m};$.2I=k(){c 2D=2W(-1);6(2D)u 2D.3O(2L());u m};$.1C.K.f={H:m,1g:m,6j:p,5:m,F:\'\',3G:D,E:\'\',34:\'\',4h:D,3c:\'7M\',3F:\'K\',l:D,2Y:\'#6y\',21:{},1e:{6U:\'7p\'},8:D,b:D,4b:2n,4a:5I,5H:p,5D:p,1l:25,5s:\'[^\\.]\\.(74|7b|7c|7d|7e|7l)\\s*$\',5h:m,54:\'51\',5d:p,5c:p,W:D,59:\'6W72\',2t:2t,6d:m,33:1p,1b:{15:{12:\'36\',1E:\'2b\',1f:0,1h:0,b:\'1p%\',8:\'1p%\'},N:{12:\'36\',1f:\'50%\',1h:\'50%\'},3i:{},l:{},P:{12:\'36\',1f:\'50%\',1h:\'50%\',V:\'-3A\',S:\'-3A\'}},3m:{v:\'\',21:\'\',23:\'\',4Q:\'\',1v:\'\',1e:\'\',B:\'\',3x:\'\',6f:\'\'},5a:\'5X\',O:D,5Q:p,4r:\'.K\',3v:\'.3w\',5r:\'6A\',5q:\'1B\',60:\'6I 6K l 6N 6Q 6T.<3u />6V 5C 6X 6Y.<3u />5X\',4T:D,3t:3t,2v:2v,4N:D,3s:3s,2f:D,4u:D,3b:3b,3r:3r,3q:3q,3p:3p,3f:3f,2A:2A,4k:D,3L:3L,1Z:D};k 1O(f){6(5.1G||5.1r||5.16)u;H(\'1O\');5.3W=p;4X=$.Q(p,f);4Z(f);6(!5.1n)5.2a=5.1g=D;5.1B=m;5.3V=m;5.1q=m;5.3S=1S 2X();5.3R=1S 2X();4.F=5w();6(4.3G){6(!4.l)4.E=p;4.F=4.3G;4.3G=D}6($.1J(4.4h))4.4h(4);c E=4.E;c t=4.t;1j.8=4.8;1j.b=4.b;6(4.F==\'1e\'){Z({1E:\'4q\'},\'1b\',\'l\');4.l=\'<4S 7O="7T:7K-6p-6s-6t-6w" 8="\'+4.8+\'" b="\'+4.b+\'"><3o 1c="6B" 2H="\'+t+\'">\';c j=\'\';$.3Q(4.1e,k(1c,4l){4.l+=\'<3o 1c="\'+1c+\'" 2H="\'+4l+\'">\';j+=\' \'+1c+\'="\'+4l+\'"\'});4.l+=\'<4C 1k="\'+t+\'" F="6M/x-6O-6P" 8="\'+4.8+\'" b="\'+4.b+\'"\'+j+\'>\'}6(E){c X=$(E).6R();6(4.F==\'23\'){c L=$(E).6S();L.3h({1c:4.3F,2H:1});6(4.19)L.3h({1c:4.3c,2H:4.19.1Q(1)});1x();$.21($.Q({},4.21,{t:t,L:L,F:X.I(\'5j\')?X.I(\'5j\'):\'3a\',5Z:4m,1B:1t}));H(\'4D 5P 2w: \'+X.I(\'2u\'))}q 6(4.F==\'4Q\'){1L();X.I(\'2s\',\'2c\');X.I(\'2u\',t);X.2Z(\'<48 F="2b" 1c="\'+4.3F+\'" 2H="1" />\');6(4.19)X.2Z(\'<48 F="2b" 1c="\'+4.3c+\'" 2H="\'+4.19.1Q(1)+\'" />\');5.j.M(\'\');$(\'B\',5.j).o({8:4.8,b:4.b}).1B(1t).2o(4j);H(\'4D 6m 2w: \'+X.I(\'2u\'));1x();1z()}q 6(4.F==\'1v\'){H(\'51 2w: \'+t);c O=X.I(\'O\')||4.54;1L();5.j.M(\'<2U 1d="6r" />\').29(\'2U\').I(\'5R\',O);5.j.o({5S:0});$(\'2U\',5.j).1B(1t).2o(k(){H(\'51 6x: \'+R.1k);$(R).1D(\'2o\');c w=5.j.8();c h=5.j.b();5.j.o({5S:\'\'});1o.8=w;1o.b=h;Z({8:w,b:h,4x:w,4y:h});1j.8=w;1j.b=h;Z({1E:\'4q\'},\'1b\',\'l\');5.1q=p;6(5.1G||5.1r)1z()}).I(\'1k\',t);1x()}q 6(4.F==\'3x\'){1L();5.j.M(\'\');H(\'6l 4D 2w: \'+t);$(\'B\',5.j).2P(0).o({8:\'1p%\',b:$.5b.5f?\'5g%\':\'1p%\'}).2o(4B);5.1q=p;1x()}q 6(4.F==\'B\'){1L();5.j.M(\'\');H(\'6l 2w: \'+t);$(\'B\',5.j).2P(0).o({8:\'1p%\',b:$.5b.5f?\'5g%\':\'1p%\'}).2o(4B);5.1q=p;1x()}q 6(4.F){H(\'5n: \'+4.F);1L();5.j.M(4.l);c w=5.j.8();c h=5.j.b();c v=$(4.F);6(v.1i){Z({F:\'v\'});w=v.8();h=v.b();6(2g)30=2g;2g=v;5.j.1A(v.24())}1j.8=w;1j.b=h;Z({8:w,b:h});6(5.j.M())5.1q=p;q 1t();6(!5.1N)1x();q 2x()}q{H(\'5P 2w: \'+t);Z({F:\'21\'});c L=4.21.L||{};6(4.19){6(3Z L=="4E"){L+=\'&\'+4.3c+\'=\'+4.19.1Q(1)}q{L[4.3c]=4.19.1Q(1)}}1x();$.21($.Q(p,4.21,{t:t,5Z:4m,1B:1t,L:L}))}}q 6(4.l){H(\'5n: \'+4.F);Z({F:\'6f\'});1L();5.j.M($(\'\').M(4.l).24());6(5.j.M())5.1q=p;q 1t();1x()}q{}}k 4Z(f){H(\'4Z\');4=$.Q(p,{},$.1C.K.f,f);3y()}k Z(f,1m,28){6(5.3W){6(1m&&28){$.Q(p,4[1m][28],f)}q 6(1m){$.Q(p,4[1m],f)}q{6(5.2p){6(\'8\'3I f){6(!5.1K){f.4L=f.8;32=p}3z f[\'8\']}6(\'b\'3I f){6(!5.1K){f.4O=f.b;32=p}3z f[\'b\']}}$.Q(p,4,f)}}q{6(1m&&28){$.Q(p,$.1C.K.f[1m][28],f)}q 6(1m){$.Q(p,$.1C.K.f[1m],f)}q{$.Q(p,$.1C.K.f,f)}}}k 4P(){6(26&&!5.1g){6(1X.4R){4.2m=1X.4R.61;4.2i=1X.4R.3B}q{4.2m=1X.U.61;4.2i=1X.U.3B}}q{4.2m=0;4.2i=0}}k 3y(){4P();4.S=-(4.8+4.4U)/2;4.V=-(4.b+4.4Y)/2;6(!5.1g){4.S+=4.2m;4.V+=4.2i}}k 3C(){4P();c 1M=2C(5.P);4.2S=-(5.P.b()+1M.h.18+1M.h.1l)/2;4.2Q=-(5.P.8()+1M.w.18+1M.w.1l)/2;6(!5.1g){4.2Q+=4.2m;4.2S+=4.2i}}k 4v(){c O=$(\'55#5l\',5.C);6(O.1i)O.5m(4.O);q 5.C.2Z(\'<55 1d="5l">\'+4.O+\'\')}k 1L(){H(\'1L\');6(!5.1n){6(4.H)Z({7P:\'7Q\'},\'1b\',\'15\');c 1n={2O:4.33,12:\'4n\',1f:0,1h:0,8:\'1p%\',b:\'1p%\'};c 46=U;c 47=\'\';6(4.1g){5.1g=46=$(4.1g);c 2N=5.1g.6q();c w=5.1g.5t();c h=5.1g.3D();6(26){Z({b:\'1p%\',8:\'1p%\',1f:0,1h:0},\'1b\',\'15\')}5.2a={1f:2N.1f,1h:2N.1h,8:w,b:h};c 5v=(/44/.22(1F)?0:17(U.3a(0),\'5x\'));c 5z=(/44/.22(1F)?0:17(U.3a(0),\'5B\'));1n={12:\'36\',1f:2N.1f+5v,1h:2N.1h+5z,8:w,b:h}}q 6(26){U.o({S:0,49:0});c w=U.8();c h=$(14).b()+\'G\';6($(14).b()>=U.3D()){h=U.3D()+\'G\'}q w+=20;w+=\'G\';U.o({8:w,b:h,12:\'6E\',1E:\'2b\'});$(\'M\').o({1E:\'2b\'});Z({1b:{15:{12:\'36\',2O:4.33+1,b:\'5G%\',8:\'5G%\',1f:4.2i+\'G\',1h:4.2m+\'G\'},N:{2O:4.33+2},P:{2O:4.33+3}}});47=$(\'\').o($.Q({},4.1b.15,{1s:0,2O:50,18:\'3l\'}))}46.1A($(\'\').13());5.1n=$(\'#5J\').o(1n).2j();5.15=$(\'#5K\').o($.Q({3E:4.2Y},4.1b.15)).4d(47);5.15.1Y(\'1u.K\',5T);5.P=$(\'#5O\').o(4.1b.P).13();5.C=$(\'#5L\').o(4.1b.N).13();5.l=$(\'#5M\');5.j=$(\'#5N\').13();6($.1J($.1C.5V)){5.l.5V(k(e,d){c 35=5.l.3a(0);6((d>0&&35.3B==0)||(d<0&&35.6Z-35.3B==35.70)){e.1U();e.71()}})}$(1X).1Y(\'4f.K\',4g);5.l.o({8:\'1I\',b:\'1I\'});5.C.o({8:\'1I\',b:\'1I\'});6(!4.1g&&4.6j){$(14).1Y(\'2A.K\',k(){14.78(4M);4M=14.79(68,69)})}}}k 68(){$.3N(1j)}k 1x(){H(\'1x\');6(!5.1N){1L();5.16=p;4.3t(5,4,4i)}q{5.16=p;5.1r=p;4.3r(5,4,k(){2x();5.16=m;1z()})}}k 5T(e){6(!4.5)1V()}k 4g(e){6(e.31==27){6(!4.5)1V()}q 6(4.W&&5.1N&&5.1q&&!5.16&&!5.1r){6(e.31==39||e.31==40){e.1U();$.2B();u m}q 6(e.31==37||e.31==38){e.1U();$.2I();u m}}}k 5w(){c E=4.E;c t;6(E&&E.3k){c X=$(E);t=X.I(E.3k.2F()==\'23\'?\'2u\':\'1a\');6(!t)t=1P.1a.1Q(14.1P.7k.1i+7);4.t=t;6(X.I(\'6k\')==\'5\')4.5=p;4.O=X.I(\'O\');6(E&&E.1w&&E.1w.2F()!=\'7v\'){c 4K=E.1w.3n(\' \');4.W=4K>0?E.1w.7H(0,4K):E.1w}c 2G=4o(t,E);6(2G)u 2G;6(4p(t))u\'1e\';c B=m;6(E.2s&&E.2s.2F()==\'5e\'||(E.3e&&E.3e.2e(/:\\d*$/,\'\')!=14.1P.3e.2e(/:\\d*$/,\'\'))){B=p}6(E.3k.2F()==\'23\'){6(B)u\'3x\';Z(4s(t));6(X.I(\'5A\')==\'5y/23-L\')u\'4Q\';u\'23\'}6(B)u\'B\'}q{t=4.t;6(!4.l)4.E=p;6(!t)u D;6(4p(t))u\'1e\';c 5i=1S 4t("^5k://|6n://","g");6(t.6i(5i))u\'B\'}c 2G=4o(t,E);6(2G)u 2G;c j=4s(t);Z(j);6(!j.t)u j.19}k 4o(t,E){c 1v=1S 4t(4.5s,\'i\');6(1v.22(t)){u\'1v\'}}k 4p(t){c 1e=1S 4t(\'[^\\.]\\.(1e)\\s*$\',\'i\');u 1e.22(t)}k 4s(t){c J={t:D,19:D};6(t){c 34=4w(t);c 5o=4w(14.1P.1a);c 5p=14.1P.1a.1Q(0,14.1P.1a.1i-5o.1i);c 3J=t.1Q(0,t.1i-34.1i);6(3J==5p||3J==$(\'6u\').I(\'1a\')){J.19=34}q{J.t=3J;J.19=34}}u J}k 1t(){H(\'1t\');5.1B=p;6(!5.1N)u;6($.1J(4.4T))4.4T(5,4);5.P.6v(4.5q).M(4.60);$(4.3v,5.P).1D(\'1u.K\').1Y(\'1u.K\',1V);3C();5.P.o({V:4.2S+\'G\',S:4.2Q+\'G\'})}k 3K(){H(\'3K\');6(!5.j.M())u;5.l.M(5.j.24());5.j.4z();4A();6(4.F==\'3x\'){$(4.E).I(\'2s\',\'2c\').L(\'4H\',1).4J().I(\'2s\',\'5e\').6z(\'4H\')}6(!4.5)5.N.2Z(4.5a);6($.1J(4.4N))4.4N(5,4);5.l.1A(5.3S);$(4.3v,5.C).1D(\'1u.K\').1Y(\'1u.K\',1V);$(4.4r,5.C).K(2L())}k 2L(){u 4X;c 1T=$.Q(p,{},4);6(1o.8)1T.8=D;q 1T.8=1j.8;6(1o.b)1T.b=D;q 1T.b=1j.b;1T.1b.l.1E=\'1I\';u 1T}k 4A(){H(\'4A\');c 3m=$(4.3m[4.F]);5.l.1A(3m.3M().2h());5.C.6D(3m);6(4.W){5.l.1A(4.59);W.1R=$(\'[1w="\'+4.W+\'"], [1w^="\'+4.W+\' "]\');W.1H=W.1R.1H(4.E);6(4.2t&&$.1J(4.2t))4.2t(W.1H+1,W.1R.1i,5,4);c 1T=2L();c 4F=2W(-1);6(4F){c 2l=$(\'.2I\',5.C).I(\'1a\',4F.I(\'1a\')).1u(k(e){e.1U();$.2I();u m});6(26&&4.F==\'1e\'){2l.4d($(\'\').o({12:2l.o(\'12\'),1f:2l.o(\'1f\'),1h:2l.o(\'1h\'),8:2l.8(),b:2l.b(),1s:0,18:\'3l\'}))}}q{$(\'.2I\',5.C).2h()}c 4G=2W(1);6(4G){c 2d=$(\'.2B\',5.C).I(\'1a\',4G.I(\'1a\')).1u(k(e){e.1U();$.2B();u m});6(26&&4.F==\'1e\'){2d.4d($(\'\').o($.Q({},{12:2d.o(\'12\'),1f:2d.o(\'1f\'),1h:2d.o(\'1h\'),8:2d.8(),b:2d.b(),1s:0,18:\'3l\'})))}}q{$(\'.2B\',5.C).2h()}}3H()}k 2W(4I){6(4.W){6(!4.5c)4I*=-1;c 1H=W.1H+4I;6(1H>=0&&1H2T||j.l.8>2J){6(4.F==\'1v\'||4.F==\'1e\'){c 3T=4.4x?4.4x:4.8;c 3U=4.4y?4.4y:4.b;c 3d=j.l.8-3T;c 2V=j.l.b-3U;6(2V<0)2V=0;6(3d<0)3d=0;c 3X=2T-2V;c 3Y=2J-3d;c 4V=2k.4W(3X/3U,3Y/3T);3Y=2k.5U(3T*4V);3X=2k.5U(3U*4V);j.l.b=3X+2V;j.l.8=3Y+3d}q{j.l.b=2k.4W(j.l.b,2T);j.l.8=2k.4W(j.l.8,2J)}j.3i={8:j.l.8+1y.w.Y,b:j.l.b+1y.h.Y};j.N={8:j.l.8+1y.w.Y+3g.w.Y,b:j.l.b+1y.h.Y+3g.h.Y}}}6(4.F==\'1e\'){$(\'4S, 4C\',5.l).I(\'8\',j.l.8).I(\'b\',j.l.b)}q 6(4.F==\'1v\'){$(\'2U\',5.l).o({8:j.l.8,b:j.l.b})}5.l.o($.Q({},j.l,4.1b.l));5.N.o($.Q({},j.3i,4.1b.3i));6(!1K)5.C.o($.Q({},j.N,4.1b.N));6(4.F==\'1v\'&&4.5h){$(\'2U\',5.l).73(\'5R\');c 1W=$(\'v\',5.l);6(4.O!=4.54&&4.O){6(1W.1i==0){1W=$(\'\'+4.O+\'\');5.l.1A(1W)}6(4.5d){c 5W=2C(1W);1W.o({8:(j.l.8+1y.w.1l-5W.w.Y)+\'G\'})}}q 6(1W.1i=0){1W.2h()}}6(4.O)4v();j.N.4U=3j.w.18;j.N.4Y=3j.h.18;Z(j.N);3y()}k 1V(e){H(\'1V\');6(e)e.1U();6(5.1n&&5.1N){$(1X).1D(\'4f.K\');6(!4.1g)$(14).1D(\'2A.K\');5.1N=m;5.16=p;5.3V=p;6(5.1G||5.1r){4.3f(5,4,k(){5.P.13();5.1G=m;5.1r=m;4.2v(5,4,1Z)})}q{6(2r)5.l.o({12:\'\'});5.N.o({1E:\'2b\'});5.l.o({1E:\'2b\'});$(\'B\',5.l).13();6($.1J(4.4u)){4.4u(5,4,k(){4.3b(5,4,k(){2x();4.2v(5,4,1Z)})})}q{4.3b(5,4,k(){2x();4.2v(5,4,1Z)})}}}6(e)u m}k 1z(){H(\'1z\');6(5.1N&&!5.16){6(5.1q){6(5.j.M()){5.16=p;6(5.1r){3K();5.2p=p;4.3q(5,4,k(){5.P.13();5.1r=m;5.1G=m;2f()})}q{4.3f(5,4,k(){5.P.13();5.1G=m;3K();3C();3y();5.2p=p;4.3s(5,4,2f)})}}}q 6(!5.1G&&!5.1r){5.16=p;5.1G=p;6(5.1B)1t();q 5.P.M(4.5r);$(4.3v,5.P).1D(\'1u.K\').1Y(\'1u.K\',1V);3C();4.3p(5,4,k(){5.16=m;1z()})}}}k 4m(L){H(\'77: \'+R.t);6(4.19){c j={};c i=0;L=L.2e(/\\r\\n/2R,\'5Y\').2e(/<41(.|\\s)*?\\/41>/2R,k(x){j[i]=x;u\'<42 52="62: 3l" 11=63 1w="\'+(i++)+\'">\'});L=$(\'\'+L+\'\').29(4.19).M().2e(/<42 52="62: 3l;?" 11="?63"? 1w="(.?)"><\\/42>/2R,k(x,y,z){u j[y]}).2e(/5Y/2R,"\\r\\n")}5.j.M(64(L));6(5.j.M()){5.1q=p;1z()}q 1t()}k 4j(){H(\'4j\');c X=$(4.E);X.I(\'2u\',X.I(\'2u\')+4.19);X.I(\'2s\',\'\');$(\'48[1c=\'+4.3F+\']\',4.E).2h();c B=5.j.3M(\'B\');c 65=B.1D(\'2o\').24().29(4.19||\'U\').7f(\'41[1k]\');B.I(\'1k\',\'7g:7h\');5.j.M(65.M());6(5.j.M()){5.1q=p;1z()}q 1t()}k 4B(){6((14.1P.3e&&4.t.3n(14.1P.3e)>-1)||4.t.3n(\'5k://\')){c B=$(\'B\',5.1n).24();c j={};6(4.5Q){j.O=B.29(\'O\').5m();6(!j.O){5C{j.O=B.29(\'O\').M()}7i(7j){}}}c U=B.29(\'U\');6(!4.b&&U.b())j.b=U.b();6(!4.8&&U.8())j.8=U.8();$.Q(1j,j);$.3N(j)}}k 2t(66,Y,A,f){6(Y>1)f.O+=(f.O?\' - \':\'\')+66+\'/\'+Y}k 2x(){H(\'2x\');5.16=m;6(30){30.1A(5.l.24());30=D}q 6(2g){2g.1A(5.l.24());2g=D}5.l.4z();W={};5.C.13().3M().2h().4z().I(\'52\',\'\').13();6(5.3V||5.1r)5.C.13();5.C.o(4.1b.N).1A(5.l);1z()}k 1Z(){H(\'1Z\');$(1X).1D(\'4f\',4g);5.16=m;5.1n.2h();5.1n=D;6(26){U.o({b:\'\',8:\'\',12:\'\',1E:\'\',S:\'\',49:\'\'});$(\'M\').o({1E:\'\'})}6($.1J(4.1Z))4.1Z(5,4)}k 4i(){H(\'4i\');5.1N=p;5.16=m;1z()}k 2f(){H(\'2f\');5.16=m;5.2p=m;5.C.o({1s:\'\'});2r=/7m/.22(1F)&&!/(7n|6h)/.22(1F)&&7o(58)<1.9&&4.F!=\'1v\';6(2r)5.l.o({12:\'4n\'});5.l.1A(5.3R);6(4.F==\'B\')5.l.29(\'B\').I(\'1k\',4.t);6($.1J(4.2f))4.2f(5,4);6(32){32=m;$.3N({8:4.4L,b:4.4O});3z 4[\'4L\'];3z 4[\'4O\']}6(1o.8)Z({8:D});6(1o.b)Z({b:D})}k 4w(t){6(3Z t==\'4E\'){c 53=t.3n(\'#\');6(53>-1)u t.1Q(53)}u\'\'}k 64(L){6(3Z L==\'4E\')L=L.2e(/<\\/?(M|7q|U)([^>]*)>/2R,\'\');c j=1S 2X();$.3Q($.7r({0:L},R.7s),k(){6($.3k(R,"41")){6(!R.1k||$(R).I(\'1w\')==\'7t\'){6($(R).I(\'6k\')==\'7u\')5.3R.3h(R);q 5.3S.3h(R)}}q j.3h(R)});u j}k 2C(10){10=10.3a(0);c J={h:{43:17(10,\'V\')+17(10,\'7x\'),18:17(10,\'5x\')+17(10,\'7y\'),1l:17(10,\'7z\')+17(10,\'7A\')},w:{43:17(10,\'S\')+17(10,\'49\'),18:17(10,\'5B\')+17(10,\'7B\'),1l:17(10,\'7C\')+17(10,\'7D\')}};J.h.1M=J.h.43+J.h.18;J.w.1M=J.w.43+J.w.18;J.h.6a=J.h.1l+J.h.18;J.w.6a=J.w.1l+J.w.18;J.h.Y=J.h.1M+J.h.1l;J.w.Y=J.w.1M+J.w.1l;u J}k 17(10,1c){c J=6b($.7F(10,1c,p));6(7G(J))J=0;u J}k H(2M){6($.1C.K.f.H||4&&4.H)6c(2M,5,4||{})}k 3t(A,f,T){A.15.o({1s:0}).6e(7L,0.75,T)}k 2v(A,f,T){A.15.56(5I,T)}k 3p(A,f,T){A.P.o({V:f.2S+\'G\',S:f.2Q+\'G\',1s:0}).2j().2q({1s:1},{2z:T,2E:2n})}k 3f(A,f,T){T()}k 3s(A,f,T){A.P.o({V:f.2S+\'G\',S:f.2Q+\'G\'}).2j().2q({8:f.8+\'G\',b:f.b+\'G\',V:f.V+\'G\',S:f.S+\'G\'},{2E:57,2z:k(){A.C.o({8:f.8+\'G\',b:f.b+\'G\',V:f.V+\'G\',S:f.S+\'G\'}).2j();A.P.56(69,T)}})}k 3b(A,f,T){A.C.2q({b:\'3A\',8:\'3A\',V:(-(25+f.4Y)/2+f.2i)+\'G\',S:(-(25+f.4U)/2+f.2m)+\'G\'},{2E:57,2z:k(){A.C.13();T()}})}k 3r(A,f,T){A.P.o({V:A.C.o(\'V\'),S:A.C.o(\'S\'),b:A.C.o(\'b\'),8:A.C.o(\'8\'),1s:0}).2j().6e(2n,1,k(){A.C.13();T()})}k 3q(A,f,T){A.C.13().o({8:f.8+\'G\',b:f.b+\'G\',S:f.S+\'G\',V:f.V+\'G\',1s:1});A.P.2q({8:f.8+\'G\',b:f.b+\'G\',S:f.S+\'G\',V:f.V+\'G\'},{2z:k(){A.C.2j();A.P.56(2n,k(){A.P.13();T()})},2E:57})}k 2A(A,f,T){A.C.2q({8:f.8+\'G\',b:f.b+\'G\',S:f.S+\'G\',V:f.V+\'G\'},{2z:T,2E:2n})}k 3L(A,f,T){6(!$.7R.7S.3E){A.15.o({3E:f.2Y});T()}q A.15.2q({3E:f.2Y},{2z:T,2E:2n})}$($.1C.K.f.4r).K()});c 45=\'\';k 6c(2M,A,f){6(A.1n&&A.15){A.15.2Z(2M+\'<3u />\'+45);45=\'\'}q 45+=2M+\'<3u />\'}',62,490,'||||currentSettings|modal|if||width|||height|var|||settings||||tmp|function|content|false||css|true|else|||url|return|div|||||elts|iframe|contentWrapper|null|from|type|px|debug|attr|ret|nyroModal|data|html|wrapper|title|loading|extend|this|marginLeft|callback|body|marginTop|gallery|jFrom|total|setCurrentSettings|elm|class|position|hide|window|bg|anim|getCurCSS|border|selector|href|cssOpt|name|id|swf|top|blocker|left|length|initSettingsSize|src|padding|deep1|full|resized|100|dataReady|transition|opacity|loadingError|click|image|rel|showModal|outerContent|showContentOrLoading|append|error|fn|unbind|overflow|userAgent|loadingShown|index|auto|isFunction|resizing|initModal|outer|ready|processModal|location|substring|links|new|currentSettingsNew|preventDefault|removeModal|divTitle|document|bind|endRemove||ajax|test|form|contents||isIE6||deep2|find|blockerVars|hidden|nyroModalIframe|next|replace|endShowContent|contentElt|remove|marginScrollTop|show|Math|prev|marginScrollLeft|400|load|animContent|animate|fixFF|target|galleryCounts|action|hideBackground|Load|endHideContent|javascript|complete|resize|nyroModalNext|getOuter|link|duration|toLowerCase|imgType|value|nyroModalPrev|maxWidth|windowResizing|getCurrentSettingsNew|msg|pos|zIndex|eq|marginLeftLoading|gi|marginTopLoading|maxHeight|img|diffH|getGalleryLink|Array|bgColor|prepend|contentEltLast|keyCode|shouldResize|zIndexStart|hash|elt|absolute||||get|hideContent|selIndicator|diffW|hostname|hideLoading|outerWrapper2|push|wrapper2|outerWrapper|nodeName|none|wrap|indexOf|param|showLoading|hideTransition|showTransition|showContent|showBackground|br|closeSelector|nyroModalClose|iframeForm|setMargin|delete|50px|scrollTop|setMarginLoading|outerHeight|backgroundColor|formIndicator|forceType|calculateSize|in|req|fillContent|updateBgColor|children|nyroModalSettings|nyroModalManual|me|each|scriptsShown|scripts|useW|useH|closing|started|calcH|calcW|typeof||script|pre|margin|msie|tmpDebug|contain|iframeHideIE|input|marginRight|minHeight|minWidth|frameborder|before|hspace|keydown|keyHandler|processHandler|endBackground|formDataLoaded|endResize|val|ajaxLoaded|fixed|imageType|isSwf|visible|openSelector|extractUrlSel|RegExp|beforeHideContent|setTitle|getHash|imgWidth|imgHeight|empty|wrapContent|iframeLoaded|embed|Form|string|linkPrev|linkNext|nyroModalprocessing|dir|submit|indexSpace|setWidth|windowResizeTimeout|endFillContent|setHeight|setMarginScroll|formData|documentElement|object|handleError|borderW|ratio|min|callingSettings|borderH|setDefaultCurrentSettings||Image|style|hashPos|defaultImgAlt|h1|fadeOut|350|browserVersion|galleryLinks|closeButton|support|ltr|setWidthImgTitle|_blank|boxModel|99|addImageDivTitle|reg1|method|http|nyroModalTitle|text|Content|hashLoc|curLoc|errorClass|contentLoading|regexImg|outerWidth|wrapperIframe|plusTop|fileType|borderTopWidth|multipart|plusLeft|enctype|borderLeftWidth|try|autoSizable|isDefaultPrevented|max|110|resizable|300|nyroModalFull|nyroModalBg|nyroModalWrapper|nyroModalContent|nyrModalTmp|nyroModalLoading|Ajax|titleFromIframe|alt|lineHeight|clickBg|floor|mousewheel|outerDivTitle|Close|nyroModalLN|success|contentError|scrollLeft|display|nyroModalScript|filterScripts|iframeContent|nb|XMLHttpRequest|windowResizeHandler|200|inner|parseInt|nyroModalDebug|galleryLoop|fadeTo|manual|opera|webkit|match|windowResize|rev|Iframe|Data|https|jQuery|AE6D|offset|nyroModalImg|11cf|96B8|base|addClass|444553540000|Loaded|000000|removeData|Cancel|movie|is|wrapInner|static|navigator|nyroModalIframeHideIeGalleryPrev|nyroModalIframeHideIe|The|nyroModalIframeHideIeGalleryNext|requested|first|application|cannot|shockwave|flash|be|blur|serializeArray|loaded|wmode|Please|Prev|again|later|scrollHeight|clientHeight|stopPropagation|Next|removeAttr|jpg||wrapperImg|AjaxLoaded|clearTimeout|setTimeout|wrapperSwf|jpeg|png|tiff|gif|not|about|blank|catch|err|host|bmp|mozilla|compatible|parseFloat|transparent|head|clean|ownerDocument|forceLoad|shown|nofollow|khtml|marginBottom|borderBottomWidth|paddingTop|paddingBottom|borderRightWidth|paddingLeft|paddingRight|closeBut|curCSS|isNaN|substr|close|nyroModalRemove|D27CDB6E|500|nyroModalSel|rv|classid|color|white|fx|step|clsid'.split('|'),0,{})) \ No newline at end of file diff --git a/htdocs/static/js/jquery.sparkline.min.js b/htdocs/static/js/jquery.sparkline.min.js new file mode 100644 index 00000000..08a30bf3 --- /dev/null +++ b/htdocs/static/js/jquery.sparkline.min.js @@ -0,0 +1,85 @@ +/* jquery.sparkline 1.5.1 - http://omnipotent.net/jquery.sparkline/ */ + +(function($){$.fn.simpledraw=function(width,height,use_existing){if(use_existing&&this[0].vcanvas)return this[0].vcanvas;if(width==undefined)width=$(this).innerWidth();if(height==undefined)height=$(this).innerHeight();if($.browser.hasCanvas){return new vcanvas_canvas(width,height,this);}else if($.browser.msie){return new vcanvas_vml(width,height,this);}else{return false;}};var pending=[];$.fn.sparkline=function(uservalues,options){var options=$.extend({type:'line',lineColor:'#00f',fillColor:'#cdf',defaultPixelsPerValue:3,width:'auto',height:'auto',composite:false},options?options:{});return this.each(function(){var render=function(){var values=(uservalues=='html'||uservalues==undefined)?$(this).text().split(','):uservalues;var width=options.width=='auto'?values.length*options.defaultPixelsPerValue:options.width;if(options.height=='auto'){if(!options.composite||!this.vcanvas){var tmp=document.createElement('span');tmp.innerHTML='a';$(this).html(tmp);height=$(tmp).innerHeight();$(tmp).remove();}}else{height=options.height;} +$.fn.sparkline[options.type].call(this,values,options,width,height);} +if(($(this).html()&&$(this).is(':hidden'))||($.fn.jquery<"1.3.0"&&$(this).parents().is(':hidden'))){pending.push([this,render]);}else{render.call(this);}});};$.sparkline_display_visible=function(){for(var i=pending.length-1;i>=0;i--){var el=pending[i][0];if($(el).is(':visible')&&!$(el).parents().is(':hidden')){pending[i][1].call(el);pending.splice(i,1);}}};$.fn.sparkline.line=function(values,options,width,height){var options=$.extend({spotColor:'#f80',spotRadius:1.5,minSpotColor:'#f80',maxSpotColor:'#f80',lineWidth:1,normalRangeMin:undefined,normalRangeMax:undefined,normalRangeColor:'#ccc',chartRangeMin:undefined,chartRangeMax:undefined,chartRangeMinX:undefined,chartRangeMaxX:undefined},options?options:{});var xvalues=[],yvalues=[],yminmax=[];for(i=0;imaxy) +maxy=options.normalRangeMax;} +if(options.chartRangeMin!=undefined&&(options.chartRangeClip||options.chartRangeMinmaxy)){maxy=options.chartRangeMax;} +if(options.chartRangeMinX!=undefined&&(options.chartRangeClipX||options.chartRangeMinXmaxx)){maxx=options.chartRangeMaxX;} +var rangex=maxx-minx==0?1:maxx-minx;var rangey=maxy-miny==0?1:maxy-miny;var vl=yvalues.length-1;if(vl<1){this.innerHTML='';return;} +var target=$(this).simpledraw(width,height,options.composite);if(target){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var canvas_top=0;var canvas_left=0;if(options.spotRadius&&(canvas_width<(options.spotRadius*4)||canvas_height<(options.spotRadius*4))){options.spotRadius=0;} +if(options.spotRadius){if(options.minSpotColor||(options.spotColor&&yvalues[vl]==miny)) +canvas_height-=Math.ceil(options.spotRadius);if(options.maxSpotColor||(options.spotColor&&yvalues[vl]==maxy)){canvas_height-=Math.ceil(options.spotRadius);canvas_top+=Math.ceil(options.spotRadius);} +if(options.minSpotColor||options.maxSpotColor&&(yvalues[0]==miny||yvalues[0]==maxy)){canvas_left+=Math.ceil(options.spotRadius);canvas_width-=Math.ceil(options.spotRadius);} +if(options.spotColor||(options.minSpotColor||options.maxSpotColor&&(yvalues[vl]==miny||yvalues[vl]==maxy))) +canvas_width-=Math.ceil(options.spotRadius);} +canvas_height--;if(options.normalRangeMin!=undefined){var ytop=canvas_top+Math.round(canvas_height-(canvas_height*((options.normalRangeMax-miny)/rangey)));var height=Math.round((canvas_height*(options.normalRangeMax-options.normalRangeMin))/rangey);target.drawRect(canvas_left,ytop,canvas_width,height,undefined,options.normalRangeColor);} +var path=[];var paths=[path];for(var i=0,vlen=yvalues.length;imaxy)y=maxy;if(!path.length){path.push([canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+canvas_height]);} +path.push([canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((y-miny)/rangey)))]);}} +for(var i=0,plen=paths.length;i2){path[0]=[path[0][0],path[1][1]];} +target.drawShape(path,options.lineColor,undefined,options.lineWidth);} +if(options.spotRadius&&options.spotColor){target.drawCircle(canvas_left+Math.round(xvalues[xvalues.length-1]*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((yvalues[vl]-miny)/rangey))),options.spotRadius,undefined,options.spotColor);} +if(maxy!=minyval){if(options.spotRadius&&options.minSpotColor){var x=xvalues[yvalues.indexOf(minyval)];target.drawCircle(canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((minyval-miny)/rangey))),options.spotRadius,undefined,options.minSpotColor);} +if(options.spotRadius&&options.maxSpotColor){var x=xvalues[yvalues.indexOf(maxyval)];target.drawCircle(canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((maxyval-miny)/rangey))),options.spotRadius,undefined,options.maxSpotColor);}}}else{this.innerHTML='';}};$.fn.sparkline.bar=function(values,options,width,height){var options=$.extend({type:'bar',barColor:'#00f',negBarColor:'#f44',zeroColor:undefined,nullColor:undefined,zeroAxis:undefined,barWidth:4,barSpacing:1,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,colorMap:undefined},options?options:{});var width=(values.length*options.barWidth)+((values.length-1)*options.barSpacing);var num_values=[];for(var i=0,vlen=values.length;imax)){max=options.chartRangeMax;} +if(options.zeroAxis==undefined)options.zeroAxis=min<0;var range=max-min==0?1:max-min;if($.isArray(options.colorMap)){var colorMapByIndex=options.colorMap;var colorMapByValue=null;}else{var colorMapByIndex=null;var colorMapByValue=options.colorMap;} +var target=$(this).simpledraw(width,height,options.composite);if(target){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var yzero=min<0&&options.zeroAxis?canvas_height-Math.round(canvas_height*(Math.abs(min)/range))-1:canvas_height-1;for(var i=0,vlen=values.length;imax)val=max;var color=(val<0)?options.negBarColor:options.barColor;if(options.zeroAxis&&min<0){var height=Math.round(canvas_height*((Math.abs(val)/range)))+1;var y=(val<0)?yzero:yzero-height;}else{var height=Math.round(canvas_height*((val-min)/range))+1;var y=canvas_height-height;} +if(val==0&&options.zeroColor!=undefined){color=options.zeroColor;} +if(colorMapByValue&&colorMapByValue[val]){color=colorMapByValue[val];}else if(colorMapByIndex&&colorMapByIndex.length>i){color=colorMapByIndex[i];} +if(color===null){continue;}} +target.drawRect(x,y,options.barWidth-1,height-1,color,color);}}else{this.innerHTML='';}};$.fn.sparkline.tristate=function(values,options,width,height){values=$.map(values,Number);var options=$.extend({barWidth:4,barSpacing:1,posBarColor:'#6f6',negBarColor:'#f44',zeroBarColor:'#999',colorMap:{}},options);var width=(values.length*options.barWidth)+((values.length-1)*options.barSpacing);if($.isArray(options.colorMap)){var colorMapByIndex=options.colorMap;var colorMapByValue=null;}else{var colorMapByIndex=null;var colorMapByValue=options.colorMap;} +var target=$(this).simpledraw(width,height,options.composite);if(target){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var half_height=Math.round(canvas_height/2);for(var i=0,vlen=values.length;i0){var y=0;var height=half_height-1;var color=options.posBarColor;}else{var y=half_height-1;var height=2;var color=options.zeroBarColor;} +if(colorMapByValue&&colorMapByValue[values[i]]){color=colorMapByValue[values[i]];}else if(colorMapByIndex&&colorMapByIndex.length>i){color=colorMapByIndex[i];} +if(color===null){continue;} +target.drawRect(x,y,options.barWidth-1,height-1,color,color);}}else{this.innerHTML='';}};$.fn.sparkline.discrete=function(values,options,width,height){values=$.map(values,Number);var options=$.extend({lineHeight:'auto',thresholdColor:undefined,thresholdValue:0,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false},options);width=options.width=='auto'?values.length*2:width;var interval=Math.floor(width/values.length);var target=$(this).simpledraw(width,height,options.composite);if(target){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var line_height=options.lineHeight=='auto'?Math.round(canvas_height*0.3):options.lineHeight;var pheight=canvas_height-line_height;var min=Math.min.apply(Math,values);var max=Math.max.apply(Math,values);if(options.chartRangeMin!=undefined&&(options.chartRangeClip||options.chartRangeMinmax)){max=options.chartRangeMax;} +var range=max-min;for(var i=0,vlen=values.length;imax)val=max;var x=(i*interval);var ytop=Math.round(pheight-pheight*((val-min)/range));target.drawLine(x,ytop,x,ytop+line_height,(options.thresholdColor&&val1){var canvas_width=target.pixel_width-Math.ceil(options.targetWidth/2);var canvas_height=target.pixel_height;var min=Math.min.apply(Math,values);var max=Math.max.apply(Math,values);if(options.base==undefined){var min=min<0?min:0;}else{min=options.base;} +var range=max-min;for(i=2,vlen=values.length;i1){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var radius=Math.floor(Math.min(canvas_width,canvas_height)/2);var total=0;for(var i=0,vlen=values.length;i0){end=next+(circle*(values[i]/total));} +target.drawPieSlice(radius,radius,radius,start,end,undefined,options.sliceColors[i%options.sliceColors.length]);next=end;}}};function quartile(values,q){if(q==2){var vl2=Math.floor(values.length/2);return values.length%2?values[vl2]:(values[vl2]+values[vl2+1])/2;}else{var vl4=Math.floor(values.length/4);return values.length%2?(values[vl4*q]+values[vl4*q+1])/2:values[vl4*q];}};$.fn.sparkline.box=function(values,options,width,height){values=$.map(values,Number);var options=$.extend({raw:false,boxLineColor:'black',boxFillColor:'#cdf',whiskerColor:'black',outlierLineColor:'#333',outlierFillColor:'white',medianColor:'red',showOutliers:true,outlierIQR:1.5,spotRadius:1.5,target:undefined,targetColor:'#4a2',chartRangeMax:undefined,chartRangeMin:undefined},options);width=options.width=='auto'?'4.0em':width;minvalue=options.chartRangeMin==undefined?Math.min.apply(Math,values):options.chartRangeMin;maxvalue=options.chartRangeMax==undefined?Math.max.apply(Math,values):options.chartRangeMax;var target=$(this).simpledraw(width,height,options.composite);if(target&&values.length>1){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;if(options.raw){if(options.showOutliers&&values.length>5){var loutlier=values[0],lwhisker=values[1],q1=values[2],q2=values[3],q3=values[4],rwhisker=values[5],routlier=values[6];}else{var lwhisker=values[0],q1=values[1],q2=values[2],q3=values[3],rwhisker=values[4];}}else{values.sort(function(a,b){return a-b;});var q1=quartile(values,1);var q2=quartile(values,2);var q3=quartile(values,3);var iqr=q3-q1;if(options.showOutliers){var lwhisker=undefined,rwhisker=undefined;for(var i=0,vlen=values.length;iq1-(iqr*options.outlierIQR)) +lwhisker=values[i];if(values[i]rwhisker) +target.drawCircle((routlier-minvalue)*unitsize+canvas_left,canvas_height/2,options.spotRadius,options.outlierLineColor,options.outlierFillColor);} +target.drawRect(Math.round((q1-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.1),Math.round((q3-q1)*unitsize),Math.round(canvas_height*0.8),options.boxLineColor,options.boxFillColor);target.drawLine(Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),Math.round((q1-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),options.lineColor);target.drawLine(Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/4),Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height-canvas_height/4),options.whiskerColor);target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),Math.round((q3-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),options.lineColor);target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/4),Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height-canvas_height/4),options.whiskerColor);target.drawLine(Math.round((q2-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.1),Math.round((q2-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.9),options.medianColor);if(options.target){var size=Math.ceil(options.spotRadius);target.drawLine(Math.round((options.target-minvalue)*unitsize+canvas_left),Math.round((canvas_height/2)-size),Math.round((options.target-minvalue)*unitsize+canvas_left),Math.round((canvas_height/2)+size),options.targetColor);target.drawLine(Math.round((options.target-minvalue)*unitsize+canvas_left-size),Math.round(canvas_height/2),Math.round((options.target-minvalue)*unitsize+canvas_left+size),Math.round(canvas_height/2),options.targetColor);}}else{this.innerHTML='';}};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(entry){for(var i=0,vlen=this.length;i';this.canvas.insertAdjacentHTML('beforeEnd',groupel);this.group=$(this.canvas).children()[0];},drawShape:function(path,lineColor,fillColor,lineWidth){var vpath=[];for(var i=0,plen=path.length;i' ++' ';this.group.insertAdjacentHTML('beforeEnd',vel);},drawCircle:function(x,y,radius,lineColor,fillColor){x-=radius+1;y-=radius+1;var stroke=lineColor==undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+lineColor+'" ';var fill=fillColor==undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var vel='';this.group.insertAdjacentHTML('beforeEnd',vel);},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){if(startAngle==endAngle){return;} +if((endAngle-startAngle)==(2*Math.PI)){startAngle=0.0;endAngle=(2*Math.PI);} +var startx=x+Math.round(Math.cos(startAngle)*radius);var starty=y+Math.round(Math.sin(startAngle)*radius);var endx=x+Math.round(Math.cos(endAngle)*radius);var endy=y+Math.round(Math.sin(endAngle)*radius);if(startx==endx&&starty==endy&&(endAngle-startAngle)' ++' ';this.group.insertAdjacentHTML('beforeEnd',vel);},drawRect:function(x,y,width,height,lineColor,fillColor){return this.drawShape([[x,y],[x,y+height],[x+width,y+height],[x+width,y],[x,y]],lineColor,fillColor);}});})(jQuery); \ No newline at end of file diff --git a/htdocs/static/js/jquery.superfish.min.js b/htdocs/static/js/jquery.superfish.min.js new file mode 100644 index 00000000..b76f8c42 --- /dev/null +++ b/htdocs/static/js/jquery.superfish.min.js @@ -0,0 +1,15 @@ +/* + * Superfish v1.4.8 - jQuery menu widget + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt + */ +(function(a){a.fn.superfish=function(d){var b=a.fn.superfish,h=b.c,n=a([' »'].join("")),i=function(){var c=a(this),e=j(c);clearTimeout(e.sfTimer);c.showSuperfishUl().siblings().hideSuperfishUl()},k=function(){var c=a(this),e=j(c),g=b.op;clearTimeout(e.sfTimer);e.sfTimer=setTimeout(function(){g.retainPath=a.inArray(c[0],g.$path)>-1;c.hideSuperfishUl();g.$path.length&&c.parents(["li.",g.hoverClass].join("")).length<1&&i.call(g.$path)},g.delay)},j=function(c){c= +c.parents(["ul.",h.menuClass,":first"].join(""))[0];b.op=b.o[c.serial];return c},o=function(c){c.addClass(h.anchorClass).append(n.clone())};return this.each(function(){var c=this.serial=b.o.length,e=a.extend({},b.defaults,d);e.$path=a("li."+e.pathClass,this).slice(0,e.pathLevels).each(function(){a(this).addClass([e.hoverClass,h.bcClass].join(" ")).filter("li:has(ul)").removeClass(e.pathClass)});b.o[c]=b.op=e;a("li:has(ul)",this)[a.fn.hoverIntent&&!e.disableHI?"hoverIntent":"hover"](i,k).each(function(){e.autoArrows&& +o(a(">a:first-child",this))}).not("."+h.bcClass).hideSuperfishUl();var g=a("a",this);g.each(function(l){var m=g.eq(l).parents("li");g.eq(l).focus(function(){i.call(m)}).blur(function(){k.call(m)})});e.onInit.call(this)}).each(function(){var c=[h.menuClass];b.op.dropShadows&&!(a.browser.msie&&a.browser.version<7)&&c.push(h.shadowClass);a(this).addClass(c.join(" "))})};var f=a.fn.superfish;f.o=[];f.op={};f.IE7fix=function(){var d=f.op;a.browser.msie&&a.browser.version>6&&d.dropShadows&&d.animation.opacity!= +undefined&&this.toggleClass(f.c.shadowClass+"-off")};f.c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator",shadowClass:"sf-shadow"};f.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},speed:"normal",autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};a.fn.extend({hideSuperfishUl:function(){var d=f.op, +b=d.retainPath===true?d.$path:"";d.retainPath=false;b=a(["li.",d.hoverClass].join(""),this).add(this).not(b).removeClass(d.hoverClass).find(">ul").hide().css("visibility","hidden");d.onHide.call(b);return this},showSuperfishUl:function(){var d=f.op,b=this.addClass(d.hoverClass).find(">ul:hidden").css("visibility","visible");f.IE7fix.call(b);d.onBeforeShow.call(b);b.animate(d.animation,d.speed,function(){f.IE7fix.call(b);d.onShow.call(b)});return this}})})(jQuery); diff --git a/htdocs/static/js/jquery.supersubs.min.js b/htdocs/static/js/jquery.supersubs.min.js new file mode 100644 index 00000000..da913667 --- /dev/null +++ b/htdocs/static/js/jquery.supersubs.min.js @@ -0,0 +1,16 @@ +/* + * Supersubs v0.2b - jQuery plugin + * Copyright (c) 2008 Joel Birch + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * + * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of + * their longest list item children. If you use this, please expect bugs and report them + * to the jQuery Google Group with the word 'Superfish' in the subject line. + * + */ +(function(a){a.fn.supersubs=function(i){var g=a.extend({},a.fn.supersubs.defaults,i);return this.each(function(){var f=a(this),c=a.meta?a.extend({},g,f.data()):g,j=a('').css({padding:0,position:"absolute",top:"-999em",width:"auto"}).appendTo(f).width();a("#menu-fontsize").remove();$ULs=f.find("ul");$ULs.each(function(d){d=$ULs.eq(d);var e=d.children(),k=e.children("a"),l=e.css("white-space","nowrap").css("float"),b=d.add(e).add(k).css({"float":"none",width:"auto"}).end().end()[0].clientWidth/ +j;b+=c.extraWidth;if(b>c.maxWidth)b=c.maxWidth;else if(bul",this),m=h.css("left")!==undefined?"left":"right";h.css(m,b)})})})};a.fn.supersubs.defaults={minWidth:9,maxWidth:25,extraWidth:0}})(jQuery); diff --git a/htdocs/static/js/jquery.tagInput.min.js b/htdocs/static/js/jquery.tagInput.min.js new file mode 100644 index 00000000..c5c5787f --- /dev/null +++ b/htdocs/static/js/jquery.tagInput.min.js @@ -0,0 +1,35 @@ +/* + Copyright (c) 2009 Open Lab, http://www.open-lab.com/ + Written by Roberto Bicchierai http://roberto.open-lab.com. + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +if(typeof String.prototype.trim=="undefined")String.prototype.trim=function(){return this.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1")}; +jQuery.fn.tagInput=function(a){if(!a.tags&&!a.jsonUrl)a.tags=[{tag:"tag1",freq:1},{tag:"tag2",freq:2},{tag:"tag3",freq:3},{tag:"tag4",freq:4}];if(typeof a.tagSeparator=="undefined")a.tagSeparator=",";if(typeof a.autoFilter=="undefined")a.autoFilter=true;if(typeof a.autoStart=="undefined")a.autoStart=false;if(typeof a.boldify=="undefined")a.boldify=true;if(typeof a.sortBy=="undefined")a.sortBy="tag";this.each(function(){var c=$(this),b;c.addClass("tagInput");c.tagOptions=a;var g=a.suggestedTagsPlaceHolder; +if(a.suggestedTags){if(!g){var h=$("
suggested tags:
");g=h.find(".tagInputSuggestedTagList");c.after(h)}for(var k in a.suggestedTags)g.append($(""+a.suggestedTags[k]+""));g.find(".tag").click(function(){var f=$(this),d=c.val(),e=f.text(),j=new RegExp(e+"\\b","g");if(s(d,e)){d=d.replace(j,"");f.removeClass("tagUsed")}else{d=d+a.tagSeparator+e;f.addClass("tagUsed")}c.val(t(d))})}var l= +function(f,d){if(f.size()>0){var e=b.get(0),j=f.get(0);if(d)b.scrollTop()>j.offsetTop&&b.scrollTop(j.offsetTop);else if(j.offsetTop+j.offsetHeight>e.scrollTop+e.offsetHeight)e.scrollTop=j.offsetTop+j.offsetHeight-e.offsetHeight;b.find("div.tagInputSel").removeClass("tagInputSel");f.addClass("tagInputSel")}},m=function(f){var d=c.val().lastIndexOf(a.tagSeparator),e=d<=0?"":a.tagSeparator+(a.tagSeparator==" "?"":" ");f=(c.val().substr(0,d)+e+f.find(".tagInputLineTag").text()).trim();c.val(f);b.hide(); +$().oneTime(200,function(){c.focus()})},v=function(){var f=c.val().lastIndexOf(a.tagSeparator),d=c.val().substr(f+1).trim();f=function(e){if(a.sortBy=="frequency")e=e.sort(function(n,o){if(n.freqo.freq)return-1;return 0});else if(a.sortBy=="tag")e=e.sort(function(n,o){if(n.tago.tag)return 1;return 0});for(var j in e){var p=e[j],u=p.tag.toLocaleLowerCase().indexOf(d.toLocaleLowerCase())==0;if(!a.autoFilter||u){var r=$("
"), +q=p.tag;if(a.boldify&&u)q=""+q.substring(0,d.length)+""+q.substring(d.length);r.append("
"+q+"
");p.freq&&r.append("
"+p.freq+"
");b.append(r)}}b.html()!=""&&b.fadeIn();b.find("div:first").addClass("tagInputSel");b.find("div.tagInputLine").bind("click",function(){m($(this))})};if(d!=""||a.autoStart){b.html("");a.tags?f(a.tags):$.getJSON(a.jsonUrl,{search:d},f)}else b.fadeOut(200)},t=function(f){f=f.split(a.tagSeparator);for(var d= +"",e=true,j=0;j