From 660d7c33449e82e8db248c7ef74b6a87b03b0e49 Mon Sep 17 00:00:00 2001 From: Darko Date: Mon, 6 Jul 2015 15:23:44 +0200 Subject: [PATCH] Fix the order for getRss function in rss.php. --- ...tings_example.php => settings.example.php} | 0 newznab/controllers/AdminPage.php | 6 +- newznab/controllers/BasePage.php | 4 +- ...{config.php.example => config.example.php} | 0 www/pages/ajax_rarfilelist.php | 2 +- ...tings.php.example => settings.example.php} | 0 .../charisma/views/frontend/dlbrowse.tpl | 4 +- .../views/frontend/nzbvortex-ajax.tpl | 20 +- .../charisma/views/frontend/opensearch.tpl | 4 +- .../charisma/views/frontend/viewanime.tpl | 6 +- .../charisma/views/frontend/viewfilelist.tpl | 4 +- .../charisma/views/frontend/viewseries.tpl | 6 +- .../nntmux/views/admin/adminmenu.tpl | 53 - .../nntmux/views/admin/ajax_release-edit.tpl | 106 - .../nntmux/views/admin/anidb-edit.tpl | 119 - .../nntmux/views/admin/anidb-list.tpl | 41 - .../nntmux/views/admin/anidb-remove.tpl | 4 - .../nntmux/views/admin/baseadminpage.tpl | 95 - .../views/admin/binaryblacklist-edit.tpl | 71 - .../views/admin/binaryblacklist-list.tpl | 37 - .../nntmux/views/admin/book-edit.tpl | 71 - .../nntmux/views/admin/book-list.tpl | 29 - .../nntmux/views/admin/category-edit.tpl | 68 - .../nntmux/views/admin/category-list.tpl | 43 - .../views/admin/category_regexes-edit.tpl | 73 - .../views/admin/category_regexes-list.tpl | 47 - .../views/admin/collection_regexes-edit.tpl | 73 - .../views/admin/collection_regexes-list.tpl | 43 - .../views/admin/collection_regexes-test.tpl | 44 - .../nntmux/views/admin/comments-list.tpl | 38 - .../nntmux/views/admin/console-edit.tpl | 96 - .../nntmux/views/admin/console-list.tpl | 30 - .../nntmux/views/admin/content-add.tpl | 74 - .../nntmux/views/admin/content-list.tpl | 57 - .../nntmux/views/admin/db-optimise.tpl | 16 - .../nntmux/views/admin/game-edit.tpl | 75 - .../nntmux/views/admin/game-list.tpl | 22 - .../nntmux/views/admin/group-bulk.tpl | 60 - .../nntmux/views/admin/group-edit.tpl | 74 - .../nntmux/views/admin/group-list.tpl | 84 - www/templates/nntmux/views/admin/index.tpl | 53 - .../nntmux/views/admin/menu-edit.tpl | 70 - .../nntmux/views/admin/menu-list.tpl | 32 - .../nntmux/views/admin/movie-add.tpl | 30 - .../nntmux/views/admin/movie-edit.tpl | 112 - .../nntmux/views/admin/movie-list.tpl | 51 - .../nntmux/views/admin/music-edit.tpl | 104 - .../nntmux/views/admin/music-list.tpl | 30 - .../nntmux/views/admin/nzb-export.tpl | 66 - .../nntmux/views/admin/nzb-import.tpl | 74 - .../nntmux/views/admin/preview-list.tpl | 43 - .../nntmux/views/admin/rage-edit.tpl | 87 - .../nntmux/views/admin/rage-list.tpl | 44 - .../nntmux/views/admin/rage-remove.tpl | 4 - .../nntmux/views/admin/regex-edit.tpl | 78 - .../nntmux/views/admin/regex-list.tpl | 51 - .../nntmux/views/admin/regex-submit.tpl | 38 - .../nntmux/views/admin/regex-test.tpl | 146 - .../nntmux/views/admin/release-edit.tpl | 162 - .../nntmux/views/admin/release-files.tpl | 24 - .../nntmux/views/admin/release-list.tpl | 37 - .../admin/release_naming_regexes-edit.tpl | 71 - .../admin/release_naming_regexes-list.tpl | 43 - .../admin/release_naming_regexes-test.tpl | 35 - .../nntmux/views/admin/role-edit.tpl | 92 - .../nntmux/views/admin/role-list.tpl | 34 - www/templates/nntmux/views/admin/sharing.tpl | 197 - .../nntmux/views/admin/site-debug.tpl | 20 - .../nntmux/views/admin/site-edit.tpl | 1695 --- .../nntmux/views/admin/site-stats.tpl | 186 - .../nntmux/views/admin/spotnab-edit.tpl | 55 - .../nntmux/views/admin/spotnab-list.tpl | 44 - .../nntmux/views/admin/thetvdb-edit.tpl | 124 - .../nntmux/views/admin/thetvdb-list.tpl | 40 - .../nntmux/views/admin/thetvdb-remove.tpl | 4 - .../nntmux/views/admin/tmux-edit.tpl | 784 -- .../nntmux/views/admin/user-edit.tpl | 128 - .../nntmux/views/admin/user-list.tpl | 64 - .../nntmux/views/admin/view-logs.tpl | 34 - www/templates/nntmux/views/frontend/games.tpl | 28 +- .../nntmux/views/frontend/rssheader.tpl | 2 +- .../omicron/views/admin/adminmenu.tpl | 53 - .../omicron/views/admin/ajax_release-edit.tpl | 106 - .../omicron/views/admin/anidb-edit.tpl | 119 - .../omicron/views/admin/anidb-list.tpl | 41 - .../omicron/views/admin/anidb-remove.tpl | 4 - .../omicron/views/admin/baseadminpage.tpl | 95 - .../views/admin/binaryblacklist-edit.tpl | 71 - .../views/admin/binaryblacklist-list.tpl | 37 - .../omicron/views/admin/book-edit.tpl | 71 - .../omicron/views/admin/book-list.tpl | 29 - .../omicron/views/admin/category-edit.tpl | 68 - .../omicron/views/admin/category-list.tpl | 43 - .../views/admin/category_regexes-edit.tpl | 73 - .../views/admin/category_regexes-list.tpl | 47 - .../views/admin/collection_regexes-edit.tpl | 73 - .../views/admin/collection_regexes-list.tpl | 43 - .../views/admin/collection_regexes-test.tpl | 44 - .../omicron/views/admin/comments-list.tpl | 38 - .../omicron/views/admin/console-edit.tpl | 96 - .../omicron/views/admin/console-list.tpl | 30 - .../omicron/views/admin/content-add.tpl | 74 - .../omicron/views/admin/content-list.tpl | 57 - .../omicron/views/admin/db-optimise.tpl | 16 - .../omicron/views/admin/game-edit.tpl | 75 - .../omicron/views/admin/game-list.tpl | 22 - .../omicron/views/admin/group-bulk.tpl | 60 - .../omicron/views/admin/group-edit.tpl | 74 - .../omicron/views/admin/group-list.tpl | 84 - www/templates/omicron/views/admin/index.tpl | 53 - .../omicron/views/admin/menu-edit.tpl | 70 - .../omicron/views/admin/menu-list.tpl | 32 - .../omicron/views/admin/movie-add.tpl | 30 - .../omicron/views/admin/movie-edit.tpl | 112 - .../omicron/views/admin/movie-list.tpl | 51 - .../omicron/views/admin/music-edit.tpl | 104 - .../omicron/views/admin/music-list.tpl | 30 - .../omicron/views/admin/nzb-export.tpl | 66 - .../omicron/views/admin/nzb-import.tpl | 74 - .../omicron/views/admin/preview-list.tpl | 43 - .../omicron/views/admin/rage-edit.tpl | 87 - .../omicron/views/admin/rage-list.tpl | 44 - .../omicron/views/admin/rage-remove.tpl | 4 - .../omicron/views/admin/regex-edit.tpl | 78 - .../omicron/views/admin/regex-list.tpl | 51 - .../omicron/views/admin/regex-submit.tpl | 38 - .../omicron/views/admin/regex-test.tpl | 146 - .../omicron/views/admin/release-edit.tpl | 162 - .../omicron/views/admin/release-files.tpl | 24 - .../omicron/views/admin/release-list.tpl | 37 - .../admin/release_naming_regexes-edit.tpl | 71 - .../admin/release_naming_regexes-list.tpl | 43 - .../admin/release_naming_regexes-test.tpl | 35 - .../omicron/views/admin/role-edit.tpl | 92 - .../omicron/views/admin/role-list.tpl | 34 - www/templates/omicron/views/admin/sharing.tpl | 197 - .../omicron/views/admin/site-debug.tpl | 20 - .../omicron/views/admin/site-edit.tpl | 1695 --- .../omicron/views/admin/site-stats.tpl | 186 - .../omicron/views/admin/spotnab-edit.tpl | 55 - .../omicron/views/admin/spotnab-list.tpl | 44 - .../omicron/views/admin/thetvdb-edit.tpl | 124 - .../omicron/views/admin/thetvdb-list.tpl | 40 - .../omicron/views/admin/thetvdb-remove.tpl | 4 - .../omicron/views/admin/tmux-edit.tpl | 784 -- .../omicron/views/admin/user-edit.tpl | 128 - .../omicron/views/admin/user-list.tpl | 64 - .../omicron/views/admin/view-logs.tpl | 34 - .../omicron/views/frontend/dlbrowse.tpl | 4 +- .../omicron/views/frontend/nzbvortex-ajax.tpl | 20 +- .../omicron/views/frontend/opensearch.tpl | 4 +- .../omicron/views/frontend/viewanime.tpl | 6 +- .../omicron/views/frontend/viewfilelist.tpl | 4 +- .../omicron/views/frontend/viewseries.tpl | 6 +- www/templates_shared/images/astra.png | Bin 0 -> 7177 bytes www/templates_shared/images/banner.jpg | Bin 0 -> 8323 bytes .../images/banner_nnplushigh.jpg | Bin 0 -> 8271 bytes www/templates_shared/images/body-bg.png | Bin 0 -> 12626 bytes www/templates_shared/images/bullet.jpg | Bin 0 -> 739 bytes www/templates_shared/images/bullet_hov.jpg | Bin 0 -> 745 bytes www/templates_shared/images/bullet_hov.png | Bin 0 -> 169 bytes www/templates_shared/images/clearlogo.png | Bin 0 -> 2902 bytes .../images/colorbox/border1-dark.png | Bin 0 -> 1244 bytes .../images/colorbox/border1.png | Bin 0 -> 896 bytes .../images/colorbox/border2-dark.png | Bin 0 -> 229 bytes .../images/colorbox/border2.png | Bin 0 -> 183 bytes .../images/colorbox/controls-dark.png | Bin 0 -> 1176 bytes .../images/colorbox/controls.png | Bin 0 -> 570 bytes .../images/colorbox/controls2.png | Bin 0 -> 570 bytes .../internet_explorer/borderBottomCenter.png | Bin 0 -> 153 bytes .../internet_explorer/borderBottomLeft.png | Bin 0 -> 473 bytes .../internet_explorer/borderBottomRight.png | Bin 0 -> 470 bytes .../internet_explorer/borderMiddleLeft.png | Bin 0 -> 154 bytes .../internet_explorer/borderMiddleRight.png | Bin 0 -> 148 bytes .../internet_explorer/borderTopCenter.png | Bin 0 -> 143 bytes .../internet_explorer/borderTopLeft.png | Bin 0 -> 405 bytes .../internet_explorer/borderTopRight.png | Bin 0 -> 465 bytes .../images/colorbox/loading.gif | Bin 0 -> 9427 bytes www/templates_shared/images/couchpotato.png | Bin 0 -> 5705 bytes www/templates_shared/images/favicon.ico | Bin 0 -> 1406 bytes www/templates_shared/images/fileicons/7z.png | Bin 0 -> 651 bytes www/templates_shared/images/fileicons/ai.png | Bin 0 -> 927 bytes .../images/fileicons/aiff.png | Bin 0 -> 876 bytes www/templates_shared/images/fileicons/asc.png | Bin 0 -> 759 bytes .../images/fileicons/audio.png | Bin 0 -> 727 bytes www/templates_shared/images/fileicons/avi.png | Bin 0 -> 740 bytes www/templates_shared/images/fileicons/bin.png | Bin 0 -> 616 bytes www/templates_shared/images/fileicons/bz2.png | Bin 0 -> 720 bytes www/templates_shared/images/fileicons/c.png | Bin 0 -> 827 bytes www/templates_shared/images/fileicons/cfc.png | Bin 0 -> 1145 bytes www/templates_shared/images/fileicons/cfm.png | Bin 0 -> 1145 bytes www/templates_shared/images/fileicons/chm.png | Bin 0 -> 483 bytes .../images/fileicons/class.png | Bin 0 -> 759 bytes .../images/fileicons/conf.png | Bin 0 -> 717 bytes www/templates_shared/images/fileicons/cpp.png | Bin 0 -> 881 bytes www/templates_shared/images/fileicons/cs.png | Bin 0 -> 808 bytes www/templates_shared/images/fileicons/css.png | Bin 0 -> 896 bytes www/templates_shared/images/fileicons/csv.png | Bin 0 -> 480 bytes www/templates_shared/images/fileicons/deb.png | Bin 0 -> 716 bytes .../images/fileicons/divx.png | Bin 0 -> 897 bytes www/templates_shared/images/fileicons/doc.png | Bin 0 -> 659 bytes www/templates_shared/images/fileicons/dot.png | Bin 0 -> 658 bytes www/templates_shared/images/fileicons/eml.png | Bin 0 -> 376 bytes www/templates_shared/images/fileicons/enc.png | Bin 0 -> 757 bytes .../images/fileicons/file.png | Bin 0 -> 720 bytes .../images/fileicons/folder.png | Bin 0 -> 537 bytes www/templates_shared/images/fileicons/gif.png | Bin 0 -> 1001 bytes www/templates_shared/images/fileicons/gz.png | Bin 0 -> 716 bytes www/templates_shared/images/fileicons/hlp.png | Bin 0 -> 483 bytes www/templates_shared/images/fileicons/htm.png | Bin 0 -> 748 bytes .../images/fileicons/html.png | Bin 0 -> 748 bytes .../images/fileicons/image.png | Bin 0 -> 906 bytes www/templates_shared/images/fileicons/iso.png | Bin 0 -> 700 bytes www/templates_shared/images/fileicons/jar.png | Bin 0 -> 672 bytes .../images/fileicons/java.png | Bin 0 -> 727 bytes .../images/fileicons/jpeg.png | Bin 0 -> 1001 bytes www/templates_shared/images/fileicons/jpg.png | Bin 0 -> 1001 bytes www/templates_shared/images/fileicons/js.png | Bin 0 -> 862 bytes www/templates_shared/images/fileicons/lua.png | Bin 0 -> 465 bytes www/templates_shared/images/fileicons/m.png | Bin 0 -> 915 bytes www/templates_shared/images/fileicons/m4v.png | Bin 0 -> 740 bytes www/templates_shared/images/fileicons/mkv.png | Bin 0 -> 740 bytes www/templates_shared/images/fileicons/mm.png | Bin 0 -> 464 bytes www/templates_shared/images/fileicons/mov.png | Bin 0 -> 887 bytes www/templates_shared/images/fileicons/mp3.png | Bin 0 -> 885 bytes www/templates_shared/images/fileicons/mpg.png | Bin 0 -> 894 bytes www/templates_shared/images/fileicons/nfo.png | Bin 0 -> 542 bytes www/templates_shared/images/fileicons/nzb.png | Bin 0 -> 616 bytes www/templates_shared/images/fileicons/odc.png | Bin 0 -> 749 bytes www/templates_shared/images/fileicons/odf.png | Bin 0 -> 807 bytes www/templates_shared/images/fileicons/odg.png | Bin 0 -> 788 bytes www/templates_shared/images/fileicons/odi.png | Bin 0 -> 788 bytes www/templates_shared/images/fileicons/odp.png | Bin 0 -> 744 bytes www/templates_shared/images/fileicons/ods.png | Bin 0 -> 749 bytes www/templates_shared/images/fileicons/odt.png | Bin 0 -> 577 bytes www/templates_shared/images/fileicons/ogg.png | Bin 0 -> 865 bytes .../images/fileicons/par2.png | Bin 0 -> 717 bytes www/templates_shared/images/fileicons/pdf.png | Bin 0 -> 663 bytes www/templates_shared/images/fileicons/pgp.png | Bin 0 -> 750 bytes www/templates_shared/images/fileicons/php.png | Bin 0 -> 887 bytes www/templates_shared/images/fileicons/pl.png | Bin 0 -> 871 bytes www/templates_shared/images/fileicons/png.png | Bin 0 -> 1001 bytes www/templates_shared/images/fileicons/ppt.png | Bin 0 -> 762 bytes www/templates_shared/images/fileicons/ps.png | Bin 0 -> 648 bytes www/templates_shared/images/fileicons/py.png | Bin 0 -> 871 bytes www/templates_shared/images/fileicons/ram.png | Bin 0 -> 806 bytes www/templates_shared/images/fileicons/rar.png | Bin 0 -> 631 bytes www/templates_shared/images/fileicons/rb.png | Bin 0 -> 878 bytes www/templates_shared/images/fileicons/rm.png | Bin 0 -> 866 bytes www/templates_shared/images/fileicons/rpm.png | Bin 0 -> 638 bytes www/templates_shared/images/fileicons/rtf.png | Bin 0 -> 474 bytes www/templates_shared/images/fileicons/sfv.png | Bin 0 -> 542 bytes www/templates_shared/images/fileicons/sig.png | Bin 0 -> 610 bytes www/templates_shared/images/fileicons/sql.png | Bin 0 -> 865 bytes www/templates_shared/images/fileicons/srr.png | Bin 0 -> 542 bytes www/templates_shared/images/fileicons/srs.png | Bin 0 -> 616 bytes www/templates_shared/images/fileicons/srt.png | Bin 0 -> 542 bytes www/templates_shared/images/fileicons/swf.png | Bin 0 -> 843 bytes www/templates_shared/images/fileicons/sxc.png | Bin 0 -> 749 bytes www/templates_shared/images/fileicons/sxd.png | Bin 0 -> 788 bytes www/templates_shared/images/fileicons/sxi.png | Bin 0 -> 744 bytes www/templates_shared/images/fileicons/sxw.png | Bin 0 -> 577 bytes www/templates_shared/images/fileicons/tar.png | Bin 0 -> 747 bytes www/templates_shared/images/fileicons/tex.png | Bin 0 -> 890 bytes www/templates_shared/images/fileicons/tgz.png | Bin 0 -> 716 bytes www/templates_shared/images/fileicons/txt.png | Bin 0 -> 542 bytes www/templates_shared/images/fileicons/url.png | Bin 0 -> 748 bytes www/templates_shared/images/fileicons/vcf.png | Bin 0 -> 711 bytes .../images/fileicons/video.png | Bin 0 -> 740 bytes www/templates_shared/images/fileicons/vsd.png | Bin 0 -> 814 bytes www/templates_shared/images/fileicons/wav.png | Bin 0 -> 881 bytes www/templates_shared/images/fileicons/wma.png | Bin 0 -> 886 bytes www/templates_shared/images/fileicons/wmv.png | Bin 0 -> 892 bytes www/templates_shared/images/fileicons/xls.png | Bin 0 -> 731 bytes www/templates_shared/images/fileicons/xml.png | Bin 0 -> 475 bytes www/templates_shared/images/fileicons/xpi.png | Bin 0 -> 952 bytes .../images/fileicons/xvid.png | Bin 0 -> 906 bytes www/templates_shared/images/fileicons/zip.png | Bin 0 -> 874 bytes www/templates_shared/images/flags/cn.png | Bin 0 -> 472 bytes www/templates_shared/images/flags/cz.png | Bin 0 -> 476 bytes www/templates_shared/images/flags/de.png | Bin 0 -> 545 bytes www/templates_shared/images/flags/dk.png | Bin 0 -> 369 bytes www/templates_shared/images/flags/en.png | Bin 0 -> 1772 bytes www/templates_shared/images/flags/es.png | Bin 0 -> 469 bytes www/templates_shared/images/flags/fi.png | Bin 0 -> 489 bytes www/templates_shared/images/flags/fr.png | Bin 0 -> 545 bytes www/templates_shared/images/flags/gb.png | Bin 0 -> 1638 bytes www/templates_shared/images/flags/gr.png | Bin 0 -> 487 bytes www/templates_shared/images/flags/hu.png | Bin 0 -> 432 bytes www/templates_shared/images/flags/il.png | Bin 0 -> 431 bytes www/templates_shared/images/flags/in.png | Bin 0 -> 503 bytes www/templates_shared/images/flags/it.png | Bin 0 -> 420 bytes www/templates_shared/images/flags/jp.png | Bin 0 -> 420 bytes www/templates_shared/images/flags/kr.png | Bin 0 -> 592 bytes www/templates_shared/images/flags/nl.png | Bin 0 -> 453 bytes www/templates_shared/images/flags/no.png | Bin 0 -> 512 bytes www/templates_shared/images/flags/ph.png | Bin 0 -> 538 bytes www/templates_shared/images/flags/pk.png | Bin 0 -> 569 bytes www/templates_shared/images/flags/pl.png | Bin 0 -> 374 bytes www/templates_shared/images/flags/pt.png | Bin 0 -> 554 bytes www/templates_shared/images/flags/ro.png | Bin 0 -> 495 bytes www/templates_shared/images/flags/ru.png | Bin 0 -> 420 bytes www/templates_shared/images/flags/se.png | Bin 0 -> 542 bytes www/templates_shared/images/flags/th.png | Bin 0 -> 452 bytes www/templates_shared/images/flags/tr.png | Bin 0 -> 492 bytes www/templates_shared/images/flags/tw.png | Bin 0 -> 465 bytes www/templates_shared/images/flags/us.png | Bin 0 -> 1772 bytes www/templates_shared/images/flags/vn.png | Bin 0 -> 474 bytes www/templates_shared/images/icons/ade.png | Bin 0 -> 292 bytes www/templates_shared/images/icons/aebn.png | Bin 0 -> 1207 bytes .../images/icons/allmusic.png | Bin 0 -> 648 bytes www/templates_shared/images/icons/amazon.png | Bin 0 -> 537 bytes .../images/icons/binsearch.png | Bin 0 -> 267 bytes www/templates_shared/images/icons/broken.png | Bin 0 -> 597 bytes .../images/icons/cartdown.png | Bin 0 -> 682 bytes www/templates_shared/images/icons/cartup.png | Bin 0 -> 548 bytes www/templates_shared/images/icons/check.png | Bin 0 -> 649 bytes www/templates_shared/images/icons/couch.png | Bin 0 -> 589 bytes www/templates_shared/images/icons/desura.png | Bin 0 -> 575 bytes www/templates_shared/images/icons/discogs.png | Bin 0 -> 883 bytes www/templates_shared/images/icons/edit.gif | Bin 0 -> 961 bytes .../images/icons/exclamation.png | Bin 0 -> 701 bytes www/templates_shared/images/icons/fresh.png | Bin 0 -> 773 bytes .../images/icons/gamespot.png | Bin 0 -> 1120 bytes .../images/icons/giantbomb.png | Bin 0 -> 815 bytes www/templates_shared/images/icons/go.png | Bin 0 -> 1378 bytes .../images/icons/goodreads.png | Bin 0 -> 674 bytes .../images/icons/greenlight.png | Bin 0 -> 379 bytes .../images/icons/hotmovies.png | Bin 0 -> 1164 bytes www/templates_shared/images/icons/iafd.png | Bin 0 -> 205 bytes www/templates_shared/images/icons/ign.png | Bin 0 -> 483 bytes www/templates_shared/images/icons/imdb.png | Bin 0 -> 442 bytes .../images/icons/information.png | Bin 0 -> 778 bytes www/templates_shared/images/icons/lastfm.png | Bin 0 -> 849 bytes www/templates_shared/images/icons/lock.gif | Bin 0 -> 96 bytes www/templates_shared/images/icons/lock2.png | Bin 0 -> 211 bytes .../images/icons/magnifier.png | Bin 0 -> 469 bytes www/templates_shared/images/icons/note.png | Bin 0 -> 500 bytes .../images/icons/note_add.png | Bin 0 -> 641 bytes .../images/icons/note_edit.png | Bin 0 -> 731 bytes www/templates_shared/images/icons/nuke.png | Bin 0 -> 1383 bytes www/templates_shared/images/icons/nuked.png | Bin 0 -> 898 bytes www/templates_shared/images/icons/nzbdown.png | Bin 0 -> 3209 bytes .../images/icons/nzbindex.png | Bin 0 -> 293 bytes www/templates_shared/images/icons/nzbup.png | Bin 0 -> 3240 bytes www/templates_shared/images/icons/popporn.png | Bin 0 -> 834 bytes www/templates_shared/images/icons/predbme.png | Bin 0 -> 461 bytes .../images/icons/queuedown.png | Bin 0 -> 773 bytes www/templates_shared/images/icons/queueup.png | Bin 0 -> 690 bytes www/templates_shared/images/icons/rotten.png | Bin 0 -> 857 bytes .../images/icons/rottentomatoes.png | Bin 0 -> 3529 bytes www/templates_shared/images/icons/sabdown.png | Bin 0 -> 554 bytes www/templates_shared/images/icons/sabup.png | Bin 0 -> 3222 bytes .../images/icons/shelfari.png | Bin 0 -> 692 bytes www/templates_shared/images/icons/steam.png | Bin 0 -> 379 bytes www/templates_shared/images/icons/switch.png | Bin 0 -> 3080 bytes www/templates_shared/images/icons/trakt.png | Bin 0 -> 574 bytes www/templates_shared/images/icons/tvrage.png | Bin 0 -> 3200 bytes www/templates_shared/images/icons/unnuked.png | Bin 0 -> 947 bytes .../images/icons/vortex/arrow2_n.png | Bin 0 -> 282 bytes .../images/icons/vortex/arrow2_s.png | Bin 0 -> 283 bytes .../images/icons/vortex/arrow3_n.png | Bin 0 -> 284 bytes .../images/icons/vortex/arrow3_s.png | Bin 0 -> 285 bytes .../images/icons/vortex/bigsmile.png | Bin 0 -> 310 bytes .../images/icons/vortex/bigsmiledown.png | Bin 0 -> 2852 bytes .../images/icons/vortex/blah.png | Bin 0 -> 307 bytes .../images/icons/vortex/edit.png | Bin 0 -> 298 bytes .../images/icons/vortex/frown.png | Bin 0 -> 308 bytes .../images/icons/vortex/pause.png | Bin 0 -> 297 bytes .../images/icons/vortex/play.png | Bin 0 -> 290 bytes .../images/icons/vortex/stop.png | Bin 0 -> 287 bytes .../images/icons/vortex/trash.png | Bin 0 -> 313 bytes .../images/icons/vortex/tv.png | Bin 0 -> 304 bytes www/templates_shared/images/icons/warning.png | Bin 0 -> 1952 bytes www/templates_shared/images/logo_large.png | Bin 0 -> 73122 bytes .../images/logo_largeplus.png | Bin 0 -> 204741 bytes .../images/logo_largeplushigh.png | Bin 0 -> 202534 bytes www/templates_shared/images/menu.gif | Bin 0 -> 1191 bytes .../images/multimedia/audio.png | Bin 0 -> 949 bytes .../images/multimedia/video.png | Bin 0 -> 1014 bytes www/templates_shared/images/nav-tile.png | Bin 0 -> 172 bytes www/templates_shared/images/newwindow.png | Bin 0 -> 1272 bytes www/templates_shared/images/nn_small.jpg | Bin 0 -> 4478 bytes www/templates_shared/images/nzbget.png | Bin 0 -> 12409 bytes www/templates_shared/images/powered.png | Bin 0 -> 12980 bytes www/templates_shared/images/sabnzbd.png | Bin 0 -> 5934 bytes www/templates_shared/images/sickbeard.png | Bin 0 -> 13531 bytes .../images/sorting/arrow_down.gif | Bin 0 -> 844 bytes .../images/sorting/arrow_up.gif | Bin 0 -> 843 bytes www/templates_shared/images/tvrage_small.gif | Bin 0 -> 4937 bytes www/templates_shared/images/valid-xhtml10.png | Bin 0 -> 1882 bytes www/templates_shared/scripts/bootstrap.min.js | 7 + www/templates_shared/scripts/holder.js | 419 + www/templates_shared/scripts/html5shiv.js | 8 + www/templates_shared/scripts/jquery-1.9.1.js | 9597 +++++++++++++++++ www/templates_shared/scripts/jquery-2.1.3.js | 9205 ++++++++++++++++ .../scripts/jquery.autosize-min.js | 7 + .../scripts/jquery.colorbox-min.js | 7 + .../scripts/jquery.multifile.js | 11 + .../scripts/jquery.multiselect.js | 532 + .../scripts/jquery.pnotify.min.js | 40 + .../scripts/jquery.qtip.min.js | 5 + www/templates_shared/scripts/jquery.qtip2.js | 1 + www/templates_shared/scripts/respond.min.js | 6 + www/templates_shared/scripts/sorttable.js | 234 + www/templates_shared/scripts/subnav.js | 35 + www/templates_shared/scripts/utils-admin.js | 743 ++ www/templates_shared/scripts/utils.js | 802 ++ www/templates_shared/styles/admin.css | 59 + www/templates_shared/styles/bootstrap.min.css | 5 + www/templates_shared/styles/install.css | 46 + .../styles/jquery.multiselect.css | 93 + .../styles/jquery.pnotify.default.css | 83 + www/templates_shared/styles/jquery.qtip.css | 623 ++ www/templates_shared/styles/posterwall.css | 859 ++ www/templates_shared/styles/style.css | 423 + .../views/admin/adminmenu.tpl | 0 .../views/admin/ajax_release-edit.tpl | 0 .../views/admin/anidb-edit.tpl | 0 .../views/admin/anidb-list.tpl | 0 .../views/admin/anidb-remove.tpl | 0 .../views/admin/baseadminpage.tpl | 0 .../views/admin/binaryblacklist-edit.tpl | 0 .../views/admin/binaryblacklist-list.tpl | 0 .../views/admin/book-edit.tpl | 0 .../views/admin/book-list.tpl | 0 .../views/admin/category-edit.tpl | 0 .../views/admin/category-list.tpl | 0 .../views/admin/category_regexes-edit.tpl | 0 .../views/admin/category_regexes-list.tpl | 0 .../views/admin/collection_regexes-edit.tpl | 0 .../views/admin/collection_regexes-list.tpl | 0 .../views/admin/collection_regexes-test.tpl | 0 .../views/admin/comments-list.tpl | 0 .../views/admin/console-edit.tpl | 0 .../views/admin/console-list.tpl | 0 .../views/admin/content-add.tpl | 0 .../views/admin/content-list.tpl | 0 .../views/admin/db-optimise.tpl | 0 .../views/admin/game-edit.tpl | 0 .../views/admin/game-list.tpl | 0 .../views/admin/group-bulk.tpl | 0 .../views/admin/group-edit.tpl | 0 .../views/admin/group-list.tpl | 0 .../views/admin/index.tpl | 0 .../views/admin/menu-edit.tpl | 0 .../views/admin/menu-list.tpl | 0 .../views/admin/movie-add.tpl | 0 .../views/admin/movie-edit.tpl | 0 .../views/admin/movie-list.tpl | 0 .../views/admin/music-edit.tpl | 0 .../views/admin/music-list.tpl | 0 .../views/admin/nzb-export.tpl | 0 .../views/admin/nzb-import.tpl | 0 .../views/admin/preview-list.tpl | 0 .../views/admin/rage-edit.tpl | 0 .../views/admin/rage-list.tpl | 0 .../views/admin/rage-remove.tpl | 0 .../views/admin/regex-edit.tpl | 0 .../views/admin/regex-list.tpl | 0 .../views/admin/regex-submit.tpl | 0 .../views/admin/regex-test.tpl | 0 .../views/admin/release-edit.tpl | 0 .../views/admin/release-files.tpl | 0 .../views/admin/release-list.tpl | 0 .../admin/release_naming_regexes-edit.tpl | 0 .../admin/release_naming_regexes-list.tpl | 0 .../admin/release_naming_regexes-test.tpl | 0 .../views/admin/role-edit.tpl | 0 .../views/admin/role-list.tpl | 0 .../views/admin/sharing.tpl | 0 .../views/admin/site-debug.tpl | 0 .../views/admin/site-edit.tpl | 0 .../views/admin/site-stats.tpl | 0 .../views/admin/spotnab-edit.tpl | 0 .../views/admin/spotnab-list.tpl | 0 .../views/admin/thetvdb-edit.tpl | 0 .../views/admin/thetvdb-list.tpl | 0 .../views/admin/thetvdb-remove.tpl | 0 .../views/admin/tmux-edit.tpl | 0 .../views/admin/user-edit.tpl | 0 .../views/admin/user-list.tpl | 0 .../views/admin/view-logs.tpl | 0 483 files changed, 23915 insertions(+), 13323 deletions(-) rename misc/update_scripts/nix_scripts/tmux/lib/IRCScraper/{settings_example.php => settings.example.php} (100%) rename www/{config.php.example => config.example.php} (100%) rename www/{settings.php.example => settings.example.php} (100%) delete mode 100644 www/templates/nntmux/views/admin/adminmenu.tpl delete mode 100644 www/templates/nntmux/views/admin/ajax_release-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/anidb-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/anidb-list.tpl delete mode 100644 www/templates/nntmux/views/admin/anidb-remove.tpl delete mode 100644 www/templates/nntmux/views/admin/baseadminpage.tpl delete mode 100644 www/templates/nntmux/views/admin/binaryblacklist-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/binaryblacklist-list.tpl delete mode 100644 www/templates/nntmux/views/admin/book-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/book-list.tpl delete mode 100644 www/templates/nntmux/views/admin/category-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/category-list.tpl delete mode 100644 www/templates/nntmux/views/admin/category_regexes-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/category_regexes-list.tpl delete mode 100644 www/templates/nntmux/views/admin/collection_regexes-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/collection_regexes-list.tpl delete mode 100644 www/templates/nntmux/views/admin/collection_regexes-test.tpl delete mode 100644 www/templates/nntmux/views/admin/comments-list.tpl delete mode 100644 www/templates/nntmux/views/admin/console-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/console-list.tpl delete mode 100644 www/templates/nntmux/views/admin/content-add.tpl delete mode 100644 www/templates/nntmux/views/admin/content-list.tpl delete mode 100644 www/templates/nntmux/views/admin/db-optimise.tpl delete mode 100644 www/templates/nntmux/views/admin/game-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/game-list.tpl delete mode 100644 www/templates/nntmux/views/admin/group-bulk.tpl delete mode 100644 www/templates/nntmux/views/admin/group-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/group-list.tpl delete mode 100644 www/templates/nntmux/views/admin/index.tpl delete mode 100644 www/templates/nntmux/views/admin/menu-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/menu-list.tpl delete mode 100644 www/templates/nntmux/views/admin/movie-add.tpl delete mode 100644 www/templates/nntmux/views/admin/movie-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/movie-list.tpl delete mode 100644 www/templates/nntmux/views/admin/music-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/music-list.tpl delete mode 100644 www/templates/nntmux/views/admin/nzb-export.tpl delete mode 100644 www/templates/nntmux/views/admin/nzb-import.tpl delete mode 100644 www/templates/nntmux/views/admin/preview-list.tpl delete mode 100644 www/templates/nntmux/views/admin/rage-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/rage-list.tpl delete mode 100644 www/templates/nntmux/views/admin/rage-remove.tpl delete mode 100644 www/templates/nntmux/views/admin/regex-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/regex-list.tpl delete mode 100644 www/templates/nntmux/views/admin/regex-submit.tpl delete mode 100644 www/templates/nntmux/views/admin/regex-test.tpl delete mode 100644 www/templates/nntmux/views/admin/release-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/release-files.tpl delete mode 100644 www/templates/nntmux/views/admin/release-list.tpl delete mode 100644 www/templates/nntmux/views/admin/release_naming_regexes-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/release_naming_regexes-list.tpl delete mode 100644 www/templates/nntmux/views/admin/release_naming_regexes-test.tpl delete mode 100644 www/templates/nntmux/views/admin/role-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/role-list.tpl delete mode 100644 www/templates/nntmux/views/admin/sharing.tpl delete mode 100644 www/templates/nntmux/views/admin/site-debug.tpl delete mode 100644 www/templates/nntmux/views/admin/site-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/site-stats.tpl delete mode 100644 www/templates/nntmux/views/admin/spotnab-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/spotnab-list.tpl delete mode 100644 www/templates/nntmux/views/admin/thetvdb-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/thetvdb-list.tpl delete mode 100644 www/templates/nntmux/views/admin/thetvdb-remove.tpl delete mode 100644 www/templates/nntmux/views/admin/tmux-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/user-edit.tpl delete mode 100644 www/templates/nntmux/views/admin/user-list.tpl delete mode 100644 www/templates/nntmux/views/admin/view-logs.tpl delete mode 100644 www/templates/omicron/views/admin/adminmenu.tpl delete mode 100644 www/templates/omicron/views/admin/ajax_release-edit.tpl delete mode 100644 www/templates/omicron/views/admin/anidb-edit.tpl delete mode 100644 www/templates/omicron/views/admin/anidb-list.tpl delete mode 100644 www/templates/omicron/views/admin/anidb-remove.tpl delete mode 100644 www/templates/omicron/views/admin/baseadminpage.tpl delete mode 100644 www/templates/omicron/views/admin/binaryblacklist-edit.tpl delete mode 100644 www/templates/omicron/views/admin/binaryblacklist-list.tpl delete mode 100644 www/templates/omicron/views/admin/book-edit.tpl delete mode 100644 www/templates/omicron/views/admin/book-list.tpl delete mode 100644 www/templates/omicron/views/admin/category-edit.tpl delete mode 100644 www/templates/omicron/views/admin/category-list.tpl delete mode 100644 www/templates/omicron/views/admin/category_regexes-edit.tpl delete mode 100644 www/templates/omicron/views/admin/category_regexes-list.tpl delete mode 100644 www/templates/omicron/views/admin/collection_regexes-edit.tpl delete mode 100644 www/templates/omicron/views/admin/collection_regexes-list.tpl delete mode 100644 www/templates/omicron/views/admin/collection_regexes-test.tpl delete mode 100644 www/templates/omicron/views/admin/comments-list.tpl delete mode 100644 www/templates/omicron/views/admin/console-edit.tpl delete mode 100644 www/templates/omicron/views/admin/console-list.tpl delete mode 100644 www/templates/omicron/views/admin/content-add.tpl delete mode 100644 www/templates/omicron/views/admin/content-list.tpl delete mode 100644 www/templates/omicron/views/admin/db-optimise.tpl delete mode 100644 www/templates/omicron/views/admin/game-edit.tpl delete mode 100644 www/templates/omicron/views/admin/game-list.tpl delete mode 100644 www/templates/omicron/views/admin/group-bulk.tpl delete mode 100644 www/templates/omicron/views/admin/group-edit.tpl delete mode 100644 www/templates/omicron/views/admin/group-list.tpl delete mode 100644 www/templates/omicron/views/admin/index.tpl delete mode 100644 www/templates/omicron/views/admin/menu-edit.tpl delete mode 100644 www/templates/omicron/views/admin/menu-list.tpl delete mode 100644 www/templates/omicron/views/admin/movie-add.tpl delete mode 100644 www/templates/omicron/views/admin/movie-edit.tpl delete mode 100644 www/templates/omicron/views/admin/movie-list.tpl delete mode 100644 www/templates/omicron/views/admin/music-edit.tpl delete mode 100644 www/templates/omicron/views/admin/music-list.tpl delete mode 100644 www/templates/omicron/views/admin/nzb-export.tpl delete mode 100644 www/templates/omicron/views/admin/nzb-import.tpl delete mode 100644 www/templates/omicron/views/admin/preview-list.tpl delete mode 100644 www/templates/omicron/views/admin/rage-edit.tpl delete mode 100644 www/templates/omicron/views/admin/rage-list.tpl delete mode 100644 www/templates/omicron/views/admin/rage-remove.tpl delete mode 100644 www/templates/omicron/views/admin/regex-edit.tpl delete mode 100644 www/templates/omicron/views/admin/regex-list.tpl delete mode 100644 www/templates/omicron/views/admin/regex-submit.tpl delete mode 100644 www/templates/omicron/views/admin/regex-test.tpl delete mode 100644 www/templates/omicron/views/admin/release-edit.tpl delete mode 100644 www/templates/omicron/views/admin/release-files.tpl delete mode 100644 www/templates/omicron/views/admin/release-list.tpl delete mode 100644 www/templates/omicron/views/admin/release_naming_regexes-edit.tpl delete mode 100644 www/templates/omicron/views/admin/release_naming_regexes-list.tpl delete mode 100644 www/templates/omicron/views/admin/release_naming_regexes-test.tpl delete mode 100644 www/templates/omicron/views/admin/role-edit.tpl delete mode 100644 www/templates/omicron/views/admin/role-list.tpl delete mode 100644 www/templates/omicron/views/admin/sharing.tpl delete mode 100644 www/templates/omicron/views/admin/site-debug.tpl delete mode 100644 www/templates/omicron/views/admin/site-edit.tpl delete mode 100644 www/templates/omicron/views/admin/site-stats.tpl delete mode 100644 www/templates/omicron/views/admin/spotnab-edit.tpl delete mode 100644 www/templates/omicron/views/admin/spotnab-list.tpl delete mode 100644 www/templates/omicron/views/admin/thetvdb-edit.tpl delete mode 100644 www/templates/omicron/views/admin/thetvdb-list.tpl delete mode 100644 www/templates/omicron/views/admin/thetvdb-remove.tpl delete mode 100644 www/templates/omicron/views/admin/tmux-edit.tpl delete mode 100644 www/templates/omicron/views/admin/user-edit.tpl delete mode 100644 www/templates/omicron/views/admin/user-list.tpl delete mode 100644 www/templates/omicron/views/admin/view-logs.tpl create mode 100644 www/templates_shared/images/astra.png create mode 100644 www/templates_shared/images/banner.jpg create mode 100644 www/templates_shared/images/banner_nnplushigh.jpg create mode 100644 www/templates_shared/images/body-bg.png create mode 100644 www/templates_shared/images/bullet.jpg create mode 100644 www/templates_shared/images/bullet_hov.jpg create mode 100644 www/templates_shared/images/bullet_hov.png create mode 100644 www/templates_shared/images/clearlogo.png create mode 100644 www/templates_shared/images/colorbox/border1-dark.png create mode 100644 www/templates_shared/images/colorbox/border1.png create mode 100644 www/templates_shared/images/colorbox/border2-dark.png create mode 100644 www/templates_shared/images/colorbox/border2.png create mode 100644 www/templates_shared/images/colorbox/controls-dark.png create mode 100644 www/templates_shared/images/colorbox/controls.png create mode 100644 www/templates_shared/images/colorbox/controls2.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderBottomCenter.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderBottomLeft.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderBottomRight.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderMiddleLeft.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderMiddleRight.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderTopCenter.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderTopLeft.png create mode 100644 www/templates_shared/images/colorbox/internet_explorer/borderTopRight.png create mode 100644 www/templates_shared/images/colorbox/loading.gif create mode 100644 www/templates_shared/images/couchpotato.png create mode 100644 www/templates_shared/images/favicon.ico create mode 100644 www/templates_shared/images/fileicons/7z.png create mode 100644 www/templates_shared/images/fileicons/ai.png create mode 100644 www/templates_shared/images/fileicons/aiff.png create mode 100644 www/templates_shared/images/fileicons/asc.png create mode 100644 www/templates_shared/images/fileicons/audio.png create mode 100644 www/templates_shared/images/fileicons/avi.png create mode 100644 www/templates_shared/images/fileicons/bin.png create mode 100644 www/templates_shared/images/fileicons/bz2.png create mode 100644 www/templates_shared/images/fileicons/c.png create mode 100644 www/templates_shared/images/fileicons/cfc.png create mode 100644 www/templates_shared/images/fileicons/cfm.png create mode 100644 www/templates_shared/images/fileicons/chm.png create mode 100644 www/templates_shared/images/fileicons/class.png create mode 100644 www/templates_shared/images/fileicons/conf.png create mode 100644 www/templates_shared/images/fileicons/cpp.png create mode 100644 www/templates_shared/images/fileicons/cs.png create mode 100644 www/templates_shared/images/fileicons/css.png create mode 100644 www/templates_shared/images/fileicons/csv.png create mode 100644 www/templates_shared/images/fileicons/deb.png create mode 100644 www/templates_shared/images/fileicons/divx.png create mode 100644 www/templates_shared/images/fileicons/doc.png create mode 100644 www/templates_shared/images/fileicons/dot.png create mode 100644 www/templates_shared/images/fileicons/eml.png create mode 100644 www/templates_shared/images/fileicons/enc.png create mode 100644 www/templates_shared/images/fileicons/file.png create mode 100644 www/templates_shared/images/fileicons/folder.png create mode 100644 www/templates_shared/images/fileicons/gif.png create mode 100644 www/templates_shared/images/fileicons/gz.png create mode 100644 www/templates_shared/images/fileicons/hlp.png create mode 100644 www/templates_shared/images/fileicons/htm.png create mode 100644 www/templates_shared/images/fileicons/html.png create mode 100644 www/templates_shared/images/fileicons/image.png create mode 100644 www/templates_shared/images/fileicons/iso.png create mode 100644 www/templates_shared/images/fileicons/jar.png create mode 100644 www/templates_shared/images/fileicons/java.png create mode 100644 www/templates_shared/images/fileicons/jpeg.png create mode 100644 www/templates_shared/images/fileicons/jpg.png create mode 100644 www/templates_shared/images/fileicons/js.png create mode 100644 www/templates_shared/images/fileicons/lua.png create mode 100644 www/templates_shared/images/fileicons/m.png create mode 100644 www/templates_shared/images/fileicons/m4v.png create mode 100644 www/templates_shared/images/fileicons/mkv.png create mode 100644 www/templates_shared/images/fileicons/mm.png create mode 100644 www/templates_shared/images/fileicons/mov.png create mode 100644 www/templates_shared/images/fileicons/mp3.png create mode 100644 www/templates_shared/images/fileicons/mpg.png create mode 100644 www/templates_shared/images/fileicons/nfo.png create mode 100644 www/templates_shared/images/fileicons/nzb.png create mode 100644 www/templates_shared/images/fileicons/odc.png create mode 100644 www/templates_shared/images/fileicons/odf.png create mode 100644 www/templates_shared/images/fileicons/odg.png create mode 100644 www/templates_shared/images/fileicons/odi.png create mode 100644 www/templates_shared/images/fileicons/odp.png create mode 100644 www/templates_shared/images/fileicons/ods.png create mode 100644 www/templates_shared/images/fileicons/odt.png create mode 100644 www/templates_shared/images/fileicons/ogg.png create mode 100644 www/templates_shared/images/fileicons/par2.png create mode 100644 www/templates_shared/images/fileicons/pdf.png create mode 100644 www/templates_shared/images/fileicons/pgp.png create mode 100644 www/templates_shared/images/fileicons/php.png create mode 100644 www/templates_shared/images/fileicons/pl.png create mode 100644 www/templates_shared/images/fileicons/png.png create mode 100644 www/templates_shared/images/fileicons/ppt.png create mode 100644 www/templates_shared/images/fileicons/ps.png create mode 100644 www/templates_shared/images/fileicons/py.png create mode 100644 www/templates_shared/images/fileicons/ram.png create mode 100644 www/templates_shared/images/fileicons/rar.png create mode 100644 www/templates_shared/images/fileicons/rb.png create mode 100644 www/templates_shared/images/fileicons/rm.png create mode 100644 www/templates_shared/images/fileicons/rpm.png create mode 100644 www/templates_shared/images/fileicons/rtf.png create mode 100644 www/templates_shared/images/fileicons/sfv.png create mode 100644 www/templates_shared/images/fileicons/sig.png create mode 100644 www/templates_shared/images/fileicons/sql.png create mode 100644 www/templates_shared/images/fileicons/srr.png create mode 100644 www/templates_shared/images/fileicons/srs.png create mode 100644 www/templates_shared/images/fileicons/srt.png create mode 100644 www/templates_shared/images/fileicons/swf.png create mode 100644 www/templates_shared/images/fileicons/sxc.png create mode 100644 www/templates_shared/images/fileicons/sxd.png create mode 100644 www/templates_shared/images/fileicons/sxi.png create mode 100644 www/templates_shared/images/fileicons/sxw.png create mode 100644 www/templates_shared/images/fileicons/tar.png create mode 100644 www/templates_shared/images/fileicons/tex.png create mode 100644 www/templates_shared/images/fileicons/tgz.png create mode 100644 www/templates_shared/images/fileicons/txt.png create mode 100644 www/templates_shared/images/fileicons/url.png create mode 100644 www/templates_shared/images/fileicons/vcf.png create mode 100644 www/templates_shared/images/fileicons/video.png create mode 100644 www/templates_shared/images/fileicons/vsd.png create mode 100644 www/templates_shared/images/fileicons/wav.png create mode 100644 www/templates_shared/images/fileicons/wma.png create mode 100644 www/templates_shared/images/fileicons/wmv.png create mode 100644 www/templates_shared/images/fileicons/xls.png create mode 100644 www/templates_shared/images/fileicons/xml.png create mode 100644 www/templates_shared/images/fileicons/xpi.png create mode 100644 www/templates_shared/images/fileicons/xvid.png create mode 100644 www/templates_shared/images/fileicons/zip.png create mode 100644 www/templates_shared/images/flags/cn.png create mode 100644 www/templates_shared/images/flags/cz.png create mode 100644 www/templates_shared/images/flags/de.png create mode 100644 www/templates_shared/images/flags/dk.png create mode 100644 www/templates_shared/images/flags/en.png create mode 100644 www/templates_shared/images/flags/es.png create mode 100644 www/templates_shared/images/flags/fi.png create mode 100644 www/templates_shared/images/flags/fr.png create mode 100644 www/templates_shared/images/flags/gb.png create mode 100644 www/templates_shared/images/flags/gr.png create mode 100644 www/templates_shared/images/flags/hu.png create mode 100644 www/templates_shared/images/flags/il.png create mode 100644 www/templates_shared/images/flags/in.png create mode 100644 www/templates_shared/images/flags/it.png create mode 100644 www/templates_shared/images/flags/jp.png create mode 100644 www/templates_shared/images/flags/kr.png create mode 100644 www/templates_shared/images/flags/nl.png create mode 100644 www/templates_shared/images/flags/no.png create mode 100644 www/templates_shared/images/flags/ph.png create mode 100644 www/templates_shared/images/flags/pk.png create mode 100644 www/templates_shared/images/flags/pl.png create mode 100644 www/templates_shared/images/flags/pt.png create mode 100644 www/templates_shared/images/flags/ro.png create mode 100644 www/templates_shared/images/flags/ru.png create mode 100644 www/templates_shared/images/flags/se.png create mode 100644 www/templates_shared/images/flags/th.png create mode 100644 www/templates_shared/images/flags/tr.png create mode 100644 www/templates_shared/images/flags/tw.png create mode 100644 www/templates_shared/images/flags/us.png create mode 100644 www/templates_shared/images/flags/vn.png create mode 100644 www/templates_shared/images/icons/ade.png create mode 100644 www/templates_shared/images/icons/aebn.png create mode 100644 www/templates_shared/images/icons/allmusic.png create mode 100644 www/templates_shared/images/icons/amazon.png create mode 100644 www/templates_shared/images/icons/binsearch.png create mode 100644 www/templates_shared/images/icons/broken.png create mode 100644 www/templates_shared/images/icons/cartdown.png create mode 100644 www/templates_shared/images/icons/cartup.png create mode 100644 www/templates_shared/images/icons/check.png create mode 100644 www/templates_shared/images/icons/couch.png create mode 100644 www/templates_shared/images/icons/desura.png create mode 100644 www/templates_shared/images/icons/discogs.png create mode 100644 www/templates_shared/images/icons/edit.gif create mode 100644 www/templates_shared/images/icons/exclamation.png create mode 100644 www/templates_shared/images/icons/fresh.png create mode 100644 www/templates_shared/images/icons/gamespot.png create mode 100644 www/templates_shared/images/icons/giantbomb.png create mode 100644 www/templates_shared/images/icons/go.png create mode 100644 www/templates_shared/images/icons/goodreads.png create mode 100644 www/templates_shared/images/icons/greenlight.png create mode 100644 www/templates_shared/images/icons/hotmovies.png create mode 100644 www/templates_shared/images/icons/iafd.png create mode 100644 www/templates_shared/images/icons/ign.png create mode 100644 www/templates_shared/images/icons/imdb.png create mode 100644 www/templates_shared/images/icons/information.png create mode 100644 www/templates_shared/images/icons/lastfm.png create mode 100644 www/templates_shared/images/icons/lock.gif create mode 100644 www/templates_shared/images/icons/lock2.png create mode 100644 www/templates_shared/images/icons/magnifier.png create mode 100644 www/templates_shared/images/icons/note.png create mode 100644 www/templates_shared/images/icons/note_add.png create mode 100644 www/templates_shared/images/icons/note_edit.png create mode 100644 www/templates_shared/images/icons/nuke.png create mode 100644 www/templates_shared/images/icons/nuked.png create mode 100644 www/templates_shared/images/icons/nzbdown.png create mode 100644 www/templates_shared/images/icons/nzbindex.png create mode 100644 www/templates_shared/images/icons/nzbup.png create mode 100644 www/templates_shared/images/icons/popporn.png create mode 100644 www/templates_shared/images/icons/predbme.png create mode 100644 www/templates_shared/images/icons/queuedown.png create mode 100644 www/templates_shared/images/icons/queueup.png create mode 100644 www/templates_shared/images/icons/rotten.png create mode 100644 www/templates_shared/images/icons/rottentomatoes.png create mode 100644 www/templates_shared/images/icons/sabdown.png create mode 100644 www/templates_shared/images/icons/sabup.png create mode 100644 www/templates_shared/images/icons/shelfari.png create mode 100644 www/templates_shared/images/icons/steam.png create mode 100644 www/templates_shared/images/icons/switch.png create mode 100644 www/templates_shared/images/icons/trakt.png create mode 100644 www/templates_shared/images/icons/tvrage.png create mode 100644 www/templates_shared/images/icons/unnuked.png create mode 100644 www/templates_shared/images/icons/vortex/arrow2_n.png create mode 100644 www/templates_shared/images/icons/vortex/arrow2_s.png create mode 100644 www/templates_shared/images/icons/vortex/arrow3_n.png create mode 100644 www/templates_shared/images/icons/vortex/arrow3_s.png create mode 100644 www/templates_shared/images/icons/vortex/bigsmile.png create mode 100644 www/templates_shared/images/icons/vortex/bigsmiledown.png create mode 100644 www/templates_shared/images/icons/vortex/blah.png create mode 100644 www/templates_shared/images/icons/vortex/edit.png create mode 100644 www/templates_shared/images/icons/vortex/frown.png create mode 100644 www/templates_shared/images/icons/vortex/pause.png create mode 100644 www/templates_shared/images/icons/vortex/play.png create mode 100644 www/templates_shared/images/icons/vortex/stop.png create mode 100644 www/templates_shared/images/icons/vortex/trash.png create mode 100644 www/templates_shared/images/icons/vortex/tv.png create mode 100644 www/templates_shared/images/icons/warning.png create mode 100644 www/templates_shared/images/logo_large.png create mode 100644 www/templates_shared/images/logo_largeplus.png create mode 100644 www/templates_shared/images/logo_largeplushigh.png create mode 100644 www/templates_shared/images/menu.gif create mode 100644 www/templates_shared/images/multimedia/audio.png create mode 100644 www/templates_shared/images/multimedia/video.png create mode 100644 www/templates_shared/images/nav-tile.png create mode 100644 www/templates_shared/images/newwindow.png create mode 100644 www/templates_shared/images/nn_small.jpg create mode 100644 www/templates_shared/images/nzbget.png create mode 100644 www/templates_shared/images/powered.png create mode 100644 www/templates_shared/images/sabnzbd.png create mode 100644 www/templates_shared/images/sickbeard.png create mode 100644 www/templates_shared/images/sorting/arrow_down.gif create mode 100644 www/templates_shared/images/sorting/arrow_up.gif create mode 100644 www/templates_shared/images/tvrage_small.gif create mode 100644 www/templates_shared/images/valid-xhtml10.png create mode 100644 www/templates_shared/scripts/bootstrap.min.js create mode 100644 www/templates_shared/scripts/holder.js create mode 100644 www/templates_shared/scripts/html5shiv.js create mode 100644 www/templates_shared/scripts/jquery-1.9.1.js create mode 100644 www/templates_shared/scripts/jquery-2.1.3.js create mode 100644 www/templates_shared/scripts/jquery.autosize-min.js create mode 100644 www/templates_shared/scripts/jquery.colorbox-min.js create mode 100644 www/templates_shared/scripts/jquery.multifile.js create mode 100644 www/templates_shared/scripts/jquery.multiselect.js create mode 100644 www/templates_shared/scripts/jquery.pnotify.min.js create mode 100644 www/templates_shared/scripts/jquery.qtip.min.js create mode 100644 www/templates_shared/scripts/jquery.qtip2.js create mode 100644 www/templates_shared/scripts/respond.min.js create mode 100644 www/templates_shared/scripts/sorttable.js create mode 100644 www/templates_shared/scripts/subnav.js create mode 100644 www/templates_shared/scripts/utils-admin.js create mode 100644 www/templates_shared/scripts/utils.js create mode 100644 www/templates_shared/styles/admin.css create mode 100644 www/templates_shared/styles/bootstrap.min.css create mode 100644 www/templates_shared/styles/install.css create mode 100644 www/templates_shared/styles/jquery.multiselect.css create mode 100644 www/templates_shared/styles/jquery.pnotify.default.css create mode 100644 www/templates_shared/styles/jquery.qtip.css create mode 100644 www/templates_shared/styles/posterwall.css create mode 100644 www/templates_shared/styles/style.css rename www/{templates/charisma => templates_shared}/views/admin/adminmenu.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/ajax_release-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/anidb-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/anidb-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/anidb-remove.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/baseadminpage.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/binaryblacklist-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/binaryblacklist-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/book-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/book-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/category-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/category-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/category_regexes-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/category_regexes-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/collection_regexes-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/collection_regexes-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/collection_regexes-test.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/comments-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/console-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/console-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/content-add.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/content-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/db-optimise.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/game-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/game-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/group-bulk.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/group-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/group-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/index.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/menu-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/menu-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/movie-add.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/movie-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/movie-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/music-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/music-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/nzb-export.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/nzb-import.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/preview-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/rage-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/rage-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/rage-remove.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/regex-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/regex-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/regex-submit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/regex-test.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/release-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/release-files.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/release-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/release_naming_regexes-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/release_naming_regexes-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/release_naming_regexes-test.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/role-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/role-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/sharing.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/site-debug.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/site-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/site-stats.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/spotnab-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/spotnab-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/thetvdb-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/thetvdb-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/thetvdb-remove.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/tmux-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/user-edit.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/user-list.tpl (100%) rename www/{templates/charisma => templates_shared}/views/admin/view-logs.tpl (100%) diff --git a/misc/update_scripts/nix_scripts/tmux/lib/IRCScraper/settings_example.php b/misc/update_scripts/nix_scripts/tmux/lib/IRCScraper/settings.example.php similarity index 100% rename from misc/update_scripts/nix_scripts/tmux/lib/IRCScraper/settings_example.php rename to misc/update_scripts/nix_scripts/tmux/lib/IRCScraper/settings.example.php diff --git a/newznab/controllers/AdminPage.php b/newznab/controllers/AdminPage.php index 9ba9e1355..6c551bdfb 100644 --- a/newznab/controllers/AdminPage.php +++ b/newznab/controllers/AdminPage.php @@ -15,9 +15,9 @@ class AdminPage extends BasePage $tplpaths = []; if ($this->settings->getSetting('style') != "default") - $tplpaths["style_admin"] = WWW_DIR.'templates/'.$this->settings->getSetting('style').'/views/admin'; - $tplpaths["admin"] = WWW_DIR.'templates/default/views/admin'; - $tplpaths["frontend"] = WWW_DIR.'templates/default/views/frontend'; + $tplpaths["style_admin"] = WWW_DIR.'templates_shared/views/admin'; + $tplpaths["admin"] = WWW_DIR.'templates_shared/views/admin'; + $tplpaths["frontend"] = WWW_DIR.'templates/nntmux/views/frontend'; $this->smarty->setTemplateDir($tplpaths); $users = new Users(); diff --git a/newznab/controllers/BasePage.php b/newznab/controllers/BasePage.php index 4c059bd44..4c3d0061b 100644 --- a/newznab/controllers/BasePage.php +++ b/newznab/controllers/BasePage.php @@ -75,7 +75,7 @@ class BasePage $this->smarty->setTemplateDir( [ 'user_frontend' => NN_WWW . 'templates/' . $this->settings->getSetting('style') . '/views/frontend', - 'frontend' => NN_WWW . 'templates/default/views/frontend' + 'frontend' => NN_WWW . 'templates/nntmux/views/frontend' ] ); $this->smarty->setCompileDir(SMARTY_DIR.'templates_c'.DIRECTORY_SEPARATOR); @@ -107,7 +107,7 @@ class BasePage $this->smarty->setTemplateDir( [ 'user_frontend' => NN_WWW . 'templates/' . $this->userdata['style'] . '/views/frontend', - 'frontend' => NN_WWW . 'templates/default/views/frontend' + 'frontend' => NN_WWW . 'templates/nntmux/views/frontend' ] ); } diff --git a/www/config.php.example b/www/config.example.php similarity index 100% rename from www/config.php.example rename to www/config.example.php diff --git a/www/pages/ajax_rarfilelist.php b/www/pages/ajax_rarfilelist.php index 002d32972..ff8618a68 100644 --- a/www/pages/ajax_rarfilelist.php +++ b/www/pages/ajax_rarfilelist.php @@ -16,6 +16,6 @@ else //print "

rar archive contains...

\n"; print ""; } \ No newline at end of file diff --git a/www/settings.php.example b/www/settings.example.php similarity index 100% rename from www/settings.php.example rename to www/settings.example.php diff --git a/www/templates/charisma/views/frontend/dlbrowse.tpl b/www/templates/charisma/views/frontend/dlbrowse.tpl index 95895dbbb..78ca0c994 100644 --- a/www/templates/charisma/views/frontend/dlbrowse.tpl +++ b/www/templates/charisma/views/frontend/dlbrowse.tpl @@ -32,7 +32,7 @@ {foreach from=$results item=result} - {assign var="icon" value='templates/default/images/fileicons/'|cat:$result.pathinfo.extension|cat:".png"} + {assign var="icon" value='templates/charisma/images/fileicons/'|cat:$result.pathinfo.extension|cat:".png"} {if $result.isdir == "1"} {assign var="icon" value='folder'} {elseif $result.pathinfo.extension == "" || !is_file("$icon")} @@ -42,7 +42,7 @@ {/if} {$result.pathinfo.extension} + src="{$smarty.const.WWW_TOP}/templates/charisma/images/fileicons/{$icon}.png"/> {if $result.isdir == 1} {$result.name|escape:"htmlall"} diff --git a/www/templates/charisma/views/frontend/nzbvortex-ajax.tpl b/www/templates/charisma/views/frontend/nzbvortex-ajax.tpl index 0df45e4cb..eb9162073 100644 --- a/www/templates/charisma/views/frontend/nzbvortex-ajax.tpl +++ b/www/templates/charisma/views/frontend/nzbvortex-ajax.tpl @@ -9,10 +9,10 @@
{if $nzb['isPaused'] eq 1} - {else} - {/if}
@@ -28,25 +28,25 @@
{if $nzb['isPaused'] eq 1} + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/play.png"/> {else} + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/pause.png"/> {/if} + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/tv.png"/>
+ src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/arrow2_n.png"/> + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/arrow2_s.png"/> + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/arrow3_s.png"/> + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/arrow3_n.png"/> + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/trash.png"/>

diff --git a/www/templates/charisma/views/frontend/opensearch.tpl b/www/templates/charisma/views/frontend/opensearch.tpl index 191570c66..a2cfc38e9 100644 --- a/www/templates/charisma/views/frontend/opensearch.tpl +++ b/www/templates/charisma/views/frontend/opensearch.tpl @@ -4,11 +4,11 @@ {$site->title|escape} Search Facility {$site->email} - {$serverroot}templates/default/images/favicon.ico + {$serverroot}templates/charisma/images/favicon.ico newznab.com UTF-8 {$serverroot} {$serverroot}opensearch - {$serverroot}templates/default/images/favicon.ico + {$serverroot}templates/charisma/images/favicon.ico 7 \ No newline at end of file diff --git a/www/templates/charisma/views/frontend/viewanime.tpl b/www/templates/charisma/views/frontend/viewanime.tpl index 0064dcf43..3f5af082c 100644 --- a/www/templates/charisma/views/frontend/viewanime.tpl +++ b/www/templates/charisma/views/frontend/viewanime.tpl @@ -147,19 +147,19 @@ {if isset($sabintegrated)} Send to my Sabnzbd + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/sabup.png"> {/if} {if $weHasVortex} Send to my NZBVortex + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/bigsmile.png"> {/if} {if isset($nzbgetintegrated)}Send to NZBget + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/nzbgetup.png"> {/if} {if isset($isadmin)}
diff --git a/www/templates/charisma/views/frontend/viewfilelist.tpl b/www/templates/charisma/views/frontend/viewfilelist.tpl index ae36e1802..8cef59d5f 100644 --- a/www/templates/charisma/views/frontend/viewfilelist.tpl +++ b/www/templates/charisma/views/frontend/viewfilelist.tpl @@ -19,7 +19,7 @@ {$smarty.foreach.iteration.index+1} {$file.title|escape:'htmlall'} - {assign var="icon" value='templates/default/images/fileicons/'|cat:$file.ext|cat:".png"} + {assign var="icon" value='templates/charisma/images/fileicons/'|cat:$file.ext|cat:".png"} {if $file.ext == "" || !is_file("$icon")} {assign var="icon" value='file'} {else} @@ -33,7 +33,7 @@ {/if} {$file.ext} + src="{$smarty.const.WWW_TOP}/templates/charisma/images/fileicons/{$icon}.png"/> {if $completion < 100}{$completion} %{else}{$completion}%{/if} {if $file.size < 100000}{$file.size|fsize_format:"KB"}{else}{$file.size|fsize_format:"MB"}{/if} diff --git a/www/templates/charisma/views/frontend/viewseries.tpl b/www/templates/charisma/views/frontend/viewseries.tpl index 533121e16..ce0f5f6de 100644 --- a/www/templates/charisma/views/frontend/viewseries.tpl +++ b/www/templates/charisma/views/frontend/viewseries.tpl @@ -206,7 +206,7 @@ {if isset($sabintegrated)} Send to my Sabnzbd + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/sabup.png"> {/if} {if $weHasVortex} @@ -214,14 +214,14 @@ title="Send to NZBVortex"> Send to my NZBVortex + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/vortex/bigsmile.png"> {/if} {if isset($nzbgetintegrated)}Send to NZBget + src="{$smarty.const.WWW_TOP}/templates/charisma/images/icons/nzbgetup.png"> {/if} {if isset($isadmin)}
diff --git a/www/templates/nntmux/views/admin/adminmenu.tpl b/www/templates/nntmux/views/admin/adminmenu.tpl deleted file mode 100644 index 37441af4e..000000000 --- a/www/templates/nntmux/views/admin/adminmenu.tpl +++ /dev/null @@ -1,53 +0,0 @@ -

Admin Functions

- diff --git a/www/templates/nntmux/views/admin/ajax_release-edit.tpl b/www/templates/nntmux/views/admin/ajax_release-edit.tpl deleted file mode 100644 index 8711069a6..000000000 --- a/www/templates/nntmux/views/admin/ajax_release-edit.tpl +++ /dev/null @@ -1,106 +0,0 @@ - -
- -{if $success} - -

Successfully updated!

-{if $from != ''} - -{/if} - -{else} - -{literal} - -{/literal} - -
- -{foreach from=$idArr item=id} - -{/foreach} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_options id="category" name=category options=$catlist selected=$release.categoryid} -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
- -
- -
- -{/if} - -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/anidb-edit.tpl b/www/templates/nntmux/views/admin/anidb-edit.tpl deleted file mode 100644 index b3f1626cd..000000000 --- a/www/templates/nntmux/views/admin/anidb-edit.tpl +++ /dev/null @@ -1,119 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/anidb-list.tpl b/www/templates/nntmux/views/admin/anidb-list.tpl deleted file mode 100644 index 409d82f0c..000000000 --- a/www/templates/nntmux/views/admin/anidb-list.tpl +++ /dev/null @@ -1,41 +0,0 @@ -

{$page->title}

- -{if $anidblist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - {foreach from=$anidblist item=anidb} - - - - - - {/foreach} - -
AniDB IdTitleOptions
{$anidb.anidbid}{$anidb.title|escape:"htmlall"}delete | remove
- -
- {$pager} -{else} -

No AniDB episodes available.

-{/if} diff --git a/www/templates/nntmux/views/admin/anidb-remove.tpl b/www/templates/nntmux/views/admin/anidb-remove.tpl deleted file mode 100644 index 97d0bf29f..000000000 --- a/www/templates/nntmux/views/admin/anidb-remove.tpl +++ /dev/null @@ -1,4 +0,0 @@ - -

{$page->title}

- -Removed anidbid from {$numtv} releases. \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/baseadminpage.tpl b/www/templates/nntmux/views/admin/baseadminpage.tpl deleted file mode 100644 index 15053ddca..000000000 --- a/www/templates/nntmux/views/admin/baseadminpage.tpl +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - {$site->title|default:'newznab'} - {$page->meta_title|default:$page->title} - - - - - - - - - - - {$page->head} - - - -
- - - -
- -
- -
- -
- {$page->content} -
- - - - - -
 
- -
- - -
-
-
-
- - - - - {if $site->google_analytics_acc != ''} - {literal} - - - - {/literal} - {/if} - - - \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/binaryblacklist-edit.tpl b/www/templates/nntmux/views/admin/binaryblacklist-edit.tpl deleted file mode 100644 index 2407eeaab..000000000 --- a/www/templates/nntmux/views/admin/binaryblacklist-edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ - -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Group: - - -
The full name of a valid newsgroup. (Wildcard in the format 'alt.binaries.*')
-
Regex: - -
The regex to be applied. (Note: Beginning and Ending / are already included)
-
Description: - -
A description for this regex
-
: - {html_radios id="msgcol" name='msgcol' values=$msgcol_ids output=$msgcol_names selected=$regex.msgcol separator='
'} -
Which field in the message to apply the black/white list to.
-
: - {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regexes are applied during the release process.
-
: - {html_radios id="optype" name='optype' values=$optype_ids output=$optype_names selected=$regex.optype separator='
'} -
Black will exclude all messages for a group which match this regex. White will include only those which match.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/binaryblacklist-list.tpl b/www/templates/nntmux/views/admin/binaryblacklist-list.tpl deleted file mode 100644 index 93a408784..000000000 --- a/www/templates/nntmux/views/admin/binaryblacklist-list.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -

{$page->title}

- -

- Binaries can be prevented from being added to the index at all if they match a regex provided in the blacklist. They can also be included only if they match a regex (whitelist). -

- -
- - - - - - - - - - - - - - {foreach from=$binlist item=bin} - - - - - - - - - - {/foreach} - -
idgroupregextypefieldstatusOptions
{$bin.id}{$bin.groupname|replace:"alt.binaries":"a.b"} - {$bin.regex|escape:html}
- {$bin.description} -
{if $bin.optype==1}black{else}white{/if}{if $bin.msgcol==1}subject{elseif $bin.msgcol==2}poster{else}messageid{/if}{if $bin.status==1}active{else}disabled{/if}edit | delete
diff --git a/www/templates/nntmux/views/admin/book-edit.tpl b/www/templates/nntmux/views/admin/book-edit.tpl deleted file mode 100644 index 417958379..000000000 --- a/www/templates/nntmux/views/admin/book-edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - - {if $book.cover == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/book-list.tpl b/www/templates/nntmux/views/admin/book-list.tpl deleted file mode 100644 index a83c0d369..000000000 --- a/www/templates/nntmux/views/admin/book-list.tpl +++ /dev/null @@ -1,29 +0,0 @@ -

{$page->title}

- -{if $booklist} -{$pager} - - - - - - - - - - - {foreach from=$booklist item=book} - - - - - - - {/foreach} - -
idTitleAuthorCreated
{$book.id}{$book.title}{$book.author}{$book.createddate|date_format}
-
- {$pager} -{else} -

No books available.

-{/if} diff --git a/www/templates/nntmux/views/admin/category-edit.tpl b/www/templates/nntmux/views/admin/category-edit.tpl deleted file mode 100644 index 34dc4407d..000000000 --- a/www/templates/nntmux/views/admin/category-edit.tpl +++ /dev/null @@ -1,68 +0,0 @@ - -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Title: - - {$category.title} -
Parent: - {$category.parentid} -
Description: - -
Minimum Size (Bytes): - -
Maximum Size (Bytes): - -
: - {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$category.status separator='
'} -
: - {html_radios id="disablepreview" name='disablepreview' values=$status_ids output=$status_names selected=$category.disablepreview separator='
'} -
- -
- -
diff --git a/www/templates/nntmux/views/admin/category-list.tpl b/www/templates/nntmux/views/admin/category-list.tpl deleted file mode 100644 index 613e3debf..000000000 --- a/www/templates/nntmux/views/admin/category-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ - -

{$page->title}

- -

- Make a category inactive to remove it from the menu. This does not prevent binaries being matched into an appropriate category. Disable preview prevents ffmpeg being used for releases in the category. -

- - - - - - - - - - - - - - {foreach from=$categorylist item=category} - - - - - - - - - - {/foreach} - - -
idtitleparentmin sizemax sizeactivedisable preview
{$category.id}{$category.title} - {if $category.parentid != null} - {$category.parentName} - {else} - n/a - {/if} - - {if $category.minsizetoformrelease != 0 }{$category.minsizetoformrelease|fsize_format:"MB"}{/if} - - {if $category.maxsizetoformrelease != 0 }{$category.maxsizetoformrelease|fsize_format:"MB"}{/if} - {if $category.status == "1"}Yes{else}No{/if}{if $category.disablepreview == "1"}Yes{else}No{/if}
diff --git a/www/templates/nntmux/views/admin/category_regexes-edit.tpl b/www/templates/nntmux/views/admin/category_regexes-edit.tpl deleted file mode 100644 index 246859a92..000000000 --- a/www/templates/nntmux/views/admin/category_regexes-edit.tpl +++ /dev/null @@ -1,73 +0,0 @@ -

{$page->title}

-{if $error != ''} -
{$error}
-{/if} -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- Regex to match against a group or multiple groups.
- Delimiters are already added, and PCRE_CASELESS is added after for case insensitivity. - An example of matching a single group: alt\.binaries\.example
- An example of matching multiple groups: alt\.binaries.* -
-
- -
- Regex to use when categorizing releases.
- The regex delimiters are not added, you MUST add them. See this page.
- To make the regex case insensitive, add i after the last delimiter.
-
-
- -
- Description for this regex.
- You can include an example usenet subject this regex would match on. -
-
- -
- The order to run this regex in.
- Must be a number, 0 or higher.
- If multiple regex have the same ordinal, MySQL will randomly sort them. -
-
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regex are used during the collection matching process.
-
- {html_options id="category_id" name='category_id' values=$category_ids output=$category_names selected=$regex.category_id} -
Select a category which releases matched to this regex will go into.
-
- -
-
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/category_regexes-list.tpl b/www/templates/nntmux/views/admin/category_regexes-list.tpl deleted file mode 100644 index f56d02405..000000000 --- a/www/templates/nntmux/views/admin/category_regexes-list.tpl +++ /dev/null @@ -1,47 +0,0 @@ -

{$page->title}

-

This page lists regex used for categorizing releases.
- You can recategorize all releases by running misc/update/update_releases.php 6 true -

-
- -
- - -    - -
-{if $regex} - -
{$pager}
- - - - - - - - - - - - - {foreach from=$regex item=row} - - - - - - - - {if $row.status==1} - - {else} - - {/if} - - - - {/foreach} -
idgroupeditdescriptiondeleteordinalstatusregexcategory id
{$row.id}{$row.group_regex}Edit{$row.description|truncate:50:"...":true}Delete{$row.ordinal}ActiveDisabled{$row.regex|escape:html|truncate:50:"...":true}{$row.category_id}
-
{$pager}
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/collection_regexes-edit.tpl b/www/templates/nntmux/views/admin/collection_regexes-edit.tpl deleted file mode 100644 index 41e885d25..000000000 --- a/www/templates/nntmux/views/admin/collection_regexes-edit.tpl +++ /dev/null @@ -1,73 +0,0 @@ -

{$page->title}

-{if $error != ''} -
{$error}
-{/if} -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- Regex to match against a group or multiple groups.
- Delimiters are already added, and PCRE_CASELESS is added after for case insensitivity. - An example of matching a single group: alt\.binaries\.example
- An example of matching multiple groups: alt\.binaries.* -
-
- -
- The regex to use when matching (grouping) collections.
- The regex delimiters are not added, you MUST add them. See this page.
- To make the regex case insensitive, add i after the last delimiter.
- You MUST include at least one regex capture group.
- You MUST name your regex capture groups (the ones you want to be included).
- A string will be created from your matched capture groups.
- The string will form part of a "collection hash".
- The collection hash is used to group many parts together, to form the finalized release.
- The usenet group and name of the poster are added automatically when hashing.
- Capture groups are sorted alphabetically (by capture group name) when concatenating the string.
-
-
- -
- Description for this regex.
- You can include an example usenet subject this regex would match on. -
-
- -
- The order to run this regex in.
- Must be a number, 0 or higher.
- If multiple regex have the same ordinal, MySQL will randomly sort them. -
-
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regex are used during the collection matching process.
-
- -
-
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/collection_regexes-list.tpl b/www/templates/nntmux/views/admin/collection_regexes-list.tpl deleted file mode 100644 index 1d4c56f9a..000000000 --- a/www/templates/nntmux/views/admin/collection_regexes-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ -

{$page->title}

-

This page lists regex used for grouping usenet collections.

-
- -
- - -    - -
-{if $regex} - -
{$pager}
- - - - - - - - - - - - {foreach from=$regex item=row} - - - - - - - - {if $row.status==1} - - {else} - - {/if} - - - {/foreach} -
idgroupeditdescriptiondeleteordinalstatusregex
{$row.id}{$row.group_regex}Edit{$row.description|truncate:50:"...":true}Delete{$row.ordinal}ActiveDisabled{$row.regex|escape:html|truncate:50:"...":true}
-
{$pager}
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/collection_regexes-test.tpl b/www/templates/nntmux/views/admin/collection_regexes-test.tpl deleted file mode 100644 index 0c5738543..000000000 --- a/www/templates/nntmux/views/admin/collection_regexes-test.tpl +++ /dev/null @@ -1,44 +0,0 @@ -

{$page->title}

-

This page is used for testing regex for grouping usenet collections.
Enter the group name to test and a regex. Limit is how many collections to show max on the page, 0 for no limit(slow).

- -{if $tpg} -
- -
- -
- -
- -
- {if $data} - - {foreach from=$data key=hash item=collection} - - - - -
{$hash}
Current Files: {count($collection)}
- - - - - - - - - {foreach from=$collection item=row} - - - - - - - - {/foreach} -
namecurrent partstotal partsposterold hash
{$row.file_name}{$row.file_current_parts}{$row.file_total_parts}{$row.collection_poster}{$row.old_collection_hash}
- {/foreach} - {/if} -{else} -

The Table Per Group setting is required to be on to use this page, for performance reasons.

-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/comments-list.tpl b/www/templates/nntmux/views/admin/comments-list.tpl deleted file mode 100644 index dd11d9f1d..000000000 --- a/www/templates/nntmux/views/admin/comments-list.tpl +++ /dev/null @@ -1,38 +0,0 @@ -

{$page->title}

- -{if $commentslist} -{$pager} - - - - - - - - - - - - - {foreach from=$commentslist item=comment} - - - - - - - - {/foreach} - - -
userdatecommenthostoptions
- {if $comment.sourceid == 0}{$comment.username}{else}{$comment.username}
(syndicated){/if} -
{$comment.createddate|date_format} ({$comment.createddate|timeago} - ago) - {$comment.text|escape:"htmlall"|nl2br}{$comment.host} - {if $comment.guid != ""}view | {/if} - delete -
-{else} -

No comments available

-{/if} diff --git a/www/templates/nntmux/views/admin/console-edit.tpl b/www/templates/nntmux/views/admin/console-edit.tpl deleted file mode 100644 index ba6827608..000000000 --- a/www/templates/nntmux/views/admin/console-edit.tpl +++ /dev/null @@ -1,96 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - - {if $console.cover == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/console-list.tpl b/www/templates/nntmux/views/admin/console-list.tpl deleted file mode 100644 index 255f79139..000000000 --- a/www/templates/nntmux/views/admin/console-list.tpl +++ /dev/null @@ -1,30 +0,0 @@ -

{$page->title}

- -{if $consolelist} -{$pager} - - - - - - - - - - - {foreach from=$consolelist item=console} - - - - - - - {/foreach} - -
idTitlePlatformCreated
{$console.id}{$console.title}{$console.platform}{$console.createddate|date_format}
- -
-{$pager} -{else} -

No games available.

-{/if} diff --git a/www/templates/nntmux/views/admin/content-add.tpl b/www/templates/nntmux/views/admin/content-add.tpl deleted file mode 100644 index d3e1e7410..000000000 --- a/www/templates/nntmux/views/admin/content-add.tpl +++ /dev/null @@ -1,74 +0,0 @@ -

{$page->title}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
- -
- -
- -
- {html_options id="contenttype" name='contenttype' options=$contenttypelist selected=$content->contenttype} -
- {html_options id="role" name='role' options=$rolelist selected=$content->role} -
Only appropriate for articles and useful links
-
- {html_radios id="showinmenu" name='showinmenu' values=$yesno_ids output=$yesno_names selected=$content->showinmenu separator='
'} -
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$content->status separator='
'} -
- -
If you set the ordinal = 1, then a all ordinals greater than 0 will be renumbered. This allows new content to be at the top without having to renumber all previous content.
If you set ordinal = 0, it will be at the top, sorted by ID(order added)
-
- -
-
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/content-list.tpl b/www/templates/nntmux/views/admin/content-list.tpl deleted file mode 100644 index f55ac1d33..000000000 --- a/www/templates/nntmux/views/admin/content-list.tpl +++ /dev/null @@ -1,57 +0,0 @@ -

{$page->title}

- - - - - - - - - - - - - - {foreach from=$contentlist item=content} - - - - - - - - - - - - - {/foreach} -
ordinalidtitleurltypestatusrolein menubodyoptions
{$content->ordinal}{$content->id}{$content->title}{$content->url}c{$content->id} - {if $content->contenttype == "1"} - Useful Link - {elseif $content->contenttype == "2"} - Article - {elseif $content->contenttype == "3"} - Homepage - {/if} - - {if $content->status == "1"} - Enabled - {else} - Disabled - {/if} - - {if $content->role == "0"} - Everyone - {elseif $content->role == "1"} - Users - {elseif $content->role == "2"} - Admins - {/if} - - {if $content->showinmenu == "1"} - Yes - {else} - No - {/if} - {$content->body|truncate:100|escape:'htmlall'}{if $content->contenttype != "3"}delete{/if}
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/db-optimise.tpl b/www/templates/nntmux/views/admin/db-optimise.tpl deleted file mode 100644 index 61c81e2e6..000000000 --- a/www/templates/nntmux/views/admin/db-optimise.tpl +++ /dev/null @@ -1,16 +0,0 @@ - -

{$page->title}

- - - - - - - - {foreach from=$tablelist item=table} - - - - {/foreach} - -
message
{$table} optimised/repaired
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/game-edit.tpl b/www/templates/nntmux/views/admin/game-edit.tpl deleted file mode 100644 index b69bbb798..000000000 --- a/www/templates/nntmux/views/admin/game-edit.tpl +++ /dev/null @@ -1,75 +0,0 @@ -

{$page->title}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- (Game ID of the url posted below, if unknown put 0) -
- -
- -
- -
- -
- -
- -
- - {if $game.cover == 1} - - {/if} -
- -
-
diff --git a/www/templates/nntmux/views/admin/game-list.tpl b/www/templates/nntmux/views/admin/game-list.tpl deleted file mode 100644 index a337f7803..000000000 --- a/www/templates/nntmux/views/admin/game-list.tpl +++ /dev/null @@ -1,22 +0,0 @@ -

{$page->title}

-{if $gamelist} - {$pager} - - - - - - - - {foreach from=$gamelist item=game} - - - - - - - {/foreach} -
IDTitleGenreCreated
{$game.id}{$game.title}{$game.genretitle}{$game.createddate|date_format}
-{else} -

No games available.

-{/if} diff --git a/www/templates/nntmux/views/admin/group-bulk.tpl b/www/templates/nntmux/views/admin/group-bulk.tpl deleted file mode 100644 index 5ca655361..000000000 --- a/www/templates/nntmux/views/admin/group-bulk.tpl +++ /dev/null @@ -1,60 +0,0 @@ - -

{$page->title}

- -{if $groupmsglist} - - - - - - - - {foreach from=$groupmsglist item=group} - - - - - {/foreach} - -
groupmsg
{$group.group}{$group.msg}
- -

View all groups.

- -{else} -

Regex of groups to add to the site.

- -
- - - - - - - - - - - - - - - - - - - -
Group List: - -
A regular expression to match against group names e.g. alt.binaries.cd.image.linux|alt.binaries.warez.linux
-
: - {html_radios id="active" name='active' values=$yesno_ids output=$yesno_names selected=1 separator='
'} -
Inactive groups will not have headers downloaded for them.
-
- {html_radios id="backfill" name='backfill' values=$yesno_ids output=$yesno_names selected=0 separator='
'} -
Inactive groups will not have backfill headers downloaded for them.
-
- -
- -
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/group-edit.tpl b/www/templates/nntmux/views/admin/group-edit.tpl deleted file mode 100644 index 2a001db94..000000000 --- a/www/templates/nntmux/views/admin/group-edit.tpl +++ /dev/null @@ -1,74 +0,0 @@ -

{$page->title}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name: - - -
Changing the name to an invalid group will break things.
-
- -
- -
Number of days to attempt to backfill this group. Adjust as necessary.
-
- -
The minimum number of files to make a release. i.e. if set to two, then releases which only contain one file will not be created. If left blank, will use the site wide setting.
-
- -
The minimum total size in bytes to make a release. If left blank, will use the site wide setting.
-
- -
The oldest record number for the group.
-
- -
The newest record number for the group.
-
- {html_radios id="active" name='active' values=$yesno_ids output=$yesno_names selected=$group.active separator='
'} -
Inactive groups will not have headers downloaded for them.
-
- {html_radios id="backfill" name='backfill' values=$yesno_ids output=$yesno_names selected=$group.backfill separator='
'} -
If set to false, backfill.php will ignore this group. This works even if the above setting is no.
-
- -
-
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/group-list.tpl b/www/templates/nntmux/views/admin/group-list.tpl deleted file mode 100644 index fe9ea07a2..000000000 --- a/www/templates/nntmux/views/admin/group-list.tpl +++ /dev/null @@ -1,84 +0,0 @@ -
-

{$page->title}

-

- Below is a list of all usenet groups available to be indexed. Click 'Activate' to start indexing a group. Backfill works independently of active. -

- {if $grouplist} -
-
- - -    - -
-
- {$pager} -
-
- Reset all | - Purge all
- Active Groups | - Inactive Groups | - All Groups -
-
-
msg
- - - - - - - - - - - - - - - {foreach from=$grouplist item=group} - - - - - - - - - - - - - - {/foreach} -
groupFirst PostLast Postlast updatedactivebackfillreleasesMin FilesMin SizeBackfill Daysoptions
- {$group.name|replace:"alt.binaries":"a.b"} -
{$group.description}
-
{$group.first_record_postdate}
{$group.first_record_postdate|timeago}
{$group.last_record_postdate}
{$group.last_record_postdate|timeago}
{$group.last_updated|timeago} ago{if $group.active=="1"}Deactivate{else}Activate{/if}{if $group.backfill=="1"}Deactivate{else}Activate{/if}{$group.num_releases}{if $group.minfilestoformrelease==""}n/a{else}{$group.minfilestoformrelease}{/if}{if $group.minsizetoformrelease==""}n/a{else}{$group.minsizetoformrelease|fsize_format:"MB"}{/if}{$group.backfill_target} - Reset | - Delete | - Purge -
-
-
- {$pager} -
-
-
- - -    - -
- Reset all | - Purge all
- Active Groups | - Inactive Groups | - All Groups -
-
- {else} -

No groups available (eg. none have been added).

- {/if} -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/index.tpl b/www/templates/nntmux/views/admin/index.tpl deleted file mode 100644 index 7ecb75819..000000000 --- a/www/templates/nntmux/views/admin/index.tpl +++ /dev/null @@ -1,53 +0,0 @@ - -

{$page->title}

- -
-

- Welcome to newznab. In this area you will be able to configure many aspects of your site.
- If this is your first time here, you need to start the scripts that will fill newznab. -

- -
    -
  1. Configure your site options. The defaults will work fine.
  2. -
  3. There is a default list of usenet groups provided. To get started, you will need to activate some groups. Do not activate every group if its your first time setting this up. Try one or two first. - You can also add your own groups manually.
  4. -
  5. Next you will want to get the latest headers. This should be done from the command line, using the linux or windows shell scripts found in /misc/update_scripts/nix_scripts (or win_scripts for windows users), as it can take some time. If this is your first time dont bother with the init scripts just open a command prompt... -
    cd /var/www/newznab/misc/update_scripts
    php update_binaries.php
    -
  6. -
  7. After obtaining headers, the next step is to create releases. This is best done from the command line using the linux or windows shell scripts found in /misc/update_scripts/nix_scripts (or win_scripts for windows users). If this is your first time dont bother with the init scripts just open a command prompt... -
    cd /var/www/newznab/misc/update_scripts
    php update_releases.php
    -
  8. -
  9. If you intend to keep using newznab, it is best to sign up for your own api keys from tmdb, rotten tomatoes and amazon.
  10. -
  11. If you like newznab and intend to continue using it, please consider sending a donation to the team who write and maintain it.
  12. -
- - hide this welcome message -
- -
- -

Status Alerts

- - {if $statusmsgs|@count > 0} - - - - - - - - {foreach from=$statusmsgs item=result name=result} - - - - - - {/foreach} -
#Item
{$smarty.foreach.result.iteration}{$result.msg}{if $result.url != ""}{/if}
- {else} -

There are currently no status alerts.

- {/if} - -
- show welcome message -
diff --git a/www/templates/nntmux/views/admin/menu-edit.tpl b/www/templates/nntmux/views/admin/menu-edit.tpl deleted file mode 100644 index 8c1a4faa4..000000000 --- a/www/templates/nntmux/views/admin/menu-edit.tpl +++ /dev/null @@ -1,70 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - -
: - -
Use full http:// path for external URLs, otherwise use no prefix.
-
: - -
: - -
Smarty expression returning -1 if the menu item should be disabled.
-
: - {html_radios id="role" name='role' values=$role_ids output=$role_names selected=$menu.role separator='
'} -
: - -
: - {html_radios id="newwindow" name='newwindow' values=$yesno_ids output=$yesno_names selected=$menu.newwindow separator='
'} -
Whether the menu item should open in a new window.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/menu-list.tpl b/www/templates/nntmux/views/admin/menu-list.tpl deleted file mode 100644 index 004bfc932..000000000 --- a/www/templates/nntmux/views/admin/menu-list.tpl +++ /dev/null @@ -1,32 +0,0 @@ -

{$page->title}

- -{if $menulist} - - - - - - - - - - - - - - {foreach from=$menulist item=menu} - - - - - - - - - - {/foreach} - -
namehreftooltiproleordinalnew windowoptions
{$menu.title|escape:"htmlall"}{$menu.href}{$menu.tooltip}{if $menu.role == 0}Guests{elseif $menu.role == 1}Users{elseif $menu.role == 2}Admin{else}Other{/if}{$menu.ordinal}{if $menu.newwindow == 1}Yes{else}No{/if}delete
-{else} -

No menus available.

-{/if} diff --git a/www/templates/nntmux/views/admin/movie-add.tpl b/www/templates/nntmux/views/admin/movie-add.tpl deleted file mode 100644 index f7e0b9537..000000000 --- a/www/templates/nntmux/views/admin/movie-add.tpl +++ /dev/null @@ -1,30 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - -
Enter the full 7 digit IMDB id into the box below and click Add.
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/movie-edit.tpl b/www/templates/nntmux/views/admin/movie-edit.tpl deleted file mode 100644 index 526f9b5a5..000000000 --- a/www/templates/nntmux/views/admin/movie-edit.tpl +++ /dev/null @@ -1,112 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:{$movie.imdbid}
:{$movie.tmdbID}
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - - {if $movie.cover == 1} - - {/if} -
: - - {if $movie.backdrop == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/movie-list.tpl b/www/templates/nntmux/views/admin/movie-list.tpl deleted file mode 100644 index dd02a1528..000000000 --- a/www/templates/nntmux/views/admin/movie-list.tpl +++ /dev/null @@ -1,51 +0,0 @@ -

{$page->title}

- -{if $movielist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - - - - - {foreach from=$movielist item=movie} - - - - - - - - - - {/foreach} - -
IMDB idTMDb idTitleCoverBackdropCreatedoptions
{$movie.imdbid}{$movie.tmdbID}{$movie.title} ({$movie.year}){if $movie.cover == "1"}Yes{else}No{/if}{if $movie.backdrop == "1"}Yes{else}No{/if}{$movie.createddate|date_format} - update | - delete -
-
- {$pager} -{else} -

No Movies available.

-{/if} diff --git a/www/templates/nntmux/views/admin/music-edit.tpl b/www/templates/nntmux/views/admin/music-edit.tpl deleted file mode 100644 index 985c0fc8b..000000000 --- a/www/templates/nntmux/views/admin/music-edit.tpl +++ /dev/null @@ -1,104 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
Tracks separated by | (pipe) delimeter
-
: - - {if $music.cover == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/music-list.tpl b/www/templates/nntmux/views/admin/music-list.tpl deleted file mode 100644 index 1d80c484a..000000000 --- a/www/templates/nntmux/views/admin/music-list.tpl +++ /dev/null @@ -1,30 +0,0 @@ -

{$page->title}

- -{if $musiclist} -{$pager} - - - - - - - - - - - {foreach from=$musiclist item=music} - - - - - - - {/foreach} - -
idTitleArtistCreated
{$music.id}{$music.title} ({$music.year}){$music.artist}{$music.createddate|date_format}
- -
-{$pager} -{else} -

No Music available.

-{/if} diff --git a/www/templates/nntmux/views/admin/nzb-export.tpl b/www/templates/nntmux/views/admin/nzb-export.tpl deleted file mode 100644 index 97e2a90aa..000000000 --- a/www/templates/nntmux/views/admin/nzb-export.tpl +++ /dev/null @@ -1,66 +0,0 @@ - -

{$page->title}

- -

-Export nzbs from the system into a folder. Specify the full file path to a folder. -
-If you are exporting a large number of nzb files, run this script from the command line and pass in the folder path as the first argument. e.g. php scriptname outputpath from(optional) to(optional) groupid(optional use -1) categoryid(optional)
- - php admin/nzb-export.php /path/to/export/into 01/01/2008 01/01/2010 -1 1050 - - -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
Windows file paths should be specified with forward slashes e.g. c:/temp/
-
: - - - -
Posted to usenet inbetween a date range specified in the format dd/mm/yyyy
-
: - {html_options id="group" name='group' options=$grouplist selected=$group} -
Posted to this newsgroup
-
: - {html_options id="categoryid" name='categoryid' options=$catlist selected=$cat} -
Posted to this category
-
- -
- -
- -
-{$output} -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/nzb-import.tpl b/www/templates/nntmux/views/admin/nzb-import.tpl deleted file mode 100644 index e15c29352..000000000 --- a/www/templates/nntmux/views/admin/nzb-import.tpl +++ /dev/null @@ -1,74 +0,0 @@ -

{$page->title}

-

- Import NZB's from a folder or via the browser into the system. Specify the full file path to a folder containing NZB's. -
- Importing will add the release to your database, compress the NZB and store it in the nzbfiles/ folder. -

- -
- Import From Directory -
- - - - - - - - - - - - - - - - - -
- -
Windows file paths should be specified with forward slashes e.g. c:/temp/
-
- -
Use the NZB's filename as the release name. Else the name inside the NZB will be used.
-
- -
Delete the NZB when we have successfully imported it?
-
- -
-
-
-
- Import From Browser -
- - - - - - - - - -
- -
Select one or more .nzb files.
-
- These NZBs will not be deleted once imported.
- -
-
-{if $output != ""} -
- -

Import Results

- {$output} -
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/preview-list.tpl b/www/templates/nntmux/views/admin/preview-list.tpl deleted file mode 100644 index bf1233800..000000000 --- a/www/templates/nntmux/views/admin/preview-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ -

{$page->title}

- - - -

- -{if $releaselist} -{$pager} - - - - - - - - - {foreach from=$releaselist item=release} - - - - - {/foreach} - -
previewoptions
- -
- {$release.searchname|escape:"htmlall"|wordwrap:75:"\n":true} -
-
- {$pager} -{else} -

No results.

-{/if} diff --git a/www/templates/nntmux/views/admin/rage-edit.tpl b/www/templates/nntmux/views/admin/rage-edit.tpl deleted file mode 100644 index bfc1a009e..000000000 --- a/www/templates/nntmux/views/admin/rage-edit.tpl +++ /dev/null @@ -1,87 +0,0 @@ - -

{$page->title}

- -Update from TV Rage - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - -
The numeric TVRage Id.
-
: - -
The title of the TV show.
-
: - -
: - -
The genres for the TV show. Separated by pipes ( | )
-
: - -
The country for the TV show.
-
: - {if $rage.imgdata != ""} - - {/if} - -
Shown in the TV series view page.
-
- -   - -
- - - - \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/rage-list.tpl b/www/templates/nntmux/views/admin/rage-list.tpl deleted file mode 100644 index 1fd3031bc..000000000 --- a/www/templates/nntmux/views/admin/rage-list.tpl +++ /dev/null @@ -1,44 +0,0 @@ -

{$page->title}

- -{if $tvragelist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - - {foreach from=$tvragelist item=tvrage} - - - - - - - {/foreach} - -
rageidtitledateoptions
{$tvrage.rageid}{$tvrage.releasetitle|escape:"htmlall"}{$tvrage.createddate|date_format}delete | remove
- -
- {$pager} - -{else} -

No TVRage episodes available.

-{/if} diff --git a/www/templates/nntmux/views/admin/rage-remove.tpl b/www/templates/nntmux/views/admin/rage-remove.tpl deleted file mode 100644 index 9f31ea123..000000000 --- a/www/templates/nntmux/views/admin/rage-remove.tpl +++ /dev/null @@ -1,4 +0,0 @@ - -

{$page->title}

- -Removed rageid from {$numtv} releases. \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/regex-edit.tpl b/www/templates/nntmux/views/admin/regex-edit.tpl deleted file mode 100644 index b7f16e775..000000000 --- a/www/templates/nntmux/views/admin/regex-edit.tpl +++ /dev/null @@ -1,78 +0,0 @@ - -

{$page->title}

- -{if $regex.id > 0 && $regex.id < 100000 && $site->reqidurl != ""} -
Warning: Editing system regex, these changes will be overwritten next update releases.
-{/if} - -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Group: - - -
The full name of a valid newsgroup. This value can be a regular expression. Use .* to apply regex to all newsgroups.
-
Regex: - -
The regex to be applied.
- Regex requires at least 1 named capturing group in the form of (?P<name>) to work.
- If the subjects contains the number of parts (ie [1/10]) then it is wise to also use (?P<parts>) to match the parts. -
-
Description: - -
A description for this regex
-
: - {html_options id="category" name=category options=$catlist selected=$regex.categoryid} -
If this regex indicates the release category then supply it here. If left blank the standard method of determining the category will apply.
-
Ordinal: - -
The zero-based order in which the regex should be applied.
-
: - {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regexes are applied during the release process.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/regex-list.tpl b/www/templates/nntmux/views/admin/regex-list.tpl deleted file mode 100644 index 63a2f3e6c..000000000 --- a/www/templates/nntmux/views/admin/regex-list.tpl +++ /dev/null @@ -1,51 +0,0 @@ - -

{$page->title}

- -

- Regexs are applied to group message subjects into releases. The capture groups are named to hold the release name and number of parts. - They are applied to messages from that group in order, then any general regexs are applied in order afterwards. -

-

- The group name is a regular expression, so if you want to apply a regex to a number of groups then append an asterix a.b.blah.* to the end, -
or use a.b.group1|a.b.group2 -

- -
msg
- -{html_options id="regexGroupSelect" name=category options=$reggrouplist selected=$selectedgroup} - - - - - - - - - - - - - - - - - - {foreach from=$regexlist item=regex} - - - - - - - - - - - - - - {/foreach} - - -
idgroupregexpostercategorystatusreleaseslast matchordinalOrderOptions
{$regex.id}{if $regex.groupname==""}all{else}{$regex.groupname|replace:"alt.binaries":"a.b"}{/if}{$regex.regex|escape:html}
- {$regex.description}
{$regex.poster}{if $regex.categoryid!=""}{$regex.categoryTitle}{/if}{if $regex.status==1}active{else}disabled{/if}{$regex.num_releases}{$regex.max_releasedate}{$regex.ordinal}up | downdelete{if $regex.groupname != ""} | test{/if}
diff --git a/www/templates/nntmux/views/admin/regex-submit.tpl b/www/templates/nntmux/views/admin/regex-submit.tpl deleted file mode 100644 index 76e6b8c53..000000000 --- a/www/templates/nntmux/views/admin/regex-submit.tpl +++ /dev/null @@ -1,38 +0,0 @@ - -

{$page->title}

- -

Use this feature to submit any regex you have added locally to newznab. We'll have a look at integrating them into the master list. No data other than regex's with an id greater than 10000 will be sent.

- -{if $upload_status eq 'OK'} -
- Your regexes were uploaded. Thank you for contributing. -
-
-{/if} - -{if $upload_status eq 'BAD'} -
- Failed to upload your regexes :-( - please try again. -
-
-{/if} - -{if $regex_error} -

No avalible user regex's. Please add some and visit this page again.

-{else} -
- - -
- -
- -

- Regexes to be submitted: -
-

-  {$regex_contents|print_r}
-  
-

-{/if} - diff --git a/www/templates/nntmux/views/admin/regex-test.tpl b/www/templates/nntmux/views/admin/regex-test.tpl deleted file mode 100644 index 63e58ac77..000000000 --- a/www/templates/nntmux/views/admin/regex-test.tpl +++ /dev/null @@ -1,146 +0,0 @@ - -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - or - -
: - -
: - -
- -
- -
-      Add Regex -
- -
- -{if $matches} -{$pager} - - {foreach from=$matches item=match} - - {if $match@iteration mod 10 == 1} - - - - - - - - - - - {/if} - - - - - {/foreach} - -
nameposterBin CountBin SizeRegex idReq idGroupAge
- - - - - - - - - - - - - - -
{$match.name|escape:html}
{$match.bininfo[0].name|escape:html}
{$match.catname|escape:"htmlall"}{$match.bininfo[0].fromname|escape:"htmlall"}{$match.bincount}{if $match.reltotalparts != ''}/{$match.reltotalparts}{/if}{$match.totalsize|fsize_format:"MB"}{$match.bininfo[0].regexid}{$match.reqid}{$match.bininfo[0].groupname|replace:"alt.binaries":"a.b"}{$match.bininfo[0].date|timeago}
-
-
{$pager} -{/if} - -

 

- -

Fetch Binaries for Testing

- -
- - - - - - - - - - - - - - - - - - - - - - - -
: - - or - -
- -
- -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/release-edit.tpl b/www/templates/nntmux/views/admin/release-edit.tpl deleted file mode 100644 index 6f4f32260..000000000 --- a/www/templates/nntmux/views/admin/release-edit.tpl +++ /dev/null @@ -1,162 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - -{if $updatename != ""} - - - - -{/if} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - -
: - -
- -
: - -
: - {html_options id="category" name=category options=$catlist selected=$release.categoryid} -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
Group: - {$release.group_name} -
Regex id: - {$release.regexid} -
: - -
: - -
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/release-files.tpl b/www/templates/nntmux/views/admin/release-files.tpl deleted file mode 100644 index 28a332b42..000000000 --- a/www/templates/nntmux/views/admin/release-files.tpl +++ /dev/null @@ -1,24 +0,0 @@ - -

{$page->title}

- -

For {$rel.searchname|escape:'htmlall'}

- - - - - - - - - - - {foreach from=$binaries item=binary} - - - - - - - {/foreach} - -
#filenamesizedate
{$binary.relpart}{$binary.filename}{$binary.size|fsize_format:"MB"}{$binary.date|date_format}
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/release-list.tpl b/www/templates/nntmux/views/admin/release-list.tpl deleted file mode 100644 index 326cf67c5..000000000 --- a/www/templates/nntmux/views/admin/release-list.tpl +++ /dev/null @@ -1,37 +0,0 @@ -

{$page->title}

- -{if $releaselist} -{$pager} - - - - - - - - - - - - - - - {foreach from=$releaselist item=release} - - - - - - - - - - - {/foreach} - -
namecategorysizefilespostdateadddategrabsoptions
{$release.searchname|escape:"htmlall"|wordwrap:75:"\n":true}{$release.category_name}{$release.size|fsize_format:"MB"}{$release.totalpart}{$release.postdate|date_format}{$release.adddate|date_format}{$release.grabs}delete
-
- {$pager} -{else} -

No releases available.

-{/if} diff --git a/www/templates/nntmux/views/admin/release_naming_regexes-edit.tpl b/www/templates/nntmux/views/admin/release_naming_regexes-edit.tpl deleted file mode 100644 index b07883983..000000000 --- a/www/templates/nntmux/views/admin/release_naming_regexes-edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ -

{$page->title}

-{if $error != ''} -
{$error}
-{/if} -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- Regex to match against a group or multiple groups.
- Delimiters are already added, and PCRE_CASELESS is added after for case insensitivity.
> - An example of matching a single group: alt\.binaries\.example
- An example of matching multiple groups: alt\.binaries.* -
-
- -
- The regex to use when trying to name a release using the usenet subject.
- The regex delimiters are not added, you MUST add them. See this page.
- To make the regex case insensitive, add i after the last delimiter.
- You MUST include at least one regex capture group.
- You MUST name your regex capture groups (the ones you want included).
- The named capture groups will be concatenated into a string.
- Capture groups are sorted alphabetically (by capture group name) when concatenating the string.
- Capture groups named 'reqid' and 'parts' are ignored. -
-
- -
- Description for this regex.
- You can include an example usenet subject this regex would match on. -
-
- -
- The order to run this regex in.
- Must be a number, 0 or higher.
- If multiple regex have the same ordinal, MySQL will randomly sort them. -
-
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regex are used during the collection matching process.
-
- -
-
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/release_naming_regexes-list.tpl b/www/templates/nntmux/views/admin/release_naming_regexes-list.tpl deleted file mode 100644 index bb68e3da1..000000000 --- a/www/templates/nntmux/views/admin/release_naming_regexes-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ -

{$page->title}

-

This page lists regex used for getting names for releases from usenet subjects.

-
- -
- - -    - -
-{if $regex} - -
{$pager}
- - - - - - - - - - - - {foreach from=$regex item=row} - - - - - - - - {if $row.status==1} - - {else} - - {/if} - - - {/foreach} -
idgroupeditdescriptiondeleteordinalstatusregex
{$row.id}{$row.group_regex}Edit{$row.description|truncate:50:"...":true}Delete{$row.ordinal}ActiveDisabled{$row.regex|escape:html|truncate:50:"...":true}
-
{$pager}
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/release_naming_regexes-test.tpl b/www/templates/nntmux/views/admin/release_naming_regexes-test.tpl deleted file mode 100644 index 6587ae2b5..000000000 --- a/www/templates/nntmux/views/admin/release_naming_regexes-test.tpl +++ /dev/null @@ -1,35 +0,0 @@ -

{$page->title}

-

This page is used for testing regex for getting release names from usenet subject. -
Maximum releases to display will limit the amount of results displayed on the page. 0 for no limit. -
Query limit will limit the amount of releases to select from MySQL (setting this high can be very slow). 0 for no limit. -

- -
- -
- -
- -
- -
- -
-{if $data} - - - - - - - - {foreach from=$data key=id item=names} - - - - - - - {/foreach} -
Release idUsenet SubjectOld Search NameNew Search Name
{$id}{$names.subject}{$names.old_name}{$names.new_name}
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/role-edit.tpl b/www/templates/nntmux/views/admin/role-edit.tpl deleted file mode 100644 index c0ed1e6cb..000000000 --- a/www/templates/nntmux/views/admin/role-edit.tpl +++ /dev/null @@ -1,92 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{if $role.id != ''} - - - - - - - - - - -{/if} - - - - - - -
Name: - - {if $role.id != '' && $role.id < 4}{$role.name}{else}
The name of the role
{/if} -
Api Requests: - -
Number of api requests allowed per 24 hour period
-
Download Requests: - -
Number of downloads allowed per 24 hour period
-
Invites: - -
Default number of invites to give users on account creation
-
Can Preview: - {html_radios id="canpreview" name='canpreview' values=$yesno_ids output=$yesno_names selected=$role.canpreview separator='
'} -
Whether the role can preview screenshots
-
Can Pre: - {html_radios id="canpre" name='canpre' values=$yesno_ids output=$yesno_names selected=$role.canpre separator='
'} -
Whether the role can view pre data
-
Hide Ads: - {html_radios id="hidetads" name='hidetads' values=$yesno_ids output=$yesno_names selected=$role.hideads separator='
'} -
Whether ad's are hidden
-
Is Default Role: - {html_radios id="role" name='isdefault' values=$yesno_ids output=$yesno_names selected=$role.isdefault separator='
'} -
Make this the default role for new users
-
Excluded Categories - {html_options style="height:105px;" multiple=multiple name="exccat[]" options=$catlist selected=$roleexccat} -
Use Ctrl and click to exclude multiple categories. This will prevent users with this role from
seeing these categories in the menu or search results.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/role-list.tpl b/www/templates/nntmux/views/admin/role-list.tpl deleted file mode 100644 index bff3a392d..000000000 --- a/www/templates/nntmux/views/admin/role-list.tpl +++ /dev/null @@ -1,34 +0,0 @@ - -

{$page->title}

- - - - - - - - - - - - - - - - - {foreach from=$userroles item=role} - - - - - - - - - - - - {/foreach} - - -
namerequest limitdownload limitinvitescan previewcan prehide adsdefault rolesoptions
{$role.name}{$role.apirequests}{$role.downloadrequests}{$role.defaultinvites}{if $role.canpreview == 1}Yes{else}No{/if}{if $role.canpre == 1}Yes{else}No{/if}{if $role.hideads == 1}Yes{else}No{/if}{if $role.isdefault=="1"}Yes{else}No{/if}edit {if $role.id>"3"}delete{/if}
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/sharing.tpl b/www/templates/nntmux/views/admin/sharing.tpl deleted file mode 100644 index 20b30931d..000000000 --- a/www/templates/nntmux/views/admin/sharing.tpl +++ /dev/null @@ -1,197 +0,0 @@ -

{$page->title}

-
- - - Note: If you are running nntpproxy you will not be able to upload comments, turn off the post option if you are using it.
- If you turn on or off the Alternate NNTP provider you will need to click the reset button to reset sharing settings. -
-
-
-
msg
- {if $local} -
-
- Local sharing settings. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
This is your site name, changing this will update other sites running sharing also, it must not contain spaces (use underscores _).
-
- -
This is how many comments to upload per run (the more you increase this, the longer it takes).
-
- -
This is how many comments to download per run.
-
- -
This is how many headers to download and look through for comments per run.
-
-
- - {if $local.enabled == "1"} - - {else} - - {/if} - - Is the sharing/retrieving enabled? This overrides posting/fetching. -
-
-
- - {if $local.posting == "1"} - - {else} - - {/if} - - If you turn this on, this will post your comments to usenet.
- This requires posting rights to usenet! -
-
-
- - {if $local.fetching == "1"} - - {else} - - {/if} - - If you turn this on, this will download comments from usenet. -
-
-
- - {if $local.auto_enable == "1"} - - {else} - - {/if} - - This will auto-enable new sites as we see them. -
-
-
- - {if $local.hide_users == "1"} - - {else} - - {/if} - - This will hide user names from being visible on remote sites. -
-
-
- - {if $local.start_position == "1"} - - {else} - - {/if} - - When pulling the first time, or after resetting, start from the beginning of the group (takes more time).
- With the backfill setting it will take a few runs before you find anything the first time because the group has articles other than comments in it. -
-
-
- - - - This will reset your sharing settings (if you need to change Usenet Provider for example). -
-
-
- -
-
- {else} -

You have not run Sharing yet, until you run it this page will contain no settings.

- {/if} - - {if $sites} -
These are the remote websites we have seen so far:
- {$pager} -
- - -
- - - - - - - - - - - {foreach from=$sites item=site} - - - - - - - - - - {/foreach} -
idNameFirst seenLast seenStatusComments
{$site.id}{$site.site_name}{$site.first_time|timeago}{$site.last_time|timeago} - {if $site.enabled=="1"} - - {else} - - {/if} - {$site.comments} - -
- {$pager} - {else} -

No remote sites found in your database.

- {/if} -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/site-debug.tpl b/www/templates/nntmux/views/admin/site-debug.tpl deleted file mode 100644 index a1cd54fa7..000000000 --- a/www/templates/nntmux/views/admin/site-debug.tpl +++ /dev/null @@ -1,20 +0,0 @@ -

{$page->title}

- -

Below is a dump of system settings and mysql table status to assist others in debuging problems. -Items like private 3rd party keys have been removed, however *note* full paths to binaries and web files -are included - so exercise caution when pasting online.

- - - -
- diff --git a/www/templates/nntmux/views/admin/site-edit.tpl b/www/templates/nntmux/views/admin/site-edit.tpl deleted file mode 100644 index 3aa76205a..000000000 --- a/www/templates/nntmux/views/admin/site-edit.tpl +++ /dev/null @@ -1,1695 +0,0 @@ -

{$page->title}

- -
- -{if $error != ''} -
{$error}
-{/if} - -
-Main Site Settings, HTML Layout, Tags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
Displayed around the site and contact form as the name for the site.
-
: - -
Displayed in the header on every public page.
-
: - -
Stem meta-tag appended to all page title tags.
-
: - -
Stem meta-description appended to all page meta description tags.
-
: - -
Stem meta-keywords appended to all page meta keyword tags.
-
: - -
Displayed in the footer section of every public page.
-
: - -
The relative path to a the landing page shown when a user logs in, or clicks the home link.
-
: - - -
A just for fun value shown in debug and not on public pages.
-
- -
The absolute path to the place covers will be stored.
-
: - {html_options class="siteeditstyle" id="style" name='style' values=$themelist output=$themelist selected=$fsite->style} -
The theme folder which will be loaded for css and images and overriden templates.
-
: - {html_radios id="userselstyle" name='userselstyle' values=$yesno_ids output=$yesno_names selected=$fsite->userselstyle separator='
'} -
Should users be allowed to change their site theme or not..
-
: - -
Optional URL to prepend to external links
-
: - {html_radios id="apienabled" name='apienabled' values=$yesno_ids output=$yesno_names selected=$fsite->apienabled separator='
'} -
Whether access to the site via the API is enabled.
-
: - -
The number of recent forum posts to show in the 'recent forum posts' widget. Set to 0 to disable.
-
: - -
Shown in the contact us page, and where the contact html form is sent to.
-
: - -
Text displayed in the terms and conditions page.
-
-
- -
-Google Adsense, Analytics and 3rd Party Banners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
e.g. UA-xxxxxx-x
-
: - -
e.g. pub-123123123123123
-
: - -
The id of the google search ad panel displayed at the bottom of the left menu.
-
: - -
The banner slot in the header.
-
: - -
The banner slot in the header.
-
: - -
The banner slot in the release details view.
-
-
- - -
-3rd Party API Keys - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The api key used for access to tmdb
-
: - -
The api key used for access to rotten tomatoes
-
: - -
The amazon public api key. Used for cover lookups.
-
: - -
The amazon private api key. Used for cover lookups.
-
: - -
The amazon associate tag. Used for cover lookups.
-
- -
The Trakt.tv API v2 Client ID (SHA256 hash - 64 characters long string). Used for movie and tv lookups.
-
- - -
The Fanart.tv api key. Used for Fanart.tv lookups. Fanart.tv would appreciate it if - you use this service to help them out by adding high quality images not already available on TMDB. -
-
- - -
The giantbomb key. Used for game lookups.
-
- - -
The Anidb api key. Used for Anime lookups.
-
-
- -
-3rd Party Application Paths - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The path to an unrar binary, used in deep password detection and media info grabbing. -
Use forward slashes in windows c:/path/to/unrar.exe
-
: - -
The path to where unrar puts files. WARNING: This directory will have its contents deleted. -
Use forward slashes in windows c:/temp/path/stuff/will/be/unpacked/to
-
: - -
The path to the mediainfo binary. Used for deep file media analysis. Use empty path to disable mediainfo checks -
Use forward slashes in windows c:/path/to/mediainfo.exe
-
- -
The path to the ffmpeg or avconv binary. Used for making thumbnails and video/audio - previews. -
Use forward slashes in windows c:/path/to/ffmpeg.exe -
-
: - -
The path to the lame binary. Used for audio manipulation. -
Use forward slashes in windows c:/path/to/lame.exe
-
- - -
The path to the 7za/p7zip in Ubuntu 13.10 (7zip command line in windows) binary, used - for grabbing nfos from compressed zip files. -
Use forward slashes in windows c:/path/to/7z.exe -
-
- -
The path to the timeout binary. - This is used to limit the amount of time unrar/7zip/mediainfo/ffmpeg/avconv can run. - You can the time limit in the process additional section. - You can leave this empty to disable this. -
Use forward slashes in windows c:/path/to/timeout.exe -
-
- -
Path to magic number database. Windows' users should set this if they have installed GNUWin file. *nix users can optionally set this to a file of their choice.
-
-
- - -
- Download Queue Integration Settings - - - - - - - - - - - - - - - - -
: - {html_radios id="sabintegrationtype" name='sabintegrationtype' values=$sabintegrationtype_ids output=$sabintegrationtype_names selected=$fsite->sabintegrationtype separator='
'} -
Whether to allow integration with a SAB/NZBGet install and if so what type of integration
-
: - -
The downloads/complete folder for a local sab install, for example: /var/www/sab/downloads/complete
-
: - -
A url to a hosted virtual directory pointing to the sab downloads/complete folder, e.g. http://server/complete
-
- -
- SABnzbd - - - - - - - - - - - - - - - - - - - - - - -
: - -
The url of the SAB installation, for example: http://localhost:8080/sabnzbd/
-
: - -
The Api key of the SAB installation. Can be the full api key or the nzb api key (as of SAB 0.6)
-
: - {html_radios id="sabapikeytype" name='sabapikeytype' values=$sabapikeytype_ids output=$sabapikeytype_names selected=$fsite->sabapikeytype separator='
'} -
Select the type of api key you entered in the above setting
-
: - {html_options id="sabpriority" name='sabpriority' values=$sabpriority_ids output=$sabpriority_names selected=$fsite->sabpriority} -
Set the priority level for NZBs that are added to your queue
-
-
- - -
- NZBGet - - - - - - - - - - - - - - - - - -
: - -
The url of the NZBGet installation, for example: http://localhost:6789/
-
: - -
The NZBGet ControlUsername e.g. nzbget
-
: - -
The NZBGet ControlPassword e.g. tegbzn6789
-
-
- -
- - -
-Usenet Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The directory where nzb files will be stored.
-
- -
Levels deep to store the nzb Files. -
If you change this you must run the misc/testing/DB/nzb-reorg.php script! -
-
: - -
The number of days binary and part data will be retained for use in raw search and release formation.
-
: - -
The number of days releases will be retained for use throughout site. Set to 0 to disable.
-
- -
The number of hours releases categorized as Misc->Other will be retained. Set to 0 to disable.
-
- -
The number of hours releases categorized as Misc->Hashed will be retained. Set to 0 to disable.
-
: - -
Default is 0 (off), which will remove parts in one go. If backfilling or importing and parts table is large, using chunks of 5000+ will speed up removal. Normal indexing is fastest with this setting at 0.
-
: - -
The minimum number of files to make a release. i.e. if set to two, then releases which only contain one file will not be created.
-
: - -
The minimum total size in bytes to make a release. If set to 0, then ignored.
-
- -
The maximum total size in bytes to make a release. If set to 0, then ignored. Only deletes - during release creation. -
-
: - -
The minimum completion percent to make a release. i.e. if set to 97, then releases under 97% completion will not be created. If set to 0, then ignored.
-
- {html_radios id="grabstatus" name='grabstatus' values=$yesno_ids output=$yesno_names selected=$fsite->grabstatus separator='
'} -
Whether to update download counts when someone downloads a release.
-
- -
The time in hours to check for crossposted releases - this will delete 1 of the releases if the 2 are posted by the same person in the same time period.
-
: - {html_radios id="removespam" name='removespam' values=$yesno_ids output=$yesno_names selected=$fsite->removespam separator='
'} -
Find and remove spam after each update. An inexact science which uses a few methods to identify virus/spam posts.
-
: - -
Which categories to permit .exe files. Requires unrar inner file checking to be enabled.
-
: - {html_radios id="updateparsing" name='updateparsing' values=$yesno_ids output=$yesno_names selected=$fsite->updateparsing separator='
'} -
Update Parsing is a mechanism to decode names using various techniques.
-
: - {html_radios id="updatecleanup" name='updatecleanup' values=$yesno_ids output=$yesno_names selected=$fsite->updatecleanup separator='
'} -
Update Cleanup is a general mechanism for deleting and moving unwanted items into misc>other.
-
: - {html_radios id="removespecial" name='removespecial' values=$yesno_ids output=$yesno_names selected=$fsite->removespecial separator='
'} -
Remove Special is a general mechanism for removing erroneous characters from release names.
-
: - {html_radios id="compressedheaders" name='compressedheaders' values=$yesno_ids output=$yesno_names selected=$fsite->compressedheaders separator='
'} -
Some servers allow headers to be sent over in a compressed format. If enabled this will use much less bandwidth, but processing times may increase.
-
: - -
The maximum number of messages to fetch at a time from the server.
-
: - -
The maximum number of messages to process for a group in one run of update_binaries.
-
: - {html_radios id="newgroupscanmethod" name='newgroupscanmethod' values=$yesno_ids output=$newgroupscan_names selected=$fsite->newgroupscanmethod separator='
'} - Days or - Posts
-
Scan back X (posts/days) for each new group? Can backfill to scan further.
-
- - -
The target date for safe backfill. Format: YYYY-MM-DD
-
- {html_radios id="disablebackfillgroup" name='disablebackfillgroup' values=$yesno_ids output=$yesno_names selected=$fsite->disablebackfillgroup separator='
'} -
Whether to disable a group automatically during backfill if the target date has been reached.
-
-
- -
-Lookup Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The url to use to translate allfilled style reqid usenet posts into real release titles. Leave blank to not perform lookup.
-
- {html_options style="width:180px;" id="lookuptvrage" name='lookuptvrage' values=$lookuptv_ids output=$lookuptv_names selected=$site->lookuptvrage} -
Whether to attempt to lookup TvRage ids on the web.
-
: - {html_radios id="lookupthetvdb" name='lookupthetvdb' values=$yesno_ids output=$yesno_names selected=$fsite->lookupthetvdb separator='
'} -
Whether to attempt to lookup addidional series information from TheTVDB when processing binaries.
-
- {html_options_multiple id="book_reqids" name='book_reqids' values=$book_reqids_ids output=$book_reqids_names selected=$book_reqids_selected} -
Categories of Books to lookup information for (only work if Lookup Books is set to yes).
-
- {html_options style="width:180px;" id="lookupimdb" name='lookupimdb' values=$lookupmovies_ids output=$lookupmovies_names selected=$fsite->lookupimdb} -
Whether to attempt to lookup film information from IMDB or TheMovieDB.
-
: - {html_radios id="lookupanidb" name='lookupanidb' values=$yesno_ids output=$yesno_names selected=$fsite->lookupanidb separator='
'} -
Whether to attempt to lookup anime information from AniDB when processing binaries.
-
- {html_options style="width:180px;" id="lookupmusic" name='lookupmusic' values=$lookupmusic_ids output=$lookupmusic_names selected=$fsite->lookupmusic} -
Whether to attempt to lookup music information from Amazon.
-
- {html_options style="width:180px;" id="lookupgames" name='lookupgames' values=$lookupgames_ids output=$lookupgames_names selected=$fsite->lookupgames} -
Whether to attempt to lookup game information from Amazon.
-
: - {html_radios id="lookupxxx" name='lookupxxx' values=$yesno_ids output=$yesno_names selected=$fsite->lookupxxx separator='
'} -
Whether to attempt to lookup XXX information when processing binaries.
-
- - -
The maximum amount of XXX to process per run. This does not use an NNTP - connection or query Amazon. -
-
- {html_options style="width:180px;" id="lookupbooks" name='lookupbooks' values=$lookupbooks_ids output=$lookupbooks_names selected=$fsite->lookupbooks} -
Whether to attempt to lookup book information from Amazon.
-
: - {html_options id="lookuplanguage" name='lookuplanguage' values=$lookuplanguage_iso output=$lookuplanguage_names selected=$fsite->lookuplanguage} -
Preferred language for scraping external sources.
-
: - {html_radios id="saveaudiopreview" name='saveaudiopreview' values=$yesno_ids output=$yesno_names selected=$fsite->saveaudiopreview separator='
'} -
Whether to save a preview of an audio release (requires deep rar inspection enabled).
It is advisable to specify a path to the lame binary to reduce the size of audio previews.
-
: - -
Delete any audio previews older than this number of days.
-
-
-
- Language/Categorization options - - - - - - - - - -
- {html_radios id="categorizeforeign" name='categorizeforeign' values=$yesno_ids output=$yesno_names selected=$fsite->categorizeforeign separator='
'} -
Whether to send foreign movies/tv to - foreign sections or not. If set to true they will go in foreign categories. -
-
- {html_radios id="catwebdl" name='catwebdl' values=$yesno_ids output=$yesno_names selected=$fsite->catwebdl separator='
'} -
Whether to send WEB-DL to the WEB-DL section or not. If set to true they will go in - WEB-DL category, false will send them in HD TV.
This will also make them inaccessible to - Sickbeard and possibly Couchpotato. -
-
-
- -
-Password Settings - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_radios id="checkpasswordedrar" name='checkpasswordedrar' values=$passwd_ids output=$passwd_names selected=$fsite->checkpasswordedrar separator='
'} -
Whether to attempt to peek into every release, to see if rar files are password protected.
-
- {html_radios id="fetchlastcompressedfiles" name='fetchlastcompressedfiles' values=$yesno_ids output=$yesno_names selected=$fsite->fetchlastcompressedfiles separator='
'} -
Try to download the last rar or zip file? (This is good if most of the files are at the end.) Note: The first rar/zip is still downloaded. -
-
: - {html_radios id="deletepasswordedrelease" name='deletepasswordedrelease' values=$yesno_ids output=$yesno_names selected=$fsite->deletepasswordedrelease separator='
'} -
Whether to delete releases which are passworded or potentially passworded.
-
- {html_radios id="deletepossiblerelease" name='deletepossiblerelease' values=$yesno_ids output=$yesno_names selected=$fsite->deletepossiblerelease separator='
'} -
Whether to delete releases which are potentially passworded. This applies to your post process additional inner file blacklist.
-
: - {html_options id="showpasswordedrelease" name='showpasswordedrelease' values=$passworded_ids output=$passworded_names selected=$fsite->showpasswordedrelease} -
Whether to show passworded or potentially passworded releases in browse, search, api and rss - feeds. Potentially passworded means releases which contain .cab or .ace files which are - typically password protected. (*yes): Unprocessed releases are hidden. (*no): Unprocessed releases are displayed. -
-
-
- -
-nzpre Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
Group to search when looking up nzpre posts.
-
: - -
Subject line. eg. This is an nzpre post!
-
: - -
Full poster field. eg. tester test@test.com
-
: - -
Which header field to parse.
-
: - -
Number of articles to parse when updating.
-
: - -
Key to decode.
-
-
- -
-Spotnab Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_radios id="spotnabpost" name='spotnabpost' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabpost separator='
'} -
If enabled, encrypted comments from this site will be uploaded using the spotnab protocol. These will be shared with others participating Newznab sites. Set up Spotnab sources here or use Auto Discovery.
-
: - {html_radios id="spotnabbroadcast" name='spotnabbroadcast' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabbroadcast separator='
'} -
If enabled, a broadcast packet will be uploaded every month, so that other participating Newznab sites can automatically subscribe to your comments.
-
: - {html_radios id="spotnabdiscover" name='spotnabdiscover' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabdiscover separator='
'} -
If enabled, other participating Newznab sites will be added automatically (as inactive) to your sources list.
-
: - {html_radios id="spotnabprivacy" name='spotnabprivacy' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabprivacy separator='
'} -
If enabled, uploaded comments use a unique (made up) username.
-
: - {html_radios id="spotnabautoenable" name='spotnabautoenable' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabautoenable separator='
'} -
If enabled, newly discovered Spotnab sources will be enabled by default.
-
: - -
The username part used for posting. eg nntp
-
: - -
The email part used for posting. eg spot@nntp.com
-
: - -
The group where posts are uploaded. eg alt.binaries.backup
-
: - -
Public key other sites will use to decrypt comments.
-
- -
Private key used to encrypt comments before uploading.
-
-
- -
- IMDB.com URL - - - - - -
- {html_options style="width:180px;" class="imdburl" id="imdburl" name='imdburl' values=$imdb_urls output=$imdburl_names selected=$fsite->imdburl} -
Akas.imdb.com returns titles in their original title, imdb.com returns titles based on - your IP address (if you are in france, you will get french titles). -
-
-
- -
- Usenet Settings - - - - - - - - - - - - - - - - - - - - - - -
- - -
The maximum size in gigabytes to postprocess a release. If set to 0, then ignored. -
-
- -
The minimum size in megabytes to post process (additional) a release. If set to 0, then ignored.
-
- {html_radios id="lookuppar2" name='lookuppar2' values=$yesno_ids output=$yesno_names selected=$fsite->lookuppar2 separator='
'} -
Whether to attempt to find a better name for releases in misc->other using the PAR2 - file.
NOTE: this can be slow depending on the group!
-
- {html_radios id="addpar2" name='addpar2' values=$yesno_ids output=$yesno_names selected=$fsite->addpar2 separator='
'} -
When going through PAR2 files, add them to the RAR file content list of the NZB.
-
-
- -
- Advanced Settings - For advanced users - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="tablepergroup" name='tablepergroup' values=$yesno_ids output=$yesno_names selected=$fsite->tablepergroup separator='
'} -
This uses separate tables for binaries and parts for each group.
This - requires you to run convert_to_tpg.php or reset_truncate.php.
This requires that you also run - .../misc/update/nix/multiprocessing/releases.php (tmux does this automatically). -
Run: show variables like '%open%files%'; results should be higher than 10k, twice that if you - are using TokuDB.; -
You may need to increase table_open_cache, open_files_limit and max_allowed_packet in - my.cnf. Also, you may need to add the following to /etc/security/limits.conf
mysql soft - nofile 24000
mysql hard nofile 32000
-
-
- -
The maximum amount of NZB files to create on stage 5 at a time in update_releases. If more are to be created it will loop stage 5 until none remain.
-
- {html_radios id="partrepair" name='partrepair' values=$yesno_ids output=$yesno_names selected=$fsite->partrepair separator='
'} -
Whether to attempt to repair parts or not, increases backfill/binaries updating - time. -
-
- {html_radios id="safepartrepair" name='safepartrepair' values=$yesno_ids output=$yesno_names selected=$fsite->safepartrepair separator='
'} -
Whether to put unreceived parts into partrepair table when running binaries(safe) or backfill scripts.
-
- -
The maximum amount of articles to attempt to repair at a time. If you notice that you - are getting a lot of parts into the partrepair table, it is possible that you USP is not keeping up - with the requests. Try to reduce the threads to safe scripts, stop using safe scripts or stop using - nntpproxy until improves. Ar least until the cause can be determined. -
-
- -
Maximum amount of times to try part repair.
-
- - -
- Leaving this empty will use PHP to decode yEnc, which is slow. -
Putting the path to yydecode will use yydecode, which is faster than PHP. Download yydecode - on sourceforce. -
Putting in simple_php_yenc_decode will use that - extension which is even faster (you must have the extension). View - simple_php_yenc_decode on github. -
-
- {html_radios id="processjpg" name='processjpg' values=$yesno_ids output=$yesno_names selected=$fsite->processjpg separator='
'} -
Whether to attempt to retrieve a JPG file while additional post processing, these are - usually on XXX releases.
-
- {html_radios id="processthumbnails" name='processthumbnails' values=$yesno_ids output=$yesno_names selected=$fsite->processthumbnails separator='
'} -
Whether to attempt to process a video thumbnail image. You must have ffmpeg for this.
-
- {html_radios id="processvideos" name='processvideos' values=$yesno_ids output=$yesno_names selected=$fsite->processvideos separator='
'} -
Whether to attempt to process a video sample, these videos are very short 1-3 seconds, - 100KB on average, in ogg video format. You must have ffmpeg for this.
-
- - -
The maximum number of segments to download to generate the sample video file or jpg - sample image. (Default 2) -
-
- - -
The maximum duration (In Seconds) for ffmpeg to generate the sample for. (Default 5) -
-
- {html_radios id="extractusingrarinfo" name='extractusingrarinfo' values=$yesno_ids output=$yesno_names selected=$fsite->extractusingrarinfo separator='
'} -
Whether to use rarinfo or 7zip/unrar directly to decompress zip/rar files. -
Using rarinfo is faster, but the extracted files are not as large which leads to smaller video samples/ potentially black preview screenshots. -
-
- -
If a rar/zip has rar/zip inside of it, how many times should we go in those inner rar/zip files.
-
- -
You can add a regex here to set releases to potentially passworded when a file name inside a rar/zip matches this regex. -
You must ensure this regex is valid, a non valid regex will cause errors during processing! -
-
-
- -
- RequestID Settings - - - - - - - - - - - - - -
- {html_options style="width:180px;" id="lookup_reqids" name='lookup_reqids' values=$lookup_reqids_ids output=$lookup_reqids_names selected=$fsite->lookup_reqids} -
Whether to attempt to lookup Request IDs using the Request id link below. This will rename your releases to proper PreDB names.
-
- -
Optional URL to lookup Request IDs. [REQUEST_ID] gets replaced with the request id from the - post. [GROUP_NM] Gets replaced with the group name. -
-
- -
The maximum hours after a release is added to recheck for a Request id match.
-
-
- -
- Advanced - Postprocessing Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
How much time to wait for unrar/7zip/mediainfo/ffmpeg/avconv before killing it, set to 0 to disable. - 60 is a good value. Requires the GNU Timeout path to be set.
-
- - -
The maximum amount of releases to process for passwords/previews/mediainfo per run. - Every release gets processed here. This uses NNTP an connection, 1 per thread. This does not query - Amazon. -
-
- - -
If a part fails to download while post processing, this will retry up to the amount - you set, then give up. -
-
- - -
This overrides the above setting if set above 1. How many parts to check for a - password before giving up. This slows down post processing massively, better to leave it 1. -
-
- - -
The maximum amount of TV shows to process with TVRage per run. This does not use an - NNTP connection or query Amazon. -
-
- - -
The maximum amount of movies to process with IMDB per run. This does not use an NNTP - connection or query Amazon. -
-
- - -
The maximum amount of anime to process with anidb per run. This does not use an NNTP - connection or query Amazon. -
-
- - -
The maximum amount of music to process with amazon per run. This does not use an NNTP - connection. -
-
- - -
The maximum amount of games to process with amazon per run. This does not use an NNTP - connection. -
-
- - -
The maximum amount of books to process with amazon per run. This does not use an NNTP - connection -
-
- - -
The maximum number of releases to check per run(threaded script only).
-
- - -
Sleep time in milliseconds to wait in between amazon requests. If you thread - post-proc, multiply by the number of threads. ie Postprocessing Threads = 12, Amazon sleep time = - 12000
https://affiliate-program.amazon.com/gp/advertising/api/detail/faq.html -
-
-
- -
- NFO Processing Settings - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="lookupnfo" name='lookupnfo' values=$yesno_ids output=$yesno_names selected=$fsite->lookupnfo separator='
'} -
Whether to attempt to retrieve an nfo file from usenet.
- NOTE: disabling nfo lookups will disable movie lookups. -
-
- -
The maximum amount of NFO files to process per run. This uses NNTP an connection, 1 - per thread. This does not query Amazon. -
-
- -
The maximum size in gigabytes of a release to process it for NFOs. If set to 0, then ignored.
-
- -
The minimum size in megabytes of a release to process it for NFOs. If set to 0, then ignored.
-
- -
How many times to retry when a NFO fails to download. If set to 0, we will not retry. The max is 7.
-
-
- -
- Connection Settings - - - - - - - - - - - - - - - - - - - - -
- - -
The maximum number of retry attmpts to connect to nntp provider. On error, each retry - takes approximately 5 seconds nntp returns reply. (Default 10) -
-
- {html_radios id="nntpproxy" name='nntpproxy' values=$yesno_ids output=$yesno_names selected=$fsite->nntpproxy separator='
'} -
- nntpproxy does not support the POST usenet command which is required for uploading usenet comments when using sharing. - Using the NNTP Proxy for newznab can improve performance of newznab. It uses - connection pooling which not only give more control over the number of connections to use but also - reduces time for connection setup/teardown. The proxy also takes care of compressed headers for you. - To use this featrure you will need to install socketpool (sudo pip install socketpool or sudo easy_install socketpool) - (ensure python2 is default) and edit the configuration file (nntpproxy.conf and nntpproxy_a.conf) in the - update_scripts/nix_scripts/tmux/python/lib (copy sample) directory and finally edit your www/config.php file - to use the proxy (username and password are ignored by the proxy - make then anything you like - the - proxy doesn't use ssl either). Make sure you turn off the use compressed headers option here in site - preferences (the proxy uses compressed headers by default and passes on decompressed data). -
-
- {html_radios id="alternate_nntp" name='alternate_nntp' values=$yesno_ids output=$yesno_names selected=$fsite->alternate_nntp separator='
'} -
This sets Postproccessing Additional/Nfo to use the alternate NNTP provider as set in - config.php. -
-
- -
The time in hours to wait, since last activity, before releases without parts counts - in the subject are are created
Setting this below 2 hours could create incomplete releases.. -
-
-
-
- Developer Settings - - - - - -
- {html_radios id="showdroppedyencparts" name='showdroppedyencparts' values=$yesno_ids output=$yesno_names selected=$fsite->showdroppedyencparts separator='
'} -
For developers. Whether to log all headers that have 'yEnc' and are dropped. Logged to not_yenc/groupname.dropped.txt.
-
-
- -
- Advanced - Threaded Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
The number of threads for update_binaries. If you notice that you are getting a lot of - parts into the partrepair table, it is possible that you USP is not keeping up with the requests. - Try to reduce the threads. At least until the cause can be determined. -
-
- - -
The number of threads for backfill.
-
- - -
The number of threads for releases update scripts. -
-
- - -
The number of threads for import-nzb(bulk). This will thread each subfolder.
-
- - -
The number of threads for additional postprocessing. This includes deep rar - inspection, preview and sample creation and nfo processing. -
-
- -
The number of threads for nfo postprocessing. - The max is 16, if you set anything higher it will use 16. -
-
- -
The number of threads for local Request id processing. -
-
- - -
The number of threads for non-amazon postprocessing. This includes movies, anime and - tv lookups. -
-
- - -
The number of threads for fixReleasesNames. This includes md5, nfos, par2 and - filenames. -
-
-
- -
-User Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_radios id="registerstatus" name='registerstatus' values=$registerstatus_ids output=$registerstatus_names selected=$fsite->registerstatus separator='
'} -
The status of registrations to the site.
-
: - {html_radios id="storeuserips" name='storeuserips' values=$yesno_ids output=$yesno_names selected=$fsite->storeuserips separator='
'} -
Whether to store the users ip address when they signup or login.
-
- {html_radios id="privateprofiles" name='privateprofiles' values=$yesno_ids output=$yesno_names selected=$fsite->privateprofiles separator='
'} -
Should we disallow users from accessing profiles other than their own? (regardless of this setting admin/mod can access).
-
: - -
The number of days to preserve user download history, for use when checking limits being hit. Set to zero will remove all records of what users download, but retain history of when, so that role based limits can still be applied.
-
: - -
A comma separated list of IP addresses which will be excluded from user limits on number of requests and downloads per IP address. Include values for google reader and other shared services which may be being used.
-
-
- -
-Recaptcha - - - - - - - - - - - - - - - - - - - -
: - -
The public key supplied by recaptcha.net. Sign up for recaptcha at https://www.google.com/recaptcha/admin/create
-
: - -
The private key supplied by recaptcha.net
-
: - {html_radios id="registerrecaptcha" name='registerrecaptcha' values=$yesno_ids output=$yesno_names selected=$fsite->registerrecaptcha separator='
'} -
Whether to display a ReCaptcha captcha for registering.
-
-
- - - -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/site-stats.tpl b/www/templates/nntmux/views/admin/site-stats.tpl deleted file mode 100644 index a66ea97df..000000000 --- a/www/templates/nntmux/views/admin/site-stats.tpl +++ /dev/null @@ -1,186 +0,0 @@ - -

{$page->title}

- -{if $topgrabs|count > 0} -

Top Grabbers

- - - - - - - - {foreach from=$topgrabs item=result} - - - - - {/foreach} - -
UserGrabs
{$result.username}{$result.grabs}
- -

-{/if} - -

Signups

- - - - - - - - {foreach from=$usersbymonth item=result} - {assign var="totusers" value=$totusers+$result.num} - - - - - {/foreach} - -
MonthSignups
{$result.mth}{$result.num}
Total{$totusers}
- -

- -

Users by Role

- - - - - - - - {foreach from=$usersbyrole item=result} - {assign var="totrusers" value=$totrusers+$result.num} - - - - - {/foreach} - -
RoleUsers
{$result.name}{$result.num}
Total{$totrusers}
- -

- -

Users by Hosthash

- - - - - - - - - {foreach from=$usersbyhosthash item=result} - - - - - - - {/foreach} -
HosthashUser IDs (Edit)User Names (Profiles)
{$result.hosthash} - {assign var="usersplits" value=","|explode:$result.user_string} - {foreach from=$usersplits item=usersplit} - {$usersplit} - {/foreach} - - {assign var="usernsplits" value=","|explode:$result.user_names} - {foreach from=$usernsplits item=usernsplit} - {$usernsplit} - {/foreach} -
- -

- -

Access by Date

- - - - - - - - - - - - - {foreach from=$loginsbymonth item=result} - - - - - - - - - - {/foreach} -
TypeLast Day2-7 Days8-30 Days1-3 Months3-6 Months+6 Months
{$result.type}{$result.1day}{$result.7day}{$result.1month}{$result.3month}{$result.6month}{$result.12month}
- -

- -{if $topdownloads|count > 0} -

Top Downloads

- - - - - - - - - {foreach from=$topdownloads item=result} - - - - - - {/foreach} - -
ReleaseGrabsDays Ago
{$result.searchname|escape:"htmlall"|replace:".":" "} - {if $isadmin}[Edit]{/if}{$result.grabs}{$result.adddate|timeago}
- -

-{/if} - -

Releases Added In Last 7 Days

- - - - - - - - {foreach from=$recent item=result} - - - - - {/foreach} - -
CategoryReleases
{$result.title}{$result.count}
- -

- -{if $topcomments|count > 0} -

Top Comments

- - - - - - - - - {foreach from=$topcomments item=result} - - - - - - {/foreach} - -
ReleaseCommentsDays Ago
{$result.searchname|escape:"htmlall"|replace:".":" "}{$result.comments}{$result.adddate|timeago}
-{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/spotnab-edit.tpl b/www/templates/nntmux/views/admin/spotnab-edit.tpl deleted file mode 100644 index 7d74aa219..000000000 --- a/www/templates/nntmux/views/admin/spotnab-edit.tpl +++ /dev/null @@ -1,55 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name: - - -
A name or description for the source.
-
Poster Username: - -
The username part of the poster. eg nntp
-
Poster E-mail: - -
The email part of the poster. eg spot@nntp.com
-
Usenet Group: - -
Group to search when looking up posts for this source.
-
Public Key: - -
Public Key needed to decode the posts specific for this source.
-
- -
- -
diff --git a/www/templates/nntmux/views/admin/spotnab-list.tpl b/www/templates/nntmux/views/admin/spotnab-list.tpl deleted file mode 100644 index 0bfd8824d..000000000 --- a/www/templates/nntmux/views/admin/spotnab-list.tpl +++ /dev/null @@ -1,44 +0,0 @@ - -

{$page->title}

- -{if $spotnab|@count == 0} -No available sources. Add one? -{else} - - - - - - - - - - - - - {foreach from=$spotnab item=source} - - - - - - - - - {/foreach} - - -
source descriptioncurrent statuscommentslast broadcastlast updateoptions
{$source.description}{if $source.active=="1"}active{else}inactive{/if}{$source.comments} - {if $source.lastbroadcast != null} - {$source.lastbroadcast} - {else} - n/a - {/if} - - {if $source.lastupdate != null} - {$source.lastupdate} - {else} - n/a - {/if} - edit delete
-{/if} diff --git a/www/templates/nntmux/views/admin/thetvdb-edit.tpl b/www/templates/nntmux/views/admin/thetvdb-edit.tpl deleted file mode 100644 index c1b55a8a0..000000000 --- a/www/templates/nntmux/views/admin/thetvdb-edit.tpl +++ /dev/null @@ -1,124 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/thetvdb-list.tpl b/www/templates/nntmux/views/admin/thetvdb-list.tpl deleted file mode 100644 index b457497b5..000000000 --- a/www/templates/nntmux/views/admin/thetvdb-list.tpl +++ /dev/null @@ -1,40 +0,0 @@ -

{$page->title}

- -{if $serieslist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - {foreach from=$serieslist item=thetvdb} - - - - - - {/foreach} - -
TheTVDB idTitleOptions
{$thetvdb.tvdbid}{$thetvdb.seriesname|escape:"htmlall"}delete | remove
-
- {$pager} -{else} -

No TheTVDB episodes available.

-{/if} diff --git a/www/templates/nntmux/views/admin/thetvdb-remove.tpl b/www/templates/nntmux/views/admin/thetvdb-remove.tpl deleted file mode 100644 index 1c245f125..000000000 --- a/www/templates/nntmux/views/admin/thetvdb-remove.tpl +++ /dev/null @@ -1,4 +0,0 @@ - -

{$page->title}

- -Removed tvdbid from {$numtv} releases. \ No newline at end of file diff --git a/www/templates/nntmux/views/admin/tmux-edit.tpl b/www/templates/nntmux/views/admin/tmux-edit.tpl deleted file mode 100644 index 770df3d6e..000000000 --- a/www/templates/nntmux/views/admin/tmux-edit.tpl +++ /dev/null @@ -1,784 +0,0 @@ -

{$page->title}

- -
- -{if $error != ''} -
{$error}
-{/if} - -
- Tmux - How It Works - - - - - -
                                 - -
Tmux is a screen multiplexer and at least version 1.6 is required. It is used - here to allow multiple windows per session and multiple panes per window.

- Each script is run in its own shell environment. It is not looped, but allowed to run once and then - exit. This notifies tmux that the pane is dead and can then be respawned with another iteration of - the script in a new shell environment.
- This allows for scripts that crash to be restarted without user intervention.

- You can run multiple tmux sessions, but they all must have an associated tmux.conf file and all - sessions must use the same tmux.conf file.

- -

NOTICE:

If "Save Tmux Settings" is the last thing you did on this page or if it is - the active element and if you have this page set to autorefresh or you refresh instead of following - a link to this page, you will set the db with the settings currently on this page, not reload from - db. This could cause tmux scripts to start while optimize or patch the database is running. -
-
-
- -
- Monitor - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="running" name='running' values=$yesno_ids output=$yesno_names selected=$ftmux->running separator='
'} -
This is the shutdown, true/on, it runs, false/off and all scripts are terminated. This - will start/stop all panes without terminating the monitor pane. This is not instant, it does not - kill any panes, it simply does not aloow any pane to restart if set to false. -
-
- - -
The time between query refreshes of monitor information, in seconds. This has no - effect on any other pane, except in regards to the kill switches. The other panes are checked every - 10 seconds. The lower the number, the more often it queries the database for numbers.
- As the database gets larger in size, the longer this set of queries takes to process.
- this has been mitigated by using memcache on the count queries. The will stay in cache for whatever - you have set in config.ini, default is 900 seconds. -
-
- - -
Enter the session name to be used by tmux, no spaces allowed in the name, this can't - be changed after scripts start. If you are running multiple servers, you could put your hostname - here -
-
-
-
- - -
Enter a path here to have Monitor monitor its usage and free space. Must be a valid - path.
To use this example, add to fstab and edit path, gid and uid, then mount as user not root:
tmpfs - /var/www/newznab/nzbfiles/tmpunrar tmpfs - user,uid=1000,gid=33,nodev,nodiratime,nosuid,size=1G,mode=777 0 0
- gid == group id == /etc/groups, uid == user id == /etc/passwd -
-
-
- Monitor is the name of the script that monitors all of the tmux panes and windows. It stops/stops - scripts based on user settings. It queries the database to provide stats from your newznab database.

- There are 2 columns of numbers, 'In Process' and 'In Database'. The 'In Process' is all releases - that need to be postprocessed. The 'In Database' is the number of releases matching that - category.

- The 'In Process' column has 2 sets of numbers, the total for each category that needs to be - postprocessed and inside the parenthesis is the difference from when the script started to what it - is now.

- The 'In Database' column also has 2 sets of numbers, the total releases for each category and inside - the parenthesis is the percentage that category is to the total number of releases.

- The Misc row means something different in both columns. The 'In Process' column is all releases that - have not had 'Additional' run on them. This includes 100% of all releases, not just the Misc - Category.

- The 'In Database' Misc means the number of releases that have not been categorized in any other - category.
- The counts for parts, binaries and predb totals are estimates and can vary wildly between queries. - It is too slow to query the db for real counts, when using InnoDB. All of the other counts are - actual counts.

- The 'In Process' predb is the total unmatched predb and inside the parenthesis is the 'matched' - changed since the script started. The 'In Database' is the total matched predb's you have and the - number inside the parenthesis is the percentage of total releases that you have matched to a predb - release.

- The 'In Process' NZBs are total nzbs, inside the parenthesis is distinct nzbs and 'In Database' are - nzbs that have all parts available and will be processed on next run.

- The 'In Process' requestid is the number waiting to be processed and inside the parenthesis is the - number changed since the script started. The 'In Database' is the total matches of releases to - requestIDs and inside the parenthesis is percentage of total releases that you have matched to a - requestid.

- The 'In Process' rows PC and Pron are simply subsets of the 'In Process' row Misc. There is no - postprocessing specifically for these categories. The 'In Database' is the actual count for the - category. -
-
-
- -
- Sequential - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="sequential" name='sequential' values=$sequential_ids output=$sequential_names selected=$ftmux->sequential} -
Basic Sequential runs update_binaries, backfill and update releases_sequentially.
Changing - requires restart. -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
I do not recommend using sequential, as it is not tested enough.
-
-
- -
- Update Binaries - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="binaries" name='binaries' values=$binaries_ids output=$binaries_names selected=$ftmux->binaries} -
Choose to run update_binaries. Update binaries gets from your last_record to now.
Simple - Threaded Update runs 1 group per thread.
Complete Threaded Update splits all work across - multiple threads(binaries_safe_threaded.py). -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- - -
The time update_binaries is allowed to run with no updates.Time is in minutes.
-
-
- -
- Backfill - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="backfill" name='backfill' values=$backfill_ids output=$backfill_names selected=$ftmux->backfill} -       {html_options style="width:180px;" class="siteeditstyle" id="backfill_order" name='backfill_order' values=$backfill_group_ids output=$backfill_group selected=$ftmux->backfill_order} -       {html_options style="width:180px;" class="siteeditstyle" id="backfill_days" name='backfill_days' values=$backfill_days_ids output=$backfill_days selected=$ftmux->backfill_days} -
Choose to run backfill type. Backfill gets from your first_record back.
- Disabled - Disables backfill from running.
- Safe - Backfills 1 group by backfill days (set in admin-view groups), using the number of threads - set in admin. This downloads Backfill Quantity times the Backfill Threads, each - loop(backfill_safe_threaded.py).
- example: you have Backfill Threads = 10, Backfill Quantity = 20k, Max Messages = 5k: you will run 10 - threads, queue of 40 and download 200k headers.
- Interval - Backfills the number of groups (set in tmux), by backfill days (set in admin-view - groups), completely.
- All - Backfills the number of groups (set in tmux), by Backfill Quantity (set in tmux), up to - backfill days (set in admin-view groups)
- These settings are all per loop and does not use backfill date. Approximately every 80 minutes, - every activated backfill group will be backfilled (5k headers).This extra step is not necessary and - is not used when using Sequential.
- Newest - Sorts the group selection with the least backfill days backfilled, first.
- Oldest - Sorts the group selection with the most backfill days backfilled, first.
- Alphabetical - Sorts the group selection from a to z.
- Alphabetical Reverse - Sorts the group selection from z to a.
- Most Posts - Sorts the group selection by the highest number of posts, first.
- Fewest Posts - Sorts the group selection by the lowest number of posts, first.
- Backfill days - Days per Group from admin->view group or the Safe Backfill Date from admin->tmux. -
-
- - -
When not running backfill intervals, you select the number of headers per group per - thread to download. -
-
- - -
When running backfill the groups are sorted by the backfill method chosen above. - Select the number of groups to backfill per loop. -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- {html_radios id="progressive" name='progressive' values=$yesno_ids output=$yesno_names selected=$ftmux->progressive separator='
'} -
This will vary the backfill sleep depending on how many collections you have.
ie - 50k collections would make sleep timer 100 seconds and 20k releases would make sleep timer 40 - seconds. -
-
-
- -
- Import nzbs - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="import" name='import' values=$import_ids output=$import_names selected=$ftmux->import} -
Choose to run import nzb script true/false. This can point to a single folder with - multiple subfolders on just the one folder. If you run this threaded, it will run 1 folder per - thread. -
-
- - -
Set the path to the nzb dump you downloaded from torrents, this is the path to bulk - files folder of nzbs. This is by default, recursive and threaded. You set the threads in Advanced - Settings. -
-
- -
How many NZB files to import per process.
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
This will import all nzbs in the given path. If in your path you have nzbs in - the root folder and subfolders(regardless of nzbs inside), threaded scripts will ignore all nzbs in - the root path. Then each subfolder is threaded. -
-
-
- -
- Update Releases - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="releases" name='releases' values=$releases_ids output=$releases_names selected=$ftmux->releases} -
Create releases, this is really only necessary to turn off when you only want to post - process. This runs "Categorizes releases in misc sections using the search name" on first loop and - has 33% chance of running on any other loop. Then runs update_releases.php 1 false to create new - releases.
Threaded is only used with tablepergroup and is required if using tpg. -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
- -
- Postprocessing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="post" name='post' values=$post_ids output=$post_names selected=$ftmux->post} -
Choose to do deep rar inspection, preview and sample creation and/or nfo processing. - true/false -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- - -
The time postprocess is allowed to run with no updates to the screen.Time is in - seconds. Activity is detected when the history for the pane changes. The clock is restarted every - time activity is detected. -
-
- {html_radios id="post_amazon" name='post_amazon' values=$yesno_ids output=$yesno_names selected=$ftmux->post_amazon separator='
'} -
Choose to do books, music and games lookups true/false
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- {html_options style="width:180px;" class="siteeditstyle" id="post_non" name='post_non' values=$post_non_ids output=$post_non_names selected=$ftmux->post_non} -
Choose to do movies, anime and tv lookups. true/false
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
- -
- Comment Sharing - - - - - - - - - -
- {html_radios id="run_sharing" name='run_sharing' values=$yesno_ids output=$yesno_names - selected=$ftmux->run_sharing separator='
'} - -
Run Comment Sharing from within tmux if you have it enabled in Admin->Comment Sharing - Settings. -
-
- - -
Set the sleep time between updates
-
-
- -
- Fix Release Names - - - - - - - - - - -
- {html_radios id="fix_names" name='fix_names' values=$yesno_ids output=$yesno_names selected=$ftmux->fix_names separator='
'} -
Choose to try to fix Releases Names using NFOs, par2 files, filenames, md5 and - sha1. true/false -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
- -
- Remove Crap Releases - - - - - - - - - -
- {html_radios id="fix_crap_opt" name='fix_crap_opt' onchange="enableFixCrapCustom()" values=$fix_crap_radio_names output=$fix_crap_radio_names selected=$ftmux->fix_crap_opt separator='
'} -
-
- {if $ftmux->fix_crap_opt == "Custom"} - {html_checkboxes id="fix_crap" name='fix_crap' values=$fix_crap_check_names output=$fix_crap_check_names selected=explode(', ', $ftmux->fix_crap)} - {else} - {html_checkboxes id="fix_crap" name='fix_crap' disabled="true" readonly="true" values=$fix_crap_check_names output=$fix_crap_check_names selected=explode(', ', $ftmux->fix_crap)} - {/if} -
-
Choose to run Remove Crap Releases. You can enable all or some.
-
- -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
-
- Decrypt Hashes - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="dehash" name='dehash' values=$dehash_ids output=$dehash_names selected=$ftmux->dehash} -
Choose to run Decrypt Hashes true/false
-
- -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
Decrypt hashes works by matching a hashed release to the md5 of a release in - the predb.
- Included in the same pane is Update Predb. This scrapes several predb sites and then tries to match - against releases.
- This should be run along with fixReleasenames.php, this is faster, but only looks at releases.names. - fixReleasenames.php goes further and looks at releasefiles.name. -
-
-
-
- Update TV/Theater - - - - - - - - - - -
- {html_radios id="update_tv" name='update_tv' values=$yesno_ids output=$yesno_names selected=$ftmux->update_tv separator='
'} -
Choose to run Update TV and Theater Schedules true/false
-
- - -
This is a start timer. The default is 12 hours. This means that if enabled, is will - start/run every 12 hours, no matter how long it runs for. -
-
-
- -
- PreDb IRC Scraper - - - - - - - - - -
- {html_radios id="scrape" name='scrape' values=$yesno_ids output=$yesno_names - selected=$ftmux->scrape separator='
'} -
Choose to run IRCScraper on irc channels. Setting SCRAPE_IRC_C_Z_BOOL parameter to - true or false in settings.php will toggle between the servers. The pane for this can not be - created after tmux starts. -
-
-
IRC Scraper will scrape several predb channels from the enabled servers.
- Copy settings_example.php to settings.php in /lib/IRCScraper and change the settings.
- As a minimum you should set the username and make sure it is unique. -
-
-
- -
- Miscellaneous - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
This sets the 'nice'ness of each script, default is 19, the lowest, the highest is -20 - anything between -1 and -20 require root/sudo to run -
-
- -
Set this to any number above 0 and when it is exceeded, backfill and update binaries - will be terminated. 0 disables. -
-
- - -
Set this to any number above 0 and when it is exceeded, import, backfill and update - binaries will be terminated. 0 disables. -
-
- {html_radios id="write_logs" name='write_logs' values=$yesno_ids output=$yesno_names selected=$ftmux->write_logs separator='
'} -
Set this to write each panes output to a per pane per day log file. This adds GMT date - to the filename. -
-
- {html_radios id="powerline" name='powerline' values=$yesno_ids output=$yesno_names selected=$ftmux->powerline separator='
'} -
Choose to use the Powerline tmux status bar. To make this pretty, you need to install - a patched font. This can be found on my - fork or the original git
You - will need to copy the default theme located at powerline/powerline/themes/default.sh to - powerline/powerline/themes/tmux.sh and edit that file for what is displayed, colors, etc. -
-
- - -
The target date for safe backfill. Format: YYYY-MM-DD
-
-
- -
- Server Monitors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="showquery" name='showquery' values=$yesno_ids output=$yesno_names selected=$ftmux->showquery separator='
'} -
Choose to display the query times for each set of queries. true/false.
-
- {html_radios id="htop" name='htop' values=$yesno_ids output=$yesno_names selected=$ftmux->htop separator='
'} -
htop - an interactive process viewer for Linux. The pane for this can not be created - after tmux starts. -
-
- {html_radios id="nmon" name='nmon' values=$yesno_ids output=$yesno_names selected=$ftmux->nmon separator='
'} -
nmon is short for Nigel's performance Monitor for Linux. The pane for this can not be - created after tmux starts. -
-
- {html_radios id="vnstat" name='vnstat' values=$yesno_ids output=$yesno_names selected=$ftmux->vnstat separator='
'} - - -
vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log - of network traffic for the selected interface(s). Any additional arguments should be placed in the - text box. The pane for this can not be created after tmux starts. -
-
- {html_radios id="tcptrack" name='tcptrack' values=$yesno_ids output=$yesno_names selected=$ftmux->tcptrack separator='
'} - - -
tcptrack displays the status of TCP connections that it sees on a given network - interface. tcptrack monitors their state and displays information such as state, source/destination - addresses and bandwidth usage in a sorted, updated list very much like the top(1) command.
Any - additional arguments should be placed in the text box.
You may need to run "sudo setcap - cap_net_raw+ep /usr/bin/tcptrack", to be able to run as user. The pane for this can not be created - after tmux starts. -
-
- {html_radios id="bwmng" name='bwmng' values=$yesno_ids output=$yesno_names selected=$ftmux->bwmng separator='
'} -
bwm-ng can be used to monitor the current bandwidth of all or some specific network - interfaces or disks (or partitions). The pane for this can not be created after tmux starts. -
-
- {html_radios id="mytop" name='mytop' values=$yesno_ids output=$yesno_names selected=$ftmux->mytop separator='
'} -
mytop - display MySQL server performance info like `top'.
You will need to create - ~/.mytop, an example can be found in 'perldoc mytop'. The pane for this can not be created after - tmux starts. -
-
- {html_radios id="showprocesslist" name='showprocesslist' values=$yesno_ids output=$yesno_names selected=$ftmux->showprocesslist separator='
'} - - -
This runs the watch command in its own pane. This could be used for a live 'slow query - monitor'. Just set the time above and only the queries that exceed it will be displayed.
mysql - -e "SELECT time, state, rows_examined, info FROM information_schema.processlist WHERE command != - \"Sleep\" AND time >= .5 ORDER BY time DESC \G"
This shows a grid like layout with the full test - of the running queries.
You will need to create a ~/.my.cnf for this to work properlly. The pane - for this can not be created after tmux starts and modifying the time above will have no effect until - a restart occurs. -
-
- {html_radios id="console" name='console' values=$yesno_ids output=$yesno_names selected=$ftmux->console separator='
'} -
Open an empty bash shell. The pane for this can not be created after tmux starts. -
-
- {html_radios id="debuginfo" name='debuginfo' values=$yesno_ids output=$yesno_names selected=$ftmux->debuginfo separator='
'} -
For developers. Whether to echo debug information in some scripts.
-
-
- - - -
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/user-edit.tpl b/www/templates/nntmux/views/admin/user-edit.tpl deleted file mode 100644 index 5abbaf6bc..000000000 --- a/www/templates/nntmux/views/admin/user-edit.tpl +++ /dev/null @@ -1,128 +0,0 @@ -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - {if $user.id} - - - - - - - - - {/if} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name: - - -
Email: - -
Password: - - {if $user.id} -
Only enter a password if you want to change it.
- {/if} -
Grabs: - -
Invites: - -
Movie View: - -
Music View: - -
Game View: - -
XXX View: - -
Console View: - -
Book View: - -
: - {html_radios id="role" name='role' values=$role_ids output=$role_names selected=$user.role separator='
'} -
Notes: - -
- - - {if $user.id != ""} - - - {/if} -
- -
- - diff --git a/www/templates/nntmux/views/admin/user-list.tpl b/www/templates/nntmux/views/admin/user-list.tpl deleted file mode 100644 index bdfbadeaf..000000000 --- a/www/templates/nntmux/views/admin/user-list.tpl +++ /dev/null @@ -1,64 +0,0 @@ - -

{$page->title}

- -
- -
- - -    - - -    - - -    - - -    - -
-
- -{$pager} - -

- - - - - - - - - - - - - - - - - - - {foreach from=$userlist item=user} - - - - - - - - - - - - - - {/foreach} - - -
name
email
host
join date
last login
api access
grabs
invitesnotesrole
options
{$user.username}{$user.email}{$user.host}{$user.createddate|date_format}{$user.lastlogin|date_format}{$user.apiaccess|date_format}{$user.grabs}{$user.invites}{$user.rolename}{if $user.role!="2"}delete{/if}
\ No newline at end of file diff --git a/www/templates/nntmux/views/admin/view-logs.tpl b/www/templates/nntmux/views/admin/view-logs.tpl deleted file mode 100644 index 3592a0b98..000000000 --- a/www/templates/nntmux/views/admin/view-logs.tpl +++ /dev/null @@ -1,34 +0,0 @@ -

{$page->title}

-

-{if $data} - {$pager} - - - - - {foreach from=$data item=log} - - - - {/foreach} -
- -
{$log}
-
- {$pager} -{else} -

Nothing found, maybe you need to turn on logging in : {$path}

- -{/if} \ No newline at end of file diff --git a/www/templates/nntmux/views/frontend/games.tpl b/www/templates/nntmux/views/frontend/games.tpl index 94ab922c8..484eb339b 100644 --- a/www/templates/nntmux/views/frontend/games.tpl +++ b/www/templates/nntmux/views/frontend/games.tpl @@ -67,39 +67,39 @@ title
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> genre
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> release date
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> posted
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> size
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> files
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> stats
+ src="{$smarty.const.WWW_TOP}/templates/nntmux/images/sorting/arrow_up.gif" alt=""/> diff --git a/www/templates/nntmux/views/frontend/rssheader.tpl b/www/templates/nntmux/views/frontend/rssheader.tpl index 5659ba9ad..7c38ce2a7 100644 --- a/www/templates/nntmux/views/frontend/rssheader.tpl +++ b/www/templates/nntmux/views/frontend/rssheader.tpl @@ -9,7 +9,7 @@ {$site->email} ({$site->title|escape}) {$site->meta_keywords} - {$serverroot}templates/default/images/banner.jpg + {$serverroot}templates/nntmux/images/banner.jpg {$site->title|escape} {$serverroot} Visit {$site->title|escape} - {$site->strapline|escape} diff --git a/www/templates/omicron/views/admin/adminmenu.tpl b/www/templates/omicron/views/admin/adminmenu.tpl deleted file mode 100644 index 37441af4e..000000000 --- a/www/templates/omicron/views/admin/adminmenu.tpl +++ /dev/null @@ -1,53 +0,0 @@ -

Admin Functions

- diff --git a/www/templates/omicron/views/admin/ajax_release-edit.tpl b/www/templates/omicron/views/admin/ajax_release-edit.tpl deleted file mode 100644 index 8711069a6..000000000 --- a/www/templates/omicron/views/admin/ajax_release-edit.tpl +++ /dev/null @@ -1,106 +0,0 @@ - -
- -{if $success} - -

Successfully updated!

-{if $from != ''} - -{/if} - -{else} - -{literal} - -{/literal} - -
- -{foreach from=$idArr item=id} - -{/foreach} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_options id="category" name=category options=$catlist selected=$release.categoryid} -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
- -
- -
- -{/if} - -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/anidb-edit.tpl b/www/templates/omicron/views/admin/anidb-edit.tpl deleted file mode 100644 index b3f1626cd..000000000 --- a/www/templates/omicron/views/admin/anidb-edit.tpl +++ /dev/null @@ -1,119 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/anidb-list.tpl b/www/templates/omicron/views/admin/anidb-list.tpl deleted file mode 100644 index 409d82f0c..000000000 --- a/www/templates/omicron/views/admin/anidb-list.tpl +++ /dev/null @@ -1,41 +0,0 @@ -

{$page->title}

- -{if $anidblist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - {foreach from=$anidblist item=anidb} - - - - - - {/foreach} - -
AniDB IdTitleOptions
{$anidb.anidbid}{$anidb.title|escape:"htmlall"}delete | remove
- -
- {$pager} -{else} -

No AniDB episodes available.

-{/if} diff --git a/www/templates/omicron/views/admin/anidb-remove.tpl b/www/templates/omicron/views/admin/anidb-remove.tpl deleted file mode 100644 index 97d0bf29f..000000000 --- a/www/templates/omicron/views/admin/anidb-remove.tpl +++ /dev/null @@ -1,4 +0,0 @@ - -

{$page->title}

- -Removed anidbid from {$numtv} releases. \ No newline at end of file diff --git a/www/templates/omicron/views/admin/baseadminpage.tpl b/www/templates/omicron/views/admin/baseadminpage.tpl deleted file mode 100644 index 5a63706e8..000000000 --- a/www/templates/omicron/views/admin/baseadminpage.tpl +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - {$site->title|default:'newznab'} - {$page->meta_title|default:$page->title} - - - - - - - - - - - {$page->head} - - - -
- - - -
- -
- -
- -
- {$page->content} -
- - - - - -
 
- -
- - -
-
-
-
- - - - - {if $site->google_analytics_acc != ''} - {literal} - - - - {/literal} - {/if} - - - \ No newline at end of file diff --git a/www/templates/omicron/views/admin/binaryblacklist-edit.tpl b/www/templates/omicron/views/admin/binaryblacklist-edit.tpl deleted file mode 100644 index 2407eeaab..000000000 --- a/www/templates/omicron/views/admin/binaryblacklist-edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ - -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Group: - - -
The full name of a valid newsgroup. (Wildcard in the format 'alt.binaries.*')
-
Regex: - -
The regex to be applied. (Note: Beginning and Ending / are already included)
-
Description: - -
A description for this regex
-
: - {html_radios id="msgcol" name='msgcol' values=$msgcol_ids output=$msgcol_names selected=$regex.msgcol separator='
'} -
Which field in the message to apply the black/white list to.
-
: - {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regexes are applied during the release process.
-
: - {html_radios id="optype" name='optype' values=$optype_ids output=$optype_names selected=$regex.optype separator='
'} -
Black will exclude all messages for a group which match this regex. White will include only those which match.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/binaryblacklist-list.tpl b/www/templates/omicron/views/admin/binaryblacklist-list.tpl deleted file mode 100644 index 93a408784..000000000 --- a/www/templates/omicron/views/admin/binaryblacklist-list.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -

{$page->title}

- -

- Binaries can be prevented from being added to the index at all if they match a regex provided in the blacklist. They can also be included only if they match a regex (whitelist). -

- -
- - - - - - - - - - - - - - {foreach from=$binlist item=bin} - - - - - - - - - - {/foreach} - -
idgroupregextypefieldstatusOptions
{$bin.id}{$bin.groupname|replace:"alt.binaries":"a.b"} - {$bin.regex|escape:html}
- {$bin.description} -
{if $bin.optype==1}black{else}white{/if}{if $bin.msgcol==1}subject{elseif $bin.msgcol==2}poster{else}messageid{/if}{if $bin.status==1}active{else}disabled{/if}edit | delete
diff --git a/www/templates/omicron/views/admin/book-edit.tpl b/www/templates/omicron/views/admin/book-edit.tpl deleted file mode 100644 index 417958379..000000000 --- a/www/templates/omicron/views/admin/book-edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - - {if $book.cover == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/book-list.tpl b/www/templates/omicron/views/admin/book-list.tpl deleted file mode 100644 index a83c0d369..000000000 --- a/www/templates/omicron/views/admin/book-list.tpl +++ /dev/null @@ -1,29 +0,0 @@ -

{$page->title}

- -{if $booklist} -{$pager} - - - - - - - - - - - {foreach from=$booklist item=book} - - - - - - - {/foreach} - -
idTitleAuthorCreated
{$book.id}{$book.title}{$book.author}{$book.createddate|date_format}
-
- {$pager} -{else} -

No books available.

-{/if} diff --git a/www/templates/omicron/views/admin/category-edit.tpl b/www/templates/omicron/views/admin/category-edit.tpl deleted file mode 100644 index 34dc4407d..000000000 --- a/www/templates/omicron/views/admin/category-edit.tpl +++ /dev/null @@ -1,68 +0,0 @@ - -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Title: - - {$category.title} -
Parent: - {$category.parentid} -
Description: - -
Minimum Size (Bytes): - -
Maximum Size (Bytes): - -
: - {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$category.status separator='
'} -
: - {html_radios id="disablepreview" name='disablepreview' values=$status_ids output=$status_names selected=$category.disablepreview separator='
'} -
- -
- -
diff --git a/www/templates/omicron/views/admin/category-list.tpl b/www/templates/omicron/views/admin/category-list.tpl deleted file mode 100644 index 613e3debf..000000000 --- a/www/templates/omicron/views/admin/category-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ - -

{$page->title}

- -

- Make a category inactive to remove it from the menu. This does not prevent binaries being matched into an appropriate category. Disable preview prevents ffmpeg being used for releases in the category. -

- - - - - - - - - - - - - - {foreach from=$categorylist item=category} - - - - - - - - - - {/foreach} - - -
idtitleparentmin sizemax sizeactivedisable preview
{$category.id}{$category.title} - {if $category.parentid != null} - {$category.parentName} - {else} - n/a - {/if} - - {if $category.minsizetoformrelease != 0 }{$category.minsizetoformrelease|fsize_format:"MB"}{/if} - - {if $category.maxsizetoformrelease != 0 }{$category.maxsizetoformrelease|fsize_format:"MB"}{/if} - {if $category.status == "1"}Yes{else}No{/if}{if $category.disablepreview == "1"}Yes{else}No{/if}
diff --git a/www/templates/omicron/views/admin/category_regexes-edit.tpl b/www/templates/omicron/views/admin/category_regexes-edit.tpl deleted file mode 100644 index 246859a92..000000000 --- a/www/templates/omicron/views/admin/category_regexes-edit.tpl +++ /dev/null @@ -1,73 +0,0 @@ -

{$page->title}

-{if $error != ''} -
{$error}
-{/if} -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- Regex to match against a group or multiple groups.
- Delimiters are already added, and PCRE_CASELESS is added after for case insensitivity. - An example of matching a single group: alt\.binaries\.example
- An example of matching multiple groups: alt\.binaries.* -
-
- -
- Regex to use when categorizing releases.
- The regex delimiters are not added, you MUST add them. See this page.
- To make the regex case insensitive, add i after the last delimiter.
-
-
- -
- Description for this regex.
- You can include an example usenet subject this regex would match on. -
-
- -
- The order to run this regex in.
- Must be a number, 0 or higher.
- If multiple regex have the same ordinal, MySQL will randomly sort them. -
-
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regex are used during the collection matching process.
-
- {html_options id="category_id" name='category_id' values=$category_ids output=$category_names selected=$regex.category_id} -
Select a category which releases matched to this regex will go into.
-
- -
-
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/category_regexes-list.tpl b/www/templates/omicron/views/admin/category_regexes-list.tpl deleted file mode 100644 index f56d02405..000000000 --- a/www/templates/omicron/views/admin/category_regexes-list.tpl +++ /dev/null @@ -1,47 +0,0 @@ -

{$page->title}

-

This page lists regex used for categorizing releases.
- You can recategorize all releases by running misc/update/update_releases.php 6 true -

-
- -
- - -    - -
-{if $regex} - -
{$pager}
- - - - - - - - - - - - - {foreach from=$regex item=row} - - - - - - - - {if $row.status==1} - - {else} - - {/if} - - - - {/foreach} -
idgroupeditdescriptiondeleteordinalstatusregexcategory id
{$row.id}{$row.group_regex}Edit{$row.description|truncate:50:"...":true}Delete{$row.ordinal}ActiveDisabled{$row.regex|escape:html|truncate:50:"...":true}{$row.category_id}
-
{$pager}
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/collection_regexes-edit.tpl b/www/templates/omicron/views/admin/collection_regexes-edit.tpl deleted file mode 100644 index 41e885d25..000000000 --- a/www/templates/omicron/views/admin/collection_regexes-edit.tpl +++ /dev/null @@ -1,73 +0,0 @@ -

{$page->title}

-{if $error != ''} -
{$error}
-{/if} -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- Regex to match against a group or multiple groups.
- Delimiters are already added, and PCRE_CASELESS is added after for case insensitivity. - An example of matching a single group: alt\.binaries\.example
- An example of matching multiple groups: alt\.binaries.* -
-
- -
- The regex to use when matching (grouping) collections.
- The regex delimiters are not added, you MUST add them. See this page.
- To make the regex case insensitive, add i after the last delimiter.
- You MUST include at least one regex capture group.
- You MUST name your regex capture groups (the ones you want to be included).
- A string will be created from your matched capture groups.
- The string will form part of a "collection hash".
- The collection hash is used to group many parts together, to form the finalized release.
- The usenet group and name of the poster are added automatically when hashing.
- Capture groups are sorted alphabetically (by capture group name) when concatenating the string.
-
-
- -
- Description for this regex.
- You can include an example usenet subject this regex would match on. -
-
- -
- The order to run this regex in.
- Must be a number, 0 or higher.
- If multiple regex have the same ordinal, MySQL will randomly sort them. -
-
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regex are used during the collection matching process.
-
- -
-
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/collection_regexes-list.tpl b/www/templates/omicron/views/admin/collection_regexes-list.tpl deleted file mode 100644 index 1d4c56f9a..000000000 --- a/www/templates/omicron/views/admin/collection_regexes-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ -

{$page->title}

-

This page lists regex used for grouping usenet collections.

-
- -
- - -    - -
-{if $regex} - -
{$pager}
- - - - - - - - - - - - {foreach from=$regex item=row} - - - - - - - - {if $row.status==1} - - {else} - - {/if} - - - {/foreach} -
idgroupeditdescriptiondeleteordinalstatusregex
{$row.id}{$row.group_regex}Edit{$row.description|truncate:50:"...":true}Delete{$row.ordinal}ActiveDisabled{$row.regex|escape:html|truncate:50:"...":true}
-
{$pager}
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/collection_regexes-test.tpl b/www/templates/omicron/views/admin/collection_regexes-test.tpl deleted file mode 100644 index 0c5738543..000000000 --- a/www/templates/omicron/views/admin/collection_regexes-test.tpl +++ /dev/null @@ -1,44 +0,0 @@ -

{$page->title}

-

This page is used for testing regex for grouping usenet collections.
Enter the group name to test and a regex. Limit is how many collections to show max on the page, 0 for no limit(slow).

- -{if $tpg} -
- -
- -
- -
- -
- {if $data} - - {foreach from=$data key=hash item=collection} - - - - -
{$hash}
Current Files: {count($collection)}
- - - - - - - - - {foreach from=$collection item=row} - - - - - - - - {/foreach} -
namecurrent partstotal partsposterold hash
{$row.file_name}{$row.file_current_parts}{$row.file_total_parts}{$row.collection_poster}{$row.old_collection_hash}
- {/foreach} - {/if} -{else} -

The Table Per Group setting is required to be on to use this page, for performance reasons.

-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/comments-list.tpl b/www/templates/omicron/views/admin/comments-list.tpl deleted file mode 100644 index dd11d9f1d..000000000 --- a/www/templates/omicron/views/admin/comments-list.tpl +++ /dev/null @@ -1,38 +0,0 @@ -

{$page->title}

- -{if $commentslist} -{$pager} - - - - - - - - - - - - - {foreach from=$commentslist item=comment} - - - - - - - - {/foreach} - - -
userdatecommenthostoptions
- {if $comment.sourceid == 0}{$comment.username}{else}{$comment.username}
(syndicated){/if} -
{$comment.createddate|date_format} ({$comment.createddate|timeago} - ago) - {$comment.text|escape:"htmlall"|nl2br}{$comment.host} - {if $comment.guid != ""}view | {/if} - delete -
-{else} -

No comments available

-{/if} diff --git a/www/templates/omicron/views/admin/console-edit.tpl b/www/templates/omicron/views/admin/console-edit.tpl deleted file mode 100644 index 44a1be52c..000000000 --- a/www/templates/omicron/views/admin/console-edit.tpl +++ /dev/null @@ -1,96 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - - {if $console.cover == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/console-list.tpl b/www/templates/omicron/views/admin/console-list.tpl deleted file mode 100644 index 255f79139..000000000 --- a/www/templates/omicron/views/admin/console-list.tpl +++ /dev/null @@ -1,30 +0,0 @@ -

{$page->title}

- -{if $consolelist} -{$pager} - - - - - - - - - - - {foreach from=$consolelist item=console} - - - - - - - {/foreach} - -
idTitlePlatformCreated
{$console.id}{$console.title}{$console.platform}{$console.createddate|date_format}
- -
-{$pager} -{else} -

No games available.

-{/if} diff --git a/www/templates/omicron/views/admin/content-add.tpl b/www/templates/omicron/views/admin/content-add.tpl deleted file mode 100644 index d3e1e7410..000000000 --- a/www/templates/omicron/views/admin/content-add.tpl +++ /dev/null @@ -1,74 +0,0 @@ -

{$page->title}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- -
- -
- -
- -
- {html_options id="contenttype" name='contenttype' options=$contenttypelist selected=$content->contenttype} -
- {html_options id="role" name='role' options=$rolelist selected=$content->role} -
Only appropriate for articles and useful links
-
- {html_radios id="showinmenu" name='showinmenu' values=$yesno_ids output=$yesno_names selected=$content->showinmenu separator='
'} -
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$content->status separator='
'} -
- -
If you set the ordinal = 1, then a all ordinals greater than 0 will be renumbered. This allows new content to be at the top without having to renumber all previous content.
If you set ordinal = 0, it will be at the top, sorted by ID(order added)
-
- -
-
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/content-list.tpl b/www/templates/omicron/views/admin/content-list.tpl deleted file mode 100644 index f55ac1d33..000000000 --- a/www/templates/omicron/views/admin/content-list.tpl +++ /dev/null @@ -1,57 +0,0 @@ -

{$page->title}

- - - - - - - - - - - - - - {foreach from=$contentlist item=content} - - - - - - - - - - - - - {/foreach} -
ordinalidtitleurltypestatusrolein menubodyoptions
{$content->ordinal}{$content->id}{$content->title}{$content->url}c{$content->id} - {if $content->contenttype == "1"} - Useful Link - {elseif $content->contenttype == "2"} - Article - {elseif $content->contenttype == "3"} - Homepage - {/if} - - {if $content->status == "1"} - Enabled - {else} - Disabled - {/if} - - {if $content->role == "0"} - Everyone - {elseif $content->role == "1"} - Users - {elseif $content->role == "2"} - Admins - {/if} - - {if $content->showinmenu == "1"} - Yes - {else} - No - {/if} - {$content->body|truncate:100|escape:'htmlall'}{if $content->contenttype != "3"}delete{/if}
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/db-optimise.tpl b/www/templates/omicron/views/admin/db-optimise.tpl deleted file mode 100644 index 61c81e2e6..000000000 --- a/www/templates/omicron/views/admin/db-optimise.tpl +++ /dev/null @@ -1,16 +0,0 @@ - -

{$page->title}

- - - - - - - - {foreach from=$tablelist item=table} - - - - {/foreach} - -
message
{$table} optimised/repaired
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/game-edit.tpl b/www/templates/omicron/views/admin/game-edit.tpl deleted file mode 100644 index b69bbb798..000000000 --- a/www/templates/omicron/views/admin/game-edit.tpl +++ /dev/null @@ -1,75 +0,0 @@ -

{$page->title}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- (Game ID of the url posted below, if unknown put 0) -
- -
- -
- -
- -
- -
- -
- - {if $game.cover == 1} - - {/if} -
- -
-
diff --git a/www/templates/omicron/views/admin/game-list.tpl b/www/templates/omicron/views/admin/game-list.tpl deleted file mode 100644 index a337f7803..000000000 --- a/www/templates/omicron/views/admin/game-list.tpl +++ /dev/null @@ -1,22 +0,0 @@ -

{$page->title}

-{if $gamelist} - {$pager} - - - - - - - - {foreach from=$gamelist item=game} - - - - - - - {/foreach} -
IDTitleGenreCreated
{$game.id}{$game.title}{$game.genretitle}{$game.createddate|date_format}
-{else} -

No games available.

-{/if} diff --git a/www/templates/omicron/views/admin/group-bulk.tpl b/www/templates/omicron/views/admin/group-bulk.tpl deleted file mode 100644 index 5ca655361..000000000 --- a/www/templates/omicron/views/admin/group-bulk.tpl +++ /dev/null @@ -1,60 +0,0 @@ - -

{$page->title}

- -{if $groupmsglist} - - - - - - - - {foreach from=$groupmsglist item=group} - - - - - {/foreach} - -
groupmsg
{$group.group}{$group.msg}
- -

View all groups.

- -{else} -

Regex of groups to add to the site.

- -
- - - - - - - - - - - - - - - - - - - -
Group List: - -
A regular expression to match against group names e.g. alt.binaries.cd.image.linux|alt.binaries.warez.linux
-
: - {html_radios id="active" name='active' values=$yesno_ids output=$yesno_names selected=1 separator='
'} -
Inactive groups will not have headers downloaded for them.
-
- {html_radios id="backfill" name='backfill' values=$yesno_ids output=$yesno_names selected=0 separator='
'} -
Inactive groups will not have backfill headers downloaded for them.
-
- -
- -
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/group-edit.tpl b/www/templates/omicron/views/admin/group-edit.tpl deleted file mode 100644 index 2a001db94..000000000 --- a/www/templates/omicron/views/admin/group-edit.tpl +++ /dev/null @@ -1,74 +0,0 @@ -

{$page->title}

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name: - - -
Changing the name to an invalid group will break things.
-
- -
- -
Number of days to attempt to backfill this group. Adjust as necessary.
-
- -
The minimum number of files to make a release. i.e. if set to two, then releases which only contain one file will not be created. If left blank, will use the site wide setting.
-
- -
The minimum total size in bytes to make a release. If left blank, will use the site wide setting.
-
- -
The oldest record number for the group.
-
- -
The newest record number for the group.
-
- {html_radios id="active" name='active' values=$yesno_ids output=$yesno_names selected=$group.active separator='
'} -
Inactive groups will not have headers downloaded for them.
-
- {html_radios id="backfill" name='backfill' values=$yesno_ids output=$yesno_names selected=$group.backfill separator='
'} -
If set to false, backfill.php will ignore this group. This works even if the above setting is no.
-
- -
-
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/group-list.tpl b/www/templates/omicron/views/admin/group-list.tpl deleted file mode 100644 index fe9ea07a2..000000000 --- a/www/templates/omicron/views/admin/group-list.tpl +++ /dev/null @@ -1,84 +0,0 @@ -
-

{$page->title}

-

- Below is a list of all usenet groups available to be indexed. Click 'Activate' to start indexing a group. Backfill works independently of active. -

- {if $grouplist} -
-
- - -    - -
-
- {$pager} -
-
- Reset all | - Purge all
- Active Groups | - Inactive Groups | - All Groups -
-
-
msg
- - - - - - - - - - - - - - - {foreach from=$grouplist item=group} - - - - - - - - - - - - - - {/foreach} -
groupFirst PostLast Postlast updatedactivebackfillreleasesMin FilesMin SizeBackfill Daysoptions
- {$group.name|replace:"alt.binaries":"a.b"} -
{$group.description}
-
{$group.first_record_postdate}
{$group.first_record_postdate|timeago}
{$group.last_record_postdate}
{$group.last_record_postdate|timeago}
{$group.last_updated|timeago} ago{if $group.active=="1"}Deactivate{else}Activate{/if}{if $group.backfill=="1"}Deactivate{else}Activate{/if}{$group.num_releases}{if $group.minfilestoformrelease==""}n/a{else}{$group.minfilestoformrelease}{/if}{if $group.minsizetoformrelease==""}n/a{else}{$group.minsizetoformrelease|fsize_format:"MB"}{/if}{$group.backfill_target} - Reset | - Delete | - Purge -
-
-
- {$pager} -
-
-
- - -    - -
- Reset all | - Purge all
- Active Groups | - Inactive Groups | - All Groups -
-
- {else} -

No groups available (eg. none have been added).

- {/if} -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/index.tpl b/www/templates/omicron/views/admin/index.tpl deleted file mode 100644 index 64dd5aff8..000000000 --- a/www/templates/omicron/views/admin/index.tpl +++ /dev/null @@ -1,53 +0,0 @@ - -

{$page->title}

- -
-

- Welcome to newznab. In this area you will be able to configure many aspects of your site.
- If this is your first time here, you need to start the scripts that will fill newznab. -

- -
    -
  1. Configure your site options. The defaults will work fine.
  2. -
  3. There is a default list of usenet groups provided. To get started, you will need to activate some groups. Do not activate every group if its your first time setting this up. Try one or two first. - You can also add your own groups manually.
  4. -
  5. Next you will want to get the latest headers. This should be done from the command line, using the linux or windows shell scripts found in /misc/update_scripts/nix_scripts (or win_scripts for windows users), as it can take some time. If this is your first time dont bother with the init scripts just open a command prompt... -
    cd /var/www/newznab/misc/update_scripts
    php update_binaries.php
    -
  6. -
  7. After obtaining headers, the next step is to create releases. This is best done from the command line using the linux or windows shell scripts found in /misc/update_scripts/nix_scripts (or win_scripts for windows users). If this is your first time dont bother with the init scripts just open a command prompt... -
    cd /var/www/newznab/misc/update_scripts
    php update_releases.php
    -
  8. -
  9. If you intend to keep using newznab, it is best to sign up for your own api keys from tmdb, rotten tomatoes and amazon.
  10. -
  11. If you like newznab and intend to continue using it, please consider sending a donation to the team who write and maintain it.
  12. -
- - hide this welcome message -
- -
- -

Status Alerts

- - {if $statusmsgs|@count > 0} - - - - - - - - {foreach from=$statusmsgs item=result name=result} - - - - - - {/foreach} -
#Item
{$smarty.foreach.result.iteration}{$result.msg}{if $result.url != ""}{/if}
- {else} -

There are currently no status alerts.

- {/if} - -
- show welcome message -
diff --git a/www/templates/omicron/views/admin/menu-edit.tpl b/www/templates/omicron/views/admin/menu-edit.tpl deleted file mode 100644 index 8c1a4faa4..000000000 --- a/www/templates/omicron/views/admin/menu-edit.tpl +++ /dev/null @@ -1,70 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - -
: - -
Use full http:// path for external URLs, otherwise use no prefix.
-
: - -
: - -
Smarty expression returning -1 if the menu item should be disabled.
-
: - {html_radios id="role" name='role' values=$role_ids output=$role_names selected=$menu.role separator='
'} -
: - -
: - {html_radios id="newwindow" name='newwindow' values=$yesno_ids output=$yesno_names selected=$menu.newwindow separator='
'} -
Whether the menu item should open in a new window.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/menu-list.tpl b/www/templates/omicron/views/admin/menu-list.tpl deleted file mode 100644 index 004bfc932..000000000 --- a/www/templates/omicron/views/admin/menu-list.tpl +++ /dev/null @@ -1,32 +0,0 @@ -

{$page->title}

- -{if $menulist} - - - - - - - - - - - - - - {foreach from=$menulist item=menu} - - - - - - - - - - {/foreach} - -
namehreftooltiproleordinalnew windowoptions
{$menu.title|escape:"htmlall"}{$menu.href}{$menu.tooltip}{if $menu.role == 0}Guests{elseif $menu.role == 1}Users{elseif $menu.role == 2}Admin{else}Other{/if}{$menu.ordinal}{if $menu.newwindow == 1}Yes{else}No{/if}delete
-{else} -

No menus available.

-{/if} diff --git a/www/templates/omicron/views/admin/movie-add.tpl b/www/templates/omicron/views/admin/movie-add.tpl deleted file mode 100644 index f7e0b9537..000000000 --- a/www/templates/omicron/views/admin/movie-add.tpl +++ /dev/null @@ -1,30 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - -
Enter the full 7 digit IMDB id into the box below and click Add.
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/movie-edit.tpl b/www/templates/omicron/views/admin/movie-edit.tpl deleted file mode 100644 index b701046de..000000000 --- a/www/templates/omicron/views/admin/movie-edit.tpl +++ /dev/null @@ -1,112 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:{$movie.imdbid}
:{$movie.tmdbid}
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - - {if $movie.cover == 1} - - {/if} -
: - - {if $movie.backdrop == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/movie-list.tpl b/www/templates/omicron/views/admin/movie-list.tpl deleted file mode 100644 index ffc0f8b7b..000000000 --- a/www/templates/omicron/views/admin/movie-list.tpl +++ /dev/null @@ -1,51 +0,0 @@ -

{$page->title}

- -{if $movielist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - - - - - {foreach from=$movielist item=movie} - - - - - - - - - - {/foreach} - -
IMDB idTMDb idTitleCoverBackdropCreatedoptions
{$movie.imdbid}{$movie.tmdbid}{$movie.title} ({$movie.year}){if $movie.cover == "1"}Yes{else}No{/if}{if $movie.backdrop == "1"}Yes{else}No{/if}{$movie.createddate|date_format} - update | - delete -
-
- {$pager} -{else} -

No Movies available.

-{/if} diff --git a/www/templates/omicron/views/admin/music-edit.tpl b/www/templates/omicron/views/admin/music-edit.tpl deleted file mode 100644 index bec32365a..000000000 --- a/www/templates/omicron/views/admin/music-edit.tpl +++ /dev/null @@ -1,104 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
Tracks separated by | (pipe) delimeter
-
: - - {if $music.cover == 1} - - {/if} -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/music-list.tpl b/www/templates/omicron/views/admin/music-list.tpl deleted file mode 100644 index 1d80c484a..000000000 --- a/www/templates/omicron/views/admin/music-list.tpl +++ /dev/null @@ -1,30 +0,0 @@ -

{$page->title}

- -{if $musiclist} -{$pager} - - - - - - - - - - - {foreach from=$musiclist item=music} - - - - - - - {/foreach} - -
idTitleArtistCreated
{$music.id}{$music.title} ({$music.year}){$music.artist}{$music.createddate|date_format}
- -
-{$pager} -{else} -

No Music available.

-{/if} diff --git a/www/templates/omicron/views/admin/nzb-export.tpl b/www/templates/omicron/views/admin/nzb-export.tpl deleted file mode 100644 index 97e2a90aa..000000000 --- a/www/templates/omicron/views/admin/nzb-export.tpl +++ /dev/null @@ -1,66 +0,0 @@ - -

{$page->title}

- -

-Export nzbs from the system into a folder. Specify the full file path to a folder. -
-If you are exporting a large number of nzb files, run this script from the command line and pass in the folder path as the first argument. e.g. php scriptname outputpath from(optional) to(optional) groupid(optional use -1) categoryid(optional)
- - php admin/nzb-export.php /path/to/export/into 01/01/2008 01/01/2010 -1 1050 - - -

- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
Windows file paths should be specified with forward slashes e.g. c:/temp/
-
: - - - -
Posted to usenet inbetween a date range specified in the format dd/mm/yyyy
-
: - {html_options id="group" name='group' options=$grouplist selected=$group} -
Posted to this newsgroup
-
: - {html_options id="categoryid" name='categoryid' options=$catlist selected=$cat} -
Posted to this category
-
- -
- -
- -
-{$output} -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/nzb-import.tpl b/www/templates/omicron/views/admin/nzb-import.tpl deleted file mode 100644 index e15c29352..000000000 --- a/www/templates/omicron/views/admin/nzb-import.tpl +++ /dev/null @@ -1,74 +0,0 @@ -

{$page->title}

-

- Import NZB's from a folder or via the browser into the system. Specify the full file path to a folder containing NZB's. -
- Importing will add the release to your database, compress the NZB and store it in the nzbfiles/ folder. -

- -
- Import From Directory -
- - - - - - - - - - - - - - - - - -
- -
Windows file paths should be specified with forward slashes e.g. c:/temp/
-
- -
Use the NZB's filename as the release name. Else the name inside the NZB will be used.
-
- -
Delete the NZB when we have successfully imported it?
-
- -
-
-
-
- Import From Browser -
- - - - - - - - - -
- -
Select one or more .nzb files.
-
- These NZBs will not be deleted once imported.
- -
-
-{if $output != ""} -
- -

Import Results

- {$output} -
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/preview-list.tpl b/www/templates/omicron/views/admin/preview-list.tpl deleted file mode 100644 index bf1233800..000000000 --- a/www/templates/omicron/views/admin/preview-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ -

{$page->title}

- - - -

- -{if $releaselist} -{$pager} - - - - - - - - - {foreach from=$releaselist item=release} - - - - - {/foreach} - -
previewoptions
- -
- {$release.searchname|escape:"htmlall"|wordwrap:75:"\n":true} -
-
- {$pager} -{else} -

No results.

-{/if} diff --git a/www/templates/omicron/views/admin/rage-edit.tpl b/www/templates/omicron/views/admin/rage-edit.tpl deleted file mode 100644 index bfc1a009e..000000000 --- a/www/templates/omicron/views/admin/rage-edit.tpl +++ /dev/null @@ -1,87 +0,0 @@ - -

{$page->title}

- -Update from TV Rage - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - -
The numeric TVRage Id.
-
: - -
The title of the TV show.
-
: - -
: - -
The genres for the TV show. Separated by pipes ( | )
-
: - -
The country for the TV show.
-
: - {if $rage.imgdata != ""} - - {/if} - -
Shown in the TV series view page.
-
- -   - -
- - - - \ No newline at end of file diff --git a/www/templates/omicron/views/admin/rage-list.tpl b/www/templates/omicron/views/admin/rage-list.tpl deleted file mode 100644 index 1fd3031bc..000000000 --- a/www/templates/omicron/views/admin/rage-list.tpl +++ /dev/null @@ -1,44 +0,0 @@ -

{$page->title}

- -{if $tvragelist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - - {foreach from=$tvragelist item=tvrage} - - - - - - - {/foreach} - -
rageidtitledateoptions
{$tvrage.rageid}{$tvrage.releasetitle|escape:"htmlall"}{$tvrage.createddate|date_format}delete | remove
- -
- {$pager} - -{else} -

No TVRage episodes available.

-{/if} diff --git a/www/templates/omicron/views/admin/rage-remove.tpl b/www/templates/omicron/views/admin/rage-remove.tpl deleted file mode 100644 index 9f31ea123..000000000 --- a/www/templates/omicron/views/admin/rage-remove.tpl +++ /dev/null @@ -1,4 +0,0 @@ - -

{$page->title}

- -Removed rageid from {$numtv} releases. \ No newline at end of file diff --git a/www/templates/omicron/views/admin/regex-edit.tpl b/www/templates/omicron/views/admin/regex-edit.tpl deleted file mode 100644 index b7f16e775..000000000 --- a/www/templates/omicron/views/admin/regex-edit.tpl +++ /dev/null @@ -1,78 +0,0 @@ - -

{$page->title}

- -{if $regex.id > 0 && $regex.id < 100000 && $site->reqidurl != ""} -
Warning: Editing system regex, these changes will be overwritten next update releases.
-{/if} - -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Group: - - -
The full name of a valid newsgroup. This value can be a regular expression. Use .* to apply regex to all newsgroups.
-
Regex: - -
The regex to be applied.
- Regex requires at least 1 named capturing group in the form of (?P<name>) to work.
- If the subjects contains the number of parts (ie [1/10]) then it is wise to also use (?P<parts>) to match the parts. -
-
Description: - -
A description for this regex
-
: - {html_options id="category" name=category options=$catlist selected=$regex.categoryid} -
If this regex indicates the release category then supply it here. If left blank the standard method of determining the category will apply.
-
Ordinal: - -
The zero-based order in which the regex should be applied.
-
: - {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regexes are applied during the release process.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/regex-list.tpl b/www/templates/omicron/views/admin/regex-list.tpl deleted file mode 100644 index 63a2f3e6c..000000000 --- a/www/templates/omicron/views/admin/regex-list.tpl +++ /dev/null @@ -1,51 +0,0 @@ - -

{$page->title}

- -

- Regexs are applied to group message subjects into releases. The capture groups are named to hold the release name and number of parts. - They are applied to messages from that group in order, then any general regexs are applied in order afterwards. -

-

- The group name is a regular expression, so if you want to apply a regex to a number of groups then append an asterix a.b.blah.* to the end, -
or use a.b.group1|a.b.group2 -

- -
msg
- -{html_options id="regexGroupSelect" name=category options=$reggrouplist selected=$selectedgroup} - - - - - - - - - - - - - - - - - - {foreach from=$regexlist item=regex} - - - - - - - - - - - - - - {/foreach} - - -
idgroupregexpostercategorystatusreleaseslast matchordinalOrderOptions
{$regex.id}{if $regex.groupname==""}all{else}{$regex.groupname|replace:"alt.binaries":"a.b"}{/if}{$regex.regex|escape:html}
- {$regex.description}
{$regex.poster}{if $regex.categoryid!=""}{$regex.categoryTitle}{/if}{if $regex.status==1}active{else}disabled{/if}{$regex.num_releases}{$regex.max_releasedate}{$regex.ordinal}up | downdelete{if $regex.groupname != ""} | test{/if}
diff --git a/www/templates/omicron/views/admin/regex-submit.tpl b/www/templates/omicron/views/admin/regex-submit.tpl deleted file mode 100644 index 76e6b8c53..000000000 --- a/www/templates/omicron/views/admin/regex-submit.tpl +++ /dev/null @@ -1,38 +0,0 @@ - -

{$page->title}

- -

Use this feature to submit any regex you have added locally to newznab. We'll have a look at integrating them into the master list. No data other than regex's with an id greater than 10000 will be sent.

- -{if $upload_status eq 'OK'} -
- Your regexes were uploaded. Thank you for contributing. -
-
-{/if} - -{if $upload_status eq 'BAD'} -
- Failed to upload your regexes :-( - please try again. -
-
-{/if} - -{if $regex_error} -

No avalible user regex's. Please add some and visit this page again.

-{else} -
- - -
- -
- -

- Regexes to be submitted: -
-

-  {$regex_contents|print_r}
-  
-

-{/if} - diff --git a/www/templates/omicron/views/admin/regex-test.tpl b/www/templates/omicron/views/admin/regex-test.tpl deleted file mode 100644 index 63e58ac77..000000000 --- a/www/templates/omicron/views/admin/regex-test.tpl +++ /dev/null @@ -1,146 +0,0 @@ - -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - or - -
: - -
: - -
- -
- -
-      Add Regex -
- -
- -{if $matches} -{$pager} - - {foreach from=$matches item=match} - - {if $match@iteration mod 10 == 1} - - - - - - - - - - - {/if} - - - - - {/foreach} - -
nameposterBin CountBin SizeRegex idReq idGroupAge
- - - - - - - - - - - - - - -
{$match.name|escape:html}
{$match.bininfo[0].name|escape:html}
{$match.catname|escape:"htmlall"}{$match.bininfo[0].fromname|escape:"htmlall"}{$match.bincount}{if $match.reltotalparts != ''}/{$match.reltotalparts}{/if}{$match.totalsize|fsize_format:"MB"}{$match.bininfo[0].regexid}{$match.reqid}{$match.bininfo[0].groupname|replace:"alt.binaries":"a.b"}{$match.bininfo[0].date|timeago}
-
-
{$pager} -{/if} - -

 

- -

Fetch Binaries for Testing

- -
- - - - - - - - - - - - - - - - - - - - - - - -
: - - or - -
- -
- -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/release-edit.tpl b/www/templates/omicron/views/admin/release-edit.tpl deleted file mode 100644 index 6f4f32260..000000000 --- a/www/templates/omicron/views/admin/release-edit.tpl +++ /dev/null @@ -1,162 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - -{if $updatename != ""} - - - - -{/if} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - - -
: - -
- -
: - -
: - {html_options id="category" name=category options=$catlist selected=$release.categoryid} -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
Group: - {$release.group_name} -
Regex id: - {$release.regexid} -
: - -
: - -
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/release-files.tpl b/www/templates/omicron/views/admin/release-files.tpl deleted file mode 100644 index 28a332b42..000000000 --- a/www/templates/omicron/views/admin/release-files.tpl +++ /dev/null @@ -1,24 +0,0 @@ - -

{$page->title}

- -

For {$rel.searchname|escape:'htmlall'}

- - - - - - - - - - - {foreach from=$binaries item=binary} - - - - - - - {/foreach} - -
#filenamesizedate
{$binary.relpart}{$binary.filename}{$binary.size|fsize_format:"MB"}{$binary.date|date_format}
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/release-list.tpl b/www/templates/omicron/views/admin/release-list.tpl deleted file mode 100644 index 326cf67c5..000000000 --- a/www/templates/omicron/views/admin/release-list.tpl +++ /dev/null @@ -1,37 +0,0 @@ -

{$page->title}

- -{if $releaselist} -{$pager} - - - - - - - - - - - - - - - {foreach from=$releaselist item=release} - - - - - - - - - - - {/foreach} - -
namecategorysizefilespostdateadddategrabsoptions
{$release.searchname|escape:"htmlall"|wordwrap:75:"\n":true}{$release.category_name}{$release.size|fsize_format:"MB"}{$release.totalpart}{$release.postdate|date_format}{$release.adddate|date_format}{$release.grabs}delete
-
- {$pager} -{else} -

No releases available.

-{/if} diff --git a/www/templates/omicron/views/admin/release_naming_regexes-edit.tpl b/www/templates/omicron/views/admin/release_naming_regexes-edit.tpl deleted file mode 100644 index b07883983..000000000 --- a/www/templates/omicron/views/admin/release_naming_regexes-edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ -

{$page->title}

-{if $error != ''} -
{$error}
-{/if} -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- Regex to match against a group or multiple groups.
- Delimiters are already added, and PCRE_CASELESS is added after for case insensitivity.
> - An example of matching a single group: alt\.binaries\.example
- An example of matching multiple groups: alt\.binaries.* -
-
- -
- The regex to use when trying to name a release using the usenet subject.
- The regex delimiters are not added, you MUST add them. See this page.
- To make the regex case insensitive, add i after the last delimiter.
- You MUST include at least one regex capture group.
- You MUST name your regex capture groups (the ones you want included).
- The named capture groups will be concatenated into a string.
- Capture groups are sorted alphabetically (by capture group name) when concatenating the string.
- Capture groups named 'reqid' and 'parts' are ignored. -
-
- -
- Description for this regex.
- You can include an example usenet subject this regex would match on. -
-
- -
- The order to run this regex in.
- Must be a number, 0 or higher.
- If multiple regex have the same ordinal, MySQL will randomly sort them. -
-
- {html_radios id="status" name='status' values=$status_ids output=$status_names selected=$regex.status separator='
'} -
Only active regex are used during the collection matching process.
-
- -
-
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/release_naming_regexes-list.tpl b/www/templates/omicron/views/admin/release_naming_regexes-list.tpl deleted file mode 100644 index bb68e3da1..000000000 --- a/www/templates/omicron/views/admin/release_naming_regexes-list.tpl +++ /dev/null @@ -1,43 +0,0 @@ -

{$page->title}

-

This page lists regex used for getting names for releases from usenet subjects.

-
- -
- - -    - -
-{if $regex} - -
{$pager}
- - - - - - - - - - - - {foreach from=$regex item=row} - - - - - - - - {if $row.status==1} - - {else} - - {/if} - - - {/foreach} -
idgroupeditdescriptiondeleteordinalstatusregex
{$row.id}{$row.group_regex}Edit{$row.description|truncate:50:"...":true}Delete{$row.ordinal}ActiveDisabled{$row.regex|escape:html|truncate:50:"...":true}
-
{$pager}
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/release_naming_regexes-test.tpl b/www/templates/omicron/views/admin/release_naming_regexes-test.tpl deleted file mode 100644 index 6587ae2b5..000000000 --- a/www/templates/omicron/views/admin/release_naming_regexes-test.tpl +++ /dev/null @@ -1,35 +0,0 @@ -

{$page->title}

-

This page is used for testing regex for getting release names from usenet subject. -
Maximum releases to display will limit the amount of results displayed on the page. 0 for no limit. -
Query limit will limit the amount of releases to select from MySQL (setting this high can be very slow). 0 for no limit. -

- -
- -
- -
- -
- -
- -
-{if $data} - - - - - - - - {foreach from=$data key=id item=names} - - - - - - - {/foreach} -
Release idUsenet SubjectOld Search NameNew Search Name
{$id}{$names.subject}{$names.old_name}{$names.new_name}
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/role-edit.tpl b/www/templates/omicron/views/admin/role-edit.tpl deleted file mode 100644 index c0ed1e6cb..000000000 --- a/www/templates/omicron/views/admin/role-edit.tpl +++ /dev/null @@ -1,92 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{if $role.id != ''} - - - - - - - - - - -{/if} - - - - - - -
Name: - - {if $role.id != '' && $role.id < 4}{$role.name}{else}
The name of the role
{/if} -
Api Requests: - -
Number of api requests allowed per 24 hour period
-
Download Requests: - -
Number of downloads allowed per 24 hour period
-
Invites: - -
Default number of invites to give users on account creation
-
Can Preview: - {html_radios id="canpreview" name='canpreview' values=$yesno_ids output=$yesno_names selected=$role.canpreview separator='
'} -
Whether the role can preview screenshots
-
Can Pre: - {html_radios id="canpre" name='canpre' values=$yesno_ids output=$yesno_names selected=$role.canpre separator='
'} -
Whether the role can view pre data
-
Hide Ads: - {html_radios id="hidetads" name='hidetads' values=$yesno_ids output=$yesno_names selected=$role.hideads separator='
'} -
Whether ad's are hidden
-
Is Default Role: - {html_radios id="role" name='isdefault' values=$yesno_ids output=$yesno_names selected=$role.isdefault separator='
'} -
Make this the default role for new users
-
Excluded Categories - {html_options style="height:105px;" multiple=multiple name="exccat[]" options=$catlist selected=$roleexccat} -
Use Ctrl and click to exclude multiple categories. This will prevent users with this role from
seeing these categories in the menu or search results.
-
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/role-list.tpl b/www/templates/omicron/views/admin/role-list.tpl deleted file mode 100644 index bff3a392d..000000000 --- a/www/templates/omicron/views/admin/role-list.tpl +++ /dev/null @@ -1,34 +0,0 @@ - -

{$page->title}

- - - - - - - - - - - - - - - - - {foreach from=$userroles item=role} - - - - - - - - - - - - {/foreach} - - -
namerequest limitdownload limitinvitescan previewcan prehide adsdefault rolesoptions
{$role.name}{$role.apirequests}{$role.downloadrequests}{$role.defaultinvites}{if $role.canpreview == 1}Yes{else}No{/if}{if $role.canpre == 1}Yes{else}No{/if}{if $role.hideads == 1}Yes{else}No{/if}{if $role.isdefault=="1"}Yes{else}No{/if}edit {if $role.id>"3"}delete{/if}
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/sharing.tpl b/www/templates/omicron/views/admin/sharing.tpl deleted file mode 100644 index 20b30931d..000000000 --- a/www/templates/omicron/views/admin/sharing.tpl +++ /dev/null @@ -1,197 +0,0 @@ -

{$page->title}

-
- - - Note: If you are running nntpproxy you will not be able to upload comments, turn off the post option if you are using it.
- If you turn on or off the Alternate NNTP provider you will need to click the reset button to reset sharing settings. -
-
-
-
msg
- {if $local} -
-
- Local sharing settings. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
This is your site name, changing this will update other sites running sharing also, it must not contain spaces (use underscores _).
-
- -
This is how many comments to upload per run (the more you increase this, the longer it takes).
-
- -
This is how many comments to download per run.
-
- -
This is how many headers to download and look through for comments per run.
-
-
- - {if $local.enabled == "1"} - - {else} - - {/if} - - Is the sharing/retrieving enabled? This overrides posting/fetching. -
-
-
- - {if $local.posting == "1"} - - {else} - - {/if} - - If you turn this on, this will post your comments to usenet.
- This requires posting rights to usenet! -
-
-
- - {if $local.fetching == "1"} - - {else} - - {/if} - - If you turn this on, this will download comments from usenet. -
-
-
- - {if $local.auto_enable == "1"} - - {else} - - {/if} - - This will auto-enable new sites as we see them. -
-
-
- - {if $local.hide_users == "1"} - - {else} - - {/if} - - This will hide user names from being visible on remote sites. -
-
-
- - {if $local.start_position == "1"} - - {else} - - {/if} - - When pulling the first time, or after resetting, start from the beginning of the group (takes more time).
- With the backfill setting it will take a few runs before you find anything the first time because the group has articles other than comments in it. -
-
-
- - - - This will reset your sharing settings (if you need to change Usenet Provider for example). -
-
-
- -
-
- {else} -

You have not run Sharing yet, until you run it this page will contain no settings.

- {/if} - - {if $sites} -
These are the remote websites we have seen so far:
- {$pager} -
- - -
- - - - - - - - - - - {foreach from=$sites item=site} - - - - - - - - - - {/foreach} -
idNameFirst seenLast seenStatusComments
{$site.id}{$site.site_name}{$site.first_time|timeago}{$site.last_time|timeago} - {if $site.enabled=="1"} - - {else} - - {/if} - {$site.comments} - -
- {$pager} - {else} -

No remote sites found in your database.

- {/if} -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/site-debug.tpl b/www/templates/omicron/views/admin/site-debug.tpl deleted file mode 100644 index a1cd54fa7..000000000 --- a/www/templates/omicron/views/admin/site-debug.tpl +++ /dev/null @@ -1,20 +0,0 @@ -

{$page->title}

- -

Below is a dump of system settings and mysql table status to assist others in debuging problems. -Items like private 3rd party keys have been removed, however *note* full paths to binaries and web files -are included - so exercise caution when pasting online.

- - - -
- diff --git a/www/templates/omicron/views/admin/site-edit.tpl b/www/templates/omicron/views/admin/site-edit.tpl deleted file mode 100644 index 3aa76205a..000000000 --- a/www/templates/omicron/views/admin/site-edit.tpl +++ /dev/null @@ -1,1695 +0,0 @@ -

{$page->title}

- -
- -{if $error != ''} -
{$error}
-{/if} - -
-Main Site Settings, HTML Layout, Tags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
Displayed around the site and contact form as the name for the site.
-
: - -
Displayed in the header on every public page.
-
: - -
Stem meta-tag appended to all page title tags.
-
: - -
Stem meta-description appended to all page meta description tags.
-
: - -
Stem meta-keywords appended to all page meta keyword tags.
-
: - -
Displayed in the footer section of every public page.
-
: - -
The relative path to a the landing page shown when a user logs in, or clicks the home link.
-
: - - -
A just for fun value shown in debug and not on public pages.
-
- -
The absolute path to the place covers will be stored.
-
: - {html_options class="siteeditstyle" id="style" name='style' values=$themelist output=$themelist selected=$fsite->style} -
The theme folder which will be loaded for css and images and overriden templates.
-
: - {html_radios id="userselstyle" name='userselstyle' values=$yesno_ids output=$yesno_names selected=$fsite->userselstyle separator='
'} -
Should users be allowed to change their site theme or not..
-
: - -
Optional URL to prepend to external links
-
: - {html_radios id="apienabled" name='apienabled' values=$yesno_ids output=$yesno_names selected=$fsite->apienabled separator='
'} -
Whether access to the site via the API is enabled.
-
: - -
The number of recent forum posts to show in the 'recent forum posts' widget. Set to 0 to disable.
-
: - -
Shown in the contact us page, and where the contact html form is sent to.
-
: - -
Text displayed in the terms and conditions page.
-
-
- -
-Google Adsense, Analytics and 3rd Party Banners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
e.g. UA-xxxxxx-x
-
: - -
e.g. pub-123123123123123
-
: - -
The id of the google search ad panel displayed at the bottom of the left menu.
-
: - -
The banner slot in the header.
-
: - -
The banner slot in the header.
-
: - -
The banner slot in the release details view.
-
-
- - -
-3rd Party API Keys - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The api key used for access to tmdb
-
: - -
The api key used for access to rotten tomatoes
-
: - -
The amazon public api key. Used for cover lookups.
-
: - -
The amazon private api key. Used for cover lookups.
-
: - -
The amazon associate tag. Used for cover lookups.
-
- -
The Trakt.tv API v2 Client ID (SHA256 hash - 64 characters long string). Used for movie and tv lookups.
-
- - -
The Fanart.tv api key. Used for Fanart.tv lookups. Fanart.tv would appreciate it if - you use this service to help them out by adding high quality images not already available on TMDB. -
-
- - -
The giantbomb key. Used for game lookups.
-
- - -
The Anidb api key. Used for Anime lookups.
-
-
- -
-3rd Party Application Paths - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The path to an unrar binary, used in deep password detection and media info grabbing. -
Use forward slashes in windows c:/path/to/unrar.exe
-
: - -
The path to where unrar puts files. WARNING: This directory will have its contents deleted. -
Use forward slashes in windows c:/temp/path/stuff/will/be/unpacked/to
-
: - -
The path to the mediainfo binary. Used for deep file media analysis. Use empty path to disable mediainfo checks -
Use forward slashes in windows c:/path/to/mediainfo.exe
-
- -
The path to the ffmpeg or avconv binary. Used for making thumbnails and video/audio - previews. -
Use forward slashes in windows c:/path/to/ffmpeg.exe -
-
: - -
The path to the lame binary. Used for audio manipulation. -
Use forward slashes in windows c:/path/to/lame.exe
-
- - -
The path to the 7za/p7zip in Ubuntu 13.10 (7zip command line in windows) binary, used - for grabbing nfos from compressed zip files. -
Use forward slashes in windows c:/path/to/7z.exe -
-
- -
The path to the timeout binary. - This is used to limit the amount of time unrar/7zip/mediainfo/ffmpeg/avconv can run. - You can the time limit in the process additional section. - You can leave this empty to disable this. -
Use forward slashes in windows c:/path/to/timeout.exe -
-
- -
Path to magic number database. Windows' users should set this if they have installed GNUWin file. *nix users can optionally set this to a file of their choice.
-
-
- - -
- Download Queue Integration Settings - - - - - - - - - - - - - - - - -
: - {html_radios id="sabintegrationtype" name='sabintegrationtype' values=$sabintegrationtype_ids output=$sabintegrationtype_names selected=$fsite->sabintegrationtype separator='
'} -
Whether to allow integration with a SAB/NZBGet install and if so what type of integration
-
: - -
The downloads/complete folder for a local sab install, for example: /var/www/sab/downloads/complete
-
: - -
A url to a hosted virtual directory pointing to the sab downloads/complete folder, e.g. http://server/complete
-
- -
- SABnzbd - - - - - - - - - - - - - - - - - - - - - - -
: - -
The url of the SAB installation, for example: http://localhost:8080/sabnzbd/
-
: - -
The Api key of the SAB installation. Can be the full api key or the nzb api key (as of SAB 0.6)
-
: - {html_radios id="sabapikeytype" name='sabapikeytype' values=$sabapikeytype_ids output=$sabapikeytype_names selected=$fsite->sabapikeytype separator='
'} -
Select the type of api key you entered in the above setting
-
: - {html_options id="sabpriority" name='sabpriority' values=$sabpriority_ids output=$sabpriority_names selected=$fsite->sabpriority} -
Set the priority level for NZBs that are added to your queue
-
-
- - -
- NZBGet - - - - - - - - - - - - - - - - - -
: - -
The url of the NZBGet installation, for example: http://localhost:6789/
-
: - -
The NZBGet ControlUsername e.g. nzbget
-
: - -
The NZBGet ControlPassword e.g. tegbzn6789
-
-
- -
- - -
-Usenet Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The directory where nzb files will be stored.
-
- -
Levels deep to store the nzb Files. -
If you change this you must run the misc/testing/DB/nzb-reorg.php script! -
-
: - -
The number of days binary and part data will be retained for use in raw search and release formation.
-
: - -
The number of days releases will be retained for use throughout site. Set to 0 to disable.
-
- -
The number of hours releases categorized as Misc->Other will be retained. Set to 0 to disable.
-
- -
The number of hours releases categorized as Misc->Hashed will be retained. Set to 0 to disable.
-
: - -
Default is 0 (off), which will remove parts in one go. If backfilling or importing and parts table is large, using chunks of 5000+ will speed up removal. Normal indexing is fastest with this setting at 0.
-
: - -
The minimum number of files to make a release. i.e. if set to two, then releases which only contain one file will not be created.
-
: - -
The minimum total size in bytes to make a release. If set to 0, then ignored.
-
- -
The maximum total size in bytes to make a release. If set to 0, then ignored. Only deletes - during release creation. -
-
: - -
The minimum completion percent to make a release. i.e. if set to 97, then releases under 97% completion will not be created. If set to 0, then ignored.
-
- {html_radios id="grabstatus" name='grabstatus' values=$yesno_ids output=$yesno_names selected=$fsite->grabstatus separator='
'} -
Whether to update download counts when someone downloads a release.
-
- -
The time in hours to check for crossposted releases - this will delete 1 of the releases if the 2 are posted by the same person in the same time period.
-
: - {html_radios id="removespam" name='removespam' values=$yesno_ids output=$yesno_names selected=$fsite->removespam separator='
'} -
Find and remove spam after each update. An inexact science which uses a few methods to identify virus/spam posts.
-
: - -
Which categories to permit .exe files. Requires unrar inner file checking to be enabled.
-
: - {html_radios id="updateparsing" name='updateparsing' values=$yesno_ids output=$yesno_names selected=$fsite->updateparsing separator='
'} -
Update Parsing is a mechanism to decode names using various techniques.
-
: - {html_radios id="updatecleanup" name='updatecleanup' values=$yesno_ids output=$yesno_names selected=$fsite->updatecleanup separator='
'} -
Update Cleanup is a general mechanism for deleting and moving unwanted items into misc>other.
-
: - {html_radios id="removespecial" name='removespecial' values=$yesno_ids output=$yesno_names selected=$fsite->removespecial separator='
'} -
Remove Special is a general mechanism for removing erroneous characters from release names.
-
: - {html_radios id="compressedheaders" name='compressedheaders' values=$yesno_ids output=$yesno_names selected=$fsite->compressedheaders separator='
'} -
Some servers allow headers to be sent over in a compressed format. If enabled this will use much less bandwidth, but processing times may increase.
-
: - -
The maximum number of messages to fetch at a time from the server.
-
: - -
The maximum number of messages to process for a group in one run of update_binaries.
-
: - {html_radios id="newgroupscanmethod" name='newgroupscanmethod' values=$yesno_ids output=$newgroupscan_names selected=$fsite->newgroupscanmethod separator='
'} - Days or - Posts
-
Scan back X (posts/days) for each new group? Can backfill to scan further.
-
- - -
The target date for safe backfill. Format: YYYY-MM-DD
-
- {html_radios id="disablebackfillgroup" name='disablebackfillgroup' values=$yesno_ids output=$yesno_names selected=$fsite->disablebackfillgroup separator='
'} -
Whether to disable a group automatically during backfill if the target date has been reached.
-
-
- -
-Lookup Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
The url to use to translate allfilled style reqid usenet posts into real release titles. Leave blank to not perform lookup.
-
- {html_options style="width:180px;" id="lookuptvrage" name='lookuptvrage' values=$lookuptv_ids output=$lookuptv_names selected=$site->lookuptvrage} -
Whether to attempt to lookup TvRage ids on the web.
-
: - {html_radios id="lookupthetvdb" name='lookupthetvdb' values=$yesno_ids output=$yesno_names selected=$fsite->lookupthetvdb separator='
'} -
Whether to attempt to lookup addidional series information from TheTVDB when processing binaries.
-
- {html_options_multiple id="book_reqids" name='book_reqids' values=$book_reqids_ids output=$book_reqids_names selected=$book_reqids_selected} -
Categories of Books to lookup information for (only work if Lookup Books is set to yes).
-
- {html_options style="width:180px;" id="lookupimdb" name='lookupimdb' values=$lookupmovies_ids output=$lookupmovies_names selected=$fsite->lookupimdb} -
Whether to attempt to lookup film information from IMDB or TheMovieDB.
-
: - {html_radios id="lookupanidb" name='lookupanidb' values=$yesno_ids output=$yesno_names selected=$fsite->lookupanidb separator='
'} -
Whether to attempt to lookup anime information from AniDB when processing binaries.
-
- {html_options style="width:180px;" id="lookupmusic" name='lookupmusic' values=$lookupmusic_ids output=$lookupmusic_names selected=$fsite->lookupmusic} -
Whether to attempt to lookup music information from Amazon.
-
- {html_options style="width:180px;" id="lookupgames" name='lookupgames' values=$lookupgames_ids output=$lookupgames_names selected=$fsite->lookupgames} -
Whether to attempt to lookup game information from Amazon.
-
: - {html_radios id="lookupxxx" name='lookupxxx' values=$yesno_ids output=$yesno_names selected=$fsite->lookupxxx separator='
'} -
Whether to attempt to lookup XXX information when processing binaries.
-
- - -
The maximum amount of XXX to process per run. This does not use an NNTP - connection or query Amazon. -
-
- {html_options style="width:180px;" id="lookupbooks" name='lookupbooks' values=$lookupbooks_ids output=$lookupbooks_names selected=$fsite->lookupbooks} -
Whether to attempt to lookup book information from Amazon.
-
: - {html_options id="lookuplanguage" name='lookuplanguage' values=$lookuplanguage_iso output=$lookuplanguage_names selected=$fsite->lookuplanguage} -
Preferred language for scraping external sources.
-
: - {html_radios id="saveaudiopreview" name='saveaudiopreview' values=$yesno_ids output=$yesno_names selected=$fsite->saveaudiopreview separator='
'} -
Whether to save a preview of an audio release (requires deep rar inspection enabled).
It is advisable to specify a path to the lame binary to reduce the size of audio previews.
-
: - -
Delete any audio previews older than this number of days.
-
-
-
- Language/Categorization options - - - - - - - - - -
- {html_radios id="categorizeforeign" name='categorizeforeign' values=$yesno_ids output=$yesno_names selected=$fsite->categorizeforeign separator='
'} -
Whether to send foreign movies/tv to - foreign sections or not. If set to true they will go in foreign categories. -
-
- {html_radios id="catwebdl" name='catwebdl' values=$yesno_ids output=$yesno_names selected=$fsite->catwebdl separator='
'} -
Whether to send WEB-DL to the WEB-DL section or not. If set to true they will go in - WEB-DL category, false will send them in HD TV.
This will also make them inaccessible to - Sickbeard and possibly Couchpotato. -
-
-
- -
-Password Settings - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_radios id="checkpasswordedrar" name='checkpasswordedrar' values=$passwd_ids output=$passwd_names selected=$fsite->checkpasswordedrar separator='
'} -
Whether to attempt to peek into every release, to see if rar files are password protected.
-
- {html_radios id="fetchlastcompressedfiles" name='fetchlastcompressedfiles' values=$yesno_ids output=$yesno_names selected=$fsite->fetchlastcompressedfiles separator='
'} -
Try to download the last rar or zip file? (This is good if most of the files are at the end.) Note: The first rar/zip is still downloaded. -
-
: - {html_radios id="deletepasswordedrelease" name='deletepasswordedrelease' values=$yesno_ids output=$yesno_names selected=$fsite->deletepasswordedrelease separator='
'} -
Whether to delete releases which are passworded or potentially passworded.
-
- {html_radios id="deletepossiblerelease" name='deletepossiblerelease' values=$yesno_ids output=$yesno_names selected=$fsite->deletepossiblerelease separator='
'} -
Whether to delete releases which are potentially passworded. This applies to your post process additional inner file blacklist.
-
: - {html_options id="showpasswordedrelease" name='showpasswordedrelease' values=$passworded_ids output=$passworded_names selected=$fsite->showpasswordedrelease} -
Whether to show passworded or potentially passworded releases in browse, search, api and rss - feeds. Potentially passworded means releases which contain .cab or .ace files which are - typically password protected. (*yes): Unprocessed releases are hidden. (*no): Unprocessed releases are displayed. -
-
-
- -
-nzpre Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
Group to search when looking up nzpre posts.
-
: - -
Subject line. eg. This is an nzpre post!
-
: - -
Full poster field. eg. tester test@test.com
-
: - -
Which header field to parse.
-
: - -
Number of articles to parse when updating.
-
: - -
Key to decode.
-
-
- -
-Spotnab Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_radios id="spotnabpost" name='spotnabpost' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabpost separator='
'} -
If enabled, encrypted comments from this site will be uploaded using the spotnab protocol. These will be shared with others participating Newznab sites. Set up Spotnab sources here or use Auto Discovery.
-
: - {html_radios id="spotnabbroadcast" name='spotnabbroadcast' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabbroadcast separator='
'} -
If enabled, a broadcast packet will be uploaded every month, so that other participating Newznab sites can automatically subscribe to your comments.
-
: - {html_radios id="spotnabdiscover" name='spotnabdiscover' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabdiscover separator='
'} -
If enabled, other participating Newznab sites will be added automatically (as inactive) to your sources list.
-
: - {html_radios id="spotnabprivacy" name='spotnabprivacy' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabprivacy separator='
'} -
If enabled, uploaded comments use a unique (made up) username.
-
: - {html_radios id="spotnabautoenable" name='spotnabautoenable' values=$yesno_ids output=$yesno_names selected=$fsite->spotnabautoenable separator='
'} -
If enabled, newly discovered Spotnab sources will be enabled by default.
-
: - -
The username part used for posting. eg nntp
-
: - -
The email part used for posting. eg spot@nntp.com
-
: - -
The group where posts are uploaded. eg alt.binaries.backup
-
: - -
Public key other sites will use to decrypt comments.
-
- -
Private key used to encrypt comments before uploading.
-
-
- -
- IMDB.com URL - - - - - -
- {html_options style="width:180px;" class="imdburl" id="imdburl" name='imdburl' values=$imdb_urls output=$imdburl_names selected=$fsite->imdburl} -
Akas.imdb.com returns titles in their original title, imdb.com returns titles based on - your IP address (if you are in france, you will get french titles). -
-
-
- -
- Usenet Settings - - - - - - - - - - - - - - - - - - - - - - -
- - -
The maximum size in gigabytes to postprocess a release. If set to 0, then ignored. -
-
- -
The minimum size in megabytes to post process (additional) a release. If set to 0, then ignored.
-
- {html_radios id="lookuppar2" name='lookuppar2' values=$yesno_ids output=$yesno_names selected=$fsite->lookuppar2 separator='
'} -
Whether to attempt to find a better name for releases in misc->other using the PAR2 - file.
NOTE: this can be slow depending on the group!
-
- {html_radios id="addpar2" name='addpar2' values=$yesno_ids output=$yesno_names selected=$fsite->addpar2 separator='
'} -
When going through PAR2 files, add them to the RAR file content list of the NZB.
-
-
- -
- Advanced Settings - For advanced users - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="tablepergroup" name='tablepergroup' values=$yesno_ids output=$yesno_names selected=$fsite->tablepergroup separator='
'} -
This uses separate tables for binaries and parts for each group.
This - requires you to run convert_to_tpg.php or reset_truncate.php.
This requires that you also run - .../misc/update/nix/multiprocessing/releases.php (tmux does this automatically). -
Run: show variables like '%open%files%'; results should be higher than 10k, twice that if you - are using TokuDB.; -
You may need to increase table_open_cache, open_files_limit and max_allowed_packet in - my.cnf. Also, you may need to add the following to /etc/security/limits.conf
mysql soft - nofile 24000
mysql hard nofile 32000
-
-
- -
The maximum amount of NZB files to create on stage 5 at a time in update_releases. If more are to be created it will loop stage 5 until none remain.
-
- {html_radios id="partrepair" name='partrepair' values=$yesno_ids output=$yesno_names selected=$fsite->partrepair separator='
'} -
Whether to attempt to repair parts or not, increases backfill/binaries updating - time. -
-
- {html_radios id="safepartrepair" name='safepartrepair' values=$yesno_ids output=$yesno_names selected=$fsite->safepartrepair separator='
'} -
Whether to put unreceived parts into partrepair table when running binaries(safe) or backfill scripts.
-
- -
The maximum amount of articles to attempt to repair at a time. If you notice that you - are getting a lot of parts into the partrepair table, it is possible that you USP is not keeping up - with the requests. Try to reduce the threads to safe scripts, stop using safe scripts or stop using - nntpproxy until improves. Ar least until the cause can be determined. -
-
- -
Maximum amount of times to try part repair.
-
- - -
- Leaving this empty will use PHP to decode yEnc, which is slow. -
Putting the path to yydecode will use yydecode, which is faster than PHP. Download yydecode - on sourceforce. -
Putting in simple_php_yenc_decode will use that - extension which is even faster (you must have the extension). View - simple_php_yenc_decode on github. -
-
- {html_radios id="processjpg" name='processjpg' values=$yesno_ids output=$yesno_names selected=$fsite->processjpg separator='
'} -
Whether to attempt to retrieve a JPG file while additional post processing, these are - usually on XXX releases.
-
- {html_radios id="processthumbnails" name='processthumbnails' values=$yesno_ids output=$yesno_names selected=$fsite->processthumbnails separator='
'} -
Whether to attempt to process a video thumbnail image. You must have ffmpeg for this.
-
- {html_radios id="processvideos" name='processvideos' values=$yesno_ids output=$yesno_names selected=$fsite->processvideos separator='
'} -
Whether to attempt to process a video sample, these videos are very short 1-3 seconds, - 100KB on average, in ogg video format. You must have ffmpeg for this.
-
- - -
The maximum number of segments to download to generate the sample video file or jpg - sample image. (Default 2) -
-
- - -
The maximum duration (In Seconds) for ffmpeg to generate the sample for. (Default 5) -
-
- {html_radios id="extractusingrarinfo" name='extractusingrarinfo' values=$yesno_ids output=$yesno_names selected=$fsite->extractusingrarinfo separator='
'} -
Whether to use rarinfo or 7zip/unrar directly to decompress zip/rar files. -
Using rarinfo is faster, but the extracted files are not as large which leads to smaller video samples/ potentially black preview screenshots. -
-
- -
If a rar/zip has rar/zip inside of it, how many times should we go in those inner rar/zip files.
-
- -
You can add a regex here to set releases to potentially passworded when a file name inside a rar/zip matches this regex. -
You must ensure this regex is valid, a non valid regex will cause errors during processing! -
-
-
- -
- RequestID Settings - - - - - - - - - - - - - -
- {html_options style="width:180px;" id="lookup_reqids" name='lookup_reqids' values=$lookup_reqids_ids output=$lookup_reqids_names selected=$fsite->lookup_reqids} -
Whether to attempt to lookup Request IDs using the Request id link below. This will rename your releases to proper PreDB names.
-
- -
Optional URL to lookup Request IDs. [REQUEST_ID] gets replaced with the request id from the - post. [GROUP_NM] Gets replaced with the group name. -
-
- -
The maximum hours after a release is added to recheck for a Request id match.
-
-
- -
- Advanced - Postprocessing Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
How much time to wait for unrar/7zip/mediainfo/ffmpeg/avconv before killing it, set to 0 to disable. - 60 is a good value. Requires the GNU Timeout path to be set.
-
- - -
The maximum amount of releases to process for passwords/previews/mediainfo per run. - Every release gets processed here. This uses NNTP an connection, 1 per thread. This does not query - Amazon. -
-
- - -
If a part fails to download while post processing, this will retry up to the amount - you set, then give up. -
-
- - -
This overrides the above setting if set above 1. How many parts to check for a - password before giving up. This slows down post processing massively, better to leave it 1. -
-
- - -
The maximum amount of TV shows to process with TVRage per run. This does not use an - NNTP connection or query Amazon. -
-
- - -
The maximum amount of movies to process with IMDB per run. This does not use an NNTP - connection or query Amazon. -
-
- - -
The maximum amount of anime to process with anidb per run. This does not use an NNTP - connection or query Amazon. -
-
- - -
The maximum amount of music to process with amazon per run. This does not use an NNTP - connection. -
-
- - -
The maximum amount of games to process with amazon per run. This does not use an NNTP - connection. -
-
- - -
The maximum amount of books to process with amazon per run. This does not use an NNTP - connection -
-
- - -
The maximum number of releases to check per run(threaded script only).
-
- - -
Sleep time in milliseconds to wait in between amazon requests. If you thread - post-proc, multiply by the number of threads. ie Postprocessing Threads = 12, Amazon sleep time = - 12000
https://affiliate-program.amazon.com/gp/advertising/api/detail/faq.html -
-
-
- -
- NFO Processing Settings - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="lookupnfo" name='lookupnfo' values=$yesno_ids output=$yesno_names selected=$fsite->lookupnfo separator='
'} -
Whether to attempt to retrieve an nfo file from usenet.
- NOTE: disabling nfo lookups will disable movie lookups. -
-
- -
The maximum amount of NFO files to process per run. This uses NNTP an connection, 1 - per thread. This does not query Amazon. -
-
- -
The maximum size in gigabytes of a release to process it for NFOs. If set to 0, then ignored.
-
- -
The minimum size in megabytes of a release to process it for NFOs. If set to 0, then ignored.
-
- -
How many times to retry when a NFO fails to download. If set to 0, we will not retry. The max is 7.
-
-
- -
- Connection Settings - - - - - - - - - - - - - - - - - - - - -
- - -
The maximum number of retry attmpts to connect to nntp provider. On error, each retry - takes approximately 5 seconds nntp returns reply. (Default 10) -
-
- {html_radios id="nntpproxy" name='nntpproxy' values=$yesno_ids output=$yesno_names selected=$fsite->nntpproxy separator='
'} -
- nntpproxy does not support the POST usenet command which is required for uploading usenet comments when using sharing. - Using the NNTP Proxy for newznab can improve performance of newznab. It uses - connection pooling which not only give more control over the number of connections to use but also - reduces time for connection setup/teardown. The proxy also takes care of compressed headers for you. - To use this featrure you will need to install socketpool (sudo pip install socketpool or sudo easy_install socketpool) - (ensure python2 is default) and edit the configuration file (nntpproxy.conf and nntpproxy_a.conf) in the - update_scripts/nix_scripts/tmux/python/lib (copy sample) directory and finally edit your www/config.php file - to use the proxy (username and password are ignored by the proxy - make then anything you like - the - proxy doesn't use ssl either). Make sure you turn off the use compressed headers option here in site - preferences (the proxy uses compressed headers by default and passes on decompressed data). -
-
- {html_radios id="alternate_nntp" name='alternate_nntp' values=$yesno_ids output=$yesno_names selected=$fsite->alternate_nntp separator='
'} -
This sets Postproccessing Additional/Nfo to use the alternate NNTP provider as set in - config.php. -
-
- -
The time in hours to wait, since last activity, before releases without parts counts - in the subject are are created
Setting this below 2 hours could create incomplete releases.. -
-
-
-
- Developer Settings - - - - - -
- {html_radios id="showdroppedyencparts" name='showdroppedyencparts' values=$yesno_ids output=$yesno_names selected=$fsite->showdroppedyencparts separator='
'} -
For developers. Whether to log all headers that have 'yEnc' and are dropped. Logged to not_yenc/groupname.dropped.txt.
-
-
- -
- Advanced - Threaded Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
The number of threads for update_binaries. If you notice that you are getting a lot of - parts into the partrepair table, it is possible that you USP is not keeping up with the requests. - Try to reduce the threads. At least until the cause can be determined. -
-
- - -
The number of threads for backfill.
-
- - -
The number of threads for releases update scripts. -
-
- - -
The number of threads for import-nzb(bulk). This will thread each subfolder.
-
- - -
The number of threads for additional postprocessing. This includes deep rar - inspection, preview and sample creation and nfo processing. -
-
- -
The number of threads for nfo postprocessing. - The max is 16, if you set anything higher it will use 16. -
-
- -
The number of threads for local Request id processing. -
-
- - -
The number of threads for non-amazon postprocessing. This includes movies, anime and - tv lookups. -
-
- - -
The number of threads for fixReleasesNames. This includes md5, nfos, par2 and - filenames. -
-
-
- -
-User Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - {html_radios id="registerstatus" name='registerstatus' values=$registerstatus_ids output=$registerstatus_names selected=$fsite->registerstatus separator='
'} -
The status of registrations to the site.
-
: - {html_radios id="storeuserips" name='storeuserips' values=$yesno_ids output=$yesno_names selected=$fsite->storeuserips separator='
'} -
Whether to store the users ip address when they signup or login.
-
- {html_radios id="privateprofiles" name='privateprofiles' values=$yesno_ids output=$yesno_names selected=$fsite->privateprofiles separator='
'} -
Should we disallow users from accessing profiles other than their own? (regardless of this setting admin/mod can access).
-
: - -
The number of days to preserve user download history, for use when checking limits being hit. Set to zero will remove all records of what users download, but retain history of when, so that role based limits can still be applied.
-
: - -
A comma separated list of IP addresses which will be excluded from user limits on number of requests and downloads per IP address. Include values for google reader and other shared services which may be being used.
-
-
- -
-Recaptcha - - - - - - - - - - - - - - - - - - - -
: - -
The public key supplied by recaptcha.net. Sign up for recaptcha at https://www.google.com/recaptcha/admin/create
-
: - -
The private key supplied by recaptcha.net
-
: - {html_radios id="registerrecaptcha" name='registerrecaptcha' values=$yesno_ids output=$yesno_names selected=$fsite->registerrecaptcha separator='
'} -
Whether to display a ReCaptcha captcha for registering.
-
-
- - - -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/site-stats.tpl b/www/templates/omicron/views/admin/site-stats.tpl deleted file mode 100644 index 102e0fb64..000000000 --- a/www/templates/omicron/views/admin/site-stats.tpl +++ /dev/null @@ -1,186 +0,0 @@ - -

{$page->title}

- -{if $topgrabs|count > 0} -

Top Grabbers

- - - - - - - - {foreach from=$topgrabs item=result} - - - - - {/foreach} - -
UserGrabs
{$result.username}{$result.grabs}
- -

-{/if} - -

Signups

- - - - - - - - {foreach from=$usersbymonth item=result} - {assign var="totusers" value=$totusers+$result.num} - - - - - {/foreach} - -
MonthSignups
{$result.mth}{$result.num}
Total{$totusers}
- -

- -

Users by Role

- - - - - - - - {foreach from=$usersbyrole item=result} - {assign var="totrusers" value=$totrusers+$result.num} - - - - - {/foreach} - -
RoleUsers
{$result.name}{$result.num}
Total{$totrusers}
- -

- -

Users by Hosthash

- - - - - - - - - {foreach from=$usersbyhosthash item=result} - - - - - - - {/foreach} -
HosthashUser IDs (Edit)User Names (Profiles)
{$result.hosthash} - {assign var="usersplits" value=","|explode:$result.user_string} - {foreach from=$usersplits item=usersplit} - {$usersplit} - {/foreach} - - {assign var="usernsplits" value=","|explode:$result.user_names} - {foreach from=$usernsplits item=usernsplit} - {$usernsplit} - {/foreach} -
- -

- -

Access by Date

- - - - - - - - - - - - - {foreach from=$loginsbymonth item=result} - - - - - - - - - - {/foreach} -
TypeLast Day2-7 Days8-30 Days1-3 Months3-6 Months+6 Months
{$result.type}{$result.1day}{$result.7day}{$result.1month}{$result.3month}{$result.6month}{$result.12month}
- -

- -{if $topdownloads|count > 0} -

Top Downloads

- - - - - - - - - {foreach from=$topdownloads item=result} - - - - - - {/foreach} - -
ReleaseGrabsDays Ago
{$result.searchname|escape:"htmlall"|replace:".":" "} - {if isset($isadmin)}[Edit]{/if}{$result.grabs}{$result.adddate|timeago}
- -

-{/if} - -

Releases Added In Last 7 Days

- - - - - - - - {foreach from=$recent item=result} - - - - - {/foreach} - -
CategoryReleases
{$result.title}{$result.count}
- -

- -{if $topcomments|count > 0} -

Top Comments

- - - - - - - - - {foreach from=$topcomments item=result} - - - - - - {/foreach} - -
ReleaseCommentsDays Ago
{$result.searchname|escape:"htmlall"|replace:".":" "}{$result.comments}{$result.adddate|timeago}
-{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/admin/spotnab-edit.tpl b/www/templates/omicron/views/admin/spotnab-edit.tpl deleted file mode 100644 index 7d74aa219..000000000 --- a/www/templates/omicron/views/admin/spotnab-edit.tpl +++ /dev/null @@ -1,55 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name: - - -
A name or description for the source.
-
Poster Username: - -
The username part of the poster. eg nntp
-
Poster E-mail: - -
The email part of the poster. eg spot@nntp.com
-
Usenet Group: - -
Group to search when looking up posts for this source.
-
Public Key: - -
Public Key needed to decode the posts specific for this source.
-
- -
- -
diff --git a/www/templates/omicron/views/admin/spotnab-list.tpl b/www/templates/omicron/views/admin/spotnab-list.tpl deleted file mode 100644 index 0bfd8824d..000000000 --- a/www/templates/omicron/views/admin/spotnab-list.tpl +++ /dev/null @@ -1,44 +0,0 @@ - -

{$page->title}

- -{if $spotnab|@count == 0} -No available sources. Add one? -{else} - - - - - - - - - - - - - {foreach from=$spotnab item=source} - - - - - - - - - {/foreach} - - -
source descriptioncurrent statuscommentslast broadcastlast updateoptions
{$source.description}{if $source.active=="1"}active{else}inactive{/if}{$source.comments} - {if $source.lastbroadcast != null} - {$source.lastbroadcast} - {else} - n/a - {/if} - - {if $source.lastupdate != null} - {$source.lastupdate} - {else} - n/a - {/if} - edit delete
-{/if} diff --git a/www/templates/omicron/views/admin/thetvdb-edit.tpl b/www/templates/omicron/views/admin/thetvdb-edit.tpl deleted file mode 100644 index c1b55a8a0..000000000 --- a/www/templates/omicron/views/admin/thetvdb-edit.tpl +++ /dev/null @@ -1,124 +0,0 @@ - -

{$page->title}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
: - -
- -
- -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/thetvdb-list.tpl b/www/templates/omicron/views/admin/thetvdb-list.tpl deleted file mode 100644 index b457497b5..000000000 --- a/www/templates/omicron/views/admin/thetvdb-list.tpl +++ /dev/null @@ -1,40 +0,0 @@ -

{$page->title}

- -{if $serieslist} - -
- -
- - -    - -
-
- -{$pager} - -

- - - - - - - - - - {foreach from=$serieslist item=thetvdb} - - - - - - {/foreach} - -
TheTVDB idTitleOptions
{$thetvdb.tvdbid}{$thetvdb.seriesname|escape:"htmlall"}delete | remove
-
- {$pager} -{else} -

No TheTVDB episodes available.

-{/if} diff --git a/www/templates/omicron/views/admin/thetvdb-remove.tpl b/www/templates/omicron/views/admin/thetvdb-remove.tpl deleted file mode 100644 index 1c245f125..000000000 --- a/www/templates/omicron/views/admin/thetvdb-remove.tpl +++ /dev/null @@ -1,4 +0,0 @@ - -

{$page->title}

- -Removed tvdbid from {$numtv} releases. \ No newline at end of file diff --git a/www/templates/omicron/views/admin/tmux-edit.tpl b/www/templates/omicron/views/admin/tmux-edit.tpl deleted file mode 100644 index 770df3d6e..000000000 --- a/www/templates/omicron/views/admin/tmux-edit.tpl +++ /dev/null @@ -1,784 +0,0 @@ -

{$page->title}

- -
- -{if $error != ''} -
{$error}
-{/if} - -
- Tmux - How It Works - - - - - -
                                 - -
Tmux is a screen multiplexer and at least version 1.6 is required. It is used - here to allow multiple windows per session and multiple panes per window.

- Each script is run in its own shell environment. It is not looped, but allowed to run once and then - exit. This notifies tmux that the pane is dead and can then be respawned with another iteration of - the script in a new shell environment.
- This allows for scripts that crash to be restarted without user intervention.

- You can run multiple tmux sessions, but they all must have an associated tmux.conf file and all - sessions must use the same tmux.conf file.

- -

NOTICE:

If "Save Tmux Settings" is the last thing you did on this page or if it is - the active element and if you have this page set to autorefresh or you refresh instead of following - a link to this page, you will set the db with the settings currently on this page, not reload from - db. This could cause tmux scripts to start while optimize or patch the database is running. -
-
-
- -
- Monitor - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="running" name='running' values=$yesno_ids output=$yesno_names selected=$ftmux->running separator='
'} -
This is the shutdown, true/on, it runs, false/off and all scripts are terminated. This - will start/stop all panes without terminating the monitor pane. This is not instant, it does not - kill any panes, it simply does not aloow any pane to restart if set to false. -
-
- - -
The time between query refreshes of monitor information, in seconds. This has no - effect on any other pane, except in regards to the kill switches. The other panes are checked every - 10 seconds. The lower the number, the more often it queries the database for numbers.
- As the database gets larger in size, the longer this set of queries takes to process.
- this has been mitigated by using memcache on the count queries. The will stay in cache for whatever - you have set in config.ini, default is 900 seconds. -
-
- - -
Enter the session name to be used by tmux, no spaces allowed in the name, this can't - be changed after scripts start. If you are running multiple servers, you could put your hostname - here -
-
-
-
- - -
Enter a path here to have Monitor monitor its usage and free space. Must be a valid - path.
To use this example, add to fstab and edit path, gid and uid, then mount as user not root:
tmpfs - /var/www/newznab/nzbfiles/tmpunrar tmpfs - user,uid=1000,gid=33,nodev,nodiratime,nosuid,size=1G,mode=777 0 0
- gid == group id == /etc/groups, uid == user id == /etc/passwd -
-
-
- Monitor is the name of the script that monitors all of the tmux panes and windows. It stops/stops - scripts based on user settings. It queries the database to provide stats from your newznab database.

- There are 2 columns of numbers, 'In Process' and 'In Database'. The 'In Process' is all releases - that need to be postprocessed. The 'In Database' is the number of releases matching that - category.

- The 'In Process' column has 2 sets of numbers, the total for each category that needs to be - postprocessed and inside the parenthesis is the difference from when the script started to what it - is now.

- The 'In Database' column also has 2 sets of numbers, the total releases for each category and inside - the parenthesis is the percentage that category is to the total number of releases.

- The Misc row means something different in both columns. The 'In Process' column is all releases that - have not had 'Additional' run on them. This includes 100% of all releases, not just the Misc - Category.

- The 'In Database' Misc means the number of releases that have not been categorized in any other - category.
- The counts for parts, binaries and predb totals are estimates and can vary wildly between queries. - It is too slow to query the db for real counts, when using InnoDB. All of the other counts are - actual counts.

- The 'In Process' predb is the total unmatched predb and inside the parenthesis is the 'matched' - changed since the script started. The 'In Database' is the total matched predb's you have and the - number inside the parenthesis is the percentage of total releases that you have matched to a predb - release.

- The 'In Process' NZBs are total nzbs, inside the parenthesis is distinct nzbs and 'In Database' are - nzbs that have all parts available and will be processed on next run.

- The 'In Process' requestid is the number waiting to be processed and inside the parenthesis is the - number changed since the script started. The 'In Database' is the total matches of releases to - requestIDs and inside the parenthesis is percentage of total releases that you have matched to a - requestid.

- The 'In Process' rows PC and Pron are simply subsets of the 'In Process' row Misc. There is no - postprocessing specifically for these categories. The 'In Database' is the actual count for the - category. -
-
-
- -
- Sequential - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="sequential" name='sequential' values=$sequential_ids output=$sequential_names selected=$ftmux->sequential} -
Basic Sequential runs update_binaries, backfill and update releases_sequentially.
Changing - requires restart. -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
I do not recommend using sequential, as it is not tested enough.
-
-
- -
- Update Binaries - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="binaries" name='binaries' values=$binaries_ids output=$binaries_names selected=$ftmux->binaries} -
Choose to run update_binaries. Update binaries gets from your last_record to now.
Simple - Threaded Update runs 1 group per thread.
Complete Threaded Update splits all work across - multiple threads(binaries_safe_threaded.py). -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- - -
The time update_binaries is allowed to run with no updates.Time is in minutes.
-
-
- -
- Backfill - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="backfill" name='backfill' values=$backfill_ids output=$backfill_names selected=$ftmux->backfill} -       {html_options style="width:180px;" class="siteeditstyle" id="backfill_order" name='backfill_order' values=$backfill_group_ids output=$backfill_group selected=$ftmux->backfill_order} -       {html_options style="width:180px;" class="siteeditstyle" id="backfill_days" name='backfill_days' values=$backfill_days_ids output=$backfill_days selected=$ftmux->backfill_days} -
Choose to run backfill type. Backfill gets from your first_record back.
- Disabled - Disables backfill from running.
- Safe - Backfills 1 group by backfill days (set in admin-view groups), using the number of threads - set in admin. This downloads Backfill Quantity times the Backfill Threads, each - loop(backfill_safe_threaded.py).
- example: you have Backfill Threads = 10, Backfill Quantity = 20k, Max Messages = 5k: you will run 10 - threads, queue of 40 and download 200k headers.
- Interval - Backfills the number of groups (set in tmux), by backfill days (set in admin-view - groups), completely.
- All - Backfills the number of groups (set in tmux), by Backfill Quantity (set in tmux), up to - backfill days (set in admin-view groups)
- These settings are all per loop and does not use backfill date. Approximately every 80 minutes, - every activated backfill group will be backfilled (5k headers).This extra step is not necessary and - is not used when using Sequential.
- Newest - Sorts the group selection with the least backfill days backfilled, first.
- Oldest - Sorts the group selection with the most backfill days backfilled, first.
- Alphabetical - Sorts the group selection from a to z.
- Alphabetical Reverse - Sorts the group selection from z to a.
- Most Posts - Sorts the group selection by the highest number of posts, first.
- Fewest Posts - Sorts the group selection by the lowest number of posts, first.
- Backfill days - Days per Group from admin->view group or the Safe Backfill Date from admin->tmux. -
-
- - -
When not running backfill intervals, you select the number of headers per group per - thread to download. -
-
- - -
When running backfill the groups are sorted by the backfill method chosen above. - Select the number of groups to backfill per loop. -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- {html_radios id="progressive" name='progressive' values=$yesno_ids output=$yesno_names selected=$ftmux->progressive separator='
'} -
This will vary the backfill sleep depending on how many collections you have.
ie - 50k collections would make sleep timer 100 seconds and 20k releases would make sleep timer 40 - seconds. -
-
-
- -
- Import nzbs - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="import" name='import' values=$import_ids output=$import_names selected=$ftmux->import} -
Choose to run import nzb script true/false. This can point to a single folder with - multiple subfolders on just the one folder. If you run this threaded, it will run 1 folder per - thread. -
-
- - -
Set the path to the nzb dump you downloaded from torrents, this is the path to bulk - files folder of nzbs. This is by default, recursive and threaded. You set the threads in Advanced - Settings. -
-
- -
How many NZB files to import per process.
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
This will import all nzbs in the given path. If in your path you have nzbs in - the root folder and subfolders(regardless of nzbs inside), threaded scripts will ignore all nzbs in - the root path. Then each subfolder is threaded. -
-
-
- -
- Update Releases - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="releases" name='releases' values=$releases_ids output=$releases_names selected=$ftmux->releases} -
Create releases, this is really only necessary to turn off when you only want to post - process. This runs "Categorizes releases in misc sections using the search name" on first loop and - has 33% chance of running on any other loop. Then runs update_releases.php 1 false to create new - releases.
Threaded is only used with tablepergroup and is required if using tpg. -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
- -
- Postprocessing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="post" name='post' values=$post_ids output=$post_names selected=$ftmux->post} -
Choose to do deep rar inspection, preview and sample creation and/or nfo processing. - true/false -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- - -
The time postprocess is allowed to run with no updates to the screen.Time is in - seconds. Activity is detected when the history for the pane changes. The clock is restarted every - time activity is detected. -
-
- {html_radios id="post_amazon" name='post_amazon' values=$yesno_ids output=$yesno_names selected=$ftmux->post_amazon separator='
'} -
Choose to do books, music and games lookups true/false
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
- {html_options style="width:180px;" class="siteeditstyle" id="post_non" name='post_non' values=$post_non_ids output=$post_non_names selected=$ftmux->post_non} -
Choose to do movies, anime and tv lookups. true/false
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
- -
- Comment Sharing - - - - - - - - - -
- {html_radios id="run_sharing" name='run_sharing' values=$yesno_ids output=$yesno_names - selected=$ftmux->run_sharing separator='
'} - -
Run Comment Sharing from within tmux if you have it enabled in Admin->Comment Sharing - Settings. -
-
- - -
Set the sleep time between updates
-
-
- -
- Fix Release Names - - - - - - - - - - -
- {html_radios id="fix_names" name='fix_names' values=$yesno_ids output=$yesno_names selected=$ftmux->fix_names separator='
'} -
Choose to try to fix Releases Names using NFOs, par2 files, filenames, md5 and - sha1. true/false -
-
- - -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
- -
- Remove Crap Releases - - - - - - - - - -
- {html_radios id="fix_crap_opt" name='fix_crap_opt' onchange="enableFixCrapCustom()" values=$fix_crap_radio_names output=$fix_crap_radio_names selected=$ftmux->fix_crap_opt separator='
'} -
-
- {if $ftmux->fix_crap_opt == "Custom"} - {html_checkboxes id="fix_crap" name='fix_crap' values=$fix_crap_check_names output=$fix_crap_check_names selected=explode(', ', $ftmux->fix_crap)} - {else} - {html_checkboxes id="fix_crap" name='fix_crap' disabled="true" readonly="true" values=$fix_crap_check_names output=$fix_crap_check_names selected=explode(', ', $ftmux->fix_crap)} - {/if} -
-
Choose to run Remove Crap Releases. You can enable all or some.
-
- -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
-
- Decrypt Hashes - - - - - - - - - - - - - -
- {html_options style="width:180px;" class="siteeditstyle" id="dehash" name='dehash' values=$dehash_ids output=$dehash_names selected=$ftmux->dehash} -
Choose to run Decrypt Hashes true/false
-
- -
The time to sleep from the time the loop ends until it is restarted, in seconds.
-
-
Decrypt hashes works by matching a hashed release to the md5 of a release in - the predb.
- Included in the same pane is Update Predb. This scrapes several predb sites and then tries to match - against releases.
- This should be run along with fixReleasenames.php, this is faster, but only looks at releases.names. - fixReleasenames.php goes further and looks at releasefiles.name. -
-
-
-
- Update TV/Theater - - - - - - - - - - -
- {html_radios id="update_tv" name='update_tv' values=$yesno_ids output=$yesno_names selected=$ftmux->update_tv separator='
'} -
Choose to run Update TV and Theater Schedules true/false
-
- - -
This is a start timer. The default is 12 hours. This means that if enabled, is will - start/run every 12 hours, no matter how long it runs for. -
-
-
- -
- PreDb IRC Scraper - - - - - - - - - -
- {html_radios id="scrape" name='scrape' values=$yesno_ids output=$yesno_names - selected=$ftmux->scrape separator='
'} -
Choose to run IRCScraper on irc channels. Setting SCRAPE_IRC_C_Z_BOOL parameter to - true or false in settings.php will toggle between the servers. The pane for this can not be - created after tmux starts. -
-
-
IRC Scraper will scrape several predb channels from the enabled servers.
- Copy settings_example.php to settings.php in /lib/IRCScraper and change the settings.
- As a minimum you should set the username and make sure it is unique. -
-
-
- -
- Miscellaneous - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
This sets the 'nice'ness of each script, default is 19, the lowest, the highest is -20 - anything between -1 and -20 require root/sudo to run -
-
- -
Set this to any number above 0 and when it is exceeded, backfill and update binaries - will be terminated. 0 disables. -
-
- - -
Set this to any number above 0 and when it is exceeded, import, backfill and update - binaries will be terminated. 0 disables. -
-
- {html_radios id="write_logs" name='write_logs' values=$yesno_ids output=$yesno_names selected=$ftmux->write_logs separator='
'} -
Set this to write each panes output to a per pane per day log file. This adds GMT date - to the filename. -
-
- {html_radios id="powerline" name='powerline' values=$yesno_ids output=$yesno_names selected=$ftmux->powerline separator='
'} -
Choose to use the Powerline tmux status bar. To make this pretty, you need to install - a patched font. This can be found on my - fork or the original git
You - will need to copy the default theme located at powerline/powerline/themes/default.sh to - powerline/powerline/themes/tmux.sh and edit that file for what is displayed, colors, etc. -
-
- - -
The target date for safe backfill. Format: YYYY-MM-DD
-
-
- -
- Server Monitors - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {html_radios id="showquery" name='showquery' values=$yesno_ids output=$yesno_names selected=$ftmux->showquery separator='
'} -
Choose to display the query times for each set of queries. true/false.
-
- {html_radios id="htop" name='htop' values=$yesno_ids output=$yesno_names selected=$ftmux->htop separator='
'} -
htop - an interactive process viewer for Linux. The pane for this can not be created - after tmux starts. -
-
- {html_radios id="nmon" name='nmon' values=$yesno_ids output=$yesno_names selected=$ftmux->nmon separator='
'} -
nmon is short for Nigel's performance Monitor for Linux. The pane for this can not be - created after tmux starts. -
-
- {html_radios id="vnstat" name='vnstat' values=$yesno_ids output=$yesno_names selected=$ftmux->vnstat separator='
'} - - -
vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log - of network traffic for the selected interface(s). Any additional arguments should be placed in the - text box. The pane for this can not be created after tmux starts. -
-
- {html_radios id="tcptrack" name='tcptrack' values=$yesno_ids output=$yesno_names selected=$ftmux->tcptrack separator='
'} - - -
tcptrack displays the status of TCP connections that it sees on a given network - interface. tcptrack monitors their state and displays information such as state, source/destination - addresses and bandwidth usage in a sorted, updated list very much like the top(1) command.
Any - additional arguments should be placed in the text box.
You may need to run "sudo setcap - cap_net_raw+ep /usr/bin/tcptrack", to be able to run as user. The pane for this can not be created - after tmux starts. -
-
- {html_radios id="bwmng" name='bwmng' values=$yesno_ids output=$yesno_names selected=$ftmux->bwmng separator='
'} -
bwm-ng can be used to monitor the current bandwidth of all or some specific network - interfaces or disks (or partitions). The pane for this can not be created after tmux starts. -
-
- {html_radios id="mytop" name='mytop' values=$yesno_ids output=$yesno_names selected=$ftmux->mytop separator='
'} -
mytop - display MySQL server performance info like `top'.
You will need to create - ~/.mytop, an example can be found in 'perldoc mytop'. The pane for this can not be created after - tmux starts. -
-
- {html_radios id="showprocesslist" name='showprocesslist' values=$yesno_ids output=$yesno_names selected=$ftmux->showprocesslist separator='
'} - - -
This runs the watch command in its own pane. This could be used for a live 'slow query - monitor'. Just set the time above and only the queries that exceed it will be displayed.
mysql - -e "SELECT time, state, rows_examined, info FROM information_schema.processlist WHERE command != - \"Sleep\" AND time >= .5 ORDER BY time DESC \G"
This shows a grid like layout with the full test - of the running queries.
You will need to create a ~/.my.cnf for this to work properlly. The pane - for this can not be created after tmux starts and modifying the time above will have no effect until - a restart occurs. -
-
- {html_radios id="console" name='console' values=$yesno_ids output=$yesno_names selected=$ftmux->console separator='
'} -
Open an empty bash shell. The pane for this can not be created after tmux starts. -
-
- {html_radios id="debuginfo" name='debuginfo' values=$yesno_ids output=$yesno_names selected=$ftmux->debuginfo separator='
'} -
For developers. Whether to echo debug information in some scripts.
-
-
- - - -
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/user-edit.tpl b/www/templates/omicron/views/admin/user-edit.tpl deleted file mode 100644 index 5abbaf6bc..000000000 --- a/www/templates/omicron/views/admin/user-edit.tpl +++ /dev/null @@ -1,128 +0,0 @@ -

{$page->title}

- -{if $error != ''} -
{$error}
-{/if} - -
- - - - - - - - - - - - - - - - - - {if $user.id} - - - - - - - - - {/if} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name: - - -
Email: - -
Password: - - {if $user.id} -
Only enter a password if you want to change it.
- {/if} -
Grabs: - -
Invites: - -
Movie View: - -
Music View: - -
Game View: - -
XXX View: - -
Console View: - -
Book View: - -
: - {html_radios id="role" name='role' values=$role_ids output=$role_names selected=$user.role separator='
'} -
Notes: - -
- - - {if $user.id != ""} - - - {/if} -
- -
- - diff --git a/www/templates/omicron/views/admin/user-list.tpl b/www/templates/omicron/views/admin/user-list.tpl deleted file mode 100644 index bd9690314..000000000 --- a/www/templates/omicron/views/admin/user-list.tpl +++ /dev/null @@ -1,64 +0,0 @@ - -

{$page->title}

- -
- -
- - -    - - -    - - -    - - -    - -
-
- -{$pager} - -

- - - - - - - - - - - - - - - - - - - {foreach from=$userlist item=user} - - - - - - - - - - - - - - {/foreach} - - -
name
email
host
join date
last login
api access
grabs
invitesnotesrole
options
{$user.username}{$user.email}{$user.host}{$user.createddate|date_format}{$user.lastlogin|date_format}{$user.apiaccess|date_format}{$user.grabs}{$user.invites}{$user.rolename}{if $user.role!="2"}delete{/if}
\ No newline at end of file diff --git a/www/templates/omicron/views/admin/view-logs.tpl b/www/templates/omicron/views/admin/view-logs.tpl deleted file mode 100644 index 3592a0b98..000000000 --- a/www/templates/omicron/views/admin/view-logs.tpl +++ /dev/null @@ -1,34 +0,0 @@ -

{$page->title}

-

-{if $data} - {$pager} - - - - - {foreach from=$data item=log} - - - - {/foreach} -
- -
{$log}
-
- {$pager} -{else} -

Nothing found, maybe you need to turn on logging in : {$path}

- -{/if} \ No newline at end of file diff --git a/www/templates/omicron/views/frontend/dlbrowse.tpl b/www/templates/omicron/views/frontend/dlbrowse.tpl index 95895dbbb..853153896 100644 --- a/www/templates/omicron/views/frontend/dlbrowse.tpl +++ b/www/templates/omicron/views/frontend/dlbrowse.tpl @@ -32,7 +32,7 @@ {foreach from=$results item=result} - {assign var="icon" value='templates/default/images/fileicons/'|cat:$result.pathinfo.extension|cat:".png"} + {assign var="icon" value='templates/omicron/images/fileicons/'|cat:$result.pathinfo.extension|cat:".png"} {if $result.isdir == "1"} {assign var="icon" value='folder'} {elseif $result.pathinfo.extension == "" || !is_file("$icon")} @@ -42,7 +42,7 @@ {/if} {$result.pathinfo.extension} + src="{$smarty.const.WWW_TOP}/templates/omicron/images/fileicons/{$icon}.png"/> {if $result.isdir == 1} {$result.name|escape:"htmlall"} diff --git a/www/templates/omicron/views/frontend/nzbvortex-ajax.tpl b/www/templates/omicron/views/frontend/nzbvortex-ajax.tpl index 0df45e4cb..3b1808526 100644 --- a/www/templates/omicron/views/frontend/nzbvortex-ajax.tpl +++ b/www/templates/omicron/views/frontend/nzbvortex-ajax.tpl @@ -9,10 +9,10 @@
{if $nzb['isPaused'] eq 1} - {else} - {/if}
@@ -28,25 +28,25 @@
{if $nzb['isPaused'] eq 1} + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/play.png"/> {else} + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/pause.png"/> {/if} + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/tv.png"/>
+ src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/arrow2_n.png"/> + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/arrow2_s.png"/> + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/arrow3_s.png"/> + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/arrow3_n.png"/> + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/trash.png"/>

diff --git a/www/templates/omicron/views/frontend/opensearch.tpl b/www/templates/omicron/views/frontend/opensearch.tpl index 191570c66..879740a62 100644 --- a/www/templates/omicron/views/frontend/opensearch.tpl +++ b/www/templates/omicron/views/frontend/opensearch.tpl @@ -4,11 +4,11 @@ {$site->title|escape} Search Facility {$site->email} - {$serverroot}templates/default/images/favicon.ico + {$serverroot}templates/omicron/images/favicon.ico newznab.com UTF-8 {$serverroot} {$serverroot}opensearch - {$serverroot}templates/default/images/favicon.ico + {$serverroot}templates/omicron/images/favicon.ico 7 \ No newline at end of file diff --git a/www/templates/omicron/views/frontend/viewanime.tpl b/www/templates/omicron/views/frontend/viewanime.tpl index 0064dcf43..2879320e0 100644 --- a/www/templates/omicron/views/frontend/viewanime.tpl +++ b/www/templates/omicron/views/frontend/viewanime.tpl @@ -147,19 +147,19 @@ {if isset($sabintegrated)} Send to my Sabnzbd + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/sabup.png"> {/if} {if $weHasVortex} Send to my NZBVortex + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/bigsmile.png"> {/if} {if isset($nzbgetintegrated)}Send to NZBget + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/nzbgetup.png"> {/if} {if isset($isadmin)}
diff --git a/www/templates/omicron/views/frontend/viewfilelist.tpl b/www/templates/omicron/views/frontend/viewfilelist.tpl index ae36e1802..3341655e3 100644 --- a/www/templates/omicron/views/frontend/viewfilelist.tpl +++ b/www/templates/omicron/views/frontend/viewfilelist.tpl @@ -19,7 +19,7 @@ {$smarty.foreach.iteration.index+1} {$file.title|escape:'htmlall'} - {assign var="icon" value='templates/default/images/fileicons/'|cat:$file.ext|cat:".png"} + {assign var="icon" value='templates/omicron/images/fileicons/'|cat:$file.ext|cat:".png"} {if $file.ext == "" || !is_file("$icon")} {assign var="icon" value='file'} {else} @@ -33,7 +33,7 @@ {/if} {$file.ext} + src="{$smarty.const.WWW_TOP}/templates/omicron/images/fileicons/{$icon}.png"/> {if $completion < 100}{$completion} %{else}{$completion}%{/if} {if $file.size < 100000}{$file.size|fsize_format:"KB"}{else}{$file.size|fsize_format:"MB"}{/if} diff --git a/www/templates/omicron/views/frontend/viewseries.tpl b/www/templates/omicron/views/frontend/viewseries.tpl index f41bbbd36..a85076f1b 100644 --- a/www/templates/omicron/views/frontend/viewseries.tpl +++ b/www/templates/omicron/views/frontend/viewseries.tpl @@ -218,7 +218,7 @@ title="Send to Sab"> Send to my Sabnzbd + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/sabup.png"> {/if} {if $weHasVortex} @@ -226,7 +226,7 @@ title="Send to NZBVortex"> Send to my NZBVortex + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/vortex/bigsmile.png"> {/if} {if isset($nzbgetintegrated)}Send to NZBget + src="{$smarty.const.WWW_TOP}/templates/omicron/images/icons/nzbgetup.png"> {/if} {if isset($isadmin)}
diff --git a/www/templates_shared/images/astra.png b/www/templates_shared/images/astra.png new file mode 100644 index 0000000000000000000000000000000000000000..2e4ce594deb9664165a12f022bb983298ec855ad GIT binary patch literal 7177 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/banner_nnplushigh.jpg b/www/templates_shared/images/banner_nnplushigh.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01d0ade11efbfded31383fd941de4035dc2ecc91 GIT binary patch literal 8271 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/body-bg.png b/www/templates_shared/images/body-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e85c4fd25d69a06d936f237d2447a6a49b1686e1 GIT binary patch literal 12626 zcmV-YF|E#tP)FKoY-5(4ZM; z{=);kZj?Nim9=@cE*~uDu198Mgg>@#-~PkzzyJR3-Mhd3`s;@ue)#8~f6m|M-#`8I z)A{@S{2%@K@y8$k{`>Fq!$1H0^Stc*&I``J-@kwVzyJMjUN*m-|DK

pB0JPdi_9{yuM<>p%aU z51c>ezjH}*G4q-8!@0=wQRm*zC(LJ_OXB+H>*ia|XUuXJ+GOMn!7k(bUyR^ zJ=Zp?Jr~1;ombBF@W#3FS*Up^^Y&SRdD-0W`_G?0&rj#2=ihVPbLn%ptUC{E9w%2Y z>vjIjefj~<_s!4w+97mnaOc{U4=_AHhkZ8pd}hPl;w{an-h_k2fQ#$%qf<`i=H*ff{{9>ZMyTplYm z&(9B%PvBx$N;bi~lJn%V>&HJg&ZW-7=Df};XEoU0eCccmE{vt~7MWX~_s$#Vx850i zAbXStd9LC8ufP7vHlHs$CwjhnR-AY8HU6Oa`ty1&i0_`i=RP^*eis{!H`+{{zxl>l zh`GFZ&Af4LkB!WS&wts1J}$nUV}x0_^N+byj5+&^YhxeGsXBkp2Au=yCxNNwvGGH` zjx+70_Ez&cvjRMI?&bZbPoJ)T{kt68Gk?4#`CLANW5L>(0Hu5LiQO}nkP55#O8N=6Hm^*){!7bmMiq4*%l@&;55Jg z<(FUP3h+9(Za#=}O~8VwnU`U;y;FQ%6CCn$ZrFR!@uZEjLuKy4PB%AiBN?~qs5r?6 zk7pi$EmIy6pG@X3JBj_u((x5+AQCWq%_K8B#vxB*C*dZp)t)<_OlZREIcGixd?i;j3ri@1>wet zb=k5UM@QyZcz=uIJIoJ8@%`7YU+t*9M=%IZCo#4TdAuTV(jrxK=( zK{}`N*aP0kmcqO}@$U`s`#<5# zfG<2%9za|R+mN8#Q3L-aD0dEI&+MdX9GERR51zx#&Tue|113f%8_9k*F6HgW60@0D z%_Io~;lMy|;hdN&039yL)|i6>9Bjd#d?yT0j>gsdQs+ECTwA|vb}s>fl|FzY!`x;`7Y8* z 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/bullet_hov.png b/www/templates_shared/images/bullet_hov.png new file mode 100644 index 0000000000000000000000000000000000000000..e80e298e8c017705512153a659fe5a4520578101 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqEX7WqAsj$Z!;#Vf2?p z{{vx0wX*@aKtXR$7sn8ZsZ-B-b2T{duv{$Sdwp(qmDs@^&z5;}`yQ}MSAAd5Rw*@A zup;D8&t9pWlKa-ASheeS^9m=-Q$kkZb!du1>7@(0jZ22WQ% Jmvv4FO#q!>HZA}F literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/clearlogo.png b/www/templates_shared/images/clearlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0e19bf09c7cc704a789198c050d46815b8a177 GIT binary patch literal 2902 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/border1-dark.png b/www/templates_shared/images/colorbox/border1-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..df650786526f77107bf3d8a8a17b0bcbed654b5f GIT binary patch literal 1244 zcmV<21S9*2P)40VeSrJjFC=+QwxoEiG;0#pplm)HsQqCWU6UbQF5C&zEz2`<+cHr9>A> zBti+Ll_J;tjbv7*KE_lB4(ym_Cb2q9r)PPS_yUaQ8#akMn)P0Vq5w~C4D48xc5-e zA#5M%)EI;TL-Q21M{^aWp7a5sS$YR|q7QqV{F+FoiZr8%m)hMmRu4`fCQOelLwcSI z&AKJAv|9*Km0A&-srjOC6T8aD(r(O#cdv+;l}gWfV%>dGWNaBqSJjb2h3jm>n%wxw zy5fT@*i>yA!U?7`DoOweAOWO4h$_&ZHdR!KAKnqEEtoY7Q`vsxs6AzDccwN3kQqC~ zQlO|r7|59NmlmjiZI#T@Zpz@4Pef9-)g%Fpww!I3rKR1J?c1Fr!WF`?{G8@y-%;sWhWS$h+__W+-i4@k^gG zFxqM!K+QO1npPVE9o;Yu@GG~UxL)J^3G4Vu!Ew^Hp6$Q&7w}=qinRPtiPbZWiD>6oVGNrZ zom{Ab2LlQtQUYV9L)!;El@L{_WrLw~;2pHhqqn6Cgmu)ieu;*L7di|rgCN(W>$4~f zW>d%0$|(}QAQm7YT6|zYIXYH2k5sn2+Q6%Mv?z!V0VIF~kO1-`MY6d>ZYhJJ39(;e zdGVSc9!-M`JQjSfDhhnzsX@-f>N6m6n^KBa&KlsI_;-%IZJnRC0SgWCK|Ft8Wm{6~ zNrlnQzsGhp-m(tQ_cAjL@)i+^w=^OtMP!JGL}ELKUkx*pqtU1n|L!8JwE{>02_OL^ zfCP{L5brhwPL`|zS zr_a!x)&6mstd{b6!!rJ01_mY{PZ!6Kint@wBG=zm5OAA&$KqU2;z{mp8+q?-e*gOa z|J2k1DRa)XT(vu%>t2#MYtF)aj6an}b1!?FOl9Hx&-#m2{C%K*ZE>A}M2+o3`xe#d zEeucBbvIt5SKPQSJ_Rz4yoFlnaT_B;OUJQ)XBjW-_; zl>6Oe(SNKgt%y^q@pIaa6Na6#N9%TYoN5SG>%P#hJbMOT(R~>YRUW+-PlMGrB#Y0j znZ@dPLiORE6yah8_069HjZ$ySiqAZ?@cPcynsL$SJ;*V`b^7YdY0)CTYXfu4mtUO}rNfZUanXu()`X0ZO=`9> z@AYN)GY_8%bh%{~tCu09K6UE7ck*|FR(mC7C{MC2I`}5g;^>!x=>-caq}*mUD@0B| z{n$5Rv(2d~k2fXm>AkL+UEKSZ;qukkQ(cb^$akmAW!jl`?TJdbpKvzYNh?-2#h;62 ztv4@9-8?V6TjtuD(5eL$E&WA%bDp01R`m3+0RNPG!5ja6@_FsFPQ=u9`o6oGf5SKn zex<7(bzJ@B{*=3M>)w?AUz)*kSu#F(V(5Rbue^&l>z11BKc~LzqoTIFxK;b4V;7g# z9mtY-{AzmZuc=GwKCX;k|7!Yh!KN mH0g4?YGLBn8=HK2#}DSr z1<%~X^wgl##FWaylc_d9MeUw0jv*DdlK%YvZ_mtOU}R+Ez{o97%w(u9z|FjoMc_2U zMiYT<#*GU$ZY<a@rSWMJ^LejgRctq1`iGU zIlCO?lADvtG?tk*++^N7o%N)xg{-v>gI)ih=A;0Te@&0(2l!+&Y-Ue;FR$`Fft7)g ajiKhZB5TXvRqudKV(@hJb6Mw<&;$TR#Y>a` literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/border2.png b/www/templates_shared/images/colorbox/border2.png new file mode 100644 index 0000000000000000000000000000000000000000..be02ef492958c9c3ec53485d9730b606d33eb0a8 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^MnKHM!3HGH$mB2rDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MUkE^jv*Ddl79UEZ_g}Xz+@;aV9adDEwGu{P+Z_M<3Eh*0;`!f{yW+&p8kKiV8!omZzCtj2J9ADP{!?i_YiBTH20OY3g*U5e;AT@xD8%S fJjlkt#KZ8aHT9v(o>xggOBg&|{an^LB{Ts5Ca*dL literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/controls-dark.png b/www/templates_shared/images/colorbox/controls-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..aca68844aaa0435503ffc0eb2139fd980b2aec37 GIT binary patch literal 1176 zcmV;J1ZVq+P)?nrTub^*+t%oo@Hh+p}z7X-pxxQm4QKdB!@f1;+Q=KcNMvYSAh zRHoY7+xbkV)A@X!X|}bsad~}xZ58i5Jw2nNqxOTt39f8BaQn!}h|7q@%xxqR86O}2 z`1r7#*Yor9&w^T7TDSzdy2NhIomn+CH3bzHxcVEMcTC(~TU+b&KpP8ozBO~3NF*8? z8!M>J5C~&qW6a8#O6c|V_4fAGqw9D)9*f1C790{~`}_NTM@b65y}i{I1nz@_13f(K zd}}=a-rnAun;Y+wDj|2mXJBB!X(4fR+xrkZIyyeJgZ}L7?CI&r*FX;s4^@C8;#3)d zj@=SLYildsme6ZpFx;sm|L4Xoo6UyFom!bpCQIEb zUHGjtdLeaL0vXT!{e7A1%qR7|y1JUB&pAoTu|XcBQYqD_tE;21I4d$;7(>Uy>FH@- zU!PuPEvwDd)m0{wsg&ncCiD3CsM^G4{*QcZLX>o9`CUV!q_gtkUW9S7$K{gew;~?;@JGJsOQ3A0I0ZeA32(UB#M# zHa9n?rlvwkxX;fm5eTcRtISHLl4@kL+2!SBkFMwD=G5smEgTYMGcz+qj}N-EySuxv zun;W>+_d%Za=9Ge8oyMTpPy%t-X~Q;?u5_c;-b^yJW=C)h||;4Uq#v4+S<;}j`vZ5 zl|)tnj_{!DK*w(RCM%IhfPQv%Hq3REymLV>g@`i039irs+Eu0ld3~sAV3^#?e0-;J z#9|gE_r1M6>Tjugr3+tm#<`F>je422R4SD!bDjC5zO(3ccXyL_dXki5gFIMTT2hTz zEJk6msmM;~cwkX=F0+=^W_x>keSN(m_A_XBc$lrR+DH10O`ST0XJ39Z&+q1{rW literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/controls.png b/www/templates_shared/images/colorbox/controls.png new file mode 100644 index 0000000000000000000000000000000000000000..8569b57f1023685883cc8b2002f0763d4e79638d GIT binary patch literal 570 zcmV-A0>%A_P)P)t-szrVkq zpP%pV@Bjb*hlhs`4-Y>-KYxFJ-{0SWfPer10MF0QmzS5fx3_O^Z?CVf=jZ45_xCR^ zFQ=!ckB^VX$H!k^U)R^yPft$(vqlU600F8=L_t(|UhUP{YV0r!08lO7oqd+}|G)Hl z!i3VX%tTOnA8I`$U=bY@A_e$=M%TN3lY!f+1HvLxga~{?BuQU~CFD&cP&}kihULVfuoZsnL`Q~xuv-(kN1b~-H0OM{*xPj(Z zH!CNOhW5k_q@1|SN}boap^M|QnCG?;dN+Z!dVAB#n~UhURSK~f1n|Kh0M!3+UH|Rq zde^(&^{WhANm(+>RB+Do)wv+)v?Uoxo50g%A4s-!(kB#kNXfBF2?Rac)Y4OdYNDL( z4|yRqDRnG(a?X8zNABgQB&u$9*W%-n1wDO|M)&E6m%fjfBtF&nQELn5^(nRVcYJ19 zPd1#^{m<*$d7bf{j>wU@?OCGtb_Kzxa>qde^)D4;WrrV64tv9smFU07*qo IM6N<$f+}YfD*ylh literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/controls2.png b/www/templates_shared/images/colorbox/controls2.png new file mode 100644 index 0000000000000000000000000000000000000000..8569b57f1023685883cc8b2002f0763d4e79638d GIT binary patch literal 570 zcmV-A0>%A_P)P)t-szrVkq zpP%pV@Bjb*hlhs`4-Y>-KYxFJ-{0SWfPer10MF0QmzS5fx3_O^Z?CVf=jZ45_xCR^ zFQ=!ckB^VX$H!k^U)R^yPft$(vqlU600F8=L_t(|UhUP{YV0r!08lO7oqd+}|G)Hl z!i3VX%tTOnA8I`$U=bY@A_e$=M%TN3lY!f+1HvLxga~{?BuQU~CFD&cP&}kihULVfuoZsnL`Q~xuv-(kN1b~-H0OM{*xPj(Z zH!CNOhW5k_q@1|SN}boap^M|QnCG?;dN+Z!dVAB#n~UhURSK~f1n|Kh0M!3+UH|Rq zde^(&^{WhANm(+>RB+Do)wv+)v?Uoxo50g%A4s-!(kB#kNXfBF2?Rac)Y4OdYNDL( z4|yRqDRnG(a?X8zNABgQB&u$9*W%-n1wDO|M)&E6m%fjfBtF&nQELn5^(nRVcYJ19 zPd1#^{m<*$d7bf{j>wU@?OCGtb_Kzxa>qde^)D4;WrrV64tv9smFU07*qo IM6N<$f+}YfD*ylh literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/internet_explorer/borderBottomCenter.png b/www/templates_shared/images/colorbox/internet_explorer/borderBottomCenter.png new file mode 100644 index 0000000000000000000000000000000000000000..12e0e9ac022d0d48ea77f547c51b60b240487b77 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{O!3HEhOmL|OaY|exN`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%S$n!ThE&{2`p3`W!{gu}_3_=^-Ng!Rb{)T&UH-HP?{_$o ypQdn-M`?xwi?Rn#&c%9x>5Y;Zy37s@j0`{Q1aDn?T4)6{hQZU-&t;ucLK6VDcrWMx literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/internet_explorer/borderBottomLeft.png b/www/templates_shared/images/colorbox/internet_explorer/borderBottomLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..b7a474ae056f3c500e460f6d88bc1621053ff219 GIT binary patch literal 473 zcmV;~0Ve*5P)P000>X1^@s6#OZ}&0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzdr3q=RCwC7mQPB=Fcik~V*QUuMWmvL z3tf5)cRi1ruFH4^FW~{aMSBGo-4$GS@_dn|Jj2T*Z8h*CFfiZO?`vLW6e22GKZrdG P00000NkvXXu0mjfah1x1 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/internet_explorer/borderBottomRight.png b/www/templates_shared/images/colorbox/internet_explorer/borderBottomRight.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6cb159b92b51b1bb735c359f2db599559bcf2a GIT binary patch literal 470 zcmV;{0V)28P)P000>X1^@s6#OZ}&0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzcu7P-RCwC7mCH)RFcgN9SjQWKC?XX> zTXXid{RGsZUH z9^8NuoP#wu0xM7eVc-}xb#j_AWVKw0D^rng@+CqDJy1H5=<2d0oO2ZrDBo&+x)K=> zsb8(6@B24AMoT19LY6EUhT*-cs#iynmYdWXsq6X?pWm7KxB?g86r6xVsz%KGX_Bt% zUQ7Yrf@^RI&P)*=g9ES+_AJ375wQ@V%Ad-ze9*5JqZKac3Dxpmv~9axwi2ag2OBVg2uwB(bJP$H`D zhKUT9mV5;yZiPp~Ly2q&^As1gi=^i?_9lK!#8M>^4V6wjH#Zs!h+=&fI=5!YDsbV1 zCW{JeNfEl$LY16y70(ipc-^v`$$b))Daw-YznCm2na=xvZr=h709CMu`cYr}PXGV_ M07*qoM6N<$g158F@Bjb+ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/internet_explorer/borderMiddleLeft.png b/www/templates_shared/images/colorbox/internet_explorer/borderMiddleLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..8f248ac12f7032bbd5a4d286eaa423c391935358 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^l0eMD!3HF&7fw+F36!`-lmzFem6RtIr7}3C!be$JWM`3B@Bm;3pFq>GaR@h&Z=h^><2V~!PC{xWt~$(698{IEJ6SP literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/internet_explorer/borderTopCenter.png b/www/templates_shared/images/colorbox/internet_explorer/borderTopCenter.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb1da43ea70d16cd9e8a5e04db63615353ca7dc GIT binary patch literal 143 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{O!3HEhOmL|OaY|exN`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%8G5=nhE&{2`uG38Ju`=aQKHb9f+kj%4NV+o0tfljEoSJ) o?YVJ?!{n)b$7u&4Mu7wdwi{f5KmC@612r>vy85}Sb4q9e0J!ce7ytkO literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/colorbox/internet_explorer/borderTopLeft.png b/www/templates_shared/images/colorbox/internet_explorer/borderTopLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..d733b6c866fa5567eac759c40bb656e32d6a2e6a GIT binary patch literal 405 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 V2T48He4Ko!i(vA|G{Ujuu>kD72LAv6 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/7z.png b/www/templates_shared/images/fileicons/7z.png new file mode 100644 index 0000000000000000000000000000000000000000..52f7d5d72082cf8deee1fdc08a8bc68cd10ab000 GIT binary patch literal 651 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 ZEQtt4PGqWnsNCQS5hk5YYYDoQ`ybteyhi{4 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/audio.png b/www/templates_shared/images/fileicons/audio.png new file mode 100644 index 0000000000000000000000000000000000000000..98883256d6cd75ef9b73bea040bb8dac1588b97b GIT binary patch literal 727 zcmV;|0x127P)igX2`{3*RdwY9%d3ogR{N?Wa=I{L8>ip#H{O9of?)3eipP!4O z!r12f+2;G&=la^```+pM;_Uo(lf8SDyj6h6hk=R zm6eE~z>blZS%JoqsK%tHtEi}`m8-~?tjVmbtfjBKow3ccv$LbN(YCq0sk_v@z{9h{ z+QP)h#mLLW%F)Nm(8HFO2{N3sM-Rb;kjKOSimj~kKpV3iHwus z>-^yC{Ne2Ta*)5`?E8$4kaCf~adB~XcXyDImE-RG>El9GCryIo#i{6OKNG?xwbAD@QaG$=^6{`dR*sWONl z0B_n5+P)746u*b$;VRJ=6L0hn@+CRYpeh+nl`MSiD!L1d`D;cL#Mhyk_tIgV2k%qX z$q0hb7|<)SL@>|Vmk;5i?(x``@zv(3x_#HI2ho~nzS)jTl` zP)#u1T;=AimdUXQfREp@YjcZvd~~E1;Kk)~o@}hmPW@H5-Txf`D91UtYL);1002ov JPDHLkV1n4(zl8t* literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/avi.png b/www/templates_shared/images/fileicons/avi.png new file mode 100644 index 0000000000000000000000000000000000000000..b89fc52995fa519f3b84eeb069da835a4b8ae686 GIT binary patch literal 740 zcmV-^yB{M_jKKO{O9of=il+-z2fZrK`j=*k?zjBbj zgpiMNk-tDsK1ohZj*^&dp=x@SyL5kd-01v`k(Y>|z?z<<=<)q`eTHa(lrJwYFfcGp zPEl4{U2>ysb*5x^qkDpyyj`fSg`BvSnx9QzS6OFUVP#@ga!GTlwu_>|a;&M0qQYvd z&X1+UfwXm!sK%hHj-{xrm8-~F#FS;kfnmSJU%|VYuFG)7X>`JnqOik#!@-Zl$Ia2x z)a3fsHKndfoy+!Ha0fj>igg7{5v~4;OqNDL`321{NU{T;q3cFMM&c8`&og;Sc1jl?fX!V zW_*B#<9?)_ba#9oBNe1m-D@BHQO{bP-bVTi-$@BHWR{9=j2=jKK{1Avyp600DGTPE!Ct=GbNc008JoL_t(|UM0-ak_1r{MA3_~+O{#YZQHhO z+xX|{Q@tNoL?+5KTD0?0T-##67-idjO!c)#Cw{S(m7}F#W&c?BLJ!t-*^OThv{uyQ ztQKGmq@=WIcyQd)Fkk1x5JCs2bEJ8>G3iqzx0C8GfvWoQyh7P4-qBMX*2)q;pKp@? zmJlutFm!gK$fDm#PFThc(5uLjC{V&N){O{2*ZY%OaF9c0lQ)L|I-W)9IA(3@ym|2( zpiQ_s=U7`VZ&GJJ0P-ne_qO;IlW}hP0l>iRTQhT`Ix{tS0Z{F7*<<0quh;uai{&5I W&nfWoRDAIO0000P)t-s00017 zTwH#ay5jBp-s=0`>-^yB{Ne2U-01u6^!@bs{@UmJc9Xq(mAqAe$c3H0>byVR<@)vmtRufW)|!`js3`qt$7*5&%v<@?v=``G6DWs1Vt=lf@i!D)=aY>vR( z>HFO2{N3sM-Rb<^>HBVuzuxNn-|G9{>ilw$zjBek;p_b1?EK;E`&og;;_Un4?EHF_ zyI6w7U4+Dfn!H|w#9@fTVu{0yqQd3x{pRod=kNUI@cfUZ#OUz+k*CJ#@crrW{p#`k z>+${S^8Avh#+9qcm#oQ}uFLK8{q6Mrov_XB^#1Sk{qObt@AdwjvCW~h&hhsB@%R4n z_x+=`(ewBIq_)wgxzo24Z%6U%T;*HWjQ${(PG=yy1?D#StgxK z#Ox*02npO|{5`I*494dLu8&Bu1_lI21&;U8ESiit3=IqH#aYFi!700x$iEP)a##n;IU4+D5gv4Qp!9-mArnJx|x|~f||Udm~yV2N`;-ih@ilwo{)>8!ndba zu%&pBr^c78$+D`Jow3cMw$Zn=t;xD}sk_v}yPvMU*RR0Xv%}iV%$eNFebCCc%*@Q- z(U0WKt?ba8+1AYJ*thA|#p>Ow=iB7g<@)I2+Sum%+2;G&=la^```qaJ-0Az=>HOX4 z``+pM-s=0_>ipm8``_yP-|PI~>-*sA{NU{T;q3e2?ELoaz~b%vBK{p9Za zL;#2d9Y_EG z010qNS#tmY3labT3lag+-G2N4000McNliru)&>v@I~4ubBMATi0QpHoK~xyiEzVh2 zf>0C%;Dce4&1K{*wS-2aft!R;Igo~B)CC)99!ZPy|KGYS+mGMcd#w!su(iIrvb31X z5(3?9w%gxdpC4}|{Fe<%jn4b)3kkb2X3)T;htE$OxUB6M23=6MRrQfXf#psZ_=;XM zryuTaTOI-B$Mt>c<}>2`&6Rh-8^3{R=4D9|uP+&MWh6G-HfpA%qFTJZ6}LptDyS)KGM0bQ|-Uk(nh3nIcAoF-?(4n77Tc zd8Ag|`r6uC+q!BytF7&N^|AH#-rkx?=>1)D>*SpCedql7eb=(MnNbs_PkmS2#_gb(Cb9=23GQi^KSH)_M~!epLqp@+FdE;>q#tF{CV7+WKRz|Lw6rJ`3Z+u1 zQmNExwML`SYIUu;&pMqBhGDI~L$B9=4x^oh%7Ca1h`zJCv$M0!h!~AVz1h`e?lYM! zX0zF1vFNRMPfw4@igbL#4ZWD5FVIEPMwsjYo6Tl&1WXRXZnrxe4yV)E?f%o_A+4T} z(~Y{_ZmTzB^^&~R?j!9!;P8=%Z`gs74ixmGp?;L?rx!nP`T^nx zD2h5UfM6tof$tdkopv0!aMFbXHx4iia|M7aK)D0J6DEb@xQ759g7Ol;OHcy@7zom& z2!a?4QobKlFc?IKfPaX>eo{Ei;lF`lium=HB*~GHk&PK!tf!hb(C=iFZs+cRSYB&k zIOK22OoJ-M%w*Fc@+3R^6a+D+gvBt~F95n6SIXIvKJF_s7K(}6monoDUH#^yrSM|S z1pocdWY>lXjo zc~*8Yf;HK1Sg<;CU2bZ3{lw+bf<#!vY)DQt?nV!vs9Tc2K);kRKdiQxhKr8Bezj;J zl=HOsd7h-##?Q^>- zp3RDjPnfrGPO`c%>B-s|Y}Q^LkIyc@byalfp?DhfbUv%Q%DHkqeFKP-&P}V|C=mVw D!k6Vm literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/cfc.png b/www/templates_shared/images/fileicons/cfc.png new file mode 100644 index 0000000000000000000000000000000000000000..09c149d642665417536d4434cb64e9399e2636d1 GIT binary patch literal 1145 zcmZWoYe-a45dQAE`8G5tO+!V&eBh&8$XtsQ-=Hm0WNDBg_V^Kk1O*`}i22JPsvjmL zM1f@w6be%_GPMV~o0*$0O!66}sj0bp@9E50cU3$vcjnH__uZK@b1QV2DQ?c*&H&uf zQWLYdb|-PP=TE@VwH+oVSI)I~ArLF9KY)kw~A1ip@O7CoM7lNQ{T% zuAVVTJjr(I-}bY`6f%`VDp z=C8tjFUYL;b|a%h+6q!x4bn`p_(>^@K~W^`Bb&!;5TN92609WZ^#o=`u_O~27Xc)j zqt_Du*Y`oIi9%M2b`yB8=?$clCHQkW7p^g3&@QT=?=?cBiQxni z%>0togCk=o%udH}mjNS9ZGyx|@O%Q2BJI3I`{Kh|?$F z;N~iPJ-q{n(}Y=C;2x7KL6s02ElK7@jNPlWl|L1I6pEKKwzfZnY%<|>M;FR(@pgWW z!OJ()QUTvk6TgEEi!?qtjiJ$TK9M*W`i6x~pAPi(Mr25U0MqT$W^z2P-TkmeK#675 zEi5PVpjcb6zT8JEZ2cFk>rGA~D69U24gZ2HE2ye%WS2IkJ(nfbmu=gi!qG-Hy7o1Ys1 zkCf#2bZ#}ID_r?AV2WjNqs}&@8h|G^-K8uS{=PCdIrALgzJ^rwVIWW9HS1I24f`Wk zt2F9yn~E1Xr2bVuo3U77waHwid0q79tQ^jz;8fx=oP(gYt&dGx6roeI3Y(mj*~E;@ z#{Ven_q5FN?lv(JvI`)m1&1tC>~S&*V^9ZJsdqS%XxjH>{W z&(TW>2ty=56LXxUrtvlFGMmx;d6@FcBrMn;+e39Qf3x4g(xf1`RCJpSjg4dLrXZX@ zacF5?_;oK$sCm(hs4yMUQq#oosKc`A7O0;!x3h=O+psSw4(UnJ|A33{H{jx}N)dN< zQo+Z&0}&CC;#d?^zv=Epv_9;=;HoB*0B0n}B2E_|NVhWM%9| zYsY(3x4sia2Mjx4hziHk_Aa=4dJ6E~1bcV6`6csHVVuATYFAhLAP8LF*d_?d9yMaH z;T~#RJ0Zc}=di8BXN zV2lk%h&BkFpZd8C6dll>Sm_A*P%TVdeFAi)q88LXN#f~3{+GDma!w{R9_}LcvF8h7 z^dXM@u*oXk2bZfQrA!;F!`Z?+_%Uq(WC`A0tMK5)1q26eL{I;K_{hYs5ggCXPq`p}KWx(l!pDEJxP978zTvo5(YZ)Kg@xrU z?65Ibu#5HOG5XTNzd*}FJ_U)Ou>38S{R^_JptQP;rvMwjAR3b-lh3Vq=P^koaxd@lSe@AMlmuh^<6TD!{sMC|b^ZVV literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/chm.png b/www/templates_shared/images/fileicons/chm.png new file mode 100644 index 0000000000000000000000000000000000000000..53d48f3b5174c3a0b8cc5957518298a4b0ddbd25 GIT binary patch literal 483 zcmV<90UZ8`P)vQgj=yq{zjBekc9Xq&mAiYD zyndIuf||UAoxX^mz>A{7jH1GirNoh^#+R(gkgnF9vCX5l(W$%Cv%}ib;`-F%`qt$7 z*X8@!=KI^{``qaJ-s$_`>ipsC{NwHX+=2U^8W4f{qFPr?)3fe z_5JYm{_*$y^7sDp_x<$v{{R2~Gcz-qO#Y()0004WQchCOzqwm7p89`y)$}Sp1IaB95lI$aBDJeo5jeH2;e* z7*~%0(tZ>M{*ZoMov|)_uTNrm$`JM3bGszwSt=`Br%l4H_dVA+Hb~4Y%bbh`y-urX Z7+;~`Bh_1LT897t002ovPDHLkV1mkt^U44K literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/class.png b/www/templates_shared/images/fileicons/class.png new file mode 100644 index 0000000000000000000000000000000000000000..a39f70c161e2c0efef9c738937324260d427e5e4 GIT binary patch literal 759 zcmV+Rv}{OarNc9Xq(mAr+WzVi3|^7sD#|Nm)>!KAj)yR@yRxzo6~xT(9; zs=U>@y1To(yRN?1ufW*9zrVA?+Qq`Z#l^+N#m30U$jQsg&d$!x&(F}&(b3V;Y>vRP zva;Oh`{L;F-Rb-1=;+?*`?IsNqqfl?8Wqvg*3{J0>g@01?fhAR#_jX{?ezXK9tv23 z#a)ENUWCMmpumfw!lAUzZjQg8h;Y`{*4WzGa*)5=+}v`Jzuw>A;^N}eaf||UpmVP%U7UAji>geX* z>ipsA_~+{G>FVk@GAioo>g4P8M=~7Y?E8$O!jGlIsiU5er^b?~#^mk%?H?epdC z{pIid=I{LK@Al{L{OIug>GA#R@%`)a{p|Amr>CfutH_tE$?o+0?)3fd^!@Jj{_pku z@Adxh_5PZ!%Uv)6@%R2zG!te&7GjCRWs1UQi@{ol{AU0F00DGTPE!Ct=GbNc0084j zL_t(|UMZ@|T|7wz-+n5T#X*LA+nZ2R^>P>dJ1ZWj(~*1!bSwoL`&v;CLs*{yCx35vgQE z=9Q!&c20UF8qIozGf%wo2eExXio<~tS+rd_`~%TMYd1)|i&!8>1{)!a>ZRhs{E2bp pP=8-F#H_)f?{2mJsv7Ds>>rZ=E$;~LqrLzD002ovPDHLkV1gKo+>`(S literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/conf.png b/www/templates_shared/images/fileicons/conf.png new file mode 100644 index 0000000000000000000000000000000000000000..ddffe6fd1aad01e342cacc7fb5bb53cd4699c9ca GIT binary patch literal 717 zcmV;;0y6!HP)a##n;IU4+D5gv3~f)M1FjVu{0Lio$1$!D)=ag@}w|jn#>XiENI*ZjQflkiT+~ zzm1NMj*pOblf8zKpn8?NdzHLxm)d@px{#Hdber6Qn!I?P+=ZRKnVOo4owbymtB9b$ ze4*WZq28LEqMe8`%lufNx?z}Tt5>cGIjzrn<_!`iLH>#)b`u*dAO$n3_(#)Y;P2+tt<8*4Eb4*WA+L`r+Z>)Z_ZripsC{NwHX=fZ{qObt@b>=k_Wtqr{qpzz^Y{Mr`2PR@ z|4e?+gIL;#2d9Y_EG010qNS#tmY3labT3lag+ z-G2N4000McNliru)&>v@Ixkhn`)mLJ0MbcBK~xyiV_;xl2y}I@Fw)VKmy%+D0N+Xo zkg9@;cvqCi>Z%8nOI1Nd+)E48l4F$0fC3N^my$&1Oa&`DF)1mCF^)rV$eE z!D|8r*%^Wi401uCeyWy*`5^g>bbbZ~NhdEEYls4q^fWF823xjjQBp@pxAu1%m&B@Nf%*Y4;Pl`D#hbL3R00000NkvXXu0mjfHfxD6 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/cpp.png b/www/templates_shared/images/fileicons/cpp.png new file mode 100644 index 0000000000000000000000000000000000000000..79464401bdbfd5f7f98a7fdb84d616fe350f31ed GIT binary patch literal 881 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/dot.png b/www/templates_shared/images/fileicons/dot.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2da1add11d69d061a663bb2e9132ee8e2e6d81 GIT binary patch literal 658 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!6%)r1HuVsG}$YCya@(khN;JE$J{{fJDDZnSh z^*N4mHes z);#A{>)d@c({EHy-BUc}TG`~iIeiDxyRMdZ%}MG!oX~hSqUmU8!-@2|&GEH|BkC@O zR-cP4T^&?>&a>o9XzmiHyd%C@%U!Z|T4nBVNZVqOxK1l+yHWHutEd@@KC?KzH)+`A zvN_G>u<78??`AZr(7JwfJJG>T#v!Yag}hoeFj8URtp@RPfrmKmYfqM9tMdY3%uox1ibGDZC)*;_^m@ ziM@@hMINKYwC~AtU|MVg2$}B&9Hrcde)+=>hTdkS)M8ab49=R;Gs>L@yd+`+5 z&DY=C(Xi_5uC!}uvb&^aE!=s}==lMIO=k)jm-za6@gBH&?%lnA2Nw!nem1kd(sY)( zoBQMHRWIIN+rBNqt^8{6k6+8Iiq2_0Z>_V_tPx;+Eu)?Pbnp7tRxP^L;^r2tZdN%{ m|0D)a)H(fmk;dtxkHobeOFVyjeM%b8lMJ4&elF{r5}E*))L~2j literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/eml.png b/www/templates_shared/images/fileicons/eml.png new file mode 100644 index 0000000000000000000000000000000000000000..02828e17387b497d07839f88bd9cafe81706e265 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1Ig*Z`jpR|W<{ z21bUEhBMI($AX)W$F>}a?>v;%d$4%I{*tMCtEcR(p1!Mb?t!j_`}>z2nX>w1-@5BF zH=bX*^WyqLx8FSpIsf?2wWmLCzWn>(&96uA{yzEe@73qu@4o;4^6SsP|9=u^zxWTb zwIs+dn8D%MjWiG^$=lt9p@UV{1IXbl@Q5sCVBi)6VaEED_=!M4_7YEDSN0nm9DF8% zGLT^vIsE{FDU3msD6aq-+5;Awv=$z$QSf5)dVEYg!q`&7mp=(RF8R{pe2 zZ^x>PYE@bHBf%ZNrwXt$@C7M%;po)Ee>|^DWZIX{@cZ_E{d>_jlRH1g zJ;@X>I4)3@_HEvY6agpS5ChZs9_bs3y}vLWdv^J=62sc9&4y9mudl0SUbv1gK>3!^ R0icr@JYD@<);T3K0RaESo-P0Y literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/enc.png b/www/templates_shared/images/fileicons/enc.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2d7d47ebfcaea02b062edac3724649fe3d51d2 GIT binary patch literal 757 zcmWlWdq`7J9LMhrb!k4p$SGM85gG}W1ocNyI?-XijkJd^T50*5qfnu8X!yc%F%)y< zEA7QH5<{nM>Kvs_6lYGIZ|A(;ZP&-_Ocg)FX@ttHB5jMk|SIvXUl9nylN1eYk@#TX)TH*KFN0 zTaACM2L}h)ewW3z58%c{#bZ}DRQGK|dPEo#E4TLvN5kQ~@T39^bM~+m4Qps*prs?1 z6&dO{OLuo>I99ZK*`bveH#CtOlAE2)&f#Jq9CjL)eb4tvCO5-3j1?Jkv&7XC9a6HG z*Af_00gBrZcCkn8ms>Rf7foG?c|M(ag(s*#a?9e&i(jqcxi!-(+r5%UTx)BR*+%tzw^7D z-ztu)Y%~^obK{FfVwLPp&t9Bh+B-+eUAs;lq{vUU(rQ`CtkQqE4vf_WCSgy%&=$B! z%T~sIc3|+OZw!Gkg~s#hp{%uOY0%rz6E7}Jl*Wc=Xn8?uS$ZuoAy_IdT;T|5{M0j` S(v*90%~oFq%L zqKwd$ij?zocgYc(h)W)iyK~QX?zran{r&W{y*}^n=kxjR^X10Tqn#bS9T5a^rco*J z@O9m*{kAXzf?N_1gusf6VMLNhS;-GZl1jd(m5I~K#2FkBiz~`17v88CzF9e(TQzj6 zYA~NSm|rtkSlfTUuCJ(0P+b45q(Shoae(t`sG?a|*(|JX5!bYiJZT%L>lm%?lr-?i z8$V1mc1<*Wo_yUi^`>X4_3QN8zL|ExZ~nmC`yuHk(frK%&MYK{&^b9OmG4Lu=pRUl z&MSB3mFQn3y08I(1r@rW0*fkiQ3aM%=#m-&%W8BPrUtBN&=n0>g^d=hYSC3KkZDmF zOdVL$p=&y@4jVm$t?Pk&4<2S7G~JOjnFn`f~@$a72CApW-D&_hwtw0USW?Gwi_An z(+LIf^aO;gkY?`PWd9}}64|yKUWFy@&S#!yP_SCR@8z<*ZMmjwz=OfdBL1{U8 zHZ=TLARz#8yF4b5#L&yD-RuZFHY+hDo|PMuna8dtCXvqs1s(|rJ1t(G6WO02y?E;C z;pVMXuBp|dF77;TMfm}%)trB?=ZnJDfg1UUh!z#~hNYxFH?!^hMK-pA#Wdf}pqR>D zvW+YP_tVq2L$Z%Y?K?~&1mBJgjV|&@@Hijt8^U9A9(VM=YvFb^4e&jksATEXq+?s! swb;~zQa68+KWXU4_=IF~>?b3|5%IeaTwVXtrxc!y&?4y+{yApJe~xvda{vGU literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/folder.png b/www/templates_shared/images/fileicons/folder.png new file mode 100644 index 0000000000000000000000000000000000000000..784e8fa48234f4f64b6922a6758f254ee0ca08ec GIT binary patch literal 537 zcmV+!0_OdRP)x(K@^6+>g^d@v4;gkbWsEoXE%32*i1tcpTNXd5CcIl)ECgqz|2rE6EW}s7R?kl za1q`0GCkMruC6-2LANtwVlsgzsp4?{@7$`KBv!G66>Vie3h?3OmEEkjwdLG0PgLVi z`!N((f$A@n17Ldj#`};0I3@iHJ5M{#IZz|UIYRm4(!uV7eYIYIwQf&}_2J~}>pQ^n z6o8--^T(=hkBNQ_k{-_GWE;FMW7!p}f{NG3nHZ{D5<3d8&tLh%a4AqqnjMkr3m&fkMdECD3N5}Unig5wy40;>lo4j~k+e}v)` zR6)J8Mk*u=SpB`p6o)7j?S0T@9?bz#m@l>gc*zk__|*!FMcHwP!gwLJvS~9c0px8E zW}3k zU{`fxU36w>xmZMmZDgWmN04t+uW3tFfXJ$BOjm)yg?VsUfyP*Z#gcV*U4+C-q)J|d z#DaU4e1V9yZ&RdqUSWvCVu{0Lio$1$!H0&0uzOZ%jKPbCj%<#=w|HxAj=#8iWO9(d za*@Beeq?r&y^@ZMf}Lu)fpB`2yNi#odzHMci)+q*T7H+h#Dr(ef?TzYbb^|^t&oDP zk$%65c;bCvp_Q4_hhK%AzS4+Y(}`fkkZHn_X`P&-tCpRmnV!#(V#AYj*o8NwD!-BxIs;Rrwu)D>oyw&WkdF-!xtH9K* zzSrimg0H~X)wiv$#MraL+QP|`?zn`v%H8X~lJCBa?ZJ@V#;57Up76w#`NN3d%B{W9 z=g`xx;>)b^$e8oWoW|DT@6Mpp)6>_}(e%%v%-ZqD-tzX^vDD=H?c=`D=KI#<`uE_t z*5&%v<@?v=``G3B*yj7$=KI;_``YLF+UNV*=lk~M!QANk-01w=>HFO2{N3sM-s$_^ z>igg8{OalH;OqS0?EK;E`{C^T`s&5v?fl~I_v7vS?C?)~uX?DFyS?eqQY^!)4f z{_XVs?)3fd^!@Mk{_yqw@b>-j_Wk|%*YfxM^7sDp_x|+w{{R2~W>QP3VV9Z!0004W zQchC9dt!lbVF}#ZDnqB07G(RVRU6=Aa`kWXdqN*WgtgMO;GP-C2jx! z0Rl-xK~xyiV_;xl$V-k53-WQd(${Bzfb3nnc5dIYX@mZ5s7U6n9a}eVT)#$tH&i5b zbxv?x)7o`F0f>l$fr)NKyx%f?5MW?fWftwsBNJ$D=-;w(`BI>OriZYXQ-TW%hiCnY zrHk|#VidUfqtXhBOKOYk7cX9*#h|2T9g&_@-jEnsCbw|jTr~z!OD-{6R?~bz4Wod$ zb7mxqDhDQ^t(x zlPB~^fE=c6=gTfqHGS&jiTyo7Ac2q+*TT-}QzlO6?P})*2^j0>sHrH*N{S2cadH9x Xn4(mS6?pR-00000NkvXXu0mjf`9?Xd literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/gz.png b/www/templates_shared/images/fileicons/gz.png new file mode 100644 index 0000000000000000000000000000000000000000..2426bd169c0268c06f3d41aaad94fddcba25e72f GIT binary patch literal 716 zcmV;-0yF)IP)a##n;IU4+D5gv4Qp!vQkkiT+~ zzjl+oos(Lll|y=!yL*+qewVtLnP!5TyrP(LuANGSoxX^mz@?s$i=x7}r&qA0c#)^Z zm#oRMs+OIx&7-!_x3sOvx^}6%)Wf@DR^T-K*!@HOa5 z``+sN-s=3{>igg7{NL;R;OqO~>-^yC{Ne2T;q3hO?ZD#g{NwHX<9?)~KM{N?Wa zhGN+h{j(O0A&PXkn5tDpT92j2f_&_La1F|NqB^WB228?mg!M0IV)8%+JnD=P8AD zR+`Q4ug{M+8vn~OV|MHP^@YZ58MImCvz_NB0YVnnZJSLQYliVilfYanjzZlkIinAE zw~c^;{^N%s^9wn0e{&UFh{kW^I0a2r$@L}Y-WcfN)~2Q9R7Gy^^SYY`y~M1drYc0@ zo_n-E4CBQO(^QEfNoVdstvUpd)l8E}l8m^Ahy&tSM^+=UhsRi}l(8?lIvMc#$suB8 y7q@#7$a|+K=2#Y!&IBehne+%^e{XkJD)k4(NHPO%2sYFJ0000vQgj=yq{zjBekc9Xq&mAiYD zyndIuf||UAoxX^mz>A{7jH1GirNoh^#+R(gkgnF9vCX5l(W$%Cv%}ib;`-F%`qt$7 z*X8@!=KI^{``qaJ-s$_`>ipsC{NwHX+=2U^8W4f{qFPr?)3fe z_5JYm{_*$y^7sDp_x<$v{{R2~Gcz-qO#Y()0004WQchCOzqwm7p89`y)$}Sp1IaB95lI$aBDJeo5jeH2;e* z7*~%0(tZ>M{*ZoMov|)_uTNrm$`JM3bGszwSt=`Br%l4H_dVA+Hb~4Y%bbh`y-urX Z7+;~`Bh_1LT897t002ovPDHLkV1ju3^t1o~ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/htm.png b/www/templates_shared/images/fileicons/htm.png new file mode 100644 index 0000000000000000000000000000000000000000..1a6812185b9ab0a4dc7f5d568df09704132ebc97 GIT binary patch literal 748 zcmVg2hmV$5@2EU4+D5gv3dX)M1FjVu{01 zj^Aa9!dQ>gXN$pUjKOb^t89+IZjQflkiT+~zi*egc9Xq&mAiYDynLIQu9i1`m%3x1 z+NqdIf||UAoxZr5Q;49ziK4ZOqQZ=#!gi_MfUDY(r^cSHm9VjBm#oQ>HFa7{Ne2U$M0MK^SO5S30d!JMQvg8b*k%9#00Cl4M??UK1szBL000SaNLh0L z01FZT01FZU(%pXi00007bV*G`2i67<3<4Wwqot<+008JoL_t&-(_>&@V2FlS*fPmN<2ym^1ibP9uN>x=>RJhhcL}b;Hf^?)gLu-KoAQ9Pwyxh28O##MoR}f%e z;7_kkP4rR{<0=geEh%O=3Eh#Q?Wnd4mN^$lvRhQ&uED9|ubYx)D z^S6)ESCtcDWh^c#EO2085H@!+if|X_U@i&`Ey%ZJV5pNg2hmV$5@2EU4+D5gv3dX)M1FjVu{01 zj^Aa9!dQ>gXN$pUjKOb^t89+IZjQflkiT+~zi*egc9Xq&mAiYDynLIQu9i1`m%3x1 z+NqdIf||UAoxZr5Q;49ziK4ZOqQZ=#!gi_MfUDY(r^cSHm9VjBm#oQ>HFa7{Ne2U$M0MK^SO5S30d!JMQvg8b*k%9#00Cl4M??UK1szBL000SaNLh0L z01FZT01FZU(%pXi00007bV*G`2i67<3<3voqWS0m008JoL_t&-(_>&@V2FlS*fPmN<2ym^1ibP9uN>x=>RJhhcL}b;Hf^?)gLu-KoAQ9Pwyxh28O##MoR}f%e z;7_kkP4rR{<0=geEh%O=3Eh#Q?Wnd4mN^$lvRhQ&uED9|ubYx)D z^S6)ESCtcDWh^c#EO2085H@!+if|X_U@i&`Ey%ZJV5pN}3p zm%7~O``YLG^!WaElf8SDyx8XZ+2;G&=lb62`{C^T;_duZfXM&<|FC;jX^g>(hmLHH zz_)m7ZjQg)==^zLSHy&8%z|9CjdX&VyseOet&x7JY)n^y!G(Enbz@z0W@xy2WO9(d za*@Beeq^s{OOlR^f}Lu)fpB`2yNi#oxmZN4i)+q*T7+$6qGm^sZ&X=<##n;Il67}o zgv7s!c;bCvp_Q4_hhK%AzS4+Y(}`fkkZHn_X`P&-tCpRmnV!#(V#AYj*o8NwD!-BxIs;Rrwu)D>oyw&WkdF-!xtH9K* zzSrimg0H~X)wiv$#MraL+QP|`?zn`v%H8X~lJCBa?ZJ@V#;57Up76w#`NN3d%B{W9 z=g`xx;>)b^$e8oWoW|DT@6Mpp)6>_}(e%%v%-ZqD-tzX^vDD=H?c=`D=KI#<`uE_t z*5&%v<@?v=``G3BOQcF(gv8nB`+|Fxe1VAD=lk~M!L@Hwq<3E2>HFO2{N3sM-s$^c zh{NCO{OalH;OqS0?EK;E`(la1`s&4Hio)XV_v7vS?C?)~uX?DFyS?eqQY^!)4f z{_XVs?)3fd^!@Mk{_yqw@b>-j_Wk|%*YfxM^7sDp_x@*#!H0&0W>QPRM^)DV0004W zQchCM6giOD!0=e;~n3kfyGES7E{hB1qhL z@1=OuY@NE@)QPcITcNP0Dm^k=mRn~M4 z6=!$Ijt}@O*!0%l@^{p0T(Z(m;_vO4g1O(HS7u4~RByZS_%5d85aIM2J1}wf(Wgy%$9%tbc2-|>o=d~WZ&f_l5Ed!BO7T!FKDK2MzX3_-+9X6X~ grj(xVySs`+{~@wQBFi^6(*OVf07*qoM6N<$f_Rf4%K!iX literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/iso.png b/www/templates_shared/images/fileicons/iso.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2ff19ca74db2bb4a85f211b65ba69fe5212d14 GIT binary patch literal 700 zcmV;t0z>_YP)qF&gnM~HF_x5jd3#lW z$XS8LSc1h}gv4Hi#9@fTVu{0Lio$1$!D)=aY>vQgj=yq{zjBekc9Xq&mAiYDykn-N zewVs}n!JUbzKf#5k*CI&tjUzNwXLqLow3cmzCr;1|D(3iG4JoGyVPUf-mbpaIsd(s z&(5#F*t5gh&d-$I-(!3K|L^ZH)a3fs`q<|C+2;G%=lj~{ z`r7CF+voe-==igg8{NU^S;OzY2?EB&D{NnBWn z!m2D46|pGE!fLnskc1qiy5h-*JVLI=`*s3C2=QWOpy-qa+jp%4@CqywH) literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/jar.png b/www/templates_shared/images/fileicons/jar.png new file mode 100644 index 0000000000000000000000000000000000000000..4db70a2c722377409b9ee0773bd02381ae021b9e GIT binary patch literal 672 zcmV;R0$=@!P)-^yB z{AOk|_U*vp?fmuc)cN@6|NsAcmAu;L`^ma?-Rb+@>igd6{C1PQqL^}poxaS>%;3?F zb`qt$7=;GSe<@(m;``6|B*yZ}z=KI;^ z``PFF+UNRRgv8tD`(A{^-0Az7nP%PT{NCyNf||Txh{NCN``_yPVu{1x>-%YEUf}Hf z;q3c}punY`kc*BK{p9ZaG=H}2QE!{U8jd~r!3!+DDYVe17FnY z#z6V->Lzf55=N-&hHz+HsIc9Xs1?fm5K{CkzWvRj#>d3R%E!mY$jHdX z$;`>g$!?Cn%F4@fkiT+~zs=3f(9qD&)7#S1)YH?`S%JoSmAlf|;oRKZ-QC^Z-riV( z#nj~b*5vxu<@(m;`{3m2*X8@<HFR3{9%a0;py~ZiNoIN{NL*P-|GB}qQZ=#!jGlI>gwv@>-^yC{Ne2Tk*CJu z?EB*E{F11~>JtjX=|?U}5`tE;S_vB>4`{jjjGv9hw~@BHWR z{O|AYva+(Vw7R#ry0^K!>hk>S^8M`d{q6Jp?ezZc^!@Mk{`>p;xw^WAn|M@|3C>32Tjvt4t-@LzZ;9|`T*&7QB zq}$gl!31%0vcoEh`eoKk#KMek^6btA>G!2Ql{8M-&i~O<<+E+^E)hAQRBc1JXqqxp zMkGwPeM$)7$OImvs^XcgLpZpP$6%lOl{xo#DZ<9J!C(uPH8+eFBdo*W9{98w7}Exq z5CRNfWgaHL1$`q3UUk*O=dR)Y-kw&3>1Z@mUsF=F5bU;C{s5F8D8KBXlmY+%002ov JPDHLkV1l6r)9e5M literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/jpeg.png b/www/templates_shared/images/fileicons/jpeg.png new file mode 100644 index 0000000000000000000000000000000000000000..aa4cc23a5b0d88cd17a4fbfa8260e71bf64a6f35 GIT binary patch literal 1001 zcmV}3k zU{`fxU36w>xmZMmZDgWmN04t+uW3tFfXJ$BOjm)yg?VsUfyP*Z#gcV*U4+C-q)J|d z#DaU4e1V9yZ&RdqUSWvCVu{0Lio$1$!H0&0uzOZ%jKPbCj%<#=w|HxAj=#8iWO9(d za*@Beeq?r&y^@ZMf}Lu)fpB`2yNi#odzHMci)+q*T7H+h#Dr(ef?TzYbb^|^t&oDP zk$%65c;bCvp_Q4_hhK%AzS4+Y(}`fkkZHn_X`P&-tCpRmnV!#(V#AYj*o8NwD!-BxIs;Rrwu)D>oyw&WkdF-!xtH9K* zzSrimg0H~X)wiv$#MraL+QP|`?zn`v%H8X~lJCBa?ZJ@V#;57Up76w#`NN3d%B{W9 z=g`xx;>)b^$e8oWoW|DT@6Mpp)6>_}(e%%v%-ZqD-tzX^vDD=H?c=`D=KI#<`uE_t z*5&%v<@?v=``G3B*yj7$=KI;_``YLF+UNV*=lk~M!QANk-01w=>HFO2{N3sM-s$_^ z>igg8{OalH;OqS0?EK;E`{C^T`s&5v?fl~I_v7vS?C?)~uX?DFyS?eqQY^!)4f z{_XVs?)3fd^!@Mk{_yqw@b>-j_Wk|%*YfxM^7sDp_x|+w{{R2~W>QP3VV9Z!0004W zQchCl$fr)NKyx%f?5MW?fWftwsBNJ$D=-;w(`BI>OriZYXQ-TW%hiCnY zrHk|#VidUfqtXhBOKOYk7cX9*#h|2T9g&_@-jEnsCbw|jTr~z!OD-{6R?~bz4Wod$ zb7mxqDhDQ^t(x zlPB~^fE=c6=gTfqHGS&jiTyo7Ac2q+*TT-}QzlO6?P})*2^j0>sHrH*N{S2cadH9x Xn4(mS6?pR-00000NkvXXu0mjf0{}U* literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/jpg.png b/www/templates_shared/images/fileicons/jpg.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb6cc1fbfcb8d41204d556ded701b69478142c0 GIT binary patch literal 1001 zcmV}3k zU{`fxU36w>xmZMmZDgWmN04t+uW3tFfXJ$BOjm)yg?VsUfyP*Z#gcV*U4+C-q)J|d z#DaU4e1V9yZ&RdqUSWvCVu{0Lio$1$!H0&0uzOZ%jKPbCj%<#=w|HxAj=#8iWO9(d za*@Beeq?r&y^@ZMf}Lu)fpB`2yNi#odzHMci)+q*T7H+h#Dr(ef?TzYbb^|^t&oDP zk$%65c;bCvp_Q4_hhK%AzS4+Y(}`fkkZHn_X`P&-tCpRmnV!#(V#AYj*o8NwD!-BxIs;Rrwu)D>oyw&WkdF-!xtH9K* zzSrimg0H~X)wiv$#MraL+QP|`?zn`v%H8X~lJCBa?ZJ@V#;57Up76w#`NN3d%B{W9 z=g`xx;>)b^$e8oWoW|DT@6Mpp)6>_}(e%%v%-ZqD-tzX^vDD=H?c=`D=KI#<`uE_t z*5&%v<@?v=``G3B*yj7$=KI;_``YLF+UNV*=lk~M!QANk-01w=>HFO2{N3sM-s$_^ z>igg8{OalH;OqS0?EK;E`{C^T`s&5v?fl~I_v7vS?C?)~uX?DFyS?eqQY^!)4f z{_XVs?)3fd^!@Mk{_yqw@b>-j_Wk|%*YfxM^7sDp_x|+w{{R2~W>QP3VV9Z!0004W zQchCl$fr)NKyx%f?5MW?fWftwsBNJ$D=-;w(`BI>OriZYXQ-TW%hiCnY zrHk|#VidUfqtXhBOKOYk7cX9*#h|2T9g&_@-jEnsCbw|jTr~z!OD-{6R?~bz4Wod$ zb7mxqDhDQ^t(x zlPB~^fE=c6=gTfqHGS&jiTyo7Ac2q+*TT-}QzlO6?P})*2^j0>sHrH*N{S2cadH9x Xn4(mS6?pR-00000NkvXXu0mjfNl`f? literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/js.png b/www/templates_shared/images/fileicons/js.png new file mode 100644 index 0000000000000000000000000000000000000000..7db4de7e98131fc61073b4657a777de6438ca620 GIT binary patch literal 862 zcmV-k1EKthP)UWPDMygMM+LZN>4^gP)ABoP*ht}R$EwIWmsNiSzl&VfXG>a##n;IU4+D5gv4Qp z!(xfUWs1UQi@|A(!EBDeZjQflkiT+~zjl+odX>9-mArnJx`LX#g`K{Lpumfw!i=KA zkEO(sr^b?~#+9qcm#oQ|tj4RWte~;Tu&}VPva+(Wvaz(fx462uxxBf$y1Kf$y1Tu; zzP`V|zreu2!NI|}!_~sV!o$PEyT#SU#>d3R%E!mY$jHdX$;`>g$;!&g%F4^Y%;3w* z%gN2v&CSij&*8(+ipm9{NU^R;OqSA>gwR^ z{Ne2T;q3h4?EB*F{NwHW?B?)>HM`{nNZLjV8(0d!JMQvg8b*k%9#00Cl4M??UK1szBL000SaNLh0L01FZT01FZU z(%pXi00007bV*G`2i6N102mN;Vw27Q008<)L_t&-(_>&@U~qJ?)7DT`Qjn8l00Cz! z=ZQ|XK{>N$$;}0c=%sgBn_D*}narFaHy0#gpBx-IC)C+oXZkdt08qqjN^XdcnW>fT z)X8!nz+h3CALnLaVXifKQcp)i9Z-*PNV;8SHc@$^AOYpZ`r3+kwrD?YuWVtEfMQ)uaiTXzRHP+Wgdj*jp`tXFh0!ydX`X8) oA4ou6R#sX{LQF(RfS;Ea01H_}fBJJ4*8l(j07*qoM6N<$g24^_CjbBd literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/lua.png b/www/templates_shared/images/fileicons/lua.png new file mode 100644 index 0000000000000000000000000000000000000000..7c07d023f91855f31cc77fa5470e4a616dd12543 GIT binary patch literal 465 zcmV;?0WSWDP)aj=*k?zjBbja*@Awlf8PC zyL*+qewVs}n!JUbzKf#5k*CI&tjV3R&7-!_sk_vwyw$G0*RR0Xv%}id`q<|C+2;G%=lj~{`r7CF-01t<>HOa5``+sN-|PI~>-^#D`{C^T;_dw7 z?fm2J{pIfc>+=2V^Zo7f{q6Mr?)3fd^!@Mk{_yqw@b>-j_Wknr{qpzz^Y{Mr`2PR@ z{{R4enP<8(00001bW%=J06^y0W&i*Hr%6OXRCwA&j)xM0Fc3te*gF!j_lAH4#ok47 z|Nlqk62Q$}=I+gACxj3(=(JnSMqQ_rNcDaH`*}TXlm(>cd++D{dI11Qx*i|leBzh% z#A6^tc_EM+V*tm!8v(`z2X{;V2DI#)Y6!#=*sN6q3_`7zP)Px%3Q$Z`MU0}tQx6bq4+&@y5iletcoYUHE-o=FEjTVNJT53bEIS}HMkO>jLMFGT3R|? zS*Sz~ep3*-M+Le`31?~|P=R~tUa|vaN!e@)YX^g>aj=*k?zhst>RhyG?kiT+~zoeH6c9Xqfo}qe`yL*+qewVs} zn!JUbzKEc}|BwlbqQd@_0cf(NkEO(sr^b?~#_^vB|D6SutH_tE$^WAXny$;8u+5#Z z&Ht+jp|sAUw$Y@v(Wkl7_PGVAyVR<@)vmtRufW)|!`lDC2>tE|)a3fs``PCE+2{M(=la^```hRH-01t<==|L2``qdL-Rb+?>HOa5``+sN-s=3{ z>igg7{NL;R;OqO~>-^#C{NU{T;q3e2?EK>F`{L~U;_dw7?fc{H{N(NY<9?)~KM z{N?WaGA#Q@%`)Z{p#}k z>+=2U^Zo4e{q6Jp?ezWa^#1Pj{qFSs@AUod_5Sbm{qObu@b&)i_Wkkp{qgty^7sAn z_x|(u{`C0%|NsB#PgzO;0004WQchCGpB+wjDSO5S3^+`lQR2b7^U|?W~iwX<&_i}S~ zbYy^l*fncbuUxidzT;Y`NX(j5%a<;kH^*@;R3v(pfWU&evu6SYAR-Y1=KU3y8}x$16>l(A&}0SPK+jXA|ZS3Q^YBotFmX1x3u7A zl=L;?Yj3WrsVK2!(D1P1WK|Aum1(T2Dk(0oVqj2}ViHsLQ4|%dEGf**HUpZ;qM+|C z(NN7>nxC7UX#%pvCPBKss-iS6H!D5W5G3HDQddz{l$(>4k(R6n5^%06F9vGQNKZ*h p)B*`OIXKu_o0}RN=xS?f0svcoO2v?{YL);1002ovPDHLkV1gw>@h$)W literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/m4v.png b/www/templates_shared/images/fileicons/m4v.png new file mode 100644 index 0000000000000000000000000000000000000000..b89fc52995fa519f3b84eeb069da835a4b8ae686 GIT binary patch literal 740 zcmV-^yB{M_jKKO{O9of=il+-z2fZrK`j=*k?zjBbj zgpiMNk-tDsK1ohZj*^&dp=x@SyL5kd-01v`k(Y>|z?z<<=<)q`eTHa(lrJwYFfcGp zPEl4{U2>ysb*5x^qkDpyyj`fSg`BvSnx9QzS6OFUVP#@ga!GTlwu_>|a;&M0qQYvd z&X1+UfwXm!sK%hHj-{xrm8-~F#FS;kfnmSJU%|VYuFG)7X>`JnqOik#!@-Zl$Ia2x z)a3fsHKndfoy+!Ha0fj>igg7{5v~4;OqNDL`321{NU{T;q3cFMM&c8`&og;Sc1jl?fX!V zW_*B#<9?)_ba#9oBNe1m-D@BHQO{bP-bVTi-$@BHWR{9=j2=jKK{1Avyp600DGTPE!Ct=GbNc008JoL_t(|UM0-ak_1r{MA3_~+O{#YZQHhO z+xX|{Q@tNoL?+5KTD0?0T-##67-idjO!c)#Cw{S(m7}F#W&c?BLJ!t-*^OThv{uyQ ztQKGmq@=WIcyQd)Fkk1x5JCs2bEJ8>G3iqzx0C8GfvWoQyh7P4-qBMX*2)q;pKp@? zmJlutFm!gK$fDm#PFThc(5uLjC{V&N){O{2*ZY%OaF9c0lQ)L|I-W)9IA(3@ym|2( zpiQ_s=U7`VZ&GJJ0P-ne_qO;IlW}hP0l>iRTQhT`Ix{tS0Z{F7*<<0quh;uai{&5I W&nfWoRDAIO0000-^yB{M_jKKO{O9of=il+-z2fZrK`j=*k?zjBbj zgpiMNk-tDsK1ohZj*^&dp=x@SyL5kd-01v`k(Y>|z?z<<=<)q`eTHa(lrJwYFfcGp zPEl4{U2>ysb*5x^qkDpyyj`fSg`BvSnx9QzS6OFUVP#@ga!GTlwu_>|a;&M0qQYvd z&X1+UfwXm!sK%hHj-{xrm8-~F#FS;kfnmSJU%|VYuFG)7X>`JnqOik#!@-Zl$Ia2x z)a3fsHKndfoy+!Ha0fj>igg7{5v~4;OqNDL`321{NU{T;q3cFMM&c8`&og;Sc1jl?fX!V zW_*B#<9?)_ba#9oBNe1m-D@BHQO{bP-bVTi-$@BHWR{9=j2=jKK{1Avyp600DGTPE!Ct=GbNc008JoL_t(|UM0-ak_1r{MA3_~+O{#YZQHhO z+xX|{Q@tNoL?+5KTD0?0T-##67-idjO!c)#Cw{S(m7}F#W&c?BLJ!t-*^OThv{uyQ ztQKGmq@=WIcyQd)Fkk1x5JCs2bEJ8>G3iqzx0C8GfvWoQyh7P4-qBMX*2)q;pKp@? zmJlutFm!gK$fDm#PFThc(5uLjC{V&N){O{2*ZY%OaF9c0lQ)L|I-W)9IA(3@ym|2( zpiQ_s=U7`VZ&GJJ0P-ne_qO;IlW}hP0l>iRTQhT`Ix{tS0Z{F7*<<0quh;uai{&5I W&nfWoRDAIO00000WbcEP)4>m}H0~zctL4&n*v9}C0bV)((w<0HwFM0wUCkyKRiH(RvD&%nrO70C7$O2uwJjZ`2KhI620Zq zfY3hN>gDjri-P`8$9xI7w-KHZ33=r}?3Fu={-HP5lEdey

X;nP{0000IP)5 z3=Ryh>n1ZnQV^0ZjQfgp=xrFzl4yFa*@AsqiuGR zy>+H!jggmnmAj6Tn0uAHc%yq=sIGvPw0@Vmf||UAoVbysah95&g`K`~tf_OVwrZ@- znx3SAv~`Q3!dk?XWyFDS#%W){yJ5e@psS8_!jO}x#-*sOny$-z!@;7k!;i$ru)52$ zz09`0%(uSEyT;bM$Je{Z+Pufuyvf_X$=bik*uKi!z{=Xf%Gbfm+QG})#LnBs(B8<= z+|AL`$dDsW&DZG6*z3^R>e1Wj(A(_M+v?KY?bhGz+Trfgigg8{NU^R;OqS0?EK;E`{C^T<9?)~KM{N?WaGA#U^!@+;{{R30@w0eA00001bW%=J06^y0W&i*H z0b)x>L;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4000McNliru)(aQ_7z_UgS|R`d z0QgBnK~xyiV_;xlNYm3Y)eVda@%Lwd01Xqz=y2!irT)txA`;5h?lGweD#`xKz#^hj zn(?8ozS?RLKmnkLfQVvjTzZhaQt%Rg5MW>sV~9))Q&sR4ghGUODDBOx@rIb N002ovPDHLkV1g(S$O-@e literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/mp3.png b/www/templates_shared/images/fileicons/mp3.png new file mode 100644 index 0000000000000000000000000000000000000000..928705d7a54e7958e2ad2f2cb1da1f15f97782fd GIT binary patch literal 885 zcmV-*1B(2KP)E2iP)JKpNJ~&qR9jG0TT@nBSY2gUUS(Kb zW?f!iU|?WgVPa##n;Iet&>ngv4Hi#DRi? zVTi+mgN0&=!)1!XXN$pUjKPSAh>3}bY>vQgj=zeGkBN+ve2=MekiT+~zl@HMc9Xr1 zk(YXvyL*+qkdl>>l9GOxx|NlcmX?-+n!JUYxP_g*nwpxHo1>YVors{oi=x7xpP!we zrJ$goo}s6oqNbyxqmie>k*CI_r>m%_sF$qCtgNi1ue_bH&9k$!qqfnhyVSP1y|TK; zy}-k>!`isR)wsmgyT#SQ#K^_S%f-sk!pqmk%h15g;K|F+$js8j&fdk)-^I}3$kE=% z(&Nd~;mXtD&)DS4+V0KT?#|lm&)ed-|p7n@7Un)+2QWl;qTMq`PJk3-Q@Av<@wp>`r7CF-RSz<>HOa6``_yN z-|PI~>-^yC{Ne2T;q3h4?fm2I{NwKY?B?)>HM`{nNZ(^b^GQTOR2b7^U|?W~3=IkL_i?eevSNUMz~s2th_I!Lt(HSYg8dw9T%{K+v|0`o z32;hDG?rR0A1DA3@$y}^#6oP|Tq_U&2{?EzUZ5v3ch1ZilO}=%EZyQ&WrSzXnm%P> zKTyEhUD-oHOHzO4)X5Vj^qMh9YfFn)no2k}Or12Lucyldq{X{s=CsDzy6&p-j!r`$ ze}#c)PCXAhR~8>{W}6O>&%l(xpUoD|Qd|@xRHy+Gu&d$DU}WJeEfb7xRs#t*S97JY zrI)nkM+xLAfduR;I8!+a+VfbMlbYl}w%D4Rn;7Y8s;el<%gO=(3kyfcUuLhv00000 LNkvXXu0mjffSKt_ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/mpg.png b/www/templates_shared/images/fileicons/mpg.png new file mode 100644 index 0000000000000000000000000000000000000000..9a3f8ea51ee1677118e88b81c9b4f3a27cff56d9 GIT binary patch literal 894 zcmV-^1A+XBP)XWO+`peMMzFWNl!&d zP(V*UMoCUaN>4^gP)ABnM@mpfOHfElP)SZrO-@lyR9jF~TToS7O<-46TU}XaTVZ8l zR&q&XY;R$6cW-ZMaC2sJbaHKWg>ra-P>*J8e|vO)cU6GMXn~Y>eTG?q##n;IU4+DZ zfQDX##C(H%V~vYph{Ixu!)1!Xc8H^Ai@|b{ifN3&gouuSi-^yB`{3*R;OzY2?EB&D{NnBWBK{p9ZaA}mv zA}qo>DUlw5dYUmn0iXyIvr1BOc9@cC_|jkyU|`^2h)s*qQ1)B8c;4I@)4`@V1}G?c zFIhN$&aCNE!2((`(hiFj%$q%P+O)~OAb|{S)5Qzt%$_lA%ESqtAc6P=^E%twr%q~Z z?(27DU|7MxR?{IRBGFPQFW1!L#IRz;3P$lN{v5t?`NE?5E?c026*eLjoP1)%LPfHI zbyh$Dh9JojfzqZ1*}PnyS~HMipsC{NwHXhk^T^8M@b{_OJo?ehKY^ZoAg{_gbs?)3ie^!@Mk{qXhu@b&)i_Wtqq z{_*$y^7sDp_x%TEqudB$nZInuwrvMP0JG9BOzzh0ezk6zs>pvBoiAh|OLc&u8Fey` ziY$o~K;Jx&g(y@3dIv*?e@PVfWq^*Mlf`~l1ZXGs9iIniYARXqTo!;y?%Xy7(4c9m gRw)&7nRFQb04&@fraZ$Zy#N3J07*qoM6N<$g3-nx`~Uy| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/nzb.png b/www/templates_shared/images/fileicons/nzb.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd174e2d5161ac5c38519f38eeea48c43bbe5d9 GIT binary patch literal 616 zcmV-u0+;=XP)P)t-s00017 zTwH#ay5jBp-s=0`>-^yB{Ne2U-01u6^!@bs{@UmJc9Xq(mAqAe$c3H0>byVR<@)vmtRufW)|!`js3`qt$7*5&%v<@?v=``G6DWs1Vt=lf@i!D)=aY>vR( z>HFO2{N3sM-Rb<^>HBVuzuxNn-|G9{>ilw$zjBek;p_b1?EK;E`&og;;_Un4?EHF_ zyI6w7U4+Dfn!H|w#9@fTVu{0yqQd3x{pRod=kNUI@cfUZ#OUz+k*CJ#@crrW{p#`k z>+${S^8Avh#+9qcm#oQ}uFLK8{q6Mrov_XB^#1Sk{qObt@AdwjvCW~h&hhsB@%R4n z_x+=`(ewBIq_)wgxzo24Z%6U%T;*HWjQ${(PG=yy1?D#StgxK z#Ox*02npO|{5`I*494dLu8&Bu1_lI21&;U8ESiit3=IqH#aYFi!70a z##n;ItXI=rgv4Hi#I0P^u3XfwT-0HR!(xfUWs1UQi@|A(!EBDeZjQgla%XaozjBek zc9Xq&mAiYDyndIu)_ZM&n!M_JR_c6J>wH#)oxX^mz>A{7jH1Gzprntb#P@?=`h;GQ zr^b?~#+9qcm#oRlt4o=!%ABywow3cbva+ML(cQors!`jZm&;Qc^!OGqL)Bw!P%+AX5)XekS-GO^4QVR;`-F%`qt$7>HFa7{QmTK|MYqP z^>+XDc;W2)|Mqv|?fm8L{O0fc|MIHn@cruX{qgbf>+=2W^ZoDi{pR`q@b>=n`2O|z z{`dO+`TPI>|Nj600DM*RZ~y=R0d!JMQvg8b*k%9#00Cl4M??UK1szBL000SaNLh0L z01FZT01FZU(%pXi00007bV*G`2i67<3pyq&8$-wd008MpL_t&-(_>&@VDNRcv#~JM z*Hu?%fB?^$>Z-~FPNq6GsE8|&AH-P4o={s05pk?a@L{YoEK#q8h(xk6*45SVmlUak z00V;|V;u_{D|2yCVSZk2wmO3kBU@xeS!oH7U*PSPrp~}>%U})SmwNvQgj=yq{zjBekc9Xq&mAiYDyoim^ewVs}n!JUbzKEc}k(t(uqQZ=#!jzoXprE9c zp4pG3#F3}QlBmX+q1lzI$d|0iny$;8u+5#Z&7`g1rmo%zSpn7 z*ucQRv%}iF#Oc1o>B7nD%*@Qj&hF0E@z>Ya&e-$R-1XGp_toI|)a3fvH6O3``+sN-|G9{ z>ipm9{NU^S;OzY2?EB&D{Nn8U;_Uq6?E2#E{NwHWHM{N?Wb&@VDNBuva>cf)YH*n zfB?6ip6<>_A(lRVsEBJ%SBDQ{pI~HfFGR$pE7F~@&!knS7b4=%&)C=3C)(Pm0|E>T zCX9VN{Jb13jrE0rp+!0j?u`8Y?QN}14Yj_^?3TGY47`pEwr#DAb=6hc!g+bwnjk}M zn!V&?y-Nj*bF$JkKmu0vo-zU=sjLC%X~}9J0gIZ7az8c)?(~$z1Qn2gS!G#K0UwuG zQer}!5=g+Pq&Pp@fXO~FJ|;>5B%oiEmz5F385|!Q9WD(L(96zDOGz}1jfn^gkpKzk lYH4Yxt12tXOG%200{~+FJ`R%|{4)Rm002ovPDHLkV1jA#znuU8 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/odg.png b/www/templates_shared/images/fileicons/odg.png new file mode 100644 index 0000000000000000000000000000000000000000..434f18262f86ef2801845d908234504f9ce868a2 GIT binary patch literal 788 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/pdf.png b/www/templates_shared/images/fileicons/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..638066dea602dc90953200c59158d02a95446b7f GIT binary patch literal 663 zcmV;I0%-k-P)vQgj=yq{zjBekc9Xq&mAiYDyndIu=W}y{ zn!JUbzKEc}|8sNidwYwb!i=KA-h_mYrNoh^#*(PU=ZuV%tH_tE$(gOnoUqKDvCX5l z(eIp`sk_vyzSgh6*t5gh@2#!gwY~4w*3#no)Z_Zrl9P0002eNkl%^t9BJ zMJ!~+g!uS)`M6o*j6r}wl!uFpor9f~ zjVU%JDl)>DftfLrMF0pm1wj08u(2+Q3Gs1~V1Ae(NWdA$_Y-yp@k0$j0*>)RY3ygCMGa` xfFel1EE3N5mjely8W|br>uRg3D9Fpm003uhH3Emj!Pfu)002ovPDHLkV1l6}LW2MR literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/pgp.png b/www/templates_shared/images/fileicons/pgp.png new file mode 100644 index 0000000000000000000000000000000000000000..e6b35f36ed6ae5426b80bdc3aa167f95dca125b6 GIT binary patch literal 750 zcmWmAc}&t_7zgkdlT^&|n5bnNTdl0=X8fyvcwoXv#B1T!fh49Y%@Hdz*N}ALeKfLM z=8>h9vn*$&=7H$2rpswc=BjPkt>=o+KIM6%O)?WH*Zk(nV!g*AY0Y!DcmZPJ_*9;JgN#-$3BP2DX4w3m3K6q82Wp zMhBO4*pdz|>#${%dbpy;R`hTcHJb>&x(QVWaFqe74EUM>t{HH(0jiA%zHWr;MqGm$ z6Rt7g8zx+f(hRj`T)Tzqws1YNjo3D~@y%_U0j0%eu;2!Z&4}#aCd6tpTXD11wq><# z@7nhF_kD)zNJ zivmBUW-ABx?q?hyrNMDZ+BY=1gAhku3d>mQI@ zlB^81<58(&WmGct4V9YRN+HDfoDDkR>{H*l=?174zue$B QG7&uyFd|sAwlJ>vKf++9Z~y=R literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/php.png b/www/templates_shared/images/fileicons/php.png new file mode 100644 index 0000000000000000000000000000000000000000..44c0fe0a08c4c87a826d758127130edc4a8fb7e1 GIT binary patch literal 887 zcmV--1Bm>IP)a##n;IU4+D5gv4Qp!(xfUWs1UQi@|A(!EBDe zZjQflkiT+~zjl+odX>9-mArnJx`LX#g`K{OqQZ@$y^*KJm#oQ|tj4RWte~;Tu&}VP zva+(Wvaz(fuD8awxVpEwyt%r%y1Kf$yS=r&$iBY5zrVl0z`()5!MVfJ!otGC!^6DA z)5gZf#K+3V$H&OX$i~Uc$;rvU%ihY$%F4>i!pz>w%ge&e-onk_!p-2x&DG7#&BV{& z(9qDx(%;F`;mXtC%G2S>)8fz5+tSn2)6>(`)YQ$@igg7`rqpO-|PI~>-^&D`s(WH;OzY2?EB&D{NnBW z?B?)>HM{N?Wb?d|R6@BHTP{paue=kWdS@9*gF{ps=j@bK{J z^8D-a{p|Do?eqQZ^#1Pj{qObu`}_O<|NkW`GZ(^lBme*a0d!JMQvg8b*k%9#00Cl4 zM??UK1szBL000SaNLh0L01FZT01FZU(%pXi00007bV*G`2i6N102eIXmGg!G008?* zL_t&-(_>&@VDR?$FgDQF)zQ*o00BQ2znMPn@zskLX)Ohbn3YU%b#(2^w_UhEYbi*? zvnU~DNs6DN$^3ah0ia0WoSMW42YVOOxwExEfWfJ~HaF18$JyAy1YxtC>V!}O^W`@6bYH9!J}arLuiOq$r!)zQ+Z4ieBStL!apD{d;t z&Z$!c39yKWB}v4JM+x%?W-5aOnCT6hQ*ZctxYxIM{+&*#*+&K?001 zh1tB$+yPu6X%(^{0j9j>Ea4zQUxDPRaw(92wx*`Knu?NwoQ$-jBmn!2Mt1LUIj;Z! N002ovPDHLkV1mq52e$wK literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/pl.png b/www/templates_shared/images/fileicons/pl.png new file mode 100644 index 0000000000000000000000000000000000000000..ad2324e3595a49d8f454e1801ddfd5b3c4e0b521 GIT binary patch literal 871 zcmV-t1DO1YP)aYO+`shMoCUZN>4^gPew{mM@mpgOHfc%TUCI_S%Jn_g2i2g z#9oBNVTi+GiNj@z!e@)YX^g>aj=*k?zjBbja*@Awlf8PCyL*+qewVs}n!JUbzKEc} zi=x7eqQZ}*#F3}QlBmX&tH_tE$(gLitE;S_vBh%FD~k z%fijz$<5Wx&CSHm-^9=1#n9o<(9p@#;m_0C($mz_)6>+{)XCWG*Vot5*x}6C?akTk z&e`nF+U(EU?aH6O3`{C*I-s=0`>iXa6 z{NL;R;OqSA>gwR^{Ne2T;q3h4?fm2I`{V8Whk>S^8M`d{q6Jp?ezZc z^!@Mk{`>p;|Ns9sIzPL@{__9;00DGTPE!Ct=GbNc0004EOGiWihy@);00009a7bBm z000XT000XT0n*)m`~Uy|2XskIMF-Xk7yuV1N=GUV0002`NklU;qIZ8<#20b^$r_<|-@zi5R5!*jm}PCYaBet*`(j;*b&;GC#z{N^jOopa4+B zZF+8yucd{J{)}k~Ai!W}R; z$|v@Bv^6x;$bkg3{fnng?&@f6sH?7!1qo+r6402`o5{<;}3k zU{`fxU36w>xmZMmZDgWmN04t+uW3tFfXJ$BOjm)yg?VsUfyP*Z#gcV*U4+C-q)J|d z#DaU4e1V9yZ&RdqUSWvCVu{0Lio$1$!H0&0uzOZ%jKPbCj%<#=w|HxAj=#8iWO9(d za*@Beeq?r&y^@ZMf}Lu)fpB`2yNi#odzHMci)+q*T7H+h#Dr(ef?TzYbb^|^t&oDP zk$%65c;bCvp_Q4_hhK%AzS4+Y(}`fkkZHn_X`P&-tCpRmnV!#(V#AYj*o8NwD!-BxIs;Rrwu)D>oyw&WkdF-!xtH9K* zzSrimg0H~X)wiv$#MraL+QP|`?zn`v%H8X~lJCBa?ZJ@V#;57Up76w#`NN3d%B{W9 z=g`xx;>)b^$e8oWoW|DT@6Mpp)6>_}(e%%v%-ZqD-tzX^vDD=H?c=`D=KI#<`uE_t z*5&%v<@?v=``G3B*yj7$=KI;_``YLF+UNV*=lk~M!QANk-01w=>HFO2{N3sM-s$_^ z>igg8{OalH;OqS0?EK;E`{C^T`s&5v?fl~I_v7vS?C?)~uX?DFyS?eqQY^!)4f z{_XVs?)3fd^!@Mk{_yqw@b>-j_Wk|%*YfxM^7sDp_x|+w{{R2~W>QP3VV9Z!0004W zQchCl$fr)NKyx%f?5MW?fWftwsBNJ$D=-;w(`BI>OriZYXQ-TW%hiCnY zrHk|#VidUfqtXhBOKOYk7cX9*#h|2T9g&_@-jEnsCbw|jTr~z!OD-{6R?~bz4Wod$ zb7mxqDhDQ^t(x zlPB~^fE=c6=gTfqHGS&jiTyo7Ac2q+*TT-}QzlO6?P})*2^j0>sHrH*N{S2cadH9x Xn4(mS6?pR-00000NkvXXu0mjf%{Dl| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/ppt.png b/www/templates_shared/images/fileicons/ppt.png new file mode 100644 index 0000000000000000000000000000000000000000..adaefc6025a7e9dcceaa275652d5988d818505c6 GIT binary patch literal 762 zcmVMZT zIjT%JuTVR@PcO1lJ)K=hw^%{AT0*d2M7>@`*;y;UVMxGXNL7HyS%Jn_g2lsSOT%VM zU4+D5gv4Qp!^dk+Vu{1ZYfoj0!e@)YX^g?abX&}EQ_OKxY>vQgj=yq{zjBek(05qT zcUX3ly?T|qdzHM^d|ZB)y48JLf||V9fM3~xVD)=Kg`K|JgJOuF!0v)ni=x7eqQa4< z#^{e~@R3~bl3VbRXP2zWkgnG7mT2&nYw(w9ow3dEoL=ymaqydG@SR=opl_qL(eR~e z@TPRByVS41*t5gh@V0^Qy^HY0lJLow@Xew2*2dD}`qbn4*5vxv<@?#@``hRH-01t> z>HFa7{Ne2U5V{`~as^7sDq`2O|z z{`dO+`TPI>`}hC+`v3j=|NsA13=hO(4mSV*00DGTPE!Ct=GbNc0004EOGiWihy@); z00009a7bBm000XT000XT0n*)m`~Uy|2XskIMF-Xf5DWtZ^01i`0002(Nklm+rR{rPfs&okd_n^7U1JxWoFFu@kvY7207goY(7XnHAMp?;FOo+0|6ZlTMFQ=Kufz07*qoM6N<$f|A34cK`qY literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/ps.png b/www/templates_shared/images/fileicons/ps.png new file mode 100644 index 0000000000000000000000000000000000000000..487c3cb7c241eb56fa023ace49fa2afcb0827e23 GIT binary patch literal 648 zcmV;30(bq1P)Px$BT!6KMe6bV00030|NnlMy8i$G;_dwF^8M`d{qFSr@b&)i_Wktu{`UF)Re;Fm z@BHWR{C1PQdzHMEtH|2t`{3*R;q3e2?EH+P!jGlI=A{7ZjQf&jF)ndzjBekVu{1#?fm2J{pIfbP zXN$ptn!JFBmZP@OU4+Ez@%-!Y{a%E`VTi+6g2m(Q`{V8Wp|s9ffyVLn{pauem#oQ} zuFIXU&7HB$q_)wgxznk;)avs5s=U>%zSr&Z{q6Mq?ezYyz}U0H+SKIw@Aduf_5Rl7 z`q$L;#2d9Y_EG010qNS#tmY3ljhU3ljkVnw%H_000McNliru*$5B| zBodd1gcbk*0MSWAK~xyiP0o93!Y~vC@SLPw-K?F`SV5=I>RxSSF9&Wb8-lQbiet3w zp;`9*KZUtfWCzYaKazVdV~j0dN7Kp4AQFO60930#pGO}R!Ak+>z{_E8F%x_*9NoEd zV1UH3EN<$&bp(Z3hRb%^-Y~NXz{?(cX<|43z3}2B2;|j%MjB^UWPen*gL`hFZNlr#ePew{mM@mpgOHfTxSx;13P*ht`Ra;en$XS8LSc1h}gv4Hi z#9@fTVu{0Lio$1$!D)=aY>vQgj=yq{zjBekc9Xq&mAiYDyndIuf||UAoxX^mz>A{7 zjH1GirNoh^#*(PUm8-~?tjU?I#;dEWps~oXu&}YRva+(Wv9!9kxVpEwyt2B-xw^W# zy1Kf%y}rJ_zrVl0z`()5!NS7A!^6Y7#nr~f$Hd3V$H&LW$jHXY%*n~g%F4>h%FD~k z%fZg!$<5Wx&CSKo;l|P7(9qDy)8Wt4+tSn2)6>(`)YQt??9ABg*Vot5*x}6C?atcl z&D-wI+wRZX?a$lp(A@6P-0j@l+|u6e)86mh-QCsS?bYAz)!*>m-rm>W?$+S%;Nald z;qTeu@YLk`*5vxu<@(^{>g43)+2;G&=K9*_`{w56+vxk;==tI2^Wo|A-s=0`>iXa6 z{NL;R;OqSA>gwR^{Ne2T;q3h4?fm2I`{V8Whk>S^8M`d{q6Jp?ezZc z^!@Mk{`>p;|Ns9xK0^~)QR4sr00DGTPE!Ct=GbNc0004EOGiWihy@);00009a7bBm z000XT000XT0n*)m`~Uy|2XskIMF-Xk7yuU?j7#&p0002`Nkl*zT z$|v@Bv^6x;$btm4{K}?I?&@f6sH?7!0SRbKo!pt3mR^}snouGI5>TJio5jh>;mhmI z6Da`_Q0?nVW;SN@=CS3D5CaLQv@|6xWMq%_;&RUs0SPEIHpDY~#T16K1m_BY1Qctk xV%egK3c{FzviU&*3UYEX(vsq$!h!;Pd;o0xMAs}_!>0fM002ovPDHLkV1h9X3Vr|p literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/ram.png b/www/templates_shared/images/fileicons/ram.png new file mode 100644 index 0000000000000000000000000000000000000000..1a54d76543714461a203906a8dc835d67454c87e GIT binary patch literal 806 zcmWmBYe-XJ7zgloNlT5cl8q?QBG4l6SP6b8bWP{XOs8FTN}C=^;+Ul?iB5>g5v)!Z z>vUy`DeFd?iOdhWc~1(;ZZ@asv~oL6=Z@KI<~e8U6@LH!%kzAEpR4I<@)f}wf&l<4 z6v;9rd{-|fFaUPsj#Zfeh+d|rW+k32+y)|05QPE+2Z#p5K?H&zK&k;!B2Y?5q&Ol) zB`HKy3Lc>(5G4_Xl1daqFggw+F;p3c(9 zP4?uFJ-L&Bodq{L3U9Vk6j^+`y|}8Krl^v;W`fpVy4OnF zGnGDQDSvDtwR%!(tf+3QtnJWg>Fae}R9)9CT~F1sUcFBH;MF^=-dx@IL1*l(Z~kmF z8eg>bzchU_v<;Ze=7tVyQ}I)4k3v;5So;QAv>LmtTI_6Tl|kM#)boNosDEBuDMzFDs@ z>-GKd`aJVKznAs<{St|!qCSX*#}l1bre%V7hxOFrkhfnh1C>iRCBq@;T(U|7!1A?= z5q%jc<>7MKdBuUmWtQaqA4nV-P9b7MVA8DrKNUPX&UVlfh1x-(zCFX3?8 zmpkQ`L&S>Ee>Gvm_T4AseLw5?<00Z$!+hAsoRXmS!lE{lsbGtErDZ-$$Qda1#~^O) z`>X)5IO$!?rVRhQ$feNm6h+aq;Lmb=k(`j()2({@}69 dL#m8~Br%vfum_vGP}l-L04NgEWCp3a{6Dj0vdRDe literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/rar.png b/www/templates_shared/images/fileicons/rar.png new file mode 100644 index 0000000000000000000000000000000000000000..a6af4d1cac16975bc6eff1bd9c1a02905e99db64 GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47?lHjLR^cBl}sG-N=!_$98Jni z(jC)HT+&U<(`T8K1b@rk+_y4i5-WNIuECI z9ZK&$nAvkMr|&>s-~OTr`->*-pEb**Z1Uc@vrMX{?yjD?r*8VL3njCfX6;E|ez|q- zKF6~Qx)&Xqxcu1kH7Dn8JiB{;ve2X1UWeCzJ5Sr=|yzIE&Jl_$Th z0nt++`hETB?;B5l-FWu{XE)7O>#8n*<4IDh@8rY}IDvz{)FArhC96A}^(E?m5J z=}JI&Xh=!}!`~e{ZoD}0A>e4mijKS(pAeS_j}1vSE-jKAJDz-*F|&b5LD1s9haihY z#Da#KCoD8BTz8-7$jQXBvqzZePwgI&gH{a=ZI%a5oWFhBd0wL;BhQYTy*+zv@5ZJ| zhA14EaNXkI;j2eIyBYpw*%pVq@UI2Mj9J^a8JU|tWare-);Qti-PO&-&Gq3UBLnk)^{Z1?%ijQc OjKR~@&t;ucLK6T`ZcQ@) literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/rb.png b/www/templates_shared/images/fileicons/rb.png new file mode 100644 index 0000000000000000000000000000000000000000..30670165f9e763dc867557f6c8276dabc6f440ef GIT binary patch literal 878 zcmV-!1CjiRP)iz|7#w%ge&e-pS3?!_MH%&CSNq;n2{~ z$I|1;)8Wt4+tSn2)6>(`)YQw^?bp}W%h~PH*x}CE?9JQm(cJCa+}zUM?%mzp)Zg#b z-|f}k?%v+s*Wd2e;P2qz;Mw8t+2Qchg43)+2;D@=H}t&^WEtB-0A$`>Ga;} z``_yN-|GC|>-^yB{OaoJ;OzY2?EB&D{NnBW<9?)~KM{N?WZ zGA#W@bK#L{Oj`l?DPHY z^Zo7g{_gbs@Adxs`}_a@|2RBB{LqBf00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG z010qNS#tmY3labT3lag+-G2N4000McNliru)(aQ_7YUY;C&2&!0Q*TqK~xyiV_;xl z@b>pG($~>cS5;*I0Y7KIX+CbzMGNMuE&_>|=JmNcy0)j=&6}&b2qfZ}9TUGW-p|o^ z&TOCnP$Y0>acsDQy|c-z8LA+_;8b6l8tCNYXgFi~#NO6spdOppyijLrtHi03dODjM z!4{c$Sq4{5p4ipV)KsSo5-^A=n?ALttF@`2wn_;kpf`PLcYaQ8bw*lwg#t)GcS?T& zFBeZFw_rqx97sTWLQfWltxy=dg+Q_lNI4^gP)<@;PgGk`R9aD0TU}mXSzl&aUuIih zW?W!qU|?WrX=!F{cx-NQZf$h=_@aiENI*ZjQf-jE{+olX8&1a*@A`j*xbfy^fKWdX>9- zmAsIWm6DQ@ewVtHm6ev3mV%nRg`K{dnwplIqnVqXh@ilWqQZ=#!k?d?ouH+lprD?i zr=OyxkEO(;qoa|h#*(PUlc~j|r>m%_sF$qCtgNi1ue_bH&9k$!qqfnhyVSP1y|lf_ zy}-k>!`i#W)xyNcyvEeL$JV{b*1yQt#mLLW%F)Nm(8H6O4`{3&O-|PI~>-^yC{Ne2T;q3h4?fm2I{N(NX zBK{p9ZaGA#Q^8D-a{p|Do?eqQZ z^#1Pj{qFVt@Adxh_5T0=|1U8#yDEAK00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG z010qNS#tmY3labT3lag+-G2N4000McNliru)(aQ_7Xkr8{z(7;0PjgeK~xyiV_;xl zhzt!0^7nGIv9Mr(fWYL0=!mcd^DGuYMS}fot(>Li&aqeo6$!9UNivk2JqsuR5%Kh0 zINwZk<_rrE014Q-&zr3)GGqGWiCvvw0dto`6>0uyQzrCvwgUw$U6tJAH6`>W_xE;m zw3;wTX-SDy7>nCg^>=l&wKN%lwD?S~uI}z>uWT%@Z_oz`cu!^F&1udOiWAJJ)dmT8 zOkxZd&g6>~h~gKV9!?t2{?2z#qgzb6x9{7_GhV*mgE literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/rpm.png b/www/templates_shared/images/fileicons/rpm.png new file mode 100644 index 0000000000000000000000000000000000000000..22212eafacc69e139622065067fbd64284d059de GIT binary patch literal 638 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47}WxNLR=L%nFIs`EEyQ&<>i9} z1X>I=|1&VW7Z6x#s98}_5!!Gfvhi3%)6v+LBXKQ95<3njbskRbI+WghFtg`iPTzsN zzWqfL_7_duUp9Gf)zsb9Q}@(O-_z7u*6q8# z{=kjRhi_eZ^6MH9Jq4oQ*Ps5r@$}b?XTNU((evN8p8vY_{P*qWzwf*NqCa*pS}O{?ET*tAO61l`1jSPKd(Riee?P6TOj%ZME~A>`TOq6zxQAMzW@5~0}y@t z`|;b~Pv3#)-{Ju0yFpGUGC@w3Tz><}i#N6x>p6+g~ z&B^BXtc7L6DwlM2ZEs`4HWm&KpOh`zjm*tN8aY)|ZbZ(Ol77W)XmH@C+A+3Wx0n>B zH|;PJJLbk#Wi_itfiaRj+IvBnZLBVDY2Ji}o+(pWcC6T-V6V?FF3!;5YPeb=w!I(d OIR;NxKbLh*2~7Z%HA%<- literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/rtf.png b/www/templates_shared/images/fileicons/rtf.png new file mode 100644 index 0000000000000000000000000000000000000000..d8bada5fe143ec1f3d13a958cf89ca762a1ffd3f GIT binary patch literal 474 zcmV<00VV#4P)a##n;IU4+D5gv4Qp!(xfUWs1UQi@|A(!EBDeZjQflkiT+~zjl+odX>9-mArnJ zx`LX#g`K{Lpumfw!i=KAkEO(sr^b?~#+9qcm#oQ5JZE$BP(_h8y%^3!~g%5OyHnSb{}%*o`f;Rj{BXySPx#07*qoM6N<$g2WT>M*si- literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/sfv.png b/www/templates_shared/images/fileicons/sfv.png new file mode 100644 index 0000000000000000000000000000000000000000..da20009c6ebc28d8286577735f0a2aed9402fdf5 GIT binary patch literal 542 zcmV+(0^$9MP)ipsC{NwHXhk^T^8M@b{_OJo?ehKY^ZoAg{_gbs?)3ie^!@Mk{qXhu@b&)i_Wtqq z{_*$y^7sDp_x%TEqudB$nZInuwrvMP0JG9BOzzh0ezk6zs>pvBoiAh|OLc&u8Fey` ziY$o~K;Jx&g(y@3dIv*?e@PVfWq^*Mlf`~l1ZXGs9iIniYARXqTo!;y?%Xy7(4c9m gRw)&7nRFQb04&@fraZ$Zy#N3J07*qoM6N<$g3-nx`~Uy| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/sig.png b/www/templates_shared/images/fileicons/sig.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8b19d2b391858880fbe73f21ed4743db5adb0c GIT binary patch literal 610 zcmV-o0-gPdP)+=2V^ZoAh{qXhv^!Wb&|NoDr z#Q&K9k*CIzsK$`4)|#%%ov_XSnVFrj&7ri;|I7gY%*@^0-PGjz*yj7$=KI;_`-X;w zWs1Vv=lk5~`{3*R;_Uq7?fm~{X65evG1vN@%>eR$a|H%?eqQZ z^!{0a#_#m~?)Cof_5E0a#qjq1@%H`k_x|$t{`2?#h@im#|CwEc#9oBN-Rb+@>HFX6 z{9%a0f||VI?fhbi!{qM#X^g?6w$Y@v(Wkl7=I{OI@cgN})T+GIuD;i=z}V^W{p#`k z>+${S^8CQSz_Y{Ji=x7eqQY#Bz;2Ge*5vxu<@)dS{?_ID*X8@z<@$1vzw-C}a*@Aw zlf9Lz$d|0inKLswg+X5c0004WQchC2MFVj0_gw<>9fS}?Ww^x0%NhYD wx4E&N|eFaQ7m literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/sql.png b/www/templates_shared/images/fileicons/sql.png new file mode 100644 index 0000000000000000000000000000000000000000..f60054a3af72ed4ae2809f513064dcde5416fd50 GIT binary patch literal 865 zcmc&x`%h8<6uxP$bTe6{E7xXiw#?OfS+-J_PFK!mCf1A%NfcQPFcrfzwUiW4C})gG zB1&uGEL++Pg~SWKm`dts`3R^=h*||>&G^7{+*j1W# zGb72*&#ywzzq7MrcEXM|WN8)oy$nmGQllMau~^m>L~nx^9k4>7sFSD`tlo)Uj!pki=1u>p+c0GjH_@-fJNDHibgbYPHqX)h?H7-U@ehbuk!>x4qM9wVFsI z*4EaVoe1;IKtuZom&-LSc^4sA^l7rWxfy~W8c(^lxovVFjnYw>Oy*oiSYpuWbQU%! zAJl_2q5(V}-`(Bq@pw!olYJGTQmI>8Tce|+eSLi^8{25%f3h>{(N|T_(^IkN`Tqu( zh%*em$U3!wcNe;qz&UM5B6Oiyt`X2555XjlEW@Q+Nb1= z9@Yh6CmY)#rXUAGW;uS z7g_eRpeCnxxV6_im^iZaszU0pUPDz=hd#ba#E5Y1IdqHm`n3@t4 z^SzZOaLF9k0xurP6u(ZB)ZySgU_to)l7WhQU?L+XE95@#O?MWPw{j*FjSnOzr6zVI H+^_lz+FU7X literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/srr.png b/www/templates_shared/images/fileicons/srr.png new file mode 100644 index 0000000000000000000000000000000000000000..da20009c6ebc28d8286577735f0a2aed9402fdf5 GIT binary patch literal 542 zcmV+(0^$9MP)ipsC{NwHXhk^T^8M@b{_OJo?ehKY^ZoAg{_gbs?)3ie^!@Mk{qXhu@b&)i_Wtqq z{_*$y^7sDp_x%TEqudB$nZInuwrvMP0JG9BOzzh0ezk6zs>pvBoiAh|OLc&u8Fey` ziY$o~K;Jx&g(y@3dIv*?e@PVfWq^*Mlf`~l1ZXGs9iIniYARXqTo!;y?%Xy7(4c9m gRw)&7nRFQb04&@fraZ$Zy#N3J07*qoM6N<$g3-nx`~Uy| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/srs.png b/www/templates_shared/images/fileicons/srs.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd174e2d5161ac5c38519f38eeea48c43bbe5d9 GIT binary patch literal 616 zcmV-u0+;=XP)P)t-s00017 zTwH#ay5jBp-s=0`>-^yB{Ne2U-01u6^!@bs{@UmJc9Xq(mAqAe$c3H0>byVR<@)vmtRufW)|!`js3`qt$7*5&%v<@?v=``G6DWs1Vt=lf@i!D)=aY>vR( z>HFO2{N3sM-Rb<^>HBVuzuxNn-|G9{>ilw$zjBek;p_b1?EK;E`&og;;_Un4?EHF_ zyI6w7U4+Dfn!H|w#9@fTVu{0yqQd3x{pRod=kNUI@cfUZ#OUz+k*CJ#@crrW{p#`k z>+${S^8Avh#+9qcm#oQ}uFLK8{q6Mrov_XB^#1Sk{qObt@AdwjvCW~h&hhsB@%R4n z_x+=`(ewBIq_)wgxzo24Z%6U%T;*HWjQ${(PG=yy1?D#StgxK z#Ox*02npO|{5`I*494dLu8&Bu1_lI21&;U8ESiit3=IqH#aYFi!70ipsC{NwHXhk^T^8M@b{_OJo?ehKY^ZoAg{_gbs?)3ie^!@Mk{qXhu@b&)i_Wtqq z{_*$y^7sDp_x%TEqudB$nZInuwrvMP0JG9BOzzh0ezk6zs>pvBoiAh|OLc&u8Fey` ziY$o~K;Jx&g(y@3dIv*?e@PVfWq^*Mlf`~l1ZXGs9iIniYARXqTo!;y?%Xy7(4c9m gRw)&7nRFQb04&@fraZ$Zy#N3J07*qoM6N<$g3-nx`~Uy| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/swf.png b/www/templates_shared/images/fileicons/swf.png new file mode 100644 index 0000000000000000000000000000000000000000..0729ed0203ea2b0b6c4402d9af5fccbdc2e6397f GIT binary patch literal 843 zcmV-R1GM~!P)fn0HfUvq_8ewJi`l~sVqS%Jn_g2i@# zie`nIaDtR*g_>Q2#9oBNVTi+Uh?`=G!)1!XXN$pniIr)L!EBDeZjQfwjhu3jzjBek zc9Xq_k(+vzyL*+qf0wC-m8E`{x{8^nf||UAoxX~qw3DE&i=x7np{-y~VD+*R#ONufW)|!`i;a&BDph$HFO2{N3sM-Rb<^>HFU5``+sO-|GC|>-^yB`{3*R;OzY2?EB&D{NnBW>Fn_1 z?fm2J{NwKZHM{pRod=I{OJ@crrV`|0uh>hk>S^8N4f^z8Hf?eqQZ^!@Gh z{_gbs?)3ie^!@Mk{_yqw@b>-j_Wkkq{_^+z^7sDp_x|_y_w@Mw|Ns94E>7zd0Ji`D z00DGTPE!Ct=GbNc0004EOGiWihy@);00009a7bBm000XT000XT0n*)m`~Uy|2XskI zMF-Xf5DWnVDdk?I0000TbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJAXI2&AV*0}Q14_V zZU6uP{YgYYR2b7^U|?Wyv^Fy}F*4BA(qe!BhxYc?=7zdztq!P&U3*JoeQi~RRtHqX zrlqN&rn0;gC;%3*l;z}ZMuFSNQ#5ffO9?!B+7A8h}51zE- zxY#Hq25tK`4Ms_)414XQxajZ@c?Ks|eE67PphzauZ0{|0Y VJPmL8*75)V002ovPDHLkV1j&6&w2m= literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/sxc.png b/www/templates_shared/images/fileicons/sxc.png new file mode 100644 index 0000000000000000000000000000000000000000..419c183c1f03be2f23be09c8d5c4db53d6bc2287 GIT binary patch literal 749 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/tex.png b/www/templates_shared/images/fileicons/tex.png new file mode 100644 index 0000000000000000000000000000000000000000..e46a5166f973126f90d4525ede316d4acdfa9672 GIT binary patch literal 890 zcmV-=1BLvFP)s zK0`e~L_aj=*k?zjBbja*@Awlf8PCyL*+q zewVs}n!JUbzKEc}i=e!VqQZ=#!j7cFk*CI#s>heC$(gLitE;S_vBd3R z%E!mY$jHdX$;`>g$;!&g%F4^j%ge#d;KI(~$<5Wx&CSEl;KR@1#nIu=(9p`%;>y(H z&(qt|)6~<`)6CT3)YR0?*5k?8?bp}W(%9k5+3nBU?a$or(A@3O-0jlc?a|%v+}zyK z-tN=h?$h4y)ZXpg-QCsS?bYAz)!*>m-rm>W?$+S%*x>Kr;NaTg@73h_+~e@q<@?~| z>e=P_iXa7{NU^S>gwv??EK;E`{C^T z<9?)~KM{N?WaGA#W z@bK#L{Oj`l?DPHY^Zo7g{_gbs@Adxs`}_a@|2aHC@1Ds;00001bW%=J06^y0W&i*H z0b)x>L;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4000McNliru)(aQ_7B^1o3o8Hs z0Q*TqK~xyiV_;xl@bqyr)YH*aQ&C|60dEKISzfM@RZAADECY#{lumWDb?nczTC`AQ z8A!yvFe-j&ytl2nwU@v|!`I&4)?m);X;b=ofqE=s zN&_7%%oAo#pFFX*3v7|8hgm@LjA@f5ba%Hafdup;nr6?OJgKj{v#muDB%oVSR@PHe z+*;6(T`vz3&=6qakLKVD7jhO%mIVoD$Fhdyu(&jaa0k~)g9NmSIPU)j?c-<>DX#wJi43l;zC+Ja#;BA|L@(Wo1PLITa##n;IU4+D5gv4Qp!vQkkiT+~ zzjl+oos(Lll|y=!yL*+qewVtLnP!5TyrP(LuANGSoxX^mz@?s$i=x7}r&qA0c#)^Z zm#oRMs+OIx&7-!_x3sOvx^}6%)Wf@DR^T-K*!@HOa5 z``+sN-s=3{>igg7{NL;R;OqO~>-^yC{Ne2T;q3hO?ZD#g{NwHX<9?)~KM{N?Wa zQK}ID008(&L_t&-(=EhGN+h{j(O0A&PXkn5tDpT92j2f_&_La1F|NqB^WB228?mg!M0IV)8%+JnD=P8AD zR+`Q4ug{M+8vn~OV|MHP^@YZ58MImCvz_NB0YVnnZJSLQYliVilfYanjzZlkIinAE zw~c^;{^N%s^9wn0e{&UFh{kW^I0a2r$@L}Y-WcfN)~2Q9R7Gy^^SYY`y~M1drYc0@ zo_n-E4CBQO(^QEfNoVdstvUpd)l8E}l8m^Ahy&tSM^+=UhsRi}l(8?lIvMc#$suB8 y7q@#7$a|+K=2#Y!&IBehne+%^e{XkJD)k4(NHPO%2sYFJ0000ipsC{NwHXhk^T^8M@b{_OJo?ehKY^ZoAg{_gbs?)3ie^!@Mk{qXhu@b&)i_Wtqq z{_*$y^7sDp_x%TEqudB$nZInuwrvMP0JG9BOzzh0ezk6zs>pvBoiAh|OLc&u8Fey` ziY$o~K;Jx&g(y@3dIv*?e@PVfWq^*Mlf`~l1ZXGs9iIniYARXqTo!;y?%Xy7(4c9m gRw)&7nRFQb04&@fraZ$Zy#N3J07*qoM6N<$g3-nx`~Uy| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/url.png b/www/templates_shared/images/fileicons/url.png new file mode 100644 index 0000000000000000000000000000000000000000..672cbce420e363175b7b7c9d06a7a20e183cb174 GIT binary patch literal 748 zcmVg2hmV$5@2EU4+D5gv3dX)M1FjVu{01 zj^Aa9!dQ>gXN$pUjKOb^t89+IZjQflkiT+~zi*egc9Xq&mAiYDynLIQu9i1`m%3x1 z+NqdIf||UAoxZr5Q;49ziK4ZOqQZ=#!gi_MfUDY(r^cSHm9VjBm#oQ>HFa7{Ne2U$M0MK^SO5S30d!JMQvg8b*k%9#00Cl4M??UK1szBL000SaNLh0L z01FZT01FZU(%pXi00007bV*G`2i67<3<3voqWS0m008JoL_t&-(_>&@V2FlS*fPmN<2ym^1ibP9uN>x=>RJhhcL}b;Hf^?)gLu-KoAQ9Pwyxh28O##MoR}f%e z;7_kkP4rR{<0=geEh%O=3Eh#Q?Wnd4mN^$lvRhQ&uED9|ubYx)D z^S6)ESCtcDWh^c#EO2085H@!+if|X_U@i&`Ey%ZJV5pN?_XP*_l)Kmedf0AN^Put)%4U|^t75U@}HU}#{#Pyldf zV6a#auvj2)aB#3-AaHnaz+fQIU=US+$XS8LSc1h}gv4Hi#DIW+VTi+GiNk=1fMtrp zXN$pUjKSb=AZ(7nZjQgucrcKNkaCc}a*@Awlf96Tkb0H7dzHL?m%4(QyoH^<;D|ur zh){^2z>A{7prD}OkWi7Q#_*6(;Fw^StjUnB)}67ipm9{Nd~T;q3h5?fm5J{N?Wa=+}8W^Zo7f{qFPr?ezWb z^!@Ji{_yqv@b&)j_xL;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4000McNliru)(a6294et!htB{2 z0OUzTK~xyiV_;xl@Njjqx3w}iHZ)`a13fJzmm&}_EC!2+%3J7hI20D-2o6$VU=ZQqVrOQC$Oi=~f*fxa9~%`B22v3iAO{jK tj)lnw_)CKXj0_BPbu?6!6=Y?kqyP!8H-q$|e>VUC002ovPDHLkV1lRDU{nAA literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/video.png b/www/templates_shared/images/fileicons/video.png new file mode 100644 index 0000000000000000000000000000000000000000..b89fc52995fa519f3b84eeb069da835a4b8ae686 GIT binary patch literal 740 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 M07*qoM6N<$g8p3JS^xk5 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/wmv.png b/www/templates_shared/images/fileicons/wmv.png new file mode 100644 index 0000000000000000000000000000000000000000..b26f45d5f3655d9039f1655c5f6ab1965bafe0b5 GIT binary patch literal 892 zcmV-?1B3jDP)+H!jggmnmAj6Tn0uAHc%yq=sIGpOx`LX#g`BvNq;Zy-pM{;ih@HA}tf_OVwrZ@- znx3SAv~`Q3!dk?XWyFDS#%W){yJ5e@psS9OsK#`{kd>>*rKqi%uFHMH!J@FkkHp8e z!qmCL)V#*jz{k|T$kx8f-oVV>!OY#j%;3V!;KR@1#LwW!(caC`)5p@`$kO7<)8Wk2 z;>p+S&DrhF+3e5T?aigg7``_#Q;OqL}>-^yC{Ne2T;q3h4?fm2I{N(NX<9?)~KM{N?WZueCoFDF=+`JDSper zA{=6R@u9B12HFuo0iXyQyJ~D)Mxe4<&{97TU|`^4h)fF8Qt?{4c;4J;Q^BS<_$VrQ zELk{z&djNk!2&u`lJ<)h%$qf1%9M$oAc0hVv&9SN%$hc3Qh%=-NFaGZ=j`e26I%Lu zn!BtS7*;SOb||z}$>qwHH_8{Yf&@ZZB`U>vxVeQ(MDm$H0-QObrGnYASpo$@d5l1T z6)e2s<>C!ZwIW3_nan^lSC|V_)Qi`3*9cV?N^62_@%Q$2b8)n@u`)F=Gz0)(S4zd9cNsi)A3l2?I(;WUeIY`CB}RlSM};jyi8V)vJ57u>V18UrjyXt@KU0%H zQkO_ofXG;wM_GZ!Sc1h`nn_-mRb7O{UWCM0o>F0m!(xfUTcTKBp;Kjw!eO9TVWL!L zi@|A(!El>xY>vQgj=yE6TV$wUa*)4rk-ulEUv`tdX{};vtYvhiaC()ydzHL?m%44R zXM&o%g`K{KsfCE3z>A{7jH1Gkr^cMHo0qJ~kgnE{y^EoEGMu``qaJ-s$_` z>ip&G<>Bo7KO{OIug>hb;S^8M}e{qOYs@b>=l_x|+w{`L9(_xk?%`~Uy{ z|20V(8|tE!00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG010qNS#tmY3labT3lag+ z-G2N4000McNliru)&>v^0uBp)K}-Mu0N_bPK~xyiV_;xlh>i>o_V@MnaCK#XfT+rf z^0LyBV%I8=h?|3zp{BCDjFfnhYZXYutqKYR3xNVa5w{R)m8w`REkC{jR}f&Z%L;Xr zbuyNV=gH5@&B=CUFsX`*Fp%Jlsp16jGhG?fsseSx3`ERR*>eK|GBcbR6a&SCxC500 zf>?p_8R_;6(jXf=g*gN!O+ilg z0h9-mArnJ zx`LX#g`K{Lpumfw!i=KAkEO(sr^b?~#+9qcm#oQHqoiI+qbYoQxaC=z#GKJ6GyrV#Y%diC zV*nfN2mTPiDos?v_xb>q+V|WpfO*VS!gbmJEbTkj27sAq8k5nW*J(A2;s+OY8o;O9 Rz*PVM002ovPDHLkV1g7-^+Esu literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/xpi.png b/www/templates_shared/images/fileicons/xpi.png new file mode 100644 index 0000000000000000000000000000000000000000..5e537e23757e36ccf0befe087a1651288ea97155 GIT binary patch literal 952 zcmV;p14sOcP)9-mAp*ELrcd$P{T)lm%2~IM@+~-Re;D($V7sgyj8|dRmV+N#!ptqO;yNE zTE$aT%ScqqNmt2DR?16N%SnZuzKEc}UCUHl%u-v;QC!YYi=x7eqQYIzQeMwfVa-{O zrNm^ZO>_ytH_tE$#l`q<|C+2;G%=lj~{ z`r7CF+voe-==HFR3{NCyN-s=0_>ipm8``_yP-|PI~>-*sA{Nd~T z;OzY2?EB&D{Nn8U;_Uq5?fm2I`{V8WBK{p9Zahk>S^8M@c{p|Do?eqQZ^!@Gh z{_gbs?)3ie^!@Jj{_pku@Adxh_5Seo{qgqw@%R4n_xj(4)n1zH_(!lWPpIwJ$rWV+_q)CuRgYOW8n%YESIzXltsisj4U|W&sIkb+tDGwO5pv6csXp1mr|Tg#@@c*;$#H aWMlvr9ZY5)*#@8h0000E2i zP)JKpNJ~&jPEActQBG4?PE%V?Q&~?`TTxY8QdV12R$Eh7TTNhBR$EK@jKPG6j)04qY>vQgj=yc8YI={Xa*)4-kdJba zzjC8(c9Xqzreuwgmw=S8dX>A5l9+pyym+H~U8t^pm%4@F$JW5h-oeb>z|7#n%-+Jy-^9<~#n9iy(Ba3>-^S75$kE=-(bLG% z-^bG9$kO7;)8Wd~;?33L&)4G1*zL>N?a$im&D-wM-tN=h?$qD!)!**d-|pAo?$_b) z)8qNt;_%$$@!973-RSz<>HOa6``_yN-|PI~>-^&D`rz#R;q3e2?EK>G{NwHXBK{p9ZaFhw0002_Nkl3HP5$*xH8qq)jpa>(Aa$-_esG>^Psz4B6U|?m4NsUxj z@?EuJ@xs}&z^2&y%PV-TT()Gvyje5A0-9o?cFUJ8o zlt~^Sfw)C|b9$$BPi}9WFwup9VJ!oDgIv9AolLEOcy+%6P{CU7E|DssGQnb=9H|y- zkU&tUaD`BbU=d$FZ=)qhz_~*vSGtt1kULwV$rNM;OIwX(c{5)g8&^S(A;^|sKR*vQ gM_VfkVc>n+a07*qoM6N<$f~#@SVE_OC literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/fileicons/zip.png b/www/templates_shared/images/fileicons/zip.png new file mode 100644 index 0000000000000000000000000000000000000000..999ffbe80707d6c2bd3674895f62e824a2668522 GIT binary patch literal 874 zcmV-w1C{)VP)vQgj=%q2H*%1_a*@CPVor9Gy?T|qdzHL?m%4(Q zy#H!(g`K{Lpumfw!i=KAkEO(sr^fi40GO%Hm#oR1vCXHj%m1qYqqfoet~aT>)c>qT zuD;j*y#TMk*tx&jv%}i|sIj`!;M>i^?8VOU$*}+0Jpay!|HZ}s^%d0Q`qt$7|KF+B z<@(m;``6|B*yZ}z=KI;^``PFF+UNS(=lk2|``qaJ-01w=>HFO2{N3sM-Rb<^>HFU5 z``+sO-|G9{>ipm9{NU^R;OqS1>-^yC{Ne2T;q3h4?fm2I{NwKY?B?)>HM{N?Wb z|MZ&X@BHTP{pj%h|M->Z@%`)a{p|Do?eqQZ^#1Pj{qOYs@Adxh_5Seo{qgqw^7sAn z_x|(u{`C0%|Nq_p|Nj600QuIUTmS$70d!JMQvg8b*k%9#00Cl4M??UK1szBL000Sa zNLh0L01FZT01FZU(%pXi00007bV*G`2i67<3pW$b2KlA{008<)L_t&-(_>&@V2B9| z2@LS{@^E!!fPkp^^XJW(HDj9VLa0c@{JFDdPM+Wc0qL`w@)8E_O*6PZjy>Q`z38}LFs=R$&9j(o-3|b2_l0*H( zgH-rC+gn;1oEh{M_9O*I%0;X5wY40TS?RZK6P)$bmtfBa_T{rmsVufH!rO2O)W0!b+P{TrwO zAb?mv&i(NBbu;G`sX*)cv$d*%>MiL-(QdhpkjakVmyu%k;sfcNRj;yhJaxT5MTg0u5&QfH8#Bf O0000? z0048MLcfb{@Lpld*gfdL?Z zSQvhRtN^J#x6%GQNHxSfxHgc;AD{-1tAIKH0tl!9q}uD*5!1Kl8Kk6va!f$;fJ%WL z`2Cv^NdEc54D$xi27mx!VfgXqT8ME7!~2)OPy-`SXu#NiAkhzFFflLy1Q-A_8F>@M S6G{sJ0000h<6BFn%a z@b8~2SoNP@zd$;E{sbbRuHQd?{QCI=sNwhbA3*&Qe}GP900=;09NYi^fU@pUdVa9*13;+Sd!tjgXKhXQEMobL97(p6<{RLvMGBN!7 j!N9=G@a-1^K!5=NcXWu!7_DDe00000NkvXXu0mjfeQx^H literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/dk.png b/www/templates_shared/images/flags/dk.png new file mode 100644 index 0000000000000000000000000000000000000000..5253b65ff97611cc30e8e5d01ffe607db353b617 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~o!3HGD9`RZNDVAa<&kznEsNqQI0P;BtJR*x3 z82FBWFymBhK53w!WQl7;NpOBzNqJ&XDuZK6ep0G}XKrG8YEWuoN@d~6R2!h8cb+be zAsQ2xPBippb`)scAIopc!Lq1DMA27jb;z}{e@xQ#y#gQdZ{Fk*V|y~ILB^?Rj`l;n zMLVp;iszi1D=rehd2@dHJ)3*8jvn0^aQO2Vp@x57R{gu;z_OvfYMUz`yRvRpjjX)+ zbuEEA+KF4WGM)FAFY%KLPPn{arPl4Yb=DKUN(ZfxmR_O}wcT4}<&(dM=kl;CS3SLU z|Ip5!<*8kNFJIyRvAtpEQx`t zb?@v2%iUhun)R(Vdv3&#Q*+_n-Fl{KtqH2Pdw&|SKCr#181RUDL7LYdP4=LBK%X;s My85}Sb4q9e0E20g8UO$Q literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/en.png b/www/templates_shared/images/flags/en.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7ae5f9fa4a1491e47f3a051e32da92747d52bc GIT binary patch literal 1772 zcmV4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ z8yc;~21%2p?MfD<>DVeH9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHk zDym6Hd+5XuAtvnwRpGmKVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4 zUjrD(li^iv8@eK9k+ZFmVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1 z^c?U@uwSpaNnw8l_>cP1d;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D z^(E_=$Rjw{b!QT@q!)niR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvu zh*8ej?;85ekN$?5uuCiSBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_Di zjopiF$2PET#mZ8eu=y$(ArYkv7@Ex z`GL?QCc!_*KFrd&;n1r7qW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~ zU6sC(E(JNe@4cTT*n6*EVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00009a7bBm000XU000XU z0RWnu7ytkQUP(kjR45fyl3z%ZVHC!n_xs*COET2Z#4 z^PKmHf^F60xK)Syt`7YE<_8oN5GqDTn=!Dzj9ZD5BOV-dv_nxORCO(~N~}2g={YJg z{E(Tui*WAI1vGvb#K6!;JZv3@VvR$oeIp9Duj5M=SnQi|ys8)~3{*QZP~>fe;_gIG zZwF*=pBE`tZ{TA22^`v6h6;}h`Ppp{iURZP0y|J31mItkaHn{oKJy@EWCBV;6LQDL z0K}f615P(3sx9>RdJj!!?<69fMHEiTqDZoBwGTSWN&oI6pU+1IIVlkE)9~<95+ko? zsU$Czi5#5-XXF`xSOP1Xav)MHZUWr*99XQsf7Wa0Li6H7an=U%7#$ zoj-#0zFCNdu2@|4`Xj5kLT%`al?B=W5I`&pe;NKW0^Ri&h`xRJ_x;0v zUa?=y?0^3M|NZ~}FE9c#{{3cP{Qd6}13&;Vf!z&M{pZWqKYu4MFm$tgedF}w=P#IQ z7-9gT-$11R0mKA$(qEu4%ok$*y!^wMRm*x;`R7|k6yu?K{s8?55I{^|9{?Tjhec2I zv+6&FhFWG_BbNVc|Ns94tNRJp!0`V!Py;{!F#$2enB#XZaohg-5%Tlk#oa&nzQW9g zl0Y{D4gK?n0U&@Fe=;yIr=|V7caH%YEYL84k`Tt9-wc2LGODP&y?7BIfLMT@X8Qey zK~fSFpuiXa$^kFP2AE)Ir2{}>qlLBSs|`Qg(SfB<4)VqlOE;Q=cD|Nnn$ zna02W|Nj1E&`=Tpav_4q;M$#E00G4E4{SI@`q`VGKvVzz{r4XmU}R+c_2(Zz0I~c7 zs`v*r?Dty(;z&PFFXX zRA5t=4x{1SIibD)Vqy6A2V^D4P_SySA|L?j2ip1XFA)9%V~_%1r~w2J3=}{2Oiu1 f7(RXZ0uW#T>&I!FfdIJb00000NkvXXu0mjfj-u42 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/fr.png b/www/templates_shared/images/flags/fr.png new file mode 100644 index 0000000000000000000000000000000000000000..8332c4ec23c853944c29b02d7b32a88033f48a71 GIT binary patch literal 545 zcmV++0^a?JP)lgG%);U`26kn-@hOg zU%!6+4+cOs(0HIde9xZz`}Onxub&LUB0x(30+2WcIRJn#2ut|?gWYu1Cf+!-K%B8# zdf?1WA}#uZ8oj7u>$I1i0Al&`=O0k%-@icgAIJnM0xA6maSq6BK-ECw|NZ*S`0Lj% z1_pot6puj;05Ax`F!=umqj7^frO?t|3^&I1kxUq9yECc+jQpY84SWH_0#pxl$?v~F z@*hy-KN0|X07U)z`4{NpU%#2aHUI<=%a31wK(7Du52Oc(|3O^?R1IN+RRjI-n*kVB z3=9AP#PZ|EACPLGJ%9cJNh|>9B%spYzZw7h1%?tp0I_@ndg9MNE>313@6R75NcceF zkr51-#U+7;F#`Sf7i0rK0I_`g_NQ&Z4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER00009a7bBm000XU000XU0RWnu7ytkP=t)FDR45gN zk6lON*%5h-2u~ z4SY*y0bK!_!ua?FjBMX2t$~AM53wtH9lCBnsU@i29KgQmr$3Ts4_6zZjjcF#?F4$? zB{1^%J+2PEh8_rFYtwRUSX&_`AAC(KaG-q?6!PeZu0-pz!7mlV_iErh{x+UGKf#$j zCbNB)m~$MiZWy9NaxS=vxyle7nVCmNIU7I2uU%akIcrjI3s`iBJItG`R{gx+cZVM$ z&0?@U)BLh}F4Tm*{-?P=!_4QIqOqtLn@n-RvS{Tk+IGPxfu1Q>8=)O)bo;E-pVXq+ zof!{yn`j9KVI^k)LqP=$=sp9QU)Yxhp^~o**^>p{(zm8*!1Jk3LhE>ma$||w>$jza zvRtyq?{0v~+8%axKVtK`D}4DTL#9%++uGfW-ilclE&g0qb)SDR8rM`|YVtTDw=U!R z-9$Q8cRDP~Hi)C_>LnmOw_lL?d0O!ppNvk=o$H_Y_`lS@zaw@r!GSGDxVL*)(t343 kxC-2!{@c6f-!l*C7i(^5-3`n$(f|Me07*qoM6N<$g7B~pN&o-= literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/gr.png b/www/templates_shared/images/flags/gr.png new file mode 100644 index 0000000000000000000000000000000000000000..8651ade7cbe030e85efc811a844d8f366c97a50c GIT binary patch literal 487 zcmV!E|`n6Mz6>fhdBj29g(UfB*aM-=Dw#|NaG$fByXc1LXhxFC@THKjjKQ05P&# zA9gbr+SsEBRPB^?1!&T?30hEBFhHFGv5AR^>DH}B00G4E=NHV45I6k$@0N4rAH*g9 z{zDN+_&*OP%Y{RC0Ro8e#fvv0A_7PTA~XKMG0?q08}8kE2oOLl>koag&}IJi^WT4% zN&g{c!yE%t3}J9_Fdy0V1t5S}4xV|TB*XjR%dfvcU;YDm6wdeu;Q~GU4P90PyYjz{{0J*12TXlP$`i71!VmC|LYf!%PK1iv=Z0I@Lq zVgLrRB#$I8Q2qeT`3KSlX8!?(3s3+U9e@9T1Mx3N13&;VGFUSJ^?=Y13WlqUuh`uiUU82D1+EBLb>EWz|Nj3k zj6%@>aVJ0ku|Ql5RsEk~{?`9D9{=ZO{V&1vKX2lHHJSgJ0SFC1p8y096I?Y|?05b{XcgblKTHZ zfByjpAQrd=h&?HOAa>`R|6Hv9XB30N3RxDY7$AV4en1PH(j<7uAT&Tc4G=&q@-F{c z8i9e$01Rv(35=ybe;NM%WdxES!M~uG0dj%y@b5pvikg1_0mOLw_HE>d#AF}?ph|!M Z0{|%qc@l5wel7q2002ovPDHLkV1m6PxaI%= literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/in.png b/www/templates_shared/images/flags/in.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d7e81a98d705da8d7054e77e7d311805659678 GIT binary patch literal 503 zcmVl^KlW*80IEmzVa(K3*_6 zG7fg0I9Zj&0woGah`r_&Kwu3FK=xChQigwjfh>?7kc!_h@)sEWW@MKI+5iwhEdRtz z89B8WSj7JS|MwrL=l|b3uZ7Osk^B4auaUxSRgtG4v;Y11_x}$gi|9Y8?EnG9`1|i) zCPv2p|ADsrhuF4k`@Nr^zUpfTpS$xp!A}Wj4A3Yb2~_s}<0pUsVqyY2p8>1`g1&zJ zsVvR4Yya)fUw{4wtNss>0tLxGfB<5GmnRH!zxweH8<(Mq0N7e&^ba6_ z7#WHgIs!VLeti1p-=9B!fB*jb=l8$ge}LrQ-#`%%`S%Y9{re-sFSERHIY0ohF#KVF z2*K4Ml>Ykz*ZJq)UtlmW{9*tIAQm77@ra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrIztFq(O~IEGZ*N=lh=;=qSyMwWku z27eMOW_|f0uQeek^e_9g7KH|eq{JVG0^UaP2Jy4}|L^JL_3uCblfVD@mnS9t`~UCn z|MT(+KT|KOfz%~1cG~~^_2vEk{SFNQ?Cjg~|NsBWy<%2im{vp^YdeS=hk-Cyo6U`Hgs{l4FR(w#{P`G0;a3G2@YSmzI~fu(ZE1> L{an^LB{Ts58L6#6 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/jp.png b/www/templates_shared/images/flags/jp.png new file mode 100644 index 0000000000000000000000000000000000000000..325fbad3ffd3075a4a84d8d898ad26ef7d3e0d56 GIT binary patch literal 420 zcmV;V0bBlwP)9whYk?f=!Q|Ns8||JN@lTD;`{R1ZWk|EGa3dAO8ObDh3E3Cb;oH_5X#1 z|NHy@|M?558b}5Q|Cf`4hZv9q2p|@?lb|{i68>{>{ol0lx`{mi O0000k7RCwBA z{P_JV0}}Z6?;n_iu%H+Q{s1vR05Jij`8c?M=-GouSI=K${m;n9!7aeW#m~(x$j!^i z%zXLG*~fS9it_V|2?zl-00a;V#NgMjUvJ&I^~3uQB4T37ii-d5-u?gQ&wmw_XD?o^ zUAsm=P*7M%NJdr`Xazt3fo%By|Nn;%AAbM-ZD?YwEG7BBxA%WR!T-FR|8><0Vxn$d zUT@yKdH&)BP#Mq$fB<3y`hl076R7Rgt5;mSyo`Gea7>-}|M%}Nf0%y${3VbO@hKwm zAWK?W z+TGp#<;$01Vv<1pdP-ancZ!Qkd3bmLHK?nrgX5I}Ab=R3zkQ1wk#LIP517FKVgLC9 eRt>}e0R{ktF&Q^6#MUGL0000@|4`Xj5kLTv#?55wQzKoX38|NjLffBpXj6#2y{D-E;(Ab?mHL=FGT z$TP6>fK>na1GWK({(upf0nrSU5*Gz(00%w4e}91F-@gjtJbOE500a;V!?RECzy5mt@dro_q~YJM-#~SLe}OeX zNT7y4|NilCvNABd0|+1%hF>6clER!2lYo}|1|zVkK=SXOfB*mf{rC6ZKVbL)odgg- vjKFAPVE6?_e~=h|kVO7~qZmRm0R$KTYszPUy89K;00000NkvXXu0mjfB$dbi literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/no.png b/www/templates_shared/images/flags/no.png new file mode 100644 index 0000000000000000000000000000000000000000..160b6b5b79db15e623fa55e5774e5d160b933180 GIT binary patch literal 512 zcmV+b0{{JqP)O=a{vExMP2%`MCSoB^FIcLe_%lf;|~%E5I`(IQNh}3Ao>6Q|DFUXMn*>AqQd`w z|1kXd^B;tM|Njjl{{hM0zwd6?1Q0+hV1xeud-4=Wy?p-%sO`^#2S61Jzk!N?s)6X& zzhA%p|N6}=D+{y%Ab`Lc{sL9~1=0UN4*CD*7s%9KAf+JHKs~=eB-8KTKvw|-5R1&; zzd&a|ob(5%^Z$Q=wHy9p13+aOpFRNu5F>N&`Tk_-7w>=n{RejQzkfh&Kn{rf10?_b z{tFTZibx5v&dxav5I~H7|Ney-|DWN1$%1FyagzUW0464;_wU~W1Q5$TW@eGxtUvee z3vAf*8|igK9~@*rr66bh|NrkNM8z+V zAV?>O@ek;bKfu6d00N~0_Y@w0Al+04@f;`V3_{@|8#9F=K6XQ9UY*azdwKd1Cc)=8bAo50U&@_7#Kb? zFg*PK|H1$NTnr5Nxw#FRn^&xvtbK0f`#-;cuKxpc)t_H~fDExeq6ZmH0|XFI1NZ;` zGXMXp{AUnj_^>}zDz4B$`$1}#7U0X2MOU=aELU!7sY=Kr&1{QvMCSsj$|2dLpM12Fg)7ytqY zsKMy}yX6c^FZ@4woIyZ63`(G)I*8l(j07*qoM6N<$f~Z~XumAu6 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/pk.png b/www/templates_shared/images/flags/pk.png new file mode 100644 index 0000000000000000000000000000000000000000..e9df70ca4d63a979e6bcea2399263c081ce5eaeb GIT binary patch literal 569 zcmV-90>=G`P)`{xe>ko^7oADI06=l8$gn`UeR2p|@S@&Et-|M&0Ts{jIsi2(+HrUEqpC9EW^)CAOaJl^^9-%lBC8BHP081)#ChQGgo zHUI<=3(zGH+B`^Tu)Z%{q{PpYS&%;j+KluCr=pK*_e;5D)h=t+bKO_wx|Lu6N(?HnJ zN6`lu;-7zgR^V0GaA(7wCwqWF2h;!%KrH_l5Kj8_?>EpHKuhXR);;uSzaAK9KY#yZW@T0p zQ2G1+FVF^n0AhUp{`o&J`0?k5YKbbt8;l4>j(9ExfB*vkhsr>Vq>*li00000NkvXX Hu0mjfu=^7c literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/pl.png b/www/templates_shared/images/flags/pl.png new file mode 100644 index 0000000000000000000000000000000000000000..d413d010b5b097c4e0a4604eba86dad79567ed16 GIT binary patch literal 374 zcmV-+0g3*JP)Ab?mv3iQ8Nu5A{|6C_|Nk>HFfjc`0biay0|+1% z2B@O{$c+Ek03##gzdwHf0*Hl3)etG5lK=vU1?W~rxN0!OqXDP`Ab?mH`1u+7`u;zA z_W#cxhChG)!_n{G|9=A+zrl>(AX#bYe+w4^1Q6Is4VEzI_51&? zUm!LT$@u9L&^Z7B1a=Zw2xL66B2?87%l|Mi00a<712fnG3~)u5+Wr7F{AKw27w8;- z00L=X`u&GNQW9*;Uxq&*os3{386YGO{rw9;K*az7#P}5)xp2gQ%0-g`0)PMm0MPYZ UsK>Njp#T5?07*qoM6N<$g4HXSwg3PC literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/pt.png b/www/templates_shared/images/flags/pt.png new file mode 100644 index 0000000000000000000000000000000000000000..ece79801506ecf8c42397349b4fa2cfe8176b999 GIT binary patch literal 554 zcmV+_0@eMAP)op82)aAGO;3n0AgYI#891D4N?IF|Ns4E{L7&Dm*MXp#y@|U|NLS4 z{rmr)KmTFmmra`h0*Hly38?u0llM=#nEx6H|J4!x{U`A6pVzdvv{Rd?JIrI9L zs`Fos+0`Q4a^C}Q0+k5A1KaQ$>Lf<6lK=vUh2aka(D+|}f9<^YM_B9kC$A?0Z|}3+ z`ptao7t>dSY6f5^0o~2O01!YR8-T_G^}PA>yZ7X8cHUpx=KlJ_{+sC?ST#h$AD{+c zSpNn30U&@_7``$5{_{tYU-I{#-$2g*Lz_YNHw#c5FVJd`!65YaF9ZRd1Q0-s48{x$ s?-&?Px# literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/ro.png b/www/templates_shared/images/flags/ro.png new file mode 100644 index 0000000000000000000000000000000000000000..57e74a6510dd6a4b29668db181cb94727d1eb4b7 GIT binary patch literal 495 zcmVji7_t0d_@@ozArL?Su`s;*Q{AKpRQ~TD44PX+*q00taD0I@Lq1k(S2nt`tR{g)9*1H=ZfhCe_Je;NM%1^NLXfPkU&2dGq1gcanC zzsyWb(hLmW7#V^70~+_6f#nZ_(jSmgFakOWAb=Pd7`8Gn`~pjZT=;x%FbfOAzdzu3 l1(F{a{)I#17yX|NRSO0LlM<{-BURBqYRGSojej zfLOL~|EH_V_~;P>Nc10*D0|Jxss< zFi1)Q<$$6LU}rIc*dU*QNFV}+9T))>0|XG`SD?F)5CbX~O$rDA0t^5@iDe$xIAIn5 O0000a|fPuet^$h(7pHv_{jfB<3vn*8q{15ov!pR5qo|Ns4BVf^v!57RHO zo?l?}`yWs<(7C?=0*LYNK?X*pGKOD3v;Q#s|MUOfZxH$qCjb2cBQWFtZ$@_cPkRpn z1P}|u9|n-AAQdnT|9?TXAyk7H4FCQBl>h_~&`AvcLF)bhMS(&{8jwh^2qVzve;5D) zh>=0RIIAq+{+o}$pxEl(3%2T)`P!1-fBt~{@Pp~sA7J?W`}60ovKZgl)=2;X#KQ37 z&mWM7{{H^+4`$e}UqIEMAo>Rk|KALM|1kdh!vsX^3=B^I0*D0|DL|!?{M^6*VPKPH z00z{*-?BnHps)wJ`QKllIe-8D1EGJQNCgNWMh3}bctpOPvlbWzK!=K^+cJPc;};D5 g19O2S13-WQ0NlBGh$rR(5C8xG07*qoM6N<$f_QiWUjP6A literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/flags/th.png b/www/templates_shared/images/flags/th.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8ba91719ba641502bc7ffda16c25dc71b2066c GIT binary patch literal 452 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 Q5C8xG07*qoM6N<$f}XY6qW}N^ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/ade.png b/www/templates_shared/images/icons/ade.png new file mode 100644 index 0000000000000000000000000000000000000000..6a94eb4b2d83a0597429d45cb58079726b788c47 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!JVEijv*HQ$r6eQlI+Lp1=@-{*iv4tiI+ejYk&zu@aD1+rXv5v57N>!MfTyLWsj@%GCc3rVTm_J0;#_?O5v&!+vBn zheSa7qV@UxJ&tS*zHFK-ml7s_tYBQj$C9wFO_Jeo0`r4)4u>L`1X~0X8PXUS^~`u0 hj%?`Uk34XIfx)b)EmFhKs2%7D22WQ%mvv4FO#mkGT$BI+ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/aebn.png b/www/templates_shared/images/icons/aebn.png new file mode 100644 index 0000000000000000000000000000000000000000..91d45b5c7dd91f3210111a10c8d14f8aa354d2b8 GIT binary patch literal 1207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m~sPrLR^8|yZ7#2yLRL5(^vN& zJi2}R?z87Fo<4hi?fQ*d51+N{yVHO8-m|Aq)+}21;=#Sw&z?MgaChg1buS-1c=Pnp zl{=5Drk@O5a{kTpr+04Nc=hDri^mUNJ$bZd)#?WiA8)$+WZRV|4<0>Pec|!U6Av%k zdu}u9)a;WF&pmjx_R_NrSDr68{b=8bb8F5$FrR*E<@v`G4&GUK>OuLItG6D%EZcao zYukmgHD|IH94uRLtY+DvvW5HhpSyYV%Kg@rhj*R1IeW+12^&vjP2ax%!rhezFFktj z0O;%&&tJTJ@$$ighfkjXeemM`y?f7q;3*KlcyRy03m^chdGX@$<0t?B|NjRDKn8^U z_wQd!HbjJMa>9}OzKbuY^&exX-Ye5}gr#m@<<8q~^Utx@?`Nyqm%HVr#>C?SEeH9V z4|p#)m$~7ZROYPVn4=-4Y-w$5$J0pZfMGF2NS zDmM7fJQ6SxcCBpj^7;*DHL6x~L`@V;o-UF&t!&9*{`e`(VSR3`>zo=^^TkhP zjp$FBzDp&0ZvDz*8hP{cX6zehuB0T$510Uf zKx1-;nDftPs*Jj!>da;yLEqn{>)X1xOF7&=pZnzdsUJU|fBF7(&WgXEPv3rU{?V03 z?;kySH2>$X4}bps`}Rnssjeg`r_H;dxGAEfq$thC*3#O-%FM*d+{)O}B`P&8F)t_C zBcsG8J2#$_my4T+ziq<|GoY=EN#5=*LA(jN6M!7f0*}aIAngIhZYQ(tfC?BrT^vIs zE+;22FuR4BmGP;uu_Qcu^5|J2qjBZWAFM2`Ev_y{kEp6FU6Lx1^3>~zsL0eQp1XDcR-cPeW_w)uSzIS(OU21csi(u&#B9CQagTe~DWM4fwcDBp literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/allmusic.png b/www/templates_shared/images/icons/allmusic.png new file mode 100644 index 0000000000000000000000000000000000000000..c2ef310e890ba0a9156b4f4119ddace958507fbf GIT binary patch literal 648 zcmV;30(bq1P)$Oo5eSueD0OFcAa+rz zcHdwG;_8JjyIHrFu*{xlS7j0$M`1zPt~KQ>LAl@q>&7YYSZ?oB`^4SqK%U>A`4 zgWm@~C-5_EU)ML|?c*8qyy?LAFAU<3M5S9A6!^G1Y8HnCO4_zr)$H#ln^!`2_i;+k za>f>dYI_&Vy@u6k#qPiku+WeIT+|XMFQSiR97izrMl$}@J$}v!RQqU}2Nwu=D?zi0DjKoMB!p>ccytGk+3FVe@7(kloc-%CY`G#bYzgX9{Wq6e}w*L5Aq i*fWT&I*v2+H~s;68~4ow4GaDN00008*pie58Ol)OtJ|&HE*kn#^93G z?gfL3ZX#G*%)>22kvmc%XhwW z?ztC9X-Ur{?dbopGww-SlAZt$n8NnU27j{dwC?A{bbb2EhEGrXUFLeV^fQ$j>mO*=*8k zwE!3$9K1oWkyF=@ruZ6)E)NGLP_USL&@v zKRVLdx!61S(t>xlqDh$>u;73>3j!<)_O@Ve1Fo${_5K^U`fzAT3V;Ow`W}3I4Bs}Q zM#lXBbC;m-9C9TXjngn^zFLx=0{4%39dx1p7DmH}A#(+Ci%GY#ilXoQLel=p=4Y@! b?n(azaa%9OqqGQ000000NkvXXu0mjfKREUF literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/binsearch.png b/www/templates_shared/images/icons/binsearch.png new file mode 100644 index 0000000000000000000000000000000000000000..afe5c23a33bb710c7bc33219cc856c955d12bc6c GIT binary patch literal 267 zcmV+m0rdWfP)9zV0joJokfP7}j&!w(kdIS@zZqK40NgP18_S70x+Cgb)HT#*OE(r!dd+ zpMk1MUDuo0X@w91Wm%%C03=C5p6AyC#&N{Vn5Jo+rD=LS;EGNIev!VSU6y6zIi=9| zJ*tZL9sn~#M6Lyh2xhiEnwimc9cH%i9Wd_Yy~jC6jPbDiZw27+arU}R;RhblNj1kM R7PtTa002ovPDHLkV1l~Qa7+LI literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/broken.png b/www/templates_shared/images/icons/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..9af03554f51b645cd7f16e8cc550bbbc95538d74 GIT binary patch literal 597 zcmV-b0;>IqP))U~sj1ByMe*o5sgzHVBqqCD;FC#w zb-R)0d6YIba3_&~BnZ%LZK)UKa-6HLuV32qdaF1;57p^}?Nbhw@(H4&qxcbtKyEZ} zO@wbdJK*XE2k4s3=u;H@eD)L%YIWT6cEMj# zfz_9=ND{7cIk?u=(DZuIP*wZ^WVkJ_A-oHRp&T9}kVL=n!h ju_K$q@sRZf literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/cartdown.png b/www/templates_shared/images/icons/cartdown.png new file mode 100644 index 0000000000000000000000000000000000000000..f7326419e15c8589572ed8fcee07b81b29b99839 GIT binary patch literal 682 zcmV;b0#*HqP)6gQ$ScBsqV3zk|cqJn9u?X*O&5UfaIVqz$m8ERrSD-$L%4UJ^7iLi(V5flay z6vTsxr!ImAv0I1s(y8mlQoHMK-}^wx%_SNbhVPsA`}2P9oiH8qJl1bu|6tFw^ZTc1 zcl>MoDf#{6akX>r9op5skG0qMV8n4(UO4zKFc;gk%h)7>boCXM<#U)2XqtvpDurY+ z2}Mzyrb?v(e#_-DN~IE9`YkxLn|Qi;AMcF~ysbpBu3pELkQs{sv#1@7M(Fi=kY)Lc ziGh4E91g|%P+dYW|3FyZC_cf9tw%_do?~5G#-ji1e!t&GtJPxgw`er_Oc3w|Gghlr zbh}-wCCg9@Y-c>#9) z4s7}gF8Ix#85EDlC0*A=|G{AJ(v+Z3D4@}3hzvTN4*1+|x2f+_xTjp3Dl@oVud_P* ze*c-7$>ef53B)UQwug+dZffWXtKOi8FvF$_Z}GnjM9WHQ1TkB*hu zdaYK2*Xte6-HXYL6Nv=(%gUgnSs8&qKqxc0+wGoD@ULz2cs!>G45!oiW2RPB)r(|r zYoZ*B#Y9k)v{3c=d>}AfE|=)tZny8u5D-}53$h$0%i9DFA9X|Eu*2clCUDqhv+d6O zr=3=~UrwBtDV{pEmE!&a-6!80Q~1XN>}f;T>n QO8@`>07*qoM6N<$fC z`|SJtC_CGz+s4Se^FHtM=Y2KpzkiiV1*K96wr#_*EJGU(hu||94AAfQ(d+fl>2%;Y z4%+QDn$0E}jRtD98VF|Z;c&oavq3(ef6)kJVZYyBeRjJYncuhDEf$Lf!Ef1Y_E`;J zffGlg5!UOqQnOmE(Cv1yTrQOo_E5=uK3D&lOy=nv9~&u68g<%`2A#EPwW<>=eszKh zg@P_Mckx1OT7T9XFK%WFlSUTTN%;Hxur_*Vj z8xSxqwl5N`@p!D538v?Iy{?ooeKJ$}WHLc47W?)*pVN+u#UlMOX-Lv!MlzXH%p4wx zM7#&wI?8A?dM98QhVkL*Etks=BF{N7=W;m}lq9WKLpF*r*8r0000}L^y-(2J8~-{3!eZ_71lF@mBg}JYN_m0Qe5J z2laYEFIozjro!XBUPxUhq-OK?0PcN|JenW?Fo*Mt%93tZPa33Y63tr8J(mvJ{g*gi z14+PQ^62hiWy!GDYI*J?@&DkxmP_rQlVDDO*Eg^?R;wm}!*;q(K&By+EQ{Q4eFwNR zm;eKJ729W4!S&T@Udmqmw(nBs*I<_kSX<7QJwImtEbw#K7JI@j7z!m(O8f0zmV5=a z+4|ug&I7NXDl(yLRzY17L<+-%4my3N^3755CnR5B9ZZ8yuUL|*aG{rZlW|CtMgpBU zX6SHVA+gNj0DheYuT?BbS5R@tJC+zh%kv|O(ZWJrqvMv&M17r+jDu_Cf}|-j&t=*$ zENfxM?S+k!IaGYX)F@5TjU(543*aU~7h%s<76F!Jt`%EupO>)9P}?1+AIA||8Cgl! zL8PC>-FpVEmI^sll>gpGutQ*Q_cZ&7k1bVgEOH6{ttd&*q)5Wlr#gbxj_+?lpWE3_ zyo>T{00000NkvXXu0mjfN*X1V literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/couch.png b/www/templates_shared/images/icons/couch.png new file mode 100644 index 0000000000000000000000000000000000000000..ab14bb06bb6fb666eb7bad0bf3822b7d8c080e54 GIT binary patch literal 589 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf+W?;sS0G(>?cB|to|_pNCwzRC z8W}Cu)jjU*eKRHHR(t!Sw6t#w44)Yo4l*#TXJFXKz_5>j;R6H1cLs)+X=%H9dUgZ_ z9upCMpO*H8f#D(p!xjdHb()%685qtmFnj`{w6x>g+y{JpzS`OSWo13Y#d#+^{UIac z2}Z_EjEuVs4G%LiJ^-Th^j#brKR7sksjFX+l3K^WaD;{VVMfM-jEp;NZ8zK6POvbq zWn?_h%6iPtZz==BbY|vh%*->GnfsZUdzqOh0bQl7y)Qj|9s|QHpezH!3&kqg^WO6790eYCRB*-tA!Qt7BG$4nwz$3C4NPB>>+sSM@AY;0x zi(`ny<>UkgW;cZd2eu_#28S4TaqNWsVEw9^HVa@DsgL=vr_dYPy>UftDnm{r-UW|#s$iG literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/desura.png b/www/templates_shared/images/icons/desura.png new file mode 100644 index 0000000000000000000000000000000000000000..23c0391caf5f43bfe996de94e110c1bf15e0a9da GIT binary patch literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMf>Hwb*S0F7220T1G5C%UOK-dsc zPEHQaef;?G%9Shs|NpP4si~{0D=#lEARwTlqqAz&svkeTX{f9B_I3k}Dk>@hnj9S+ zRZ~-~rKS1tJBg4wdipItU2M7C@m}pB&OJ84~$4?$QIXiv%`q9M1 zsG*_W#l=}qPjC71B|v+_!oofR^}m0As5!#{XsAF*kY6x^fWeFR?aQw6ub&_PL0`UJ zR@bN>D94!O?d~E}y(b6AX5cLFh%5%u9$@TtGTRQwSnuiL7$R{wwEwzLlY;c`^ij=?r$0z^y`>ZlZ*#G9-z8ro?)FK#IZ0z|ch3z*5)HAjH7b%E-dX q$Vl73!pgwFa{0S6C>nC}Q!>*kacl7S6;=S$z~JfX=d#Wzp$P!5#KQ^z literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/discogs.png b/www/templates_shared/images/icons/discogs.png new file mode 100644 index 0000000000000000000000000000000000000000..1de9bb920ba5888e051a7f2fd185479879536697 GIT binary patch literal 883 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+Ag64!{5l*E!$tK_0oAjM#0U}&OiV61Cs8e(K%Wn^Y$V4`hcVP#Rb=?z#SYy|L8hebKtt zJa^x{clY}BbX6t3lRlGF4n8cn^SrW-o#AML(ae>{DyM1r%~uSx5zWZRcr!`G(?cOz zN9=rD5>Hq*r)Bo*6`M{uuD`!$>BfzPMl*esH|bTe|e=vnNkdYB$Z+oa*JW zc(;a@R@2oaxBmweewc*%1_xi(RZ5y_Hhb-Y&6_WacDhX3=ez$t!#w|^U%zEnyeK;S z`m2&^>)})Vp_3Id;xwjDpT7Rw`SZ6QclLR)ZO`9O5b`6@Z2plc<{jVP-)mYF$il>! zle1=Xaq;HFut_S0^I~ETK5%4bcjPtbQZRd>K4XT&@k>I@SFeiZ zmnGR78{8H<`kf1`nRBYupRd`QF+_{CW_C-u^TZ=;ufM)t6Sn$qf`NpejA5FhZ7l1w z)PtWYBYsBqw?55dX|}Gg+SC2;`9&5+M*+19_wVPQI~^H)~f32?wQY?J)3#v%wgN;==}@ARu{g{V{cX$JvVopRxyQ`{hTXMCyxH$f3*i2T2xqi>5r~Y(` zj=nuNz@kW1gllPmOnb(Zf2&Vz%83v;dR(r5d8|Oo*_7mmck;HM&D;JxVy$Z2;)^?` tO`N!K-rTvi$(wK9(VM>7AKR+L6IKwCy4S_)%0*XIb7#SGk z8FWBy1my_^j(H6BA`%4$4m7a|N?1$?Xgtiu&%nVU5%D46P%E!I+XRn`3Qny&vPw5B zCN6MiP|(f^FqpL1lffW3D8aKxfq~f|P|v48(b=1kA+D~(pi$kIK{Y=rg<+vaD-VMQ z+u9BRr^_r1HEa&IK0aXP6=3+#5_S1W6FdK*E>?%jsg68ia!-5=KC2()E7%{mHhLTL Xy&Va2x6S1^kbm!hTXY=<2ZJ>L0>opu literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/exclamation.png b/www/templates_shared/images/icons/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/www/templates_shared/images/icons/fresh.png b/www/templates_shared/images/icons/fresh.png new file mode 100644 index 0000000000000000000000000000000000000000..eedb799bee1bac1e49d49f76299a6e881fb8f4ff GIT binary patch literal 773 zcmV+g1N!`lP)HVPyw zdJrmQQ9)oSNN<5i(QCdM6+OgeXi+al^cEA-h$5!NN>`4WyG~teIrYvt@9jHxcS5lG z!|#6QeCPWP_dDM?oJzt!q-IrcMoym<7q8o*;v4_Ftf^?kd}JPTALq2Ocu3SN)4R}n zG`BP(JRR0Oz-9?E-)7){@(9LSBL*gX2t`A{PFgS!5y1Av0C`Tp+ZRF9*=tyeroYah zzE;F1VH(R9b;klxO~eTa@T9BZbza4Vn?2;nYqNyjwl*9#mEfuU1bPPc0d+w61T9no z{i6*~b63!vbKu_KEnI3nlTRXP8{FyZ!?|b_T@D8tumz)HlxhM-#zfq>??h+A7&d+; zaHM1_-t0Mz-pE%x^ZB$5v=TZv4wqdn@6!pg(xDnEThvph4IDRSQ6+L>4+>S#p6^0trjab zc)Ax;Q}~d{z@5#4>-YQBC9fAY`W+MT+GN5>vjvKY0u>b{@Q8DIzIJh{tA;qGXw37}OM4%x3US_4Rm86Q)(- zH?g9RR}@8qjSGovjrBcD2VPE=-%(WsxuyoJV~QS72reWtTY#1Hkmwj5rmx<{g-8Vb zWXB11@zx1e5`!hJ=|1+X?h>w{Asn#VX+&aeEa+5wJ2egJLE=1djkr#96UT@~heQ1= zNqTf%MW6G_KmgxkF_?H>YolT`!sB*hyVa^k6a@SMbx#!qZbdt`#~ebG15TV*$BEK}9Swh8pK>ZZY1X z3ByZ_Gm94>Ly-uAI43%su3ZOIKuYB{C={&p_VxST_uc3I?Z-}X&U4O>=Q%l-@7AX# z`HF%?0N|@iR%lrCf9unDY+Nky+W^2-uUBi8gb<8aW9TV6Hk**yM7v$oy_?jQI26Oh z(SW0XkqSJyD$kP^#_@*Qqrr(h{4Updun5sKW@u{X$M`*P?%zRGRbT}lhjTp-?@{V- zPr8!oGGaNK;(LccwK<{uVyN&TuRLpF*Qtm#np9ui> zjjN1f%A=GxH>xpWsDVDu8VMZ)j!)Lo_Sdvy%5}7yikyXKf@?{rv*HY*y$nUU+FDU< z6;oT~(mx}|7Ls4%NzW=`l91bTNCBU0^dWjRv27(2+sSwq8BHO>%ZX(czQG|zC9xkR z_T!ALj2_J(Bk^P)6!q}jSAd+GN5-^dvc&YfJSAzl-;8NuA3@YIaa&y=?&Ul5;7J40 zzJyp)C;IY3f@cW$+>2+`V?CP<_vNF8Ak@p9(u3_RkVFpYpHD_sUB9rBJwZxRIG)JI z)>Q9+lG8B39!XlL-2wRhkEfRk}ZrVCi*#WK&aI}M6594hx_yD@=;03FY1S9n@+6p6&z}x_)pP}P4xFdj; zfVC8QuR~WYbW}q}1q^0@cL8|k!@>+vIXhdjPLs<17x*oX6n*v^gOK-bqPP~J(>&f? zbh-c`g{4u7ykZTC)S$(&2+b0XwH-p~B4aIQz7aKuMTcz2Qos|&YBW)T1=;ni7H3OJ zk^+ti!jjoydQtM`-ESNH>ucKzRoA&KJa#*=~@261-RywZQhc&k_$AsqVt=?!aTccb^{8y91sQja5 z;*$A3o^A~mSEkQiwC<9uq}x$BH#+}$XJ?k7<9u|fnGyH|O1`|M>nh%N`HpburkeET zJX@nPBxZ+9&J_inFErmO8LRj0DII^AyG>a9LqqFCe7W0}P-HMZ4ep;C^7#knKKj-c z7JAWwOZMz4*`3dg=3KL^`??IBFJxB`p;M;mantp6p#u7lKOjXpZ$vpTEIUOcR literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/giantbomb.png b/www/templates_shared/images/icons/giantbomb.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f450c5f51a00e60c28befc4a53a4fde39b7391 GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47y|-)LR^8|l$4aDq@?)x`2U+3 z{%>Ij4Gjf~q#}W|w6upU4F5NP5ReT75J@#b zg)sm{JUl#r7D2#vcZOY_48NB$C@CocMb4!$JZWUu>B_Lng8?YD(~|+@jE!LH)-!xs z$@zaB!~eA)t#@k}{;y&9znbCyDh7FZc|AQnPfyQ?hzMR@-p!jg-z;G`lf=Ny&0Sep z33S;1|No1Mif$G&{zg2 z0qfaMIkSIE+5Gp&?k`e&wI8!y+`DwaLE*u&V+}Jd7!)`(yt{wvI8ZZVlDE5y#|Ne> zuYerR0*}aIAPovY4+giB*>*t2O-~oc5Q)pl2@H&GYH1254{<#+*s!sDN@nPHf5+hX?%gB81W?X0e-U=m&Vs_NxSX@eCNzkgI!RQ&kKzQW)| zBhO|Io=+b*zH#t<+|aP&kkXYy%xjqR1SHY~-w6u76l4$$_}KTUqi-X_O&-Aj-tOM+ z?;kuoe1cjz3^G)gFIl!UJtfQVKtonUSXo&gE3?ps6K7Aib22alDXJURy%PQd^rUKu zYeY#(Vo9o1a#1RfVlXl=G|@FM(>1gRF)+6>G_W!<(l)TLGB9}TRPq@`LvDUbW?Cg~ V4U^>0_yaXCc)I$ztaD0e0suFiJv{&b literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/go.png b/www/templates_shared/images/icons/go.png new file mode 100644 index 0000000000000000000000000000000000000000..1dab13594c6fc2c8ef44104fd64796cb366509ca GIT binary patch literal 1378 zcmV-o1)chdP)P000>X1^@s6#OZ}&00004b3#c}2nYxW zdeSaeirbZlh+Q)OXtV`w0EX>@3Bb#x$fWq5R}+H8yf00g>8 zL_t(YiKUg_Z&XDT$3HXo?$W|;+jL85m9kKbWp`U?LTWICNJt<-CF+BbL`8mts3AV^ zFZdwgK@&*8_&_2U10j+4QfUkVAypz36Ofh`=x%9&SPXPa*>+3s%<Q;Bsb^o z+`IFg^O^6NtMJ1)a^y%;TU*)NP*SoG;tCUjDDgq!P##(z%YyD++clUmPhTXe&f0oT=<^P1WBGy_l)`&6wl}@K` z_V)H}a9!73)YR0pCK!BrLL%~*F#tgX1Ob6SAXwu#PP41EUSN!=eHud3)6=AqNp9b| zjpxnK(AY@x(xp^ZRw5!rp`5A}>xf8&3j{>OdD7&@7?Oj7{BZm@=YRW+iHQlsT0)@^ zv3P=aHoZ$rOAFd{L5h`%6+F*VuH!i6B}ic{g}Bn!#}|9{Fg!er>jtQ=pO53Z{C(#R zzy8wAK>roC?byMZwQEsI7jWgp+{dvN$(Ic2^cY_sIKarr2(`7fe6VE;%iG&=9EWRH zuk!7oLyQa$bL{9*Vu=Lx3mS6s2v#frx>P_!u-5wb)?%&ULQfB=WRh?=%tt$Svf=eN zSkTx=-TZo9S+$B!ckLn^4l_J7#D$(7v{t!!@_RH(#9E8B#XK|PF?jttp6AiL^aT>F zZFt7>pNs!a%d!|RwYOu8VW7Vshl=7?bOEHh)5}OmV0t%{Ys?ka@Iy%b4!~<)gV}x%G9_0S`IEawRWcaD;1ZPj50-`o%5Y7#T%sLw`+_kcDq=@RaJbreLFW&DcY8| zQyYo+Y=uW~{ClR@jMf*ilao`P&F_i8;w4LnE?(?oG^PYWe)Z*tX&H?&Y#7IJv)UMQ z|HrNqgXys`BT_U#zVi!?%R7d=11Za;&dgUam7TgdI(oa;0p{Ku8L6&|)HO$=(eT`P zA+1oL6bjHvp%f?-T7go^AJcv>DWy2} z^@&8Hef8?q3xk1x`{-Bv$)Nz060Nmoj2S+6?p)W!ix*F1GMT#yaDchMBA@{XQ*x&L k#}MElFbdoP?g9`00S&W~oByoGMF0Q*07*qoM6N<$f>~39?*IS* literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/goodreads.png b/www/templates_shared/images/icons/goodreads.png new file mode 100644 index 0000000000000000000000000000000000000000..58091f3b1d4a2c98ffef799caa6fe67f2079f4bb GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`Jjfp?mZVxGgA7b%FfuSS(KRsE zH8c+~Ftjo-u`)E(Hn6ZVFevC^uSC(1o1c=IR*72!qS7nJ^eYbBr&ecEg(XZp(!i(FP<=$OB)5CxHroGeq>zXYBE#}iA{u*|sTHIT| zVf(g*-5Xo4&0{o)bTPD<2sw?$r+eW zo6vA~eMm;ee~&)}vmb0fZ}O{J(5Yb4PM=U`Y4PQPOPdszF8!19;4};8XYrLQIxm#$ zvg<7@pZn;H&9QgkOp7KeU%FoZp`zopr04Ep^o&W#< literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/greenlight.png b/www/templates_shared/images/icons/greenlight.png new file mode 100644 index 0000000000000000000000000000000000000000..8947f93b1aac3052156a83684bee84aed1b5d01e GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VE0AVqW=3|&DrZ|( zEOPqxulL&?v7PZdR@^@<%psLF>q*1bjTtMKnqFbwBCz5w>o4QiH#VH_{l|Y`8FTnb z$@$xWwyT!7MwFx^mZVxG7o`Fz1|tJQ6I}xfU1P%#BV#L5b1PE=Z37D{1A_@4lzLD! c7$LR|m<|L>hXH6&+YM8WF# zsuk&tt8+Rxlr%4_n6SBi>b|yFhdbvS?Vf+4bJk&?%EYoI3)Wq5jh{4i#aY|v2|m$n zX2G3IOd^JXEes4CMn1I+jFQT>wS4@Fl9t7M0_u_`#ezbbBKifwqB=ZkDFQ;8g0gPz zPEM?BmcAYyY{ISqUS5yi|7R2R;1+b`7ItRlbYWt3Kew`?fr-dxeUy?)ZcHlW)Up6Z)_wr$o4hv-QjNmKnZ=Xs<|ip}Y1 zsOxO2txa!Sn_oG(s(WkW)PtRKP5?d9xA44W*d*K7=}xf|rcRi$YwOlyhYlUsy?g$Q z86}NN8mAs^nR9sRiYxko-CAC4i|5R_b^ZFa%a?nan_H`^FP=Mh`{vC}Yt|GsE~)C> zHDU4j$h_&24pk)`Yp-0qc;>{3%7TL8?Ce`NZrr(bYxd;H6Ep-u?$`m03ud7ZYrEi+N008=zTM8s%GA*C@`Vfb_I`{^OpHvxRAJ4^E>%-peE!Ut z+|<;>sHjuNj&(LPc)Pg?2_=ctVxp+qLUbzIFjR% zds~3fZOFu=%E~SWbRz=;(5bu(4AM+Y3XDvwjEss53_8G6#=xM;z@W^)Ajilg7p*w|3~#*!!Mks-eQJj(ymO(?;5E_Lv+aNiq&;06LnJOU3NXI^2jns_v#_$Ub8vET^YHNU zG4Pw3nOj&|S=-p!**iEo2`~scySTc!dw6vQHK!J}w6?W(bau)x$aaNy_w@Gl^-q{MY4Vg#IR^Qu(<-OWn3*(dc3ywyoK6J> z#kuq5*DP4LC~a}dlBLT!l^B$luUNS%W%Zi1DeLmrZ`i29pt@=EmaW^iZ{M+V*X}(@ zJ!%Z_R#&ZYnW literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/iafd.png b/www/templates_shared/images/icons/iafd.png new file mode 100644 index 0000000000000000000000000000000000000000..1673ab6f4327f4801e48014fdba09e13112be404 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!6Z)?#}Etuvpum~2MjoxZTGc*_RH&Y-Sn>~ zC|*iqmPy?sS6LPT$<0d7_ivki?##WntKU8NcIRxoo*Sba``Z>P2Jwf6(-}Aa?r`NVfn0 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/ign.png b/www/templates_shared/images/icons/ign.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9f0cd76d2376d10fc2940864b60171e0b692c3 GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}PJmB{E0BI?r~*W94U{1aI2SJR z)&QaaLBiCaXoRQ-Dh4BEAQz0FCIi{&sSn=)?NcfV@(X4Nn7VnhK>x{;{e1E9%M1-O z?4%qWGfugln(DUsl&hm%zd*0zR|TMI&H|6fVj%4S#%?FG?SPD4PZ!4!iOZq=(LzlQ z0?db*lr*#y7X5g)^S|uf*btNY$*az(1cf|`Sror?!rAb1iwvfz{wxWLfuOUWhm+0TFKFMPt+n{&KV2Iw%=64!{5l*E!$ ztK_0oAjM#0U}&OiV61Cs8e(K*WngS&XsB&qVP#;jS9Yr~iiX_$l+3hB+#1d}@U91H OVDNPHb6Mw<&;$T2>aCgp literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/imdb.png b/www/templates_shared/images/icons/imdb.png new file mode 100644 index 0000000000000000000000000000000000000000..16c2d97dd58ef650dfc8028f51efb430da376b7e GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}W`IwKE0Er`ME1*l<&Sri-(6RJ zby@k@Ips$ulmiB3BToVC57k0Y0WF&Em#79M|_M9a<-sn;=+{DX1*Z8sWp2 z6)hMYz&Ej8eBBh;!W6-U-BLRj$?95akJ9dwMxg9D0Nqh33M1r1I=PA3GxeO zaCmkj4angv@Q5r1(jH*!b~4)z$msBNaSV~T9DDY*P_qIL%Y_AtE?u1zRkcxE^xuEw z*%w~kNc_A--9S+*xog78Rjby`K6Yzc?ruNF*XzHx{kvZKUPjg+Vaox*4?M>u3xXsJ z8fTvSrPRaZ_u!E+i)8C+pSIa&WOYi}Y(L%ie6aJdw#I?;70qAFK5x=_y~|T+X?}ch zzhU65>xO9>pBOh=@s$_9T~q>elWK`;L`h0wNvc(HQ7VvPFfuSS(KRsEH8c$|GO{u? ru`)2#Hn6ZVFc2$NTZ*C~H$NpatrE9}biH|!Kn)C@u6{1-oD!MBVme|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|*G~YOCzIN1nVXOAcR_&gZ%4KuqD?yHzJwsPl7MwFef;*Gv^}G?f1S`sM%s|DW#Myb$Ym)l~6L%Fk2evfx;J78yUG}Pncy*oeNzS(P{`f%gwZ?9hNbhSJj;{NT~lRM3or?jMR z&7bw}&!4>(+UK;TPisjZjSoBBP3K z{@qR`v9oFtXVfHit4e-({_Odw<69if-(A1@V8fb&<~pZTCHBY(-(0q6gSyNid68|h zLRaU_+GuOKQATLHwehLehHEpY?2{ATB`I(qA^Pf)g)0=LHd~oopEYf@iSF<3-(H+O zv%$)EnK=JSTZ=zGf8JWPe4C`ePEp=njj+=cgH~VUC z_BGt>E7@3vjc?PRtcka5G)#W6(Ua&kgKiZfFW50B3qjfT!fW?qAWqN1Y0;^IaPIXQ)+2TmW? zSI|(=Ii#+oqo${$bx=W5RaaSCTYde46)M`R*DN}TUh)Uy*N&rVmC&xhTuQfZJD4yRvvVb+B_zIeVOpcZFfYnB&8B?nJ)j>|OI#yLQW8s2t&)pU zffR$0fuV`6fw8WkX^4@Lm8pf5iJ`WEg_VIpjn|t)C>nC}Q!>*kackfe52*ucVDNPH Kb6Mw<&;$UAM`Bz6 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/lock.gif b/www/templates_shared/images/icons/lock.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a225b852b3bea6957c1ca685cd66863d1afce95 GIT binary patch literal 96 zcmV-m0H6OyNk%w1VG95Y0HOx~2r_H!@bu*A@7v+&_W1hd>hPSc!~g&QA^8LW000L7 zEC2ui01E&M0009ecxSAx#>F=!eXB^ujfO-RdQuPoCJ6}wz^cn2%W%hiN}=y~0suQQ CbtJ+7 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/lock2.png b/www/templates_shared/images/icons/lock2.png new file mode 100644 index 0000000000000000000000000000000000000000..ad12261a5429e75069032a07237d41ab7b618101 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-t3?!qQvP6NDM1W6-YhnQdhf((14_}_Ve1H4l z%Wpq^J$vQgu(1lP;!%l<<6GqA x?Ccmaagk7mmYE4#psJpphu4iumo7<2Fti5oI7NnX)dKZ1c)I$ztaD0e0s!G>Ji-6~ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/magnifier.png b/www/templates_shared/images/icons/magnifier.png new file mode 100644 index 0000000000000000000000000000000000000000..545a6a907ca8ff55210bfeb754e52ed3389cc2f1 GIT binary patch literal 469 zcmV;`0V@89P)$?Tj*eGIw?t#XvgC*J{%6^e!nkwyIs89ZnZEBm0x}C;?enhrrYgCMNx>l zUa!P3TCdlm)oLY&z&Xn@A-Y^H1Q6~x0g0lBmdm9kO~EcP8X<--O;b^v>h<~yi(mgFmWe(AhA@&;=*OF500000 LNkvXXu0mjfipt6d literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/note.png b/www/templates_shared/images/icons/note.png new file mode 100644 index 0000000000000000000000000000000000000000..244e6ca045c50a130086ac388b560a12761544b4 GIT binary patch literal 500 zcmV z!-sF!^gVb+8rtpyctW0#N6uWni0LCt_6PoOdbjll_d4>B|?abUmpo8>v>h}Zj|Ya;Eu#qwvU1IVc9khP8VrtAsT2=e83P~$#!xXbw)n}FlPSEe7Hq1uCb zR8w;xqmBrUgA^pnkB=O@-lq0DPz$ay0yh_~I_IDpzxRb(4=Iy9CT||k!08w)Pe>W4 zElmH8fF;68$GMwZ#7{4ozI(ySrR%I+xs4-G1q^UxnUV7rlf9>Rn&_6Wike0000v%0y_nie4@QbY&^tbl4Sl(SzV~n0XlZf6UDPQ6j=tD#8}4ezlRG zZ^aZB5eX0zA~r-!fEXXKK7<-;G-5mmHBA?vs9FMRh#tALPC*0|R2D!W_x$pD2Y&uH z+eHxPl@An%I6xt+F{nrb5_%h4!5CaHk12iv=OYr7cNc)uh|`Gk*tX{aE-Y<8V12+K zPJ@IMP&HU1t^{I`U;_tcWvOhrM%lwTT_N$nd1VpvZ#{vt8a*?L@xOx&KnzwFi0yAF zD?5!?55(2Hfm#jH;)`C1wsa8hIuAHpFh_Cx84de(fs`1Y)r`zJmOYQ4l;h7z{??m2 z6NB|tOoR)Q+6LPXG!1ljo}#1m7&G(ZWG2)6`muahZFZcKskR~D8qf$7frn!c bvi<)7-g`sTs&+NB00000NkvXXu0mjf0pJeu literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/note_edit.png b/www/templates_shared/images/icons/note_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..291bfc764709a7e595050c1ed43b675f7af29c56 GIT binary patch literal 731 zcmV<10wn#3P)IABYLga|n=&i1C^Ll$f?5eeicnA#1rn`Vw5g!~Ai_;Six%mol@YXv zpr{DSk_4&HqEGXqMs21Urx~61zW2TFJuNiKk5=8qxp3h5o#%3&zLVh3I}!7>rV zy0cveL@eMS{2@4@V#Ifsc!DulJ&DQpf%Op4v$xe?6=D@)U81WGV*SDrfWQL`Vikx# zC;D5g5L>`a_LDBIB75he%=~zQqY~|505hGQwLEXKi?wPF;-YiIct4j@Rd<3|O#|8C zTHZhC><9zcK%qYMV7$)|Xb?l7a+FlZ5nDj##-OBu%J?oaL+^+>n(`G@l&xA93j+jh z8k0*q$O-j?Nca8_zy`4G;prD4e1YrH!W$vy!p#G|OpS~5?22&Z3S zwVIa$XW=s4>S&U~r@Q#jeV*}=UW(V%W0I-yifB=D-Gvu#7REiau<_yZq|tBhQd7T= z($ZQI{e#oW)d!XmFX`aO{z|uT!vfZNSs56Z83KGlT!G@j{$XK3kwNhR;jtl+!O^kNap9>U5h=kDsiDzn;W4RU(HRl3 zg+U3$!O6+Vsi~=%=~-FXS=rgy`T6neTfE8^X2hI!jJoNVb;2$6u4nN%&w|ULX)7bQ1ro}@QYX3N3YWV z4ppDrs((0C{dcJS;ZO_Y{tqd9b-r;|%%p9#Q*M_xymM^+>(Ktkx%Gc==l_7I|6@D< zCr$aEIR8`j%>Q|f4Gql=jm<#N3Id&dZC#z6-QC??J>C7iy;G)4nKf(H+&Ob+EtolX z(X9E4=Pj7O00^Cq{(sx~`}5BK-*)}~ zd*sletJkjGzH{f`q zQ7{SyDgEalo5uE&^pG{)HpSCIuW}Seb zxajcU*eIT)W|p9?Q>(PJxr!eND=@8Gcyi`X*2{#>WOV0-b{mcyw zOS-48@1Hqy_v-E`EFKCyGv~HIf`Ylz;TBn#Q{)Ig*TpGnUWNS>4bv!!=6a v%F_SNEk9aa@9tTg=*NC>V&I8+&U}mvKC7laoMp(?1WJsau6{1-oD!M<3gTzI literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/nuked.png b/www/templates_shared/images/icons/nuked.png new file mode 100644 index 0000000000000000000000000000000000000000..558e95bf84934056283266145f00af8ca4651440 GIT binary patch literal 898 zcmV-|1AY97P)1G{-7((Xy5mJ-p2#PMg5+?$@hEsd<3V-<#KIGtEpN!Ka)--NI$ttaVG^p zUpUI>t5+F~P14yFnl*%RBODGN0|;_TIGgcHNYL-oR9TYb9RKe9dbk4Qfpf+f^^#mwouVefR@D{M}we zyBBYVm$%<&VeQXT*j|YTdIM9kUM%yJiEV5fJPu6U{m^-Fa)&Q)hT@Gr3@i8Bn z)LqQV{wAH{l5#~7=oUx=gb*NLdDWt2Y0k6@h6W9ej$Eo$O|1@N5tDKujR^ve2i|$h z)3Y+MgDY z=v8DSIzgosrg)%mS}w|Vu`SL0KP--$npO+$-EXnJ;h?p~bu{}0o83}~NOS_(c`h_N zc=;oiQwEg-8|%5ER8nNO931E5bfcl!NITe;OQr0vu;|i%@k9LQg0ugiyqUZcZx(;x z%H<|KK`&c-uwT+3psz>L*DG*ZE)SQz7@hAkH1_Va^mg6+mrMsc$@u2#m-L?9;?e~V z!H@@O2ufwe`i4c}aEQU!$Mg(DU&!=dou5_mGnv#qGHVHnyH8Ja9vCAMonΝ(t2- Y4T5QxKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005BNkl1FdE|9d*b%gSI?dL)e$FZR+((O%W zJ}mI_wHpelF=YRW5JF4d-(wl0b!S;K_RB*EyHOK4*Sw7uVsocvfjv%Ix3C|wEE7f1 v-%9>0a1io=9PCWc*u-AcTV(zp5&RkeJtxrozee5w00000NkvXXu0mjf@Ua1j literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/nzbindex.png b/www/templates_shared/images/icons/nzbindex.png new file mode 100644 index 0000000000000000000000000000000000000000..eb18ea0afa183fbc5a58188c0a1926287fee36af GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xj(fT|hE&{2`t$$4J+o>zT^@3@ZiILzr=!ss^JftTCW%t7F+n?!+Q5hKr> zqoQmt*cy0vSs&Rt{E_p#Bk@eCgxRT3Vh6h?&yz340nC9sH=2+BTo^H@o?psLA)xO( zL&S_ZuElmm77~l4KggZ^so)&;*pu!3MBa-2XIwKrZKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005gNkl1fBD;%=3pE;z{`{a` zuYZl>_!aOvj$@QkSZj%*h~;vLQi_|Ko4w^ysq|87-L2JX@zvGUM`et8dwF@8E*6V; zo`p?`Hz1Jl*{_-2WMVmV+=1kLpvLrzi67IL&60 a-vaKa|KA@!fBpXb`|sbsN1lIET=6jZ(5s$H z?~T?!R#@@Sb=%Yb|NgDG^Eq_S3#aYR`zKAVuBuwJXwlQBPt{gGQd;@QX7f|Wtxr`} zKGIzEKw{a$(CrTtr6qvQW@l$#xNxEBsz++89!V{GD8Kxn5aHZn3Zv#_vm zadBO`bV+aBW3vs9owvV;+;k%#qextczpJ}DHYSFZm9?|8Q)20Z+1K9Z6_xO@u}DZt z9z1xkzP|qGi|@K?A1}N0As{H2g_Vt&nOR0ghLe+%iHT|J)~yGgeiK-9pKac~x!2wY zhJ?n%#60-)tLx(XzRMq4&%ZzS@@r6Vu(GnUot@qE>C^xG`4bWnA}J~P`t|F7|Ni~{ z_y70bf4_eJ2@4BjWMusEMXctjQhX%8@VJDF_uPulCqJ}-FZ6e^{v&vPj`u{YqS># zac*@zsya(=p@|IFl&Rq>riNZET5tV;|Js6U;_FuDXXG^LE!??u>)O4GH?N-k=4Gi+ ztziCthmwMh!))$usxDVHe(XHC^5x9PbA|VIZrsqZG<99VRJQ9!cI|q2?}*rT-)!}? zg77zQtNHi}T_&gW92Zbup8i~X$CAvb@ayJMEy3n}(VyPkn|3tkp_huB+{Yv7uUQLu z|96JZtZ44Fzwq(j$Dd#4*8FEzlhe=m9rw@@=zY}^*NBpo#FA92=AvlG%}>cptHiCrW%Ue2paup{S3j3^P6;M1%flLIDw_}jE2O}WE zjzPhJLDq^v!4bp&l9I*@A{q<|Uure^TGP2Y*u&^>PSX1IX6bH86O(`njxgN@xNA2bqDk literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/queuedown.png b/www/templates_shared/images/icons/queuedown.png new file mode 100644 index 0000000000000000000000000000000000000000..ba96aac6e2d8d6c3ef32305808d5dea812bd39db GIT binary patch literal 773 zcmV+g1N!`lP)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ;i%CR5RCwB?lg(=scN~YGnfcAmWZi6L&1M{vLwsqV*picNF8u>+Fa8-`dJw#{ z$w>qc;z2MTnu9b@q!&Gvf%>G_Hq*N#bTKe2Rhwq0E ze0eNm4F3nQ_RYGnMU~-5)9V{DOOpwSacq>)WLZX)Ns6LCy9y~KP62tIv$OLY5gc~; z;_T;0Q$m$&gaxG>90&FUSb$gTXX$7%G(962WU##QBX*J`0Bme*&}tP7N6_yV#BrZ? zcSzD1kfxeWXN)q6cDK##+YcBFpkA+IODQS2J~PotHn(<2_rOdlMAgQT6{eg?EU%y( zI3#_SyZ7G^1RqnbLd#bB1xi5_MTB9<=4OLD&+$Bui3zYQ5JHfqDfjOEM6Fh1ZZ5*Xv^0nvw@6j!iRJo8r#>nBRLYQyx?%ppy!&-TZ-{yB7&Ry^ARCa>xel!_1C{LF744O+C--!K8ilUY9Hdtw~Jg_zKT*2q9_Wqh9pS{!y{BGWl$N8 z<8XRuiJ|GB${Hyp{oOtb3k!6;mz=+Rp1}Ja@n=^tk`T@w$E)to^0ZI4Ge>U4wBL?U zd4@qUkR!~{;`sb$v^&!@e_KWLdOgma`?yt06U3;xNO3m=&I z#Shuu-sbV@uJyM}|JJ(7&LU3-4IZz(KmJb(4&vPaDM~!b^MvZ?00000NkvXXu0mjf DQmb7N literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/queueup.png b/www/templates_shared/images/icons/queueup.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0f9a569df134683719a968916891e9857c00cc GIT binary patch literal 690 zcmV;j0!{siP)LlDkUuP!xr~liOq%m5iDp zqo5#YVP)rA_!2fgfu;HmHZ~R(qBcH&D0bonwDN|HeP$+^I7v+A2}g zOcX_=X-XW&XswB&h||+k27>|9)6*DIN*u=_2m)?yZpibTdc97g(LigB<2cy1&BVk6 zNs@4RdCBDDB;(`b-dv_G|94zcDv2o+#G|!fZg3)wzjsYstT(tOO#S{IvrZA7Gq;$R8@s(nyjv_@&j2) zNgT&4E-s?AW_x=Z-}kYiC}KDqGBYznqtO^OEJ+doy4@~iS)#S3EK7tCEG#ULBni*Y z&shC_pN)+TJkLXGJtAML)lf>|c^*$H${R>#qi37;<}i%gM>fpF{to YFE)HO5P3!QhX4Qo07*qoM6N<$f5r00001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf02y>eSaefwW^{L9 za%BKPWN%_+AW3auXJt}lVPtu6$z?nM00PNLL_t(IPi>NYXiae#$3N$sd(Pck+wNYC zU1`x|ZAzIU2}#Hw{y^G_yca1#DU?6vZ8M3GjFe_9FH`R5-rddJcJJN2 zcQ5zlZ0^qojAi_fJocx5Fh;mP0p`8I&k$I6{j%ITTild-ZrYskJA^5U{@znnCGCStqDEh$J-&%>6S1gH-WzB zsDLb`5szy`<2Leg%D7s;Ph8tXaW3&;7dIasq^b2ZMFo@4RM655n&0(Mn4f70SSG$` zY2=2TT%DboFy=gd~`3G%X>$l_&96()(^lSvcJt}rOZtLp<)PA{_x zG|i;V)rC2@hTR*EAt#0-IC8Sd$grWDl^H{icq3!xwyXxr(>CLIhWj=60m<_YUy0;$#rykeMCY! z9qs{K?LM(9kx>()v0*XBu$XxuB!+wW@N5xBYYwxmc8PGsLtHGZ z*JDt3_SL^r_)U99J2xI2A~N9TV{@3g%TJk5Tx7*=Ke|V+zndNFccP}r;|ru1is|?R jy}}Ep*n`wW#shuSc&3 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/rottentomatoes.png b/www/templates_shared/images/icons/rottentomatoes.png new file mode 100644 index 0000000000000000000000000000000000000000..e771d12ab064f0228ac95519ee652bb6ba233bf6 GIT binary patch literal 3529 zcmV;)4L0(LP)EX>4Tx07!|QmUmQC*A|D*y?1({%`g-xL+`x}AiX!K(nMjH8DJ;_4l^{dA)*2i zMMMM@L4qO%jD{kyB8r88V8I@cAfUux6j4!mGqP56<>kGXm){>}eQTe+_dRFteb%}F zki7l5ymVL!fHa~vAmcQ z7uoQ$&mudEnVrUCi&%W-40ak@%snFBnkD3j81WZzQ5KhzE#g}u)=U+qaYg)A9Gk{r zW&(gBiR}UoD@nwrA|~;}Lfk~W6aXA4@hgu1iUph;f%sBx=^43vZeo&vuFKM+o7vhj z=-!;{RE|Jk6vSkuF!^k{TY6dsla~v?;+;QBMqFFEsL0l4w$|20=Ei1U73#lk{!NK{ zyGXBsKlcox^?kAZm0x;20E}5tZFYRI#qR~6V>1Bq_rKUQ4+0=5>RbE3SNEZb=OsxX z$gndp$O~ z2}Gii1cZ;QLyD0~q#kKOx{zMvCNhFdBkxcc6a_^`8KLY^-l*j$7HTzW9jX*njXHvA zNA;j?qDE0Os847zS_y4{wnO`%BhiWIY;+O265WVyLtjGQMvtT4U@#aOMh9bq@y0}9 zk}+#ArI`JgR?K_yPPlex4vr&>=Vw!U)NPjf5&f z3*i#sA>kE~NK_}<5`&3c;s#Leh59VbXchJ<=;OnXFBA zCP$M6>atgt3H=1Y2UgM2$qd#E`@bNxY<%q>JP#$vnwQ$&-=;lG9Rn zDQzh?DW=pqsT!$MQo~ZS(iCYk=|Jf;=~C&V(pRM?Ww0{ZG9EH)nL?REG8bjWC@3{{8fLrtcZP`{)0Q)gslWG!XGWpiX}WY5Ts&=8t7&4-psE2EvD z-J!jgQfv(`8kfN|tp+n)3B1%zTF<3EM z@qpqb#pxx~CH6~LONy7ASaM$pR?=4rQCg#PNU2Y0R#`>aOF2V%ukuCZX%(7^vr4i` zh00l#DOHN9qbgUmLiL>LGrBC@g`P^UqW92e)Rfe`)r4wwYW-^S>N@Jn)eF>H)gNgP zG#DBQ8WkGd8Z(-zngN>mn$4Q`weVUDtt72ITD@9x+B(`1+FP_cv?q1sb$oR4beeS@ z>XLPxbXV)v>)z7C=rQzC^!DrB(1-P{^po^!^al)J18W1W!G425L$sl-Ayeeqo|%5^b{6q}Sw=sg-G}X@ltlGZ`~qvjVd&v)|42%~|F( z=C>@!7M>RCEjle;S{hh#EDu=TwW3%BSZ%TDw)$voW6ig2v7WNgw28CXXEV&8GJ+VT zj4QTiTUXolwx@01*;(5O>`vJIW^ZJlVt>?ra;eTz&eDdZV-D&LOouv$5l6aXoZ~^q z5hpb#rc=Gs6K4%)wsWKNgo~a_vdb}-7p|tReAhPDIX64EwQlF#5qB^5V)uRz8IR>2 z)gF&M)jbnEn>}Z|ti0BEo%cq2`+4v59`;f8Vfi%q%=p^)uJ!HlBl(5;Rr@{h*Z1f9 zcLl%!z5%-e9xl^b##`1A2m*ZqcLhEQ(g|7}^kXn4I4HO#_-Tk)NPb9fC?zyD^l0dt zFxRlMum{U^mkXD7hf9XXgg1rHMYu zc#Ks{QOuo{IxBNlUR|ZQDs|PFSjkvs?8!KETtwW_xDU)gW<7H@-Y0%v{0z&DwTJbb z?aZ!VPjMVL<(!EGhlKKk$wY_5U5QgkPDzzX(_A-hHTPw*cXDm=TuNZd;gp5ch}70J zTv}Y(DV_{3h1Zj=lAe=3m|>7nlrgf}ZuRcfGkiaOVz}3Y2Bx^Z`;1P{p|fi z2b>SI)GF7O)V@E+J$SdytFFCXyT0-e=1|t5rw!o^z27pvZE93(ENT3Bn0I*ONXU_% zCYz?Fqe@51n&D<)^VG4JV>iBY|E{yesHLuz)>?8L92Xvc_I=#J{_+2=_${t8_!le8-Jehe15v28 zmBOpTuPtA9&j!stev|fQey;ef!rLS781H)DN4%ey&;Ee@Q1wyoW7j9YPY)N;78d>m z1DNyt6gNdX00009a7bBm000XT000XT0n*)m`~Uz0KS@MER5*=Ikxgh^RTze!@0@#Q zCX-B)jwUrat+BSXvC<#4_)}~J3l>CO*$OJUaW7Uu#BN->aOXx5Tq@R;Zb~-=p>>gk zhzo74wwNZ9nV3xO%$K6QuhyDxn92N zoxJ~0Cv_oLeQjwAZ6}moIR5<>cdeE<3~rmKnrxqR%ujINp{hJ}VjuI6wxhikZ|q#|j}&*9~hVZS_AU)wt3u@BuKo_zGuAXEYf&Tez~v{sk?%@Lb7 zhEubXwX@Q2pJoM5-}+^A&v>a%KGQfbJ6(I~?)9*o7|SM-M=x&YpCzp<;xFVg?)5*^ zj@Ih+8w-uMdfWVwp?6h4q};X5&EGp=6gqQrM|%2dr}lDa`l?yl((dbHZH`p@$E{f_ zXOjCbKi0aiuvQ&AeQ_hwP7*yhC9@IAPF)tSjd}C4Rd!#^r@M(g*KH^J4*XVpJDq9p zXIt&5Zd1PAyH-AOcoak2Sxmzmwp|wU~qV8#P3s{R%OgDSCX}yn;jwb$_@s{ zr9|LNn0Cl);-B2s;KW1==b)T}tTHBgkyDp5vPlO{kcbosQH;96D+!JVNClTV36m+( znZ}$WXg^>B#SGL#rN$6rOU*VcvZ?WEf^eRZy{*e3 zT4jl~{uN{q)*=jz3L`foGh?0*m7cU@ILM)B385zbv zl?{#7iy^F5X&aH7iTo2)Mg>#c48-V-ofd^s)H#B>u zZ~DTz#>2f>O?At{x<%ewD~l@w)vpwOOhG0@L_q%ri9y&lM_CZg00000NkvXXu0mjf D)veGd literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/sabdown.png b/www/templates_shared/images/icons/sabdown.png new file mode 100644 index 0000000000000000000000000000000000000000..237313d1c7718446b182c23c2187c03cc5926c5b GIT binary patch literal 554 zcmV+_0@eMAP)VQ4q&J+3c=vBOX$; zN{FJML8{`Z2rUSLIe6?jiU)rjdiRfz9($7>dh%L&E=Z--^x(mGD6NTx9HN*u5J*Tg z$!=%YY_dtD)`7=+^Jc!^`OX`jkA}UNBo^%BU2c+qWn$trAE+8iAVG0I!M5D&dO~+L zAK_^2l=)F@mnLzI_{!77Zu`UEj6ru3i5M!K; zY@q7|#C_65plg`@vVZ0S7aTSfnA9Z6;1w(M(72-2Vw0d(3fhn~-^g?95LhDKklKoz z_jpYu?kH`urfcX}Ho-MtD3KD7A;CVX#POZO#UbR9qV%q_ii=a+L#0ODU$-N_=%p^u zB2SA~6b>MD1l6*DrE}Aw9tpP!tD8|im8*n)hKQ635DbbM36y_J#jGUg@IKa(JhRNe z_#eJ6Oi}q5=dGF;W^wTiftPc_-k6+Uo=BA!>whLhg~rR7CW@jkwS-o?W%`G-b@P=~ z3=Ny#dT0qjn;#w|BYV_U<|Mf5e|%Z9-f47I=&anica72Q(;1EQ>Yg96<``{|z1o5u s{(Yu)R=-ctzjEB)Xz_S+uzv*@0LZ7!@jX|L3;+NC07*qoM6N<$f>r+l@Bjb+ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/sabup.png b/www/templates_shared/images/icons/sabup.png new file mode 100644 index 0000000000000000000000000000000000000000..ed512086dd58227c9f4d333376977c59399a6e1c GIT binary patch literal 3222 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 IM6N<$f_sej-T(jq literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/shelfari.png b/www/templates_shared/images/icons/shelfari.png new file mode 100644 index 0000000000000000000000000000000000000000..99d752eaca0406f09a76f4b9b7809ec5d81cd75f GIT binary patch literal 692 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>EO+lq$Tl`G9U7g=@8HfvpaJw)|kj$P&Q<({LQdT9B*K;@@<7gcOMWYMv3 z=6bK6caGhN(fd9#FJ;@=m(#Lt#OVKhbRlKyso$?3-bpZi-5Ha;;n2I)tyjV{f1cZ# zvtj>(0>_7CULUtl{jzuNyTw(1zPw9cyKlxCkAFYDeAzwyVX6D|NS&qwXYG3yIQFky zu`{Y|f&H9KVTR!nvw)$%SQ6wH%;50sMjD8djc?PRtc zkg>qi#W6(Ua_o6mp+f-zEEf*OGB-Xj5xR5tuCBnldQpXd{Xu6|{a#zu5wiT^t1tUA z3?`lQ5nFwBT}b=or{5|p=g)u6%*E0wAl~PaTsY5PV}gs;+>>3FY!3SZ{xk$NvkME?omjyBh212@K#Ey-k!G``LA-#j6bM->yF(~dHHX`)92jM&N70T_1XGBx2l%7MwFx^mZVxG7o`Fz1|tJQ6I}yiT|=`F wLklZIGb>XQZ39Cq1A{m-3x5<1x%nxXX_dG&=w~;425MmNboFyt=akR{053)?*8l(j literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/steam.png b/www/templates_shared/images/icons/steam.png new file mode 100644 index 0000000000000000000000000000000000000000..8947f93b1aac3052156a83684bee84aed1b5d01e GIT binary patch literal 379 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 m<~TS}gjVX8`G5aNKL!A^TcigKmerEqjjaC z-J73D4c@+Xo)0=wJQs9vBWz;{NM>pnDsOUZE>7&gD>OwD{dImd9FO;u#Ms!F*QqY| zWq!Ui*k^pgfo8!}(7{(PDJX|VNAiHJXtpHZZdB>K?&Y}WB<+c3`lS&%>k2o8Pv89U zO0w58LPu0^-Q!S}nmM=4n?4_FN>k?uR+eoR-3}WMZ{WN31;=K>gAW}#>XF65LNa^f zA|GoHs|cR|u$~jc4YXU5aqkwBhQ%$n#aHDDy`P1su_Qk{T4rwIONxbDQa$-t+k1WC zulZ@0%}eL~OwYq=QB$)UvTa+eNeAzQ;)yeUvcEYT$=C9DLh)V0A`i~rk2F)G^mz6MR|_KoQo8dRww@#!W1K7#WLq z^Um!~wpQWY&2?HWMZ{6$Oq+5=v$+W;hZ=Ze%1=})nr+2f>jjRFcMywrBkO~afwp}| zVN$SXQ}RN|Lwc#o>sLZp);%YslBQp-&~CXHT3us*riSeuFS9M!GVu4x)2YjY{pwSS z2@4U>bmwZh>@A~#BNZ=~S~d_sSJq44om1@Sdb(d4p|k(Ov^bXyo7IhV|&zb7*>N`8Lw9_Q9BV(}i@_jLb{^Pd{l VX_@;a?F#?^002ovPDHLkV1h?kvTXnW literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/arrow2_n.png b/www/templates_shared/images/icons/vortex/arrow2_n.png new file mode 100644 index 0000000000000000000000000000000000000000..dc41b02cf446a0ab74224915b6f529aa7178bf20 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fovjCqE*Ud{7Zd$xx*{m6>=g!`^c)_{_bC=GXzG}{_B{QaN zSTukA!g(uZ&s;uh#@hLF*UX!pu0;bbH>zSYYopYuYlFNX|_{ z7aI0AWSG34qq*S-@B7t_wwu;J_&e!y`@wVe(E^9E`gkTBQecVo`p+W4AT){dUP44@ QA=g!`^c)_{_bC=GXzGTLwWb@yJseRKQC0Fe|93{cAp(Af2aN9Hee9z;5_4| SQhgF=6@#a%pUXO@geCw7(0c{| literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/bigsmile.png b/www/templates_shared/images/icons/vortex/bigsmile.png new file mode 100644 index 0000000000000000000000000000000000000000..5edfa84b6cf3333a6e1f901e8d23d8f735acfc63 GIT binary patch literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fovjCqE*Ud{7Zd$xx-GaHxX3bbNXV&Vuvo|hYuzumZr8B25 zpEYCc{J9$z&0jKO+M0QDR?MEca?Y&(|NjHEnqH0F2Bd^ag8YJkBB+4j(f<8HK-mgU z7srr_TQTQ6g&GuiTrP@zxBRc;1n!~xyF;OXk;vd$@?2>?x$iRJ(R literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/bigsmiledown.png b/www/templates_shared/images/icons/vortex/bigsmiledown.png new file mode 100644 index 0000000000000000000000000000000000000000..e9519a0a3328b557b642e5a2d44925e451b7f5ef GIT binary patch literal 2852 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/edit.png b/www/templates_shared/images/icons/vortex/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..6f582ec47fbede73959608ec7942cda6b495fee0 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fovjCqE*Ud{7Zd$xx*{m7s7R+5bbNa@`3s%jUwPeP$^$X{% zo;!QPqWQ~b%~&ye=Gysl*UX!1bG&bEOJ&?3Z@;pBW$=rp zVvd(ho4I#8h=gSHzI8YvRh4|2Lu=~ZK*xZ@T4~`U5;vs9*}0xu2X*~Ye|%RVQze+k guIbyePpnk`;@1%w{c1w4}3i@DBCbknnAqo(*H}ERrbPD z?uCjwYPMKz7LIC>uxMU&%3474J(vFB?mY)|D)uv6p13(Y^@>mWe9rGa0cJ-kpZ&>+ qNM~xDelz{wp$Ezm@siUSm>G850;GgWg8YJkBB+4j(f<8HK-p|h z7srr_TQO%n`5Fv(oC7a2rM`G@@BbzXM#ZhSm&>#7y%u!sx83>NXfcNB8B5MyQafnM zsVBTi>=J9_1(vB_*eq8oHXm3opxR{1;UnOCqTIb{iVD;Hi4rdNf9`v1vFE3&LDxZr f7mL5RH!w0-7jjAT6@;||t!40Z^>bP0l+XkKN=9itFC-G;h z9I+MLD;$4TaCa;@9KE2^tiz#vqRqC1wH~L7V;69K{>A*bP0l+XkKnwxzT literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/stop.png b/www/templates_shared/images/icons/vortex/stop.png new file mode 100644 index 0000000000000000000000000000000000000000..ae257e6d9a132b69339c774eb83350624f9c8c6c GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fovjCqE*Ud{7Zd$xx_1xL3=FD0)YsR_-b2lztuyp41B{QaN zSTujd?3wEq&Raff#@hLF*UX!jRNCX9NG4>lv6C5*)e0 UD_a(>09wZ2>FVdQ&MBb@0QKB^CIA2c literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/trash.png b/www/templates_shared/images/icons/vortex/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea124f886ae333c4b26ec927df2e4c866224d0d GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fovjCqE*Ud{7Zd$xx-GaHR=gwX>YsSXK3s%jUwRGn6B{QaN zSTujd?3v4F%~-#1-rD(dSI(KWX5O6t|NjHEep(bX7f1<}1o;I6MNk35qy77ZfU?z| zE{-7;w_?sk3$-fnFkh%}43SfPQ@?rHqH?#NHcN61s`B54zb;(!dJ}`kL*;Lxvz_iW zFVdQ&MBb@0F-fy^#A|> literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/icons/vortex/tv.png b/www/templates_shared/images/icons/vortex/tv.png new file mode 100644 index 0000000000000000000000000000000000000000..935e6f2f876301befc1dab1716a90edf6b1363cc GIT binary patch literal 304 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 LoL`1t`i24~xOCaK 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 F{4erJQ?~#B literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/logo_largeplus.png b/www/templates_shared/images/logo_largeplus.png new file mode 100644 index 0000000000000000000000000000000000000000..de4167db78429ca604f39be27f1540a66c844231 GIT binary patch literal 204741 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 z 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 #hkCFRQeFCi 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%0Dt-sG<1pxu2(cfMKe3b3(6DTIw|swZArM_|U}zYP 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

Cs?~*+_DYR}ErNYbj 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 Cj4_b_ literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/multimedia/audio.png b/www/templates_shared/images/multimedia/audio.png new file mode 100644 index 0000000000000000000000000000000000000000..d67a4bb2a21f2802fe7549d4db8c641a3f97a645 GIT binary patch literal 949 zcmV;m14{gfP)=iwZ|BXsHYOM?T0$DWJY(M&+ltW+w+Tt5H9*w|R%|5@>GbLGt| zCkBR&edO2cXIAd4ifXk2fNk4!rMm(}$QyI{xpziKM{hp_c<<`f*WA|B^_w?;(aea6 z5DI>+h7f{~suBcsJkMj~sgdf&+TB+^ymsxozX6voUOelzwSPZ7JsnCWQ{?6sX*Qb( z@lQcTRTz4#pVHk`PK}(}FRd&+bA5dLR|zO~yycV0$;ptLOp(jqCLGqVqBgb@$9Cda zmW`@}$mJI4Om{Q!(}bC5O??a?UcGSP#imrhHB5v2LIKT;Vmk>`(L~n`06g!2hEOT* zY|*HD9Lcm31aMd_KP|(C`NHzbGM42K={ZR>J&YNNl4$L~FeJJraND~vbe(ACNwl^> z;)x{1Vgb#x&dY;?gG?wCqSgR+;54DV5?22iw(l)t>MFV>*}1oj*?$)G!5_H8=a5pR zR;%Irez)o$)@nh}z_KEAby?(#7CkXR-HB5y772oY-oE2>wx}$%w$Yo8&`@0J^*Vmd zuc^LwxUjdkkLxBVO#evc@zbbYnRCy-#QNF_sv4p*eT41pEqYHp%T8gIR6<8eiMQ`9 zC~e7>vS~#xYhhJbRvb+PB;6FTxXaPLAv!uU&;&&a8V40jEkthiXAV8DQQfb;Ehnn_6SJK{X}$FBf2MqLczD2YV&8b)VV|39 zVQA<$9qAsL%_ggNipyB8a1|Nq|}7P`fqr}J>~$;r7;cqaUQzcEiBYIn^pFpC~9nVp+|kV&({pS)+Dezq0> zsP$xUaHxcq2)}Z<9(Gu5OO(&+#nX5YMbZLjw-`ucW5f5wLh&ZZN` z-@pOWHaKjz;hLI6I23?Z%b@rD9w^JpaPizZnXpt|IzD=BC<}BQ?PdbYfAyVs$4o^d z0SH85^qoG7>%ZTD(>aU8(+pZ$cOo1PqP_ij{BrfGZu`#tU)wDsQ2;>ak++VXz4Qaw z-DV={3L_c&!%9Z)P7qB^GuhU-mpG;$kg@RzQm&{Y2fJP(1DAgyhhOXITJIpopslT# zayT(LF@;o`;M;-kP%JIP=`T;={6HTB0s;E_FM=aH+_*6Y_tGM?%%+Mgpj0TNGp-rv zbb1(#dW2S^h{lsx3578|H;+gxjl zC^TuYl(BVd^}Hx8F5qceWOZ;j!-t^DmH0u|q>YBL{#)B7s`1!qzQ1@VOKO zJRZvBC9qf~;qiD8iL8On&Bf+A1Dge6iIi>GyS&?aZvr%50J%brP1V)-__NPJK;U}l z#y9;J5Dcs!lTM;(R|^V?O6IdOARHN}Z)#zSWrg6l3_3dZ!5;|Y&11djIsOp>p$JR| z_JQMAlq*VMXlTUc^JlWx$h&=Q_(}b9FNpTG?P@9z3n8mwaCc+`WBaeG1M^HEV# zi$ZZOI=VV>bHvGc9tE#NLQ9j`OWf03f8Cql7s*wshG1xw^4^~YMNy#nG$_JCB9o&; zsp8ze;HM6Y@3%}U)~sS$4=Xi$?Ad1mfLD%vXv!A}duugSTQ^F?bRf8jRGLjMxZQuo z;?a|XU!43^t$sN#$i_@%07*qoM6N<$g1Owzg8%>k literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/nav-tile.png b/www/templates_shared/images/nav-tile.png new file mode 100644 index 0000000000000000000000000000000000000000..171b3c369603eab72f5d2976bdb721cb924ffd5f GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI}!3HGf{@&OHq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~-c75RC(IEGZ*N=isedzSp^>(|MtkANWI*ZBhn4jlRL-=4YU ztNf9qhRqua1(SIGI|}jqH%#eNSkQJz*Ij_+OmahX-!ciE#^%|xCVgU3IKVJ_Syu36 S7OxVZ$qb&ZelF{r5}E*!h(R6z literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/newwindow.png b/www/templates_shared/images/newwindow.png new file mode 100644 index 0000000000000000000000000000000000000000..b8782b5854323457138cc89fb6b8f7bd4ba62a27 GIT binary patch literal 1272 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2VGmzZ%#=aj&F%}28J29*~C-V}>VM%xNb!1@J z*w6hZkrl{SNcITwWnidMV_;}#VPNMfe{h{_M1iPfO(3cB*-rqnD|FBUVO>#glKqJm|u_?};mKk$`F=CL@# TiUVEeK?%&$)z4*}Q$iB}4;fPF literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/nn_small.jpg b/www/templates_shared/images/nn_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..33b38918f344debd9fb628be75d1b5047289b634 GIT binary patch literal 4478 zcmb7GXH*kfvrP!0DQX~80U@CVL3&dl^dce&1f(fd5NU>@f+!+}-a?1a1c8Jm9fFAT zBE3tKs?wC+q&)7u-}mGGcyFz@�T&dluD=g(PlHhwk>xT346qX_^4fdK9E12~%m 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/nzbget.png b/www/templates_shared/images/nzbget.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9d1177bd95b9b49e48057da0c5033bfad47854 GIT binary patch literal 12409 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/powered.png b/www/templates_shared/images/powered.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ed21cf6d782356c6e933afb2477ae0c75754ee GIT binary patch literal 12980 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 literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/sabnzbd.png b/www/templates_shared/images/sabnzbd.png new file mode 100644 index 0000000000000000000000000000000000000000..99ca8c9d8197107b83015be224bd3929bd8a2b6d GIT binary patch literal 5934 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 QlK=n!07*qoM6N<$f?q{S=Kufz literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/sickbeard.png b/www/templates_shared/images/sickbeard.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5115eb46dd108af81aa5928a1f30f2b88f295d GIT binary patch literal 13531 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 VXU-5NcHsa3002ovPDHLkV1h^O#PI+C literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/sorting/arrow_down.gif b/www/templates_shared/images/sorting/arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..861bd1c6d4a175f5b3e448f4d7446bcdb4758f2d GIT binary patch literal 844 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 Mk(75?APCs~4~VW_=Kufz literal 0 HcmV?d00001 diff --git a/www/templates_shared/images/valid-xhtml10.png b/www/templates_shared/images/valid-xhtml10.png new file mode 100644 index 0000000000000000000000000000000000000000..b81de9160bbaa1aaff62924d217b523edbb6f53d GIT binary patch literal 1882 zcmeHG`!^E`9G^Tlk6s&D^1QT2@>WDd%wsK^_pmaL+e)(tO=ELITv1_^QKOR3XjqoE z(N^*Z$)mK2gJ`V`5nb-i{Ri%^_lNsA=kxuX?>XP^IiK_Wp3h|@!c!dt1pxp6b-0(i zzf6N=)Kig{RkY^nAOIi_K>DIR=5g4kIHY7z}1(ZRP0b=xPH+IO`&OTu^QX5kAH^BmUwo)VN_SR?yB(55Y zzpHzu#^CIIV`A-|q&myghjtem9mq}2RF+3pi*H_Az}5E9B5rsI4|lUOj{fY-ZDHb_ zuC&^o5(W7(0H9n&AxB@EZnyiEhH|Tu?p!ndD$KZsvXO5V>(H^jo3nHjNIJSAD0 zo&Ot*ouDugg|skNzM3dV!e<4puf)k?4;=ZTy!3aL%4wkvWw+>Er3X zaYtDykTpPpSI9Y;di}$rU3h0%uHkTZSG3pjuO+`9+kPCJ^-4eQu!m(%pt*{-lX|`Q zBoKMp7Fsf~EvPma^3IAuM?B;kd#l)az&>tbm3>KH8ZXlb-x5M4OZ_gybURruR7`1V zE{C5@2k{L*M0^6wxa`i@{PCnq*cZ9W+6MKjUD}f(gW9A1xjD z9oWl1v89%(uql1?Z9qA$PAOv#c1+<)D|=Q_HmofNANy)v9jG-kYwrhNceSpoQB1!C zjxk9w#46&kRNggH)Qb7a&V!d%6gdhGlq@B7pfW)}gl@z0w&ZOwBGkVM(f~zuPHY9C zAwLncVDjeauWYvg$`>%Hzq!ROyU!+lvuB^4xg+xiyrNj-mys0Bw;j%9@auW;zq}gd zC&BcUeEgY{trFN{f+X#(X@@^BSTV&bKZM9XQOF3R(3sa3lH8?9+V8sJ-xpgYzl=q?LG^PUu`r371T5XJU z$4<&tdEY_4+wo12^D0ep=Lha_nDVq25@S)`XeDEOifUx_UN66<*7vB{D#aJlyT~h2 z$?I~%2?7d`N;;mj;WPt^#5S=%syv4dtrVeV!k2eg@%AM4L`A+7IcFc5NExF5pE9++ z_o|JEpX`&Ks7S6lu3f%-;+tN~CFr{nJk`bEt!=H+vm&xn!I_`fF+)B(;aoMS`g-c; z(fko%A6>lx7~%Tlx6myX&>Dr7Iw)zDb=4`X9_XxI_1vJayM228=}V#oiI|O4?VB@q z=!_*Lnzd=E5nsCrK{tU7d!t>MkTmY{l+rRQT*%?Rmnm zTBLwMfOWS&TzF!kmfqgF@O(NgJIALUZGd1^#R&vWS;Ef!y{aGB)#Y6_?&oxV;HEBO z_7^l4tj1)JBiHDC5m!5LM?#iJ70SAdgal0PpHvt7)a0h|AkMDE69Y_RMsmpEYqv1H z51Ke8$)`rla#nF^X-+(oKVC^kjhb(fzm<(&jP%vRvDdiX-0ySaT;{K1et$jMfatZn u;lw(QbcUI*this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.4",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.4",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('

',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport),this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-mp.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.4",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.4",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.4",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a(document.body).height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/www/templates_shared/scripts/holder.js b/www/templates_shared/scripts/holder.js new file mode 100644 index 000000000..13612b12f --- /dev/null +++ b/www/templates_shared/scripts/holder.js @@ -0,0 +1,419 @@ +/* + +Holder - 2.0 - client side image placeholders +(c) 2012-2013 Ivan Malopinsky / http://imsky.co + +Provided under the Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0 +Commercial use requires attribution. + +*/ + +var Holder = Holder || {}; +(function (app, win) { + +var preempted = false, +fallback = false, +canvas = document.createElement('canvas'); + +//getElementsByClassName polyfill +document.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll("."+e);if(t.evaluate){r=".//*[contains(concat(' ', @class, ' '), ' "+e+" ')]",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName("*"),r=new RegExp("(^|\\s)"+e+"(\\s|$)");for(i=0;i= 0.75) { + text_height = Math.floor(text_height * 0.75 * (width/text_width)); + } + //Resetting font size if necessary + ctx.font = "bold " + (text_height * ratio) + "px " + font; + ctx.fillText(text, (width / 2), (height / 2), width); + return canvas.toDataURL("image/png"); +} + +function render(mode, el, holder, src) { + var dimensions = holder.dimensions, + theme = holder.theme, + text = holder.text ? decodeURIComponent(holder.text) : holder.text; + var dimensions_caption = dimensions.width + "x" + dimensions.height; + theme = (text ? extend(theme, { + text: text + }) : theme); + theme = (holder.font ? extend(theme, { + font: holder.font + }) : theme); + if (mode == "image") { + el.setAttribute("data-src", src); + el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption); + if (fallback || !holder.auto) { + el.style.width = dimensions.width + "px"; + el.style.height = dimensions.height + "px"; + } + if (fallback) { + el.style.backgroundColor = theme.background; + } else { + el.setAttribute("src", draw(ctx, dimensions, theme, ratio)); + } + } else if (mode == "background") { + if (!fallback) { + el.style.backgroundImage = "url(" + draw(ctx, dimensions, theme, ratio) + ")"; + el.style.backgroundSize = dimensions.width + "px " + dimensions.height + "px"; + } + } else if (mode == "fluid") { + el.setAttribute("data-src", src); + el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption); + if (dimensions.height.substr(-1) == "%") { + el.style.height = dimensions.height + } else { + el.style.height = dimensions.height + "px" + } + if (dimensions.width.substr(-1) == "%") { + el.style.width = dimensions.width + } else { + el.style.width = dimensions.width + "px" + } + if (el.style.display == "inline" || el.style.display == "") { + el.style.display = "block"; + } + if (fallback) { + el.style.backgroundColor = theme.background; + } else { + el.holderData = holder; + fluid_images.push(el); + fluid_update(el); + } + } +}; + +function fluid_update(element) { + var images; + if (element.nodeType == null) { + images = fluid_images; + } else { + images = [element] + } + for (i in images) { + var el = images[i] + if (el.holderData) { + var holder = el.holderData; + el.setAttribute("src", draw(ctx, { + height: el.clientHeight, + width: el.clientWidth + }, holder.theme, ratio)); + } + } +} + +function parse_flags(flags, options) { + + var ret = { + theme: settings.themes.gray + }, render = false; + + for (sl = flags.length, j = 0; j < sl; j++) { + var flag = flags[j]; + if (app.flags.dimensions.match(flag)) { + render = true; + ret.dimensions = app.flags.dimensions.output(flag); + } else if (app.flags.fluid.match(flag)) { + render = true; + ret.dimensions = app.flags.fluid.output(flag); + ret.fluid = true; + } else if (app.flags.colors.match(flag)) { + ret.theme = app.flags.colors.output(flag); + } else if (options.themes[flag]) { + //If a theme is specified, it will override custom colors + ret.theme = options.themes[flag]; + } else if (app.flags.text.match(flag)) { + ret.text = app.flags.text.output(flag); + } else if (app.flags.font.match(flag)) { + ret.font = app.flags.font.output(flag); + } else if (app.flags.auto.match(flag)) { + ret.auto = true; + } + } + + return render ? ret : false; + +}; + + + +if (!canvas.getContext) { + fallback = true; +} else { + if (canvas.toDataURL("image/png") + .indexOf("data:image/png") < 0) { + //Android doesn't support data URI + fallback = true; + } else { + var ctx = canvas.getContext("2d"); + } +} + +var dpr = 1, bsr = 1; + +if(!fallback){ + dpr = window.devicePixelRatio || 1, + bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; +} + +var ratio = dpr / bsr; + +var fluid_images = []; + +var settings = { + domain: "holder.js", + images: "img", + bgnodes: ".holderjs", + themes: { + "gray": { + background: "#eee", + foreground: "#aaa", + size: 12 + }, + "social": { + background: "#3a5a97", + foreground: "#fff", + size: 12 + }, + "industrial": { + background: "#434A52", + foreground: "#C2F200", + size: 12 + } + }, + stylesheet: "" +}; + + +app.flags = { + dimensions: { + regex: /^(\d+)x(\d+)$/, + output: function (val) { + var exec = this.regex.exec(val); + return { + width: +exec[1], + height: +exec[2] + } + } + }, + fluid: { + regex: /^([0-9%]+)x([0-9%]+)$/, + output: function (val) { + var exec = this.regex.exec(val); + return { + width: exec[1], + height: exec[2] + } + } + }, + colors: { + regex: /#([0-9a-f]{3,})\:#([0-9a-f]{3,})/i, + output: function (val) { + var exec = this.regex.exec(val); + return { + size: settings.themes.gray.size, + foreground: "#" + exec[2], + background: "#" + exec[1] + } + } + }, + text: { + regex: /text\:(.*)/, + output: function (val) { + return this.regex.exec(val)[1]; + } + }, + font: { + regex: /font\:(.*)/, + output: function (val) { + return this.regex.exec(val)[1]; + } + }, + auto: { + regex: /^auto$/ + } +} + +for (var flag in app.flags) { + if (!app.flags.hasOwnProperty(flag)) continue; + app.flags[flag].match = function (val) { + return val.match(this.regex) + } +} + +app.add_theme = function (name, theme) { + name != null && theme != null && (settings.themes[name] = theme); + return app; +}; + +app.add_image = function (src, el) { + var node = selector(el); + if (node.length) { + for (var i = 0, l = node.length; i < l; i++) { + var img = document.createElement("img") + img.setAttribute("data-src", src); + node[i].appendChild(img); + } + } + return app; +}; + +app.run = function (o) { + var options = extend(settings, o), + images = [], imageNodes = [], bgnodes = []; + + if(typeof(options.images) == "string"){ + imageNodes = selector(options.images); + } + else if (window.NodeList && options.images instanceof window.NodeList) { + imageNodes = options.images; + } else if (window.Node && options.images instanceof window.Node) { + imageNodes = [options.images]; + } + + if(typeof(options.bgnodes) == "string"){ + bgnodes = selector(options.bgnodes); + } else if (window.NodeList && options.elements instanceof window.NodeList) { + bgnodes = options.bgnodes; + } else if (window.Node && options.bgnodes instanceof window.Node) { + bgnodes = [options.bgnodes]; + } + + preempted = true; + + for (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]); + + var holdercss = document.getElementById("holderjs-style"); + if (!holdercss) { + holdercss = document.createElement("style"); + holdercss.setAttribute("id", "holderjs-style"); + holdercss.type = "text/css"; + document.getElementsByTagName("head")[0].appendChild(holdercss); + } + + if (!options.nocss) { + if (holdercss.styleSheet) { + holdercss.styleSheet.cssText += options.stylesheet; + } else { + holdercss.appendChild(document.createTextNode(options.stylesheet)); + } + } + + var cssregex = new RegExp(options.domain + "\/(.*?)\"?\\)"); + + for (var l = bgnodes.length, i = 0; i < l; i++) { + var src = window.getComputedStyle(bgnodes[i], null) + .getPropertyValue("background-image"); + var flags = src.match(cssregex); + var bgsrc = bgnodes[i].getAttribute("data-background-src"); + + if (flags) { + var holder = parse_flags(flags[1].split("/"), options); + if (holder) { + render("background", bgnodes[i], holder, src); + } + } + else if(bgsrc != null){ + var holder = parse_flags(bgsrc.substr(bgsrc.lastIndexOf(options.domain) + options.domain.length + 1) + .split("/"), options); + if(holder){ + render("background", bgnodes[i], holder, src); + } + } + } + + for (l = images.length, i = 0; i < l; i++) { + + var attr_src = attr_data_src = src = null; + + try{ + attr_src = images[i].getAttribute("src"); + attr_datasrc = images[i].getAttribute("data-src"); + }catch(e){} + + if (attr_datasrc == null && !! attr_src && attr_src.indexOf(options.domain) >= 0) { + src = attr_src; + } else if ( !! attr_datasrc && attr_datasrc.indexOf(options.domain) >= 0) { + src = attr_datasrc; + } + + if (src) { + var holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1) + .split("/"), options); + if (holder) { + if (holder.fluid) { + render("fluid", images[i], holder, src) + } else { + render("image", images[i], holder, src); + } + } + } + } + return app; +}; + +contentLoaded(win, function () { + if (window.addEventListener) { + window.addEventListener("resize", fluid_update, false); + window.addEventListener("orientationchange", fluid_update, false); + } else { + window.attachEvent("onresize", fluid_update) + } + preempted || app.run(); +}); + +if (typeof define === "function" && define.amd) { + define("Holder", [], function () { + return app; + }); +} + +})(Holder, window); diff --git a/www/templates_shared/scripts/html5shiv.js b/www/templates_shared/scripts/html5shiv.js new file mode 100644 index 000000000..784f221ca --- /dev/null +++ b/www/templates_shared/scripts/html5shiv.js @@ -0,0 +1,8 @@ +/* + HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); +a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; +c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| +"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); +for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.9.1", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of id + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + + var key; + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( list && ( !fired || stack ) ) { + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function() { + + var support, all, a, + input, select, fragment, + opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
a"; + + // Support tests won't run in some limited or non-browser environments + all = div.getElementsByTagName("*"); + a = div.getElementsByTagName("a")[ 0 ]; + if ( !all || !a || !all.length ) { + return {}; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + support = { + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + getSetAttribute: div.className !== "t", + + // IE strips leading whitespace when .innerHTML is used + leadingWhitespace: div.firstChild.nodeType === 3, + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + tbody: !div.getElementsByTagName("tbody").length, + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + htmlSerialize: !!div.getElementsByTagName("link").length, + + // Get the style information from getAttribute + // (IE uses .cssText instead) + style: /top/.test( a.getAttribute("style") ), + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + hrefNormalized: a.getAttribute("href") === "/a", + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.5/.test( a.style.opacity ), + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + cssFloat: !!a.style.cssFloat, + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + checkOn: !!input.value, + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + optSelected: opt.selected, + + // Tests for enctype support on a form (#6743) + enctype: !!document.createElement("form").enctype, + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>", + + // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode + boxModel: document.compatMode === "CSS1Compat", + + // Will be defined later + deleteExpando: true, + noCloneEvent: true, + inlineBlockNeedsLayout: false, + shrinkWrapBlocks: false, + reliableMarginRight: true, + boxSizingReliable: true, + pixelPosition: false + }; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP), test/csp.php + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + support.boxSizing = ( div.offsetWidth === 4 ); + support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 ); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})(); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an id for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique id for each element since their data + // ends up in the global cache + if ( isNode ) { + elem[ internalKey ] = id = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + cache[ id ] = {}; + + // Avoids exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var i, l, thisCache, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + for ( i = 0, l = name.length; i < l; i++ ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + "applet": true + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + elem = this[0], + i = 0, + data = null; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( !name.indexOf( "data-" ) ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return jQuery.access( this, function( value ) { + + if ( value === undefined ) { + // Try to fetch any internally stored data first + return elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + } + + this.each(function() { + jQuery.data( this, key, value ); + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + hooks.cur = fn; + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + rboolean = /^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isBool = typeof stateVal === "boolean"; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + state = stateVal, + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + state = isBool ? state : !self.hasClass( className ); + self[ state ? "addClass" : "removeClass" ]( className ); + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val, + self = jQuery(this); + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, self.val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // attributes.value is undefined in Blackberry 4.7 but + // uses .value. See #6932 + var val = elem.attributes.value; + return !val || val.specified ? elem.value : elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var values = jQuery.makeArray( value ); + + jQuery(elem).find("option").each(function() { + this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0; + }); + + if ( !values.length ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, notxml, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( notxml ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && notxml && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && notxml && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + + // In IE9+, Flash objects don't have .getAttribute (#12945) + // Support: IE9+ + if ( typeof elem.getAttribute !== core_strundefined ) { + ret = elem.getAttribute( name ); + } + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( rboolean.test( name ) ) { + // Set corresponding property to false for boolean attributes + // Also clear defaultChecked/defaultSelected (if appropriate) for IE<8 + if ( !getSetAttribute && ruseDefault.test( name ) ) { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } else { + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + return ( elem[ name ] = value ); + } + + } else { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + return elem[ name ]; + } + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } +}); + +// Hook for boolean attributes +boolHook = { + get: function( elem, name ) { + var + // Use .prop to determine if this attribute is understood as boolean + prop = jQuery.prop( elem, name ), + + // Fetch it accordingly + attr = typeof prop === "boolean" && elem.getAttribute( name ), + detail = typeof prop === "boolean" ? + + getSetInput && getSetAttribute ? + attr != null : + // oldIE fabricates an empty string for missing boolean attributes + // and conflates checked/selected into attroperties + ruseDefault.test( name ) ? + elem[ jQuery.camelCase( "default-" + name ) ] : + !!attr : + + // fetch an attribute node for properties not recognized as boolean + elem.getAttributeNode( name ); + + return detail && detail.value !== false ? + name.toLowerCase() : + undefined; + }, + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; + +// fix oldIE value attroperty +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return jQuery.nodeName( elem, "input" ) ? + + // Ignore the value *property* by using defaultValue + elem.defaultValue : + + ret && ret.specified ? ret.value : undefined; + }, + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ( name === "id" || name === "name" || name === "coords" ? ret.value !== "" : ret.specified ) ? + ret.value : + undefined; + }, + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + get: nodeHook.get, + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }); + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { + get: function( elem ) { + var ret = elem.getAttribute( name, 2 ); + return ret == null ? undefined : ret; + } + }); + }); + + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }); +} + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +if ( !jQuery.support.checkOn ) { + jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + get: function( elem ) { + // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + } + }; + }); +} +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }); +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique id, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + // jQuery(...).bind("mouseover mouseout", fn); + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + event.isTrigger = true; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) && + !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur != this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + } + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== document.activeElement && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === document.activeElement && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +/*! + * Sizzle CSS Selector Engine + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license + * http://sizzlejs.com/ + */ +(function( window, undefined ) { + +var i, + cachedruns, + Expr, + getText, + isXML, + compile, + hasDuplicate, + outermostContext, + + // Local document vars + setDocument, + document, + docElem, + documentIsXML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + sortOrder, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + support = {}, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Array methods + arr = [], + pop = arr.pop, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*" ), + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "id": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rsibling = /[\x20\t\r\n\f]*[+~]/, + + rnative = /^[^{]+\{\s*\[native code/, + + // Easily-parseable/retrievable id or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, + funescape = function( _, escaped ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + return high !== high ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Use a stripped-down slice if we can't use a native one +try { + slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; +} catch ( e ) { + slice = function( i ) { + var elem, + results = []; + while ( (elem = this[i++]) ) { + results.push( elem ); + } + return results; + }; +} + +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var cache, + keys = []; + + return (cache = function( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + }); +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return fn( div ); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( !documentIsXML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#id") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of id + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getByClassName && context.getElementsByClassName ) { + push.apply( results, slice.call(context.getElementsByClassName( m ), 0) ); + return results; + } + } + + // QSA path + if ( support.qsa && !rbuggyQSA.test(selector) ) { + old = true; + nid = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra id on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, slice.call( newContext.querySelectorAll( + newSelector + ), 0 ) ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsXML = isXML( doc ); + + // Check if getElementsByTagName("*") returns only elements + support.tagNameNoComments = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if attributes should be retrieved by attribute nodes + support.attributes = assert(function( div ) { + div.innerHTML = ""; + var type = typeof div.lastChild.getAttribute("multiple"); + // IE8 returns a string for some attributes even when not present + return type !== "boolean" && type !== "string"; + }); + + // Check if getElementsByClassName can be trusted + support.getByClassName = assert(function( div ) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + if ( !div.getElementsByClassName || !div.getElementsByClassName("e").length ) { + return false; + } + + // Safari 3.2 caches class attributes and doesn't catch changes + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }); + + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by id + support.getByName = assert(function( div ) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
"; + docElem.insertBefore( div, docElem.firstChild ); + + // Test + var pass = doc.getElementsByName && + // buggy browsers will return fewer than the correct 2 + doc.getElementsByName( expando ).length === 2 + + // buggy browsers will return more than the correct 0 + doc.getElementsByName( expando + 0 ).length; + support.getIdNotName = !doc.getElementById( expando ); + + // Cleanup + docElem.removeChild( div ); + + return pass; + }); + + // IE6/7 return modified attributes + Expr.attrHandle = assert(function( div ) { + div.innerHTML = ""; + return div.firstChild && typeof div.firstChild.getAttribute !== strundefined && + div.firstChild.getAttribute("href") === "#"; + }) ? + {} : + { + "href": function( elem ) { + return elem.getAttribute( "href", 2 ); + }, + "type": function( elem ) { + return elem.getAttribute("type"); + } + }; + + // id find and filter + if ( support.getIdNotName ) { + Expr.find["id"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["id"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + Expr.find["id"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && !documentIsXML ) { + var m = context.getElementById( id ); + + return m ? + m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? + [m] : + undefined : + []; + } + }; + Expr.filter["id"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.tagNameNoComments ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Name + Expr.find["NAME"] = support.getByName && function( tag, context ) { + if ( typeof context.getElementsByName !== strundefined ) { + return context.getElementsByName( name ); + } + }; + + // Class + Expr.find["CLASS"] = support.getByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && !documentIsXML ) { + return context.getElementsByClassName( className ); + } + }; + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21), + // no need to also add to buggyMatches since matches checks buggyQSA + // A support test would require too much code (would include document ready) + rbuggyQSA = [ ":focus" ]; + + if ( (support.qsa = isNative(doc.querySelectorAll)) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // IE8 - Some boolean attributes are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Opera 10-12/IE8 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = ""; + if ( div.querySelectorAll("[i^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = isNative( (matches = docElem.matchesSelector || + docElem.mozMatchesSelector || + docElem.webkitMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = new RegExp( rbuggyMatches.join("|") ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = isNative(docElem.contains) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + var compare; + + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + if ( (compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b )) ) { + if ( compare & 1 || a.parentNode && a.parentNode.nodeType === 11 ) { + if ( a === doc || contains( preferredDoc, a ) ) { + return -1; + } + if ( b === doc || contains( preferredDoc, b ) ) { + return 1; + } + return 0; + } + return compare & 4 ? -1 : 1; + } + + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + // Always assume the presence of duplicates if sort doesn't + // pass them to our comparison function (as in Google Chrome). + hasDuplicate = false; + [0, 0].sort( sortOrder ); + support.detectDuplicates = hasDuplicate; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + // rbuggyQSA always contains :focus, so no need for an existence check + if ( support.matchesSelector && !documentIsXML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && !rbuggyQSA.test(expr) ) { + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + var val; + + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( !documentIsXML ) { + name = name.toLowerCase(); + } + if ( (val = Expr.attrHandle[ name ]) ) { + return val( elem ); + } + if ( documentIsXML || support.attributes ) { + return elem.getAttribute( name ); + } + return ( (val = elem.getAttributeNode( name )) || elem.getAttribute( name ) ) && elem[ name ] === true ? + name : + val && val.specified ? val.value : null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +// Document sorting and removing duplicates +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + i = 1, + j = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + results.sort( sortOrder ); + + if ( hasDuplicate ) { + for ( ; (elem = results[i]); i++ ) { + if ( elem === results[ i - 1 ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +// Returns a function to use in pseudos for input types +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +// Returns a function to use in pseudos for buttons +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +// Returns a function to use in pseudos for positionals +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[4] ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeName ) { + if ( nodeName === "*" ) { + return function() { return true; }; + } + + nodeName = nodeName.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifider + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsXML ? + elem.getAttribute("xml:lang") || elem.getAttribute("lang") : + elem.lang) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push( { + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an id + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "id" && + context.nodeType === 9 && !documentIsXML && + Expr.relative[ tokens[1].type ] ) { + + context = Expr.find["id"]( token.matches[0].replace( runescape, funescape ), context )[0]; + if ( !context ) { + return results; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, slice.call( seed, 0 ) ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + documentIsXML, + results, + rsibling.test( selector ) + ); + return results; +} + +// Deprecated +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Easy API for creating new setFilters +function setFilters() {} +Expr.filters = setFilters.prototype = Expr.pseudos; +Expr.setFilters = new setFilters(); + +// Initialize with the default document +setDocument(); + +// Override sizzle attribute retrieval +Sizzle.attr = jQuery.attr; +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, ret, self, + len = this.length; + + if ( typeof selector !== "string" ) { + self = this; + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + ret = []; + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, this[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector, false) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector, true) ); + }, + + is: function( selector ) { + return !!selector && ( + typeof selector === "string" ? + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test( selector ) ? + jQuery( selector, this.context ).index( this[0] ) >= 0 : + jQuery.filter( selector, this ).length > 0 : + this.filter( selector ).length > 0 ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + cur = this[i]; + + while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) { + if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) { + ret.push( cur ); + break; + } + cur = cur.parentNode; + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +jQuery.fn.andSelf = jQuery.fn.addBack; + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( !runtil.test( name ) ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret; + + if ( this.length > 1 && rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? + jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : + jQuery.find.matches(expr, elems); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep(elements, function( elem, i ) { + var retVal = !!qualifier.call( elem, i, elem ); + return retVal === keep; + }); + + } else if ( qualifier.nodeType ) { + return jQuery.grep(elements, function( elem ) { + return ( elem === qualifier ) === keep; + }); + + } else if ( typeof qualifier === "string" ) { + var filtered = jQuery.grep(elements, function( elem ) { + return elem.nodeType === 1; + }); + + if ( isSimple.test( qualifier ) ) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter( qualifier, filtered ); + } + } + + return jQuery.grep(elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + }, + + append: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.insertBefore( elem, this.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, false, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( !selector || jQuery.filter( selector, [ elem ] ).length > 0 ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function( value ) { + var isFunc = jQuery.isFunction( value ); + + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if ( !isFunc && typeof value !== "string" ) { + value = jQuery( value ).not( this ).detach(); + } + + return this.domManip( [ value ], true, function( elem ) { + var next = this.nextSibling, + parent = this.parentNode; + + if ( parent ) { + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + }); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, table, callback ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, table ? self.html() : undefined ); + } + self.domManip( args, table, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + table = table && jQuery.nodeName( first, "tr" ); + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( + table && jQuery.nodeName( this[i], "table" ) ? + findOrAppend( this[i], "tbody" ) : + this[i], + node, + i + ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery.ajax({ + url: node.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +function findOrAppend( elem, tag ) { + return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) ); +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + var attr = elem.getAttributeNode("type"); + elem.type = ( attr && attr.specified ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + var bool = typeof state === "boolean"; + + return this.each(function() { + if ( bool ? state : isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Exclude the following css properties to add px + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("';d.extend(y.prototype,{_scroll:function(){var b=this.qtip.elements.overlay;b&&(b[0].style.top=d(a).scrollTop()+"px")},init:function(c){var e=c.tooltip;d("select, object").length<1&&(this.bgiframe=c.elements.bgiframe=d(Db).appendTo(e),c._bind(e,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=d("
",{id:T+"-rcontainer"}).appendTo(b.body),c.elements.overlay&&c.elements.overlay.addClass("qtipmodal-ie6fix")&&(c._bind(a,["scroll","resize"],this._scroll,this._ns,this),c._bind(e,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var a,b,c=this.qtip.tooltip,d={height:c.outerHeight(F),width:c.outerWidth(F)},e=this.qtip.plugins.tip,f=this.qtip.elements.tip;b=parseInt(c.css("borderLeftWidth"),10)||0,b={left:-b,top:-b},e&&f&&(a="x"===e.corner.precedance?[J,M]:[K,L],b[a[1]]-=f[a[0]]()),this.bgiframe.css(b).css(d)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var a,b,c,d,e=this.qtip.tooltip,f=this.qtip.options.style,g=this.qtip.options.position.container;return this.qtip.drawing=1,f.height&&e.css(K,f.height),f.width?e.css(J,f.width):(e.css(J,"").appendTo(this.redrawContainer),b=e.width(),1>b%2&&(b+=1),c=e.css("maxWidth")||"",d=e.css("minWidth")||"",a=(c+d).indexOf("%")>-1?g.width()/100:0,c=(c.indexOf("%")>-1?a:1)*parseInt(c,10)||b,d=(d.indexOf("%")>-1?a:1)*parseInt(d,10)||0,b=c+d?Math.min(Math.max(b,d),c):b,e.css(J,Math.round(b)).appendTo(g)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([a,this.qtip.tooltip],this._ns)}}),Cb=S.ie6=function(a){return 6===eb.ie?new y(a):F},Cb.initialize="render",C.ie6={"^content|style$":function(){this.redraw()}}})}(window,document); +//# sourceMappingURL=http://cdn.jsdelivr.net/qtip2/2.2.0/jquery.qtip.min.js \ No newline at end of file diff --git a/www/templates_shared/scripts/jquery.qtip2.js b/www/templates_shared/scripts/jquery.qtip2.js new file mode 100644 index 000000000..257ce216c --- /dev/null +++ b/www/templates_shared/scripts/jquery.qtip2.js @@ -0,0 +1 @@ +/* * qTip2 - Pretty powerful tooltips * http://craigsworks.com/projects/qtip2/ * * Version: nightly * Copyright 2009-2010 Craig Michael Thompson - http://craigsworks.com * * Dual licensed under MIT or GPLv2 licenses * http://en.wikipedia.org/wiki/MIT_License * http://en.wikipedia.org/wiki/GNU_General_Public_License * * Date: Wed Mar 9 02:39:53 PST 2011 */"use strict",function(a,b,c){function z(b){var c=this,d=b.elements,e=d.tooltip,f=".bgiframe-"+b.id,g="tooltipmove"+f+" tooltipshow"+f;a.extend(c,{init:function(){d.bgiframe=a(''),d.bgiframe.appendTo(e),e.bind(g,c.adjust)},adjust:function(){var a=b.get("dimensions"),c=b.plugins.tip,f=b.elements.tip,g,h;h=parseInt(e.css("border-left-width"),10)||0,h={left:-h,top:-h},c&&f&&(g=c.corner.precedance==="x"?["width","left"]:["height","top"],h[g[1]]-=f[g[0]]()),d.bgiframe.css(h).css(a)},destroy:function(){c.iframe.remove(),e.unbind(g)}}),c.init()}function y(c){var f=this,h=c.options.show.modal,i=c.elements,j=i.tooltip,k="#qtip-overlay",l=".qtipmodal",m="tooltipshow"+l+" tooltiphide"+l;c.checks.modal={"^show.modal.(on|blur)$":function(){f.init(),i.overlay.toggle(j.is(":visible"))}},a.extend(f,{init:function(){h.on&&(j.unbind(l).bind(m,function(b,c,d){var e=b.type.replace("tooltip","");a.isFunction(h[e])?h[e].call(i.overlay,d,c):f[e](d)}),f.create(),h.blur===d&&i.overlay.unbind(l+c.id).bind("click"+l+c.id,function(){c.hide.call(c)}),i.overlay.css("cursor",h.blur?"pointer":""))},create:function(){var c=a(k),d;if(c.length){i.overlay=c;return c}d=i.overlay=a("
",{id:k.substr(1),css:{position:"absolute",top:0,left:0,display:"none"},mousedown:function(){return e}}).appendTo(document.body),a(b).bind("resize"+l,function(){d.css({height:Math.max(a(b).height(),a(document).height()),width:Math.max(a(b).width(),a(document).width())})}).trigger("resize");return d},toggle:function(b){var h=i.overlay,k=c.options.show.modal.effect,l=b?"show":"hide",m;h||(h=f.create());if(!h.is(":animated")||b)h.stop(d,e),b&&(m=parseInt(a.css(j[0],"z-index"),10),h.css("z-index",(m||g.zindex)-1)),a.isFunction(k)?k.call(h,b):k===e?h[l]():h.fadeTo(90,b?.7:0,function(){b||a(this).hide()})},show:function(){f.toggle(d)},hide:function(){f.toggle(e)},destroy:function(){var d=i.overlay;d&&(a(k).each(function(){var b=a(this).data("qtip");if(b&&b.id!==b.id&&b.options.show.modal)return d=e}),d?(i.overlay.remove(),a(b).unbind(l)):i.overlay.unbind(l+c.id)),j.unbind(m)}}),f.init()}function x(b,g){function v(a){var b=a.precedance==="y",c=n[b?"width":"height"],d=n[b?"height":"width"],e=a.string().indexOf("center")>-1,f=c*(e?.5:1),g=Math.pow,h=Math.round,i,j,k,l=Math.sqrt(g(f,2)+g(d,2)),m=[p/f*l,p/d*l];m[2]=Math.sqrt(g(m[0],2)-g(p,2)),m[3]=Math.sqrt(g(m[1],2)-g(p,2)),i=l+m[2]+m[3]+(e?0:m[0]),j=i/l,k=[h(j*d),h(j*c)];return{height:k[b?0:1],width:k[b?1:0]}}function u(b){var c=k.titlebar&&b.y==="top",d=c?k.titlebar:k.content,e=a.browser.mozilla,f=e?"-moz-":a.browser.webkit?"-webkit-":"",g=b.y+(e?"":"-")+b.x,h=f+(e?"border-radius-"+g:"border-"+g+"-radius");return parseInt(d.css(h),10)||parseInt(l.css(h),10)||0}function t(a,b,c){b=b?b:a[a.precedance];var d=k.titlebar&&a.y==="top",e=d?k.titlebar:k.content,f="border-"+b+"-width",g=parseInt(e.css(f),10);return(c?g||parseInt(l.css(f),10):g)||0}function s(b,e,f,g){if(k.tip){var h=a.extend({},i.corner),l=f.adjusted,n;i.corner.fixed!==d&&(l.left&&(h.x=h.x==="center"?l.left>0?"left":"right":h.x==="left"?"right":"left"),l.top&&(h.y=h.y==="center"?l.top>0?"top":"bottom":h.y==="top"?"bottom":"top"),h.string()!==m.corner&&(m.top!==l.top||m.left!==l.left)&&(n=i.update(h))),n||(n=i.position(h,0)),n.right!==c&&(n.left=n.right),n.bottom!==c&&(n.top=n.bottom),n.option=Math.max(0,j.offset),f.left-=n.left.charAt?n.option:(n.right?-1:1)*n.left,f.top-=n.top.charAt?n.option:(n.bottom?-1:1)*n.top,m.left=l.left,m.top=l.top,m.corner=h.string()}}var i=this,j=b.options.style.tip,k=b.elements,l=k.tooltip,m={top:0,left:0,corner:""},n={width:j.width,height:j.height},o={},p=j.border||0,q=".qtip-tip",r=a("")[0].getContext;i.corner=f,i.mimic=f,b.checks.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){i.init()||i.destroy(),b.reposition()},"^style.tip.(height|width)$":function(){n={width:j.width,height:j.height},i.create(),i.update(),b.reposition()},"^content.title.text|style.(classes|widget)$":function(){k.tip&&i.update()}},a.extend(i,{init:function(){var b=i.detectCorner()&&(r||a.browser.msie);b&&(i.create(),i.update(),l.unbind(q).bind("tooltipmove"+q,s));return b},detectCorner:function(){var a=j.corner,c=b.options.position,f=c.at,g=c.my.string?c.my.string():c.my;if(a===e||g===e&&f===e)return e;a===d?i.corner=new h.Corner(g):a.string||(i.corner=new h.Corner(a),i.corner.fixed=d);return i.corner.string()!=="centercenter"},detectColours:function(){var c,d=k.tip.css({backgroundColor:"",border:""}),e=i.corner,f=e[e.precedance],g="border-"+f+"-color",h="border"+f.charAt(0)+f.substr(1)+"Color",m=/rgba?\(0, 0, 0(, 0)?\)|transparent/i,p="background-color",q="transparent",r=a(document.body).css("color"),s=b.elements.content.css("color"),t=k.titlebar&&(e.y==="top"||e.y==="center"&&d.position().top+n.height/2+j.offset",{"class":"ui-tooltip-tip"}).css({width:b,height:c}).prependTo(l),r?a("").appendTo(k.tip)[0].getContext("2d").save():(d='',k.tip.html(p?d+=d:d))},update:function(b){var c=k.tip,g=c.children(),l=n.width,m=n.height,q="px solid ",s="px dashed transparent",u=j.mimic,x=Math.round,y,z,A,B,C;b||(b=i.corner),u===e?u=b:(u=new h.Corner(u),u.precedance=b.precedance,u.x==="inherit"?u.x=b.x:u.y==="inherit"?u.y=b.y:u.x===u.y&&(u[b.precedance]=b[b.precedance])),y=u.precedance,i.detectColours(),p=o.border==="transparent"||o.border==="#123456"?0:j.border===d?t(b,f,d):j.border,A=w(u,l,m),C=v(b),c.css(C),b.precedance==="y"?B=[x(u.x==="left"?p:u.x==="right"?C.width-l-p:(C.width-l)/2),x(u.y==="top"?C.height-m:0)]:B=[x(u.x==="left"?C.width-l:0),x(u.y==="top"?p:u.y==="bottom"?C.height-m-p:(C.height-m)/2)],r?(g.attr(C),z=g[0].getContext("2d"),z.restore(),z.save(),z.clearRect(0,0,3e3,3e3),z.translate(B[0],B[1]),z.beginPath(),z.moveTo(A[0][0],A[0][1]),z.lineTo(A[1][0],A[1][1]),z.lineTo(A[2][0],A[2][1]),z.closePath(),z.fillStyle=o.fill,z.strokeStyle=o.border,z.lineWidth=p*2,z.lineJoin="miter",z.miterLimit=100,z.stroke(),z.fill()):(A="m"+A[0][0]+","+A[0][1]+" l"+A[1][0]+","+A[1][1]+" "+A[2][0]+","+A[2][1]+" xe",B[2]=p&&/^(r|b)/i.test(b.string())?1:0,g.css({antialias:""+(u.string().indexOf("center")>-1),left:B[0]-B[2]*Number(y==="x"),top:B[1]-B[2]*Number(y==="y"),width:l+p,height:m+p}).each(function(b){var c=a(this);c.attr({coordsize:l+p+" "+(m+p),path:A,fillcolor:o.fill,filled:!!b,stroked:!b}).css({display:p||b?"block":"none"}),!b&&p>0&&c.html()===""&&c.html('')}));return i.position(b,1)},position:function(b,c){var f=k.tip,g={},h=Math.max(0,j.offset),l,m,n;if(j.corner===e||!f)return e;b=b||i.corner,l=b.precedance,m=v(b),n=a.browser.msie&&p&&/^(b|r)/i.test(b.string())?1:0,a.each(l==="y"?[b.x,b.y]:[b.y,b.x],function(a,c){var e,f;c==="center"?(e=l==="y"?"left":"top",g[e]="50%",g["margin-"+e]=-Math.round(m[l==="y"?"width":"height"]/2)+h):(e=t(b,c,d),f=u(b),g[c]=a||!p?t(b,c)+(a?0:f):h+(f>e?f:0))}),g[b[l]]-=m[l==="x"?"width":"height"]+n,c&&f.css({top:"",bottom:"",left:"",right:"",margin:""}).css(g);return g},destroy:function(){k.tip&&k.tip.remove(),l.unbind(q)}}),i.init()}function w(a,b,c){var d=Math.ceil(b/2),e=Math.ceil(c/2),f={bottomright:[[0,0],[b,c],[b,0]],bottomleft:[[0,0],[b,0],[0,c]],topright:[[0,c],[b,0],[b,c]],topleft:[[0,0],[0,c],[b,c]],topcenter:[[0,c],[d,0],[b,c]],bottomcenter:[[0,0],[b,0],[d,c]],rightcenter:[[0,0],[b,e],[0,c]],leftcenter:[[b,0],[b,c],[0,e]]};f.lefttop=f.bottomright,f.righttop=f.bottomleft,f.leftbottom=f.topright,f.rightbottom=f.topleft;return f[a.string()]}function v(b){var c=this,d=b.elements.tooltip,e=b.options.content.ajax,f=".qtip-ajax",g=/)<[^<]*)*<\/script>/gi;b.checks.ajax={"^content.ajax":function(a,b,d){b==="ajax"&&(e=d),b==="once"?c.once(e.once):e&&e.url?c.load():c.once(0)}},a.extend(c,{init:function(){e&&e.url&&(c.load(),d.one("tooltipshow",function(){c.once(e.once)}))},once:function(a){d[(a?"un":"")+"bind"]("tooltipshow"+f,c.load)},load:function(){function j(a,c,d){b.set("content.text",c+": "+d)}function i(c){h&&(c=a("
").append(c.replace(g,"")).find(h)),b.set("content.text",c)}var d=e.url.indexOf(" "),f=e.url,h;d>-1&&(h=f.substr(d),f=f.substr(0,d)),a.ajax(a.extend({success:i,error:j,context:b},e,{url:f}));return c}}),c.init()}function u(b,c){var i,j,k,l,m=a(this),n=a(document.body),o=this===document?n:m,p=m.metadata?m.metadata(c.metadata):f,u=c.metadata.type==="html5"&&p?p[c.metadata.name]:f,v=m.data(c.metadata.name||"qtipopts");try{v=typeof v==="string"?(new Function("return "+v))():v}catch(w){r("Unable to parse HTML5 attribute data: "+v)}l=a.extend(d,{},g.defaults,c,typeof v==="object"?s(v):f,s(u||p)),p&&a.removeData(this,"metadata"),j=l.position,l.id=b;if("boolean"===typeof l.content.text){k=m.attr(l.content.attr);if(l.content.attr!==e&&k)l.content.text=k;else return e}j.container===e&&(j.container=n),j.target===e&&(j.target=o),l.show.target===e&&(l.show.target=o),l.show.solo===d&&(l.show.solo=n),l.hide.target===e&&(l.hide.target=o),l.position.viewport===d&&(l.position.viewport=j.container),j.at=new h.Corner(j.at),j.my=new h.Corner(j.my);if(a.data(this,"qtip"))if(l.overwrite)m.qtip("destroy");else if(l.overwrite===e)return e;a.attr(this,"title")&&(a.data(this,q,a.attr(this,"title")),m.removeAttr("title")),i=new t(m,l,b,!!k),a.data(this,"qtip",i),m.bind("remove.qtip",function(){i.destroy()});return i}function t(p,r,t,u){function M(c,d,e,f){f=parseInt(f,10)!==0;var g=".qtip-"+t,h={show:c&&r.show.target[0],hide:d&&r.hide.target[0],tooltip:e&&v.rendered&&A.tooltip[0],content:e&&v.rendered&&A.content[0],container:f&&r.position.container[0]===w?document:r.position.container[0],window:f&&b};v.rendered?a([]).pushStack(a.grep([h.show,h.hide,h.tooltip,h.container,h.content,h.window],function(a){return typeof a==="object"})).unbind(g):c&&r.show.target.unbind(g+"-create")}function L(c,d,f,h){function y(a){D()&&v.reposition(a)}function x(a){if(z.hasClass(l))return e;clearTimeout(v.timers.inactive),v.timers.inactive=setTimeout(function(){v.hide(a)},r.hide.inactive)}function u(b){if(z.hasClass(l))return e;var c=a(b.relatedTarget||b.target),d=c.closest(m)[0]===z[0],f=c[0]===n.show[0];clearTimeout(v.timers.show),clearTimeout(v.timers.hide);if(k.target==="mouse"&&d||r.hide.fixed&&(/mouse(out|leave|move)/.test(b.type)&&(d||f))){b.stopPropagation(),b.preventDefault();return e}z.stop(1,1),r.hide.delay>0?v.timers.hide=setTimeout(function(){v.hide(b)},r.hide.delay):v.hide(b)}function s(a){if(z.hasClass(l))return e;n.show.trigger("qtip-"+t+"-inactive"),clearTimeout(v.timers.show),clearTimeout(v.timers.hide);var b=function(){v.show(a)};r.show.delay>0?v.timers.show=setTimeout(b,r.show.delay):b()}var j=".qtip-"+t,k=r.position,n={show:r.show.target,hide:r.hide.target,container:k.container[0]===w?a(document):k.container,doc:a(document)},o={show:a.trim(""+r.show.event).split(" "),hide:a.trim(""+r.hide.event).split(" ")},q=a.browser.msie&&parseInt(a.browser.version,10)===6;f&&(r.hide.fixed&&(n.hide=n.hide.add(z),z.bind("mouseover"+j,function(){z.hasClass(l)||clearTimeout(v.timers.hide)})),k.target==="mouse"&&k.adjust.mouse&&r.hide.event&&z.bind("mouseleave"+j,function(a){(a.relatedTarget||a.target)!==n.show[0]&&v.hide(a)}),z.bind("mouseenter"+j+" mouseleave"+j,function(a){v[a.type==="mouseenter"?"focus":"blur"](a)})),d&&("number"===typeof r.hide.inactive&&(n.show.bind("qtip-"+t+"-inactive",x),a.each(g.inactiveEvents,function(a,b){n.hide.add(A.tooltip).bind(b+j+"-inactive",x)})),a.each(o.hide,function(b,c){var d=a.inArray(c,o.show),e=a(n.hide);d>-1&&e.add(n.show).length===e.length||c==="unfocus"?(n.show.bind(c+j,function(a){D()?u(a):s(a)}),delete o.show[d]):n.hide.bind(c+j,u)})),c&&a.each(o.show,function(a,b){n.show.bind(b+j,s)}),h&&((k.adjust.resize||k.viewport)&&a(a.event.special.resize?k.viewport:b).bind("resize"+j,y),(k.viewport||q&&z.css("position")==="fixed")&&a(k.viewport).bind("scroll"+j,y),/unfocus/i.test(r.hide.event)&&n.doc.bind("mousedown"+j,function(b){var c=a(b.target);c.parents(m).length===0&&c.add(p).length>1&&D()&&!z.hasClass(l)&&v.hide(b)}),k.target==="mouse"&&n.doc.bind("mousemove"+j,function(a){k.adjust.mouse&&!z.hasClass(l)&&D()&&v.reposition(a||i)}))}function K(b,c){var f=A.content;if(!v.rendered||!b)return e;a.isFunction(b)&&(b=b.call(p,v)||""),b.jquery&&b.length>0?f.empty().append(b.css({display:"block"})):f.html(b),z.queue("fx",function(b){function e(a){c=c.not(a),c.length===0&&(v.redraw(),v.rendered&&D()&&v.reposition(B.event),b())}var c=f.find("img:not([height]):not([width])");c.each(function(b,c){var f=["abort","error","load","unload",""].join(".qtip-image ");a(this).bind(f,function(){clearTimeout(v.timers.img[b]),e(this)}),function g(){if(c.height&&c.width)return e(c);v.timers.img[b]=setTimeout(g,20)}();return d}),c.length===0&&e(c)});return v}function J(b){var c=A.title;if(!v.rendered||!b)return e;a.isFunction(b)&&(b=b.call(p,v)||""),b.jquery&&b.length>0?c.empty().append(b.css({display:"block"})):c.html(b),v.redraw(),v.rendered&&D()&&v.reposition(B.event)}function I(a){var b=A.button,c=A.title;if(!v.rendered)return e;a?(c||H(),G()):b.remove()}function H(){var b=x+"-title";A.titlebar&&F(),A.titlebar=a("
",{"class":j+"-titlebar "+(r.style.widget?"ui-widget-header":"")}).append(A.title=a("
",{id:b,"class":j+"-title","aria-atomic":d})).insertBefore(A.content),r.content.title.button?G():v.rendered&&v.redraw()}function G(){var b=r.content.title.button;A.button&&A.button.remove(),b.jquery?A.button=b:A.button=a("",{"class":"ui-state-default "+(r.style.widget?"":j+"-icon"),title:"Close tooltip","aria-label":"Close tooltip"}).prepend(a("",{"class":"ui-icon ui-icon-close",html:"×"})),A.button.appendTo(A.titlebar).attr("role","button").hover(function(b){a(this).toggleClass("ui-state-hover",b.type==="mouseenter")}).click(function(a){z.hasClass(l)||v.hide(a);return e}).bind("mousedown keydown mouseup keyup mouseout",function(b){a(this).toggleClass("ui-state-active ui-state-focus",b.type.substr(-4)==="down")}),v.redraw()}function F(){A.title&&(A.titlebar.remove(),A.titlebar=A.title=A.button=f,v.reposition())}function E(){var a=r.style.widget;z.toggleClass(k,a),A.content.toggleClass(k+"-content",a),A.titlebar&&A.titlebar.toggleClass(k+"-header",a),A.button&&A.button.toggleClass(j+"-icon",!a)}function D(){return z&&z.css("left")!==o&&z.css("visibility")!=="hidden"}function C(a){var b=0,c,d=r,e=a.split(".");while(d=d[e[b++]])b0&&!a("#"+i).length&&(z[0].id=i,A.content[0].id=i+"-content",A.title[0].id=i+"-title")},"^content.text$":function(a,b,c){K(c)},"^content.title.text$":function(a,b,c){if(!c)return F();!A.title&&c&&H(),J(c)},"^content.title.button$":function(a,b,c){I(c)},"^position.(my|at)$":function(a,b,c){"string"===typeof c&&(a[b]=new h.Corner(c))},"^position.container$":function(a,b,c){v.rendered&&z.appendTo(c)},"^(show|hide).(event|target|fixed|delay|inactive)$":function(a,b,c,d,e){var f=[1,0,0];f[e[0]==="show"?"push":"unshift"](0),M.apply(v,f),L.apply(v,[1,1,0,0])},"^show.ready$":function(){v.rendered||v.show()},"^style.classes$":function(b,c,d){a.attr(z[0],"class",j+" qtip ui-helper-reset "+d)},"^style.widget|content.title":E,"^events.(render|show|move|hide|focus|blur)$":function(b,c,d){z[(a.isFunction(d)?"":"un")+"bind"]("tooltip"+c,d)}},a.extend(v,{render:function(b){if(v.rendered)return e;var c=r.content.text,f=r.content.title.text,g=a.Event("tooltiprender");a.attr(p[0],"aria-describedby",x),z=A.tooltip=a("
").attr({id:x,"class":j+" qtip ui-helper-reset "+r.style.classes,role:"alert","aria-live":"polite","aria-atomic":e,"aria-describedby":x+"-content","aria-hidden":d}).toggleClass(l,B.disabled).data("qtip",v).appendTo(r.position.container).append(A.content=a("
",{"class":j+"-content",id:x+"-content","aria-atomic":d})),v.rendered=-1,f&&(H(),J(f)),v.rendered=d,K(c),E(),a.each(h,function(){this.initialize==="render"&&this(v)}),L(1,1,1,1),a.each(r.events,function(a,b){if(b){var c=a==="toggle"?"tooltipshow tooltiphide":"tooltip"+a;z.bind(c,b)}}),z.css("visibility","hidden").queue("fx",function(a){g.originalEvent=B.event,z.trigger(g,[v]),(r.show.ready||b)&&v.show(B.event),a()});return v},get:function(a){var b,c;switch(a.toLowerCase()){case"dimensions":b={height:z.outerHeight(),width:z.outerWidth()};break;case"offset":b=h.offset(z,r.position.container);break;default:c=C(a.toLowerCase()),b=c[0][c[1]],b=b.precedance?b.string():b}return b},set:function(b,c){function j(a,b){var c,e,f;if(v.rendered){for(c in h)for(e in h[c])if(f=(new RegExp(e,"i")).exec(a))b.push(f),h[c][e].apply(v,b)}else a==="show.ready"&&b[2]&&(y=0,v.render(d))}var f=/^position.(my|at|adjust|target|container)|style|content/i,g=e,h=v.checks,i;"string"===typeof b?(i=b,b={},b[i]=c):b=a.extend(d,{},b),a.each(b,function(c,d){var e=C(c.toLowerCase()),h;h=e[0][e[1]],e[0][e[1]]="object"===typeof d&&d.nodeType?a(d):d,b[c]=[e[0],e[1],d,h],g=f.test(c)||g}),s(r),y=1,a.each(b,j),y=0,g&&D()&&v.rendered&&v.reposition();return v},toggle:function(b,c){function j(){b?a.browser.msie&&z[0].style.removeAttribute("filter"):z.css({display:"",visibility:"hidden",width:"",opacity:"",left:"",top:""})}if(!v.rendered)if(b)v.render(1);else return e;var d=b?"show":"hide",g=r[d],h=D(),i;(typeof b).search("boolean|number")&&(b=!h);if(h===b)return v;if(c){if(/over|enter/.test(c.type)&&/out|leave/.test(B.event.type)&&c.target===r.show.target[0]&&z.has(c.relatedTarget).length)return v;B.event=a.extend({},c)}i=a.Event("tooltip"+d),i.originalEvent=c?B.event:f,z.trigger(i,[v,90]);if(i.isDefaultPrevented())return v;a.attr(z[0],"aria-hidden",!b),b?(z.hide().css({visibility:""}),v.focus(c),v.reposition(c,0),g.solo&&a(m,g.solo).not(z).qtip("hide",i)):(clearTimeout(v.timers.show),v.blur(c)),z.stop(1,1),a.isFunction(g.effect)?(g.effect.call(z,v),z.queue("fx",function(a){j.call(this,a),a()})):g.effect===e?(z[d](),j.call(z)):z.fadeTo(90,b?1:0,j),b&&g.target.trigger("qtip-"+t+"-inactive");return v},show:function(a){return v.toggle(d,a)},hide:function(a){return v.toggle(e,a)},focus:function(b){if(!v.rendered)return e;var c=a(m),d=parseInt(z[0].style.zIndex,10),f=g.zindex+c.length,h=a.extend({},b),i,j;z.hasClass(n)||(d!==f&&(c.each(function(){this.style.zIndex>d&&(this.style.zIndex=this.style.zIndex-1)}),c.filter("."+n).qtip("blur",h)),j=a.Event("tooltipfocus"),j.originalEvent=h,z.trigger(j,[v,f]),j.isDefaultPrevented()||(z.addClass(n)[0].style.zIndex=f));return v},blur:function(b){var c=a.extend({},b),d;z.removeClass(n),d=a.Event("tooltipblur"),d.originalEvent=c,z.trigger(d,[v]);return v},reposition:function(f,k){if(!v.rendered||y)return e;y=d;var l=r.position.target,m=r.position,n=m.my,o=m.at,p=m.adjust,q=z.outerWidth(),s=z.outerHeight(),t=0,u=0,x=a.Event("tooltipmove"),A=z.css("position")==="fixed",C=m.viewport.jquery?m.viewport:a(b),E={left:0,top:0},F=(v.plugins.tip||{}).corner,G={left:function(a){var b=C.scrollLeft,c=n.x==="left"?q:n.x==="right"?-q:-q/2,d=o.x==="left"?t:o.x==="right"?-t:-t/2,e=F&&F.precedance==="x"?g.defaults.style.tip.width:0,f=b-a-e,h=a+q-C.width-b+e,i=c-(n.precedance==="x"||n.x===n.y?d:0),j=n.x==="center";f>0&&(n.x!=="left"||h>0)?E.left-=i+(j?0:2*p.x):h>0&&(n.x!=="right"||f>0)&&(E.left-=j?-i:i+2*p.x),E.left!==a&&j&&(E.left-=p.x),E.left<0&&-E.left>h&&(E.left=a);return E.left-a},top:function(a){var b=C.scrollTop,c=n.y==="top"?s:n.y==="bottom"?-s:-s/2,d=o.y==="top"?u:o.y==="bottom"?-u:-u/2,e=F&&F.precedance==="y"?g.defaults.style.tip.height:0,f=b-a-e,h=a+s-C.height-b+e,i=c-(n.precedance==="y"||n.x===n.y?d:0),j=n.y==="center";f>0&&(n.y!=="top"||h>0)?E.top-=i+(j?0:2*p.y):h>0&&(n.y!=="bottom"||f>0)&&(E.top-=j?-i:i+2*p.y),E.top!==a&&j&&(E.top-=p.y),E.top<0&&-E.top>h&&(E.top=a);return E.top-a}};k=k===c||!!k||e,C=C?{elem:C,height:C[(C[0]===b?"h":"outerH")+"eight"](),width:C[(C[0]===b?"w":"outerW")+"idth"](),scrollLeft:C.scrollLeft(),scrollTop:C.scrollTop()}:e;if(l==="mouse")o={x:"left",y:"top"},f=f&&(f.type==="resize"||f.type==="scroll")?B.event:p.mouse||!f||!f.pageX?a.extend({},i):f,E={top:f.pageY,left:f.pageX};else{l==="event"&&(f&&f.target&&f.type!=="scroll"&&f.type!=="resize"?l=B.target=a(f.target):l=B.target),l=a(l).eq(0);if(l.length===0)return v;l[0]===document||l[0]===b?(t=l.width(),u=l.height(),l[0]===b&&(E={top:A?0:C.scrollTop,left:A?0:C.scrollLeft})):l.is("area")&&h.imagemap?E=h.imagemap(l,o):l[0].namespaceURI=="http://www.w3.org/2000/svg"&&h.svg?E=h.svg(l,o):(t=l.outerWidth(),u=l.outerHeight(),E=h.offset(l,m.container)),E.offset&&(t=E.width,u=E.height,E=E.offset),E.left+=o.x==="right"?t:o.x==="center"?t/2:0,E.top+=o.y==="bottom"?u:o.y==="center"?u/2:0}E.left+=p.x+(n.x==="right"?-q:n.x==="center"?-q/2:0),E.top+=p.y+(n.y==="bottom"?-s:n.y==="center"?-s/2:0),m.viewport.jquery&&l[0]!==b&&l[0]!==w?E.adjusted={left:G.left(E.left),top:G.top(E.top)}:E.adjusted={left:0,top:0},z.attr("class",function(b,c){return a.attr(this,"class").replace(/ui-tooltip-pos-\w+/i,"")}).addClass(j+"-pos-"+n.abbreviation()),x.originalEvent=a.extend({},f),z.trigger(x,[v,E,C.elem]);if(x.isDefaultPrevented())return v;delete E.adjusted,k&&isNaN(E.left,E.top)?D()&&a.isFunction(m.effect)&&(m.effect.call(z,v,E),z.queue(function(b){var c=a(this);c.css({opacity:"",height:""}),a.browser.msie&&this.style&&this.style.removeAttribute("filter"),b()})):z.css(E),y=e;return v},redraw:function(){var b=j+"-fluid",c="auto",d;if(v.rendered<1)return e;z.css({width:c,height:c}).addClass(b),d={height:z.outerHeight(),width:z.outerWidth()},a.each(["width","height"],function(a,b){var c=parseInt(z.css("max-"+b),10)||0,e=parseInt(z.css("min-"+b),10)||0;d[b]=c+e?Math.min(Math.max(d[b],e),c):d[b]}),z.css(d).removeClass(b);return v},disable:function(b){var c=l;"boolean"!==typeof b&&(b=!z.hasClass(c)&&!B.disabled),v.rendered?(z.toggleClass(c,b),a.attr(z[0],"aria-disabled",b)):B.disabled=!!b;return v},enable:function(){v.disable(e)},destroy:function(){var b=p[0],c=a.data(b,q);v.rendered&&(z.remove(),a.each(v.plugins,function(){this.destroy&&this.destroy()})),clearTimeout(v.timers.show),clearTimeout(v.timers.hide),M(1,1,1,1),a.removeData(b,"qtip"),c&&a.attr(b,"title",c),p.removeAttr("aria-describedby").unbind(".qtip");return p}})}function s(b){var c;if(!b||"object"!==typeof b)return e;"object"!==typeof b.metadata&&(b.metadata={type:b.metadata});if("content"in b){if("object"!==typeof b.content||b.content.jquery)b.content={text:b.content};c=b.content.text||e,!a.isFunction(c)&&(!c&&!c.attr||c.length<1||"object"===typeof c&&!c.jquery)&&(b.content.text=e),"title"in b.content&&("object"!==typeof b.content.title&&(b.content.title={text:b.content.title}),c=b.content.title.text||e,!a.isFunction(c)&&(!c&&!c.attr||c.length<1||"object"===typeof c&&!c.jquery)&&(b.content.title.text=e))}"position"in b&&("object"!==typeof b.position&&(b.position={my:b.position,at:b.position})),"show"in b&&("object"!==typeof b.show&&(b.show.jquery?b.show={target:b.show}:b.show={event:b.show})),"hide"in b&&("object"!==typeof b.hide&&(b.hide.jquery?b.hide={target:b.hide}:b.hide={event:b.hide})),"style"in b&&("object"!==typeof b.style&&(b.style={classes:b.style})),a.each(h,function(){this.sanitize&&this.sanitize(b)});return b}function r(){var c=b.console;return c&&(c.error||c.log||a.noop).apply(c,arguments)}var d=!0,e=!1,f=null,g,h,i,j="ui-tooltip",k="ui-widget",l="ui-state-disabled",m="div.qtip."+j,n=j+"-focus",o="-31000px",p="_replacedByqTip",q="oldtitle";g=a.fn.qtip=function(b,h,i){var j=(""+b).toLowerCase(),k=f,l=j==="disable"?[d]:a.makeArray(arguments).slice(1,10),m=l[l.length-1],n=this[0]?a.data(this[0],"qtip"):f;if(!arguments.length&&n||j==="api")return n;if("string"===typeof b){this.each(function(){var b=a.data(this,"qtip");if(!b)return d;m&&m.timeStamp&&(b.cache.event=m);if(j==="option"&&h)if(a.isPlainObject(h)||i!==c)b.set(h,i);else{k=b.get(h);return e}else b[j]&&b[j].apply(b[j],l)});return k!==f?k:this}if("object"===typeof b||!arguments.length){n=s(a.extend(d,{},b));return g.bind.call(this,n,m)}},g.bind=function(b,c){return this.each(function(f){function p(b){function c(){o.render(typeof b==="object"||i.show.ready),k.show.unbind(l.show),k.hide.unbind(l.hide)}if(o.cache.disabled)return e;o.cache.event=a.extend({},b),i.show.delay>0?(clearTimeout(o.timers.show),o.timers.show=setTimeout(c,i.show.delay),l.show!==l.hide&&k.hide.bind(l.hide,function(){clearTimeout(o.timers.show)})):c()}var i,k,l,m=!b.id||b.id===e||b.id.length<1||a("#"+j+"-"+b.id).length?g.nextid++:b.id,n=".qtip-"+m+"-create",o=u.call(this,m,b);if(o===e)return d;i=o.options,a.each(h,function(){this.initialize==="initialize"&&this(o)}),k={show:i.show.target,hide:i.hide.target},l={show:a.trim(""+i.show.event).replace(/ /g,n+" ")+n,hide:a.trim(""+i.hide.event).replace(/ /g,n+" ")+n},k.show.bind(l.show,p),(i.show.ready||i.prerender)&&p(c)})},h=g.plugins={Corner:function(a){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,"center").toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.precedance=a.charAt(0).search(/^(t|b)/)>-1?"y":"x",this.string=function(){return this.precedance==="y"?this.y+this.x:this.x+this.y},this.abbreviation=function(){var a=this.x.substr(0,1),b=this.y.substr(0,1);return a===b?a:a==="c"||a!=="c"&&b!=="c"?b+a:a+b}},offset:function(c,d){function k(a,b){e.left+=b*a.scrollLeft(),e.top+=b*a.scrollTop()}var e=c.offset(),f=d,g=0,i=document.body,j;if(f){do{if(f[0]===i)break;f.css("position")!=="static"&&(j=f.position(),e.left-=j.left+(parseInt(f.css("borderLeftWidth"),10)||0),e.top-=j.top+(parseInt(f.css("borderTopWidth"),10)||0),g++)}while(f=f.offsetParent());(d[0]!==i||g>1)&&k(d,1),h.iOS&&k(a(b),-1)}return e},iOS:parseFloat((""+(/CPU.*OS ([0-9_]{3})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,"4_2"])[1]).replace("undefined","3_2").replace("_","."))<4.1,fn:{attr:function(b,c){if(this.length){var d=this[0],e="title",f=a.data(d,"qtip");if(b===e){if(arguments.length<2)return a.data(d,q);if(typeof f==="object"){f&&f.rendered&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",c),a.fn["attr"+p].apply(this,arguments),a.data(d,q,a.attr(d,e));return this.removeAttr("title")}}}},clone:function(b){var c=a([]),d;a("*",this).add(this).each(function(){var b=a.data(this,q);b&&(a.attr(this,"title",b),c=c.add(this))}),d=a.fn["clone"+p].apply(this,arguments),c.removeAttr("title");return d},remove:a.ui?f:function(b,c){a(this).each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add(this).each(function(){a(this).triggerHandler("remove")})})}}},a.each(h.fn,function(b,c){if(!c)return d;var e=a.fn[b+p]=a.fn[b];a.fn[b]=function(){return c.apply(this,arguments)||e.apply(this,arguments)}}),a(b).bind("load.qtip",function(){var b="mousemove";a(document).bind(b+".qtip",function(a){i={pageX:a.pageX,pageY:a.pageY,type:b}})}),g.version="nightly",g.nextid=0,g.inactiveEvents="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),g.zindex=15e3,g.defaults={prerender:e,id:e,overwrite:d,content:{text:d,attr:"title",title:{text:e,button:e}},position:{my:"top left",at:"bottom right",target:e,container:e,viewport:e,adjust:{x:0,y:0,mouse:d,resize:d},effect:d},show:{target:e,event:"mouseenter",effect:d,delay:90,solo:e,ready:e},hide:{target:e,event:"mouseleave",effect:d,delay:0,fixed:e,inactive:e},style:{classes:"",widget:e},events:{render:f,move:f,show:f,hide:f,toggle:f,focus:f,blur:f}},h.ajax=function(a){var b=a.plugins.ajax;return"object"===typeof b?b:a.plugins.ajax=new v(a)},h.ajax.initialize="render",h.ajax.sanitize=function(a){var b=a.content,c;b&&"ajax"in b&&(c=b.ajax,typeof c!=="object"&&(c=a.content.ajax={url:c}),"boolean"!==typeof c.once&&c.once&&(c.once=!!c.once))},a.extend(d,g.defaults,{content:{ajax:{once:d}}}),h.imagemap=function(b,c){function l(a,b){var d=0,e=1,f=1,g=0,h=0,i=a.width,j=a.height;while(i>0&&j>0&&e>0&&f>0){i=Math.floor(i/2),j=Math.floor(j/2),c.x==="left"?e=i:c.x==="right"?e=a.width-i:e+=Math.floor(i/2),c.y==="top"?f=j:c.y==="bottom"?f=a.height-j:f+=Math.floor(j/2),d=b.length;while(d--){if(b.length<2)break;g=b[d][0]-a.offset.left,h=b[d][1]-a.offset.top,(c.x==="left"&&g>=e||c.x==="right"&&g<=e||c.x==="center"&&(ga.width-e)||c.y==="top"&&h>=f||c.y==="bottom"&&h<=f||c.y==="center"&&(ha.height-f))&&b.splice(d,1)}}return{left:b[0][0],top:b[0][1]}}var d=b.attr("shape").toLowerCase(),e=b.attr("coords").split(","),f=[],g=a('img[usemap="#'+b.parent("map").attr("name")+'"]'),h=g.offset(),i={width:0,height:0,offset:{top:1e10,right:0,bottom:0,left:1e10}},j=0,k=0;h.left+=Math.ceil((g.outerWidth()-g.width())/2),h.top+=Math.ceil((g.outerHeight()-g.height())/2);if(d==="poly"){j=e.length;while(j--)k=[parseInt(e[--j],10),parseInt(e[j+1],10)],k[0]>i.offset.right&&(i.offset.right=k[0]),k[0]i.offset.bottom&&(i.offset.bottom=k[1]),k[1]0}(jQuery,window) \ No newline at end of file diff --git a/www/templates_shared/scripts/respond.min.js b/www/templates_shared/scripts/respond.min.js new file mode 100644 index 000000000..56418a245 --- /dev/null +++ b/www/templates_shared/scripts/respond.min.js @@ -0,0 +1,6 @@ +/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ +/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ +window.matchMedia=window.matchMedia||function(a){"use strict";var c,d=a.documentElement,e=d.firstElementChild||d.firstChild,f=a.createElement("body"),g=a.createElement("div");return g.id="mq-test-1",g.style.cssText="position:absolute;top:-100em",f.style.background="none",f.appendChild(g),function(a){return g.innerHTML='­',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document); + +/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ +(function(a){"use strict";function x(){u(!0)}var b={};a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,b.mediaQueriesSupported;var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var a=m.shift();v(a.href,function(b){p(b,a.href,a.media),h[a.href]=!0,setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(a){var b="clientWidth",h=d[b],k="CSS1Compat"===c.compatMode&&h||c.body[b]||h,m={},n=l[l.length-1],o=(new Date).getTime();if(a&&q&&i>o-q)return clearTimeout(r),r=setTimeout(u,i),void 0;q=o;for(var p in e)if(e.hasOwnProperty(p)){var v=e[p],w=v.minw,x=v.maxw,y=null===w,z=null===x,A="em";w&&(w=parseFloat(w)*(w.indexOf(A)>-1?t||s():1)),x&&(x=parseFloat(x)*(x.indexOf(A)>-1?t||s():1)),v.hasquery&&(y&&z||!(y||k>=w)||!(z||x>=k))||(m[v.media]||(m[v.media]=[]),m[v.media].push(f[v.rules]))}for(var B in g)g.hasOwnProperty(B)&&g[B]&&g[B].parentNode===j&&j.removeChild(g[B]);for(var C in m)if(m.hasOwnProperty(C)){var D=c.createElement("style"),E=m[C].join("\n");D.type="text/css",D.media=C,j.insertBefore(D,n.nextSibling),D.styleSheet?D.styleSheet.cssText=E:D.appendChild(c.createTextNode(E)),g.push(D)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)})(this); diff --git a/www/templates_shared/scripts/sorttable.js b/www/templates_shared/scripts/sorttable.js new file mode 100644 index 000000000..244b6dc4d --- /dev/null +++ b/www/templates_shared/scripts/sorttable.js @@ -0,0 +1,234 @@ +// +// Javascript clientside sorting of table data +// + +addEvent(window, "load", sortables_init); + +var SORT_COLUMN_INDEX; + +function sortables_init() +{ + // Find all tables with class sortable and make them sortable + if (!document.getElementsByTagName) { alert ( "cannot" ); return; } + tbls = document.getElementsByTagName("table"); + for (ti=0;ti 0) { + var firstRow = table.rows[0]; + } + if (!firstRow) return; + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i=0;i' + txt + ''; + } + else str_HTML += '>'; + + str_HTML += ''; + + // insert new html into cell + cell.innerHTML = str_HTML; + } +} + +function ts_getInnerText(el) { + if ( typeof el == "string") return el; + if ( typeof el == "undefined") { return el }; + if ( el.innerText ) return el.innerText; //Not needed but it is faster + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) + { + switch (cs[i].nodeType) + { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + +function ts_resortTable(lnk,clid) { + // get the span + var span; + for (var ci=0;ci'; + newRows.reverse(); + span.setAttribute('sortdir','up'); + } + else + { + //ARROW = '  ↓'; + ARROW = ''; + span.setAttribute('sortdir','down'); + } + + // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones + // don't do sortbottom rows + for (i=0;i= subnavTop && !isFixed) { + isFixed = 1; + $nav.addClass('subnav-fixed'); + $body.css('margin-top', marginTop + subnavHeight + 'px'); + } else if (scrollTop <= subnavTop && isFixed) { + isFixed = 0; + $nav.removeClass('subnav-fixed'); + $body.css('margin-top', marginTop + 'px'); + } + } + + }); + +})(window.jQuery); \ No newline at end of file diff --git a/www/templates_shared/scripts/utils-admin.js b/www/templates_shared/scripts/utils-admin.js new file mode 100644 index 000000000..de33cdc00 --- /dev/null +++ b/www/templates_shared/scripts/utils-admin.js @@ -0,0 +1,743 @@ +/** + * ajax_group_status() + * + * @param id group id + * @param status 0 = deactive, 1 = activate + */ +function ajax_group_status(id, what) +{ + // no caching of results + if (what != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?rand=' + $.now(), + data : { group_id: id, group_status: what }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (what == 0) { + $('td#group-' + id).html('Activate'); + } + else { + $('td#group-' + id).html('Deactivate'); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_group_status: " + err ); } + }); + } + else + { + alert('Weird.. what group id are looking for?'); + } +} + +/** + * ajax_sharing_site_status() + * + * @param id site id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_site_status(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { site_id: id, site_status: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('td#site-' + id).html(''); + } + else { + $('td#site-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_site_status: " + err ); } + }); + } + else + { + alert('Weird.. what site id are looking for?'); + } +} + +/** + * ajax_sharing_enabled() + * + * @param id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_enabled(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { enabled_status: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('strong#enabled-' + id).html(''); + } + else { + $('strong#enabled-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_enabled: " + err ); } + }); + } + else + { + alert('Weird.. what enabled id are looking for?'); + } +} + +/** + * ajax_sharing_startposition() + * + * @param id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_startposition(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { start_position: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('strong#startposition-' + id).html(''); + } + else { + $('strong#startposition-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_startposition: " + err ); } + }); + } + else + { + alert('Weird.. what enabled id are looking for?'); + } +} + +/** + * ajax_sharing_reset() + * + * @param id + */ +function ajax_sharing_reset(id) +{ + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { reset_settings: id }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // fade.. mm + $('#message').fadeOut(5000); + setTimeout('history.go(0);',1500); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_reset: " + err ); } + }); +} + +/** + * ajax_sharing_site_purge() + * + * @param id + */ +function ajax_sharing_site_purge(id) +{ + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { purge_site: id }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // fade.. mm + $('#message').fadeOut(5000); + setTimeout('history.go(0);',1500); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_site_purge: " + err ); } + }); +} + +/** + * ajax_sharing_posting() + * + * @param id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_posting(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { posting_status: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('strong#posting-' + id).html(''); + } + else { + $('strong#posting-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_posting: " + err ); } + }); + } + else + { + alert('Weird.. what posting id are looking for?'); + } +} + +/** + * ajax_sharing_fetching() + * + * @param id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_fetching(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { fetching_status: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('strong#fetching-' + id).html(''); + } + else { + $('strong#fetching-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_fetching: " + err ); } + }); + } + else + { + alert('Weird.. what fetching id are looking for?'); + } +} + +/** + * ajax_sharing_auto() + * + * @param id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_auto(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { auto_status: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('strong#auto-' + id).html(''); + } + else { + $('strong#auto-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_auto: " + err ); } + }); + } + else + { + alert('Weird.. what auto id are looking for?'); + } +} + +/** + * ajax_sharing_hide() + * + * @param id + * @param status 0 = deactive, 1 = activate + */ +function ajax_sharing_hide(id, status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { hide_status: status }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (status == 0) { + $('strong#hide-' + id).html(''); + } + else { + $('strong#hide-' + id).html(''); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_sharing_hide: " + err ); } + }); + } + else + { + alert('Weird.. what hide id are looking for?'); + } +} + +/** + * ajax_sharing_toggle_all() + * + * @param status + */ +function ajax_sharing_toggle_all(status) +{ + // no caching of results + var rand_no = Math.random(); + if (status != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_sharing_settings.php?rand=' + rand_no, + data : { toggle_all: status }, + dataType : "html" + }); + } + else + { + alert('Weird.. what toggle status are you looking for?'); + } +} +/** + * ajax_backfill_status() + * + * @param id group id + * @param status 0 = deactive, 1 = activate + */ +function ajax_backfill_status(id, what) +{ + // no caching of results + var rand_no = Math.random(); + if (what != undefined) + { + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?rand=' + rand_no, + data : { group_id: id, backfill_status: what }, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + + // switch some links around + if (what == 0) { + $('td#backfill-' + id).html('Activate'); + } + else { + $('td#backfill-' + id).html('Deactivate'); + } + + // fade.. mm + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_backfill_status: " + err ); } + }); + } + else + { + alert('Weird.. what group id are looking for?'); + } +} + +/** + * ajax_group_delete() + * + * @param id group id + */ +function ajax_group_delete(id) +{ + // no caching of results + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?action=2&rand=' + $.now(), + data : { group_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#grouprow-'+id).fadeOut(2000); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_group_delete: " + err ); } + }); +} + +/** + * ajax_group_reset() + * + * @param id group id + */ +function ajax_group_reset(id) +{ + // no caching of results + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?action=3&rand=' + $.now(), + data : { group_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#grouprow-'+id).fadeTo(2000, 0.5); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_group_reset: " + err ); } + }); +} + +/** + * ajax_group_purge() + * + * @param id group id + */ +function ajax_group_purge(id) +{ + // no caching of results + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?action=4&rand=' + $.now(), + data : { group_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#grouprow-'+id).fadeTo(2000, 0.5); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_group_reset: " + err ); } + }); +} + +/** + * ajax_all_reset() + * + * + */ +function ajax_all_reset() +{ + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?action=5&rand=' + rand_no, + data : "All groups reset.", + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#grouprow-'+id).fadeTo(2000, 0.5); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_all_reset: " + err ); } + }); +} + +/** + * ajax_all_purge() + */ +function ajax_all_purge() +{ + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax_group-edit.php?action=6&rand=' + rand_no, + data : "All groups purged", + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#grouprow-'+id).fadeTo(2000, 0.5); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_all_purge: " + err ); } + }); +} + +/** + * ajax_releaseregex_delete() + * + * @param id regex id + */ +function ajax_releaseregex_delete(id) +{ + // no caching of results + $.ajax({ + url : WWW_TOP + '/admin/ajax_regex-list.php?action=2&rand=' + $.now(), + data : { regex_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#row-'+id).fadeOut(2000); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_releaseregex_delete: " + err ); } + }); +} + + +/** + * ajax_binaryblacklist_delete() + * + * @param id binary id + */ +function ajax_binaryblacklist_delete(id) +{ + // no caching of results + $.ajax({ + url : WWW_TOP + '/admin/ajax_binaryblacklist-list.php?action=2&rand=' + $.now(), + data : { bin_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#row-'+id).fadeOut(2000); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_binaryblacklist_delete: " + err ); } + }); +} + + +/** + * ajax_welcome_msg() + * + * @param bln flag + */ +function ajax_welcome_msg(bln) +{ + // no caching of results + var _action = (bln ? 1 : 0); + $.ajax({ + url : WWW_TOP + '/admin/ajax_welcome_msg.php?rand=' + $.now(), + data : { action: _action}, + dataType : "html", + success : function(data) + { + if (bln) + { + $('div#adminhome').hide(); + $('div#adminwelcome').show('fast', function() {}); + } + else + { + $('div#adminwelcome').hide(); + $('div#adminhome').show('fast', function() {}); + } + }, + error: function(xhr,err,e) { alert( "Error in ajax_welcome_msg: " + err ); } + }); +} + +/** + * ajax_category_regex_delete() + * + * @param id binary id + */ +function ajax_category_regex_delete(id) +{ + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax.php?action=category_regex_delete&rand=' + rand_no, + data : { row_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#row-'+id).fadeOut(2000); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_category_regex_delete: " + err ); } + }); +} + +/** + * ajax_collection_regex_delete() + * + * @param id binary id + */ +function ajax_collection_regex_delete(id) +{ + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax_regex.php?action=1&rand=' + rand_no, + data : { col_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#row-'+id).fadeOut(2000); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_collection_regex_delete: " + err ); } + }); +} + +/** + * ajax_release_naming_regex_delete() + * + * @param id binary id + */ +function ajax_release_naming_regex_delete(id) +{ + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url : WWW_TOP + '/admin/ajax.php?action=release_naming_regex_delete&rand=' + rand_no, + data : { row_id: id}, + dataType : "html", + success : function(data) + { + $('div#message').html(data); + $('div#message').show('fast', function() {}); + $('#row-'+id).fadeOut(2000); + $('#message').fadeOut(5000); + }, + error: function(xhr,err,e) { alert( "Error in ajax_release_naming_regex_delete: " + err ); } + }); +} + + +jQuery(function($){ + + $('#regexGroupSelect').change(function() { + document.location="?group=" + $("#regexGroupSelect option:selected").attr('value'); + }); + + $('#previewcat').change(function() { + document.location="?previewcat=" + $("#previewcat option:selected").attr('value'); + }); + + // misc + $('.confirm_action').click(function(){ return confirm('Are you sure?'); }); + + + //fix for autosizing plugin + $('.autosize').autosize({append: "\n"}); + +}); + +//enable Custom checkboxes for fix crap releases +function enableFixCrapCustom(){ + var inputs = document.getElementsByName('fix_crap_opt'); + if (inputs[2].checked == true) { + var checks = document.getElementsByName('fix_crap[]') + for (var t = 0; t < checks.length; t ++) { + checks[t].disabled = false; + checks[t].readonly = false; + } + } + else { + var checks = document.getElementsByName('fix_crap[]') + for (var t = 0; t < checks.length; t ++) { + checks[t].disabled = true; + checks[t].readonly = true; + } + } +} \ No newline at end of file diff --git a/www/templates_shared/scripts/utils.js b/www/templates_shared/scripts/utils.js new file mode 100644 index 000000000..f2295fef6 --- /dev/null +++ b/www/templates_shared/scripts/utils.js @@ -0,0 +1,802 @@ +// event bindings +jQuery(function ($) { + + // browse.tpl, search.tpl -- show icons on hover + var orig_opac = $('table.data tr').children('td.icons').children('div.icon').css('opacity'); + $('table.data tr').hover( + function () { + $(this).children('td.icons').children('div.icon').css('opacity', 1); + }, + function () { + $(this).children('td.icons').children('div.icon').css('opacity', orig_opac); + } + ); + + $(".forumpostsubmit").click(function (e) { + if ($.trim($("#addMessage").val()) == "" || $.trim($("#addSubject").val()) == "") { + alert("Please enter a subject and message."); + return false; + } + }); + + $(".forumreplysubmit").click(function (e) { + if ($.trim($("#addReply").val()) == "") { + alert("Please enter a message."); + return false; + } + }); + + $(".check").click(function (e) { + if (!$(e.target).is('input')) + $(this).children(".nzb_check").prop('checked', !$(this).children(".nzb_check").prop('checked')); + }); + + $(".descmore").click(function (e) { + $(".descinitial").hide(); + $(".descfull").show(); + return false; + }); + + $('.nzb_check_all').change(function () { + $('table#browsetable tr td input:checkbox').prop('checked', $(this).prop('checked')); + }); + + $('.nzb_check_all_season').change(function () { + var season = $(this).attr('name'); + $('table.data tr td input:checkbox').each(function (i, row) { + if ($(row).attr('name') == season) { + $(row).prop('checked', !$(row).prop('checked')); + } + }); + }); + + // browse.tpl, search.tpl + $('.icon_cart').click(function (e) { + if ($(this).hasClass('icon_cart_clicked')) return false; + var guid = $(this).parent().parent().attr('id').substring(4); + $.post(SERVERROOT + "cart?add=" + guid, function (resp) { + $(e.target).addClass('icon_cart_clicked').attr('title', 'Added to Cart'); + createGrowl('Added to Cart'); + }); + return false; + }); + $('.icon_sab').click(function (e) { // replace with cookies? + if ($(this).hasClass('icon_sab_clicked')) { + return false; + } + + var guid = $(this).parent().parent().attr('id').substring(4); + var nzburl = SERVERROOT + "sendtoqueue/" + guid; + + $.post(nzburl, function (resp) { + $(e.target).addClass('icon_sab_clicked').attr('title', 'Added to Queue'); + createGrowl('Added to Queue'); + }); + return false; + }); + $('.sendtocouch').click(function (e) { + e.preventDefault(); + $.get($(this).attr('rel')); + + $.pnotify({ + title: 'ADDED TO COUCHPOTATO!', + text: 'Its now on your wanted list! ^_^', + type: 'info', + animate_speed: 'fast', + icon: 'icon-info-sign' + }); + }); + $("table.data a.modal_nfo").colorbox({ // NFO modal + href: function () { + return $(this).attr('href') + '&modal'; + }, + title: function () { + return $(this).parent().parent().children('a.title').text(); + }, + innerWidth: "800px", innerHeight: "90%", initialWidth: "800px", initialHeight: "90%", speed: 0, opacity: 0.7 + }); + // Screenshot modal + $("table.data a.modal_prev").colorbox({maxWidth: "1920px", maxHeight: "1080px"}); + + $("table.data a.modal_imdb").colorbox({ // IMDB modal + href: function () { + return SERVERROOT + "movie/" + $(this).attr('name').substring(4) + '&modal'; + }, + title: function () { + return $(this).parent().parent().children('a.title').text(); + }, + innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7 + }).click(function () { + $('#colorbox').removeClass().addClass('cboxMovie'); + }); + + $("a.modal_imdbtrailer").colorbox({ // IMDB trailer modal + href: function(){ return SERVERROOT + "movietrailer/"+$(this).attr('name').substring(4)+'&modal'; }, + title: function(){ return $(this).parent().parent().children('a.title').text(); }, + innerWidth:"800px", innerHeight:"450px", initialWidth:"800px", initialHeight:"450px", speed:0, opacity:0.7 + }).click(function(){ + $('#colorbox').removeClass().addClass('cboxMovie'); + }); + + $("table.data a.modal_music").colorbox({ // Music modal + href: function () { + return SERVERROOT + "musicmodal/" + $(this).attr('name').substring(4) + '&modal'; + }, + title: function () { + return $(this).parent().parent().children('a.title').text(); + }, + innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7 + }).click(function () { + $('#colorbox').removeClass().addClass('cboxMusic'); + }); + $("table.data a.modal_console").colorbox({ // Console modal + href: function () { + return SERVERROOT + "consolemodal/" + $(this).attr('name').substring(4) + '&modal'; + }, + title: function () { + return $(this).parent().parent().children('a.title').text(); + }, + innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7 + }).click(function () { + $('#colorbox').removeClass().addClass('cboxConsole'); + }); + $("table.data a.modal_book").colorbox({ // Book modal + href: function () { + return SERVERROOT + "bookmodal/" + $(this).attr('name').substring(4) + '&modal'; + }, + title: function () { + return $(this).parent().parent().children('a.title').text(); + }, + innerWidth: "800px", innerHeight: "450px", initialWidth: "800px", initialHeight: "450px", speed: 0, opacity: 0.7 + }).click(function () { + $('#colorbox').removeClass().addClass('cboxBook'); + }); + + + /* nzb_multi_operations_form */ + $('#nzb_multi_operations_form').submit(function(){return false;}); + $('button.nzb_multi_operations_download').click(function () { + var ids = ""; + $("table.data INPUT[type='checkbox']:checked").each( function (i, row) { + if ($(row).val()!="on") + ids += $(row).val()+','; + }); + ids = ids.substring(0,ids.length-1); + if (ids) + window.location = SERVERROOT + "getnzb?zip=1&id="+ids; + }); + $('button.nzb_multi_operations_cart').click(function(){ + var guids = new Array(); + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + var guid = $(row).val(); + var $cartIcon = $(row).parent().parent().children('td.icons').children('.icon_cart'); + if (guid && !$cartIcon.hasClass('icon_cart_clicked')){ + $cartIcon.addClass('icon_cart_clicked').attr('title','Added to '+CARTNAME); // consider doing this only upon success + guids.push(guid); + $.pnotify({ + title: 'ADDED!', + text: 'Its now in your '+CARTNAME+'! ^_^', + type: 'success', + icon: 'fa-icon-info-sign' + }); + } + $(this).prop('checked', false); + }); + $.post( SERVERROOT + "cart?add", { 'add': guids }); + }); + $('button.nzb_multi_operations_sab').click(function(){ + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + var $sabIcon = $(row).parent().parent().children('td.icons').children('.icon_sab'); + var guid = $(row).val(); + if (guid && !$sabIcon.hasClass('icon_sab_clicked')) { + var nzburl = SERVERROOT + "sendtoqueue/" + guid; + $.post( nzburl, function(resp){ + $sabIcon.addClass('icon_sab_clicked').attr('title','Added to Queue'); + $.pnotify({ + title: 'ADDED TO SAB!', + text: 'Its now in the queue!! ^_^', + type: 'info', + icon: 'fa-icon-info-sign' + }); + }); + } + $(this).attr('checked', false); + }); + }); + + //front end admin functions + $('button.nzb_multi_operations_edit').click(function(){ + var ids = ""; + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + if ($(row).val()!="on") + ids += '&id[]='+$(row).val(); + }); + if (ids) + $('input.nzb_multi_operations_edit').colorbox({ + href: function(){ return SERVERROOT + "ajax_release-admin?action=edit"+ids+"&from="+encodeURIComponent(window.location); }, + title: 'Edit Release', + innerWidth:"400px", innerHeight:"250px", initialWidth:"400px", initialHeight:"250px", speed:0, opacity:0.7 + }); + }); + $('button.nzb_multi_operations_delete').click(function(){ + var ids = ""; + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + if ($(row).val()!="on") + ids += '&id[]='+$(row).val(); + }); + if (ids) + if (confirm('Are you sure you want to delete the selected releases?')) { + $.post(SERVERROOT + "ajax_release-admin?action=dodelete"+ids, function(resp){ + window.location = window.location; + }); + } + }); + $('button.nzb_multi_operations_rebuild').click(function(){ + var ids = ""; + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + if ($(row).val()!="on") + ids += '&id[]='+$(row).val(); + }); + if (ids) + if (confirm('Are you sure you want to rebuild the selected releases?')) { + $.post(SERVERROOT + "ajax_release-admin?action=dorebuild"+ids, function(resp){ + window.location = window.location; + }); + } + }); + //cart functions + $('button.nzb_multi_operations_cartdelete').click(function(){ + var ids = new Array(); + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + if ($(row).val()!="on") + ids += '&id[]='+$(row).val(); + }); + if (ids) + { + if (confirm('Are you sure you want to delete the selected releases from your '+CARTNAME+'?')) { + $.post( SERVERROOT + "cart?delete", { 'delete': ids }, function(resp){ + window.location = window.location; + }); + } + } + }); + $('button.nzb_multi_operations_cartsab').click(function(){ + var ids = new Array(); + $("table.data INPUT[type='checkbox']:checked").each( function(i, row) { + var guid = $(row).val(); + var nzburl = SERVERROOT + "sendtoqueue/" + guid; + $.post( nzburl, function(resp){ + $.pnotify({ + title: 'ADDED TO SAB!', + text: 'Its now in the queue!! ^_^', + type: 'info', + icon: 'fa-icon-info-sign' + }); + }); + }); + }); + + /* END OFF - nzb_multi_operations_form */ + + // headermenu.tpl + $('#headsearch') + .focus(function () { + if (this.value == 'Enter keywords') this.value = ''; + }) + .blur(function () { + if (this.value == '') this.value = 'Enter keywords'; + }); + $('#headsearch_form').submit(function () { + $('headsearch_go').trigger('click'); + return false; + }); + $('#headsearch_go').click(function () { + if ($('#headsearch').val() && $('#headsearch').val() != 'Enter keywords') { + document.location = WWW_TOP + "/search/" + $('#headsearch').val() + ($("#headcat").val() != -1 ? "?t=" + $("#headcat").val() : ""); + } + }); + + // search.tpl + $('#search_search_button').click(function () { + if ($('#search').val()) + document.location = WWW_TOP + "/search/" + $('#search').val() + ($("#search_cat").val() != -1 ? "?t=" + $("#search_cat").val() : ""); + return false; + }); + + // login.tpl, register.tpl, search.tpl, searchraw.tpl + if ($('#username').length) + $('#username').focus(); + if ($('#search').length) + $('#search').focus(); + + // viewfilelist.tpl + $('#viewfilelist_download_selected').click(function () { + if ($('#fileform input:checked').length) + $('#fileform').trigger('submit'); + return false; + }); + + // misc + $('.confirm_action').click(function () { + return confirm('Are you sure?'); + }); + + // mmenu + $('.mmenu').click(function () { + document.location = $(this).children('a').attr('href'); + return false; + }); + + // mmenu_new + $('.mmenu_new').click(function () { + window.open($(this).children('a').attr('href')); + return false; + }); + + // searchraw.tpl, viewfilelist.tpl -- checkbox operations + // selections + var last1, last2; + $(".checkbox_operations .select_all").click(function () { + $("table.data INPUT[type='checkbox']").prop('checked', true).trigger('change'); + return false; + }); + $(".checkbox_operations .select_none").click(function () { + $("table.data INPUT[type='checkbox']").prop('checked', false).trigger('change'); + return false; + }); + $(".checkbox_operations .select_invert").click(function () { + $("table.data INPUT[type='checkbox']").each(function () { + $(this).prop('checked', !$(this).prop('checked')).trigger('change'); + }); + return false; + }); + $(".checkbox_operations .select_range").click(function () { + if (last1 && last2 && last1 < last2) + $("table.data INPUT[type='checkbox']").slice(last1, last2).prop('checked', true).trigger('change'); + else if (last1 && last2) + $("table.data INPUT[type='checkbox']").slice(last2, last1).prop('checked', true).trigger('change'); + return false; + }); + $('table.data td.check INPUT[type="checkbox"]').click(function (e) { + // range event interaction -- see further above + var rowNum = $(e.target).parent().parent()[0].rowIndex; + if (last1) last2 = last1; + last1 = rowNum; + + // perform range selection + if (e.shiftKey && last1 && last2) { + if (last1 < last2) + $("table.data INPUT[type='checkbox']").slice(last1, last2).prop('checked', true).trigger('change'); + else + $("table.data INPUT[type='checkbox']").slice(last2, last1).prop('checked', true).trigger('change'); + } + }); + $('table.data a.data_filename').click(function (e) { // click filenames to select + // range event interaction -- see further above + var rowNum = $(e.target).parent().parent()[0].rowIndex; + if (last1) last2 = last1; + last1 = rowNum; + + var $checkbox = $('table.data tr:nth-child(' + (rowNum + 1) + ') td.selection INPUT[type="checkbox"]'); + $checkbox.prop('checked', !$checkbox.prop('checked')); + + return false; + }); + + + // show/hide invite form + $('#lnkSendInvite').click(function () { + $('#divInvite').slideToggle('fast'); + }); + + // send an invite + $('#frmSendInvite').submit(function () { + var inputEmailto = $("#txtInvite").val(); + if (isValidEmailAddress(inputEmailto)) { + + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url: WWW_TOP + '/ajax_profile?action=1&rand=' + rand_no, + data: { emailto: inputEmailto}, + dataType: "html", + success: function (data) { + $("#txtInvite").val(""); + $('#divInvite').slideToggle('fast'); + $("#divInviteSuccess").text(data).show(); + $("#divInviteError").hide(); + }, + error: function (xhr, err, e) { + alert("Error in ajax_profile: " + err); + } + }); + } + else { + $("#divInviteSuccess").hide(); + $("#divInviteError").text("Invalid email").show(); + } + return false; + }); + + // movie.tpl + $('.mlmore').click(function () { // show more movies + $(this).parent().parent().hide(); + $(this).parent().parent().parent().children(".mlextra").show(); + return false; + }); + + // lookup tmdb for a movie + $('#frmMyMovieLookup').submit(function () { + var movSearchText = $("#txtsearch").val(); + // no caching of results + var rand_no = Math.random(); + $.ajax({ + url: WWW_TOP + '/ajax_mymovies?rand=' + rand_no, + data: { id: movSearchText}, + dataType: "html", + success: function (data) { + $("#divMovResults").html(data); + }, + error: function (xhr, err, e) { + alert("Error in ajax_mymovies: " + err); + } + }); + + return false; + }); + + + // file list tooltip + $(".rarfilelist").each(function () { + var guid = $(this).children('img').attr('alt'); + $(this).qtip({ + content: { + title: { + text: 'rar archive contains...' + }, + text: 'loading...', // The text to use whilst the AJAX request is loading + ajax: { + url: SERVERROOT + 'ajax_rarfilelist', // URL to the local file + type: 'GET', // POST or GET + data: { id: guid }, // Data to pass along with your request + success: function (data, status) { + this.set('content.text', data); + } + } + }, + position: { + my: 'top right', + at: 'bottom left' + }, + style: { + classes: 'qtip-dark qtip-shadow qtip-rounded', + width: { max: 500 }, + tip: { // Now an object instead of a string + corner: 'topRight', // We declare our corner within the object using the corner sub-option + size: { + x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width. + y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width! + } + } + } + }); + }); + + // seriesinfo tooltip + $(".seriesinfo").each(function () { + var guid = $(this).attr('title'); + $(this).qtip({ + content: { + title: { + text: 'episode info...' + }, + text: 'loading...', // The text to use whilst the AJAX request is loading + ajax: { + url: SERVERROOT + 'ajax_tvinfo', // URL to the local file + type: 'GET', // POST or GET + data: { id: guid }, // Data to pass along with your request + success: function (data, status) { + this.set('content.text', data); + } + } + }, + style: { + classes: 'qtip-dark qtip-shadow qtip-rounded' + } + }); + }); + + // mediainfo tooltip + $(".mediainfo").each(function () { + var guid = $(this).attr('title'); + $(this).qtip({ + content: { + title: { + text: 'extended media info...' + }, + text: 'loading...', // The text to use whilst the AJAX request is loading + ajax: { + url: SERVERROOT + 'ajax_mediainfo', // URL to the local file + type: 'GET', // POST or GET + data: { id: guid }, // Data to pass along with your request + success: function (data, status) { + this.set('content.text', data); + } + } + }, + style: { + classes: 'qtip-dark qtip-shadow qtip-rounded', + width: { max: 500 }, + tip: { // Now an object instead of a string + corner: 'topLeft', // We declare our corner within the object using the corner sub-option + size: { + x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width. + y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width! + } + } + } + }); + }); + + // preinfo tooltip + $(".preinfo").each(function() { + var searchname = $(this).attr('title'); + $(this).qtip({ + content: { + title: { + text: 'Pre Info' + }, + text: 'loading...', + ajax: { + url: SERVERROOT + 'ajax_preinfo', + type: 'GET', + data: { searchname: searchname }, + success: function(data, status) { + this.set('content.text', data); + } + } + }, + style: { + classes: 'ui-tooltip-tmux' + } + }); + }); + + // prehashinfo tooltip + $(".prehashinfo").each(function () { + var prehashid = $(this).attr('title'); + $(this).qtip({ + content: { + title: { + text: 'PreHash info...' + }, + text: 'loading...', // The text to use whilst the AJAX request is loading + ajax: { + url: SERVERROOT + 'ajax_prehashinfo', // URL to the local file + type: 'GET', // POST or GET + data: { id: prehashid }, // Data to pass along with your request + success: function (data, status) { + this.set('content.text', data); + } + } + }, + style: { + classes: 'qtip-dark qtip-shadow qtip-rounded', + width: { max: 500 }, + tip: { // Now an object instead of a string + corner: 'topLeft', // We declare our corner within the object using the corner sub-option + size: { + x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width. + y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width! + } + } + } + }); + }); + + // titleinfo tooltip + $(".titleinfo").each(function () { + var guid = $(this).attr('title'); + $(this).qtip({ + content: { + title: { + text: 'Release info...' + }, + text: 'loading...', // The text to use whilst the AJAX request is loading + ajax: { + url: SERVERROOT + 'ajax_titleinfo', // URL to the local file + type: 'GET', // POST or GET + data: { id: guid }, // Data to pass along with your request + success: function (data, status) { + this.set('content.text', data); + } + } + }, + style: { + classes: 'qtip-dark qtip-shadow qtip-rounded', + width: { max: 500 }, + tip: { // Now an object instead of a string + corner: 'topLeft', // We declare our corner within the object using the corner sub-option + size: { + x: 8, // Be careful that the x and y values refer to coordinates on screen, not height or width. + y: 8 // Depending on which corner your tooltip is at, x and y could mean either height or width! + } + } + } + }); + }); +}); + + +$.extend({ // http://plugins.jquery.com/project/URLEncode + URLEncode: function (c) { + var o = ''; + var x = 0; + c = c.toString(); + var r = /(^[a-zA-Z0-9_.]*)/; + while (x < c.length) { + var m = r.exec(c.substr(x)); + if (m != null && m.length > 1 && m[1] != '') { + o += m[1]; + x += m[1].length; + } else { + if (c[x] == ' ')o += '+'; else { + var d = c.charCodeAt(x); + var h = d.toString(16); + o += '%' + (h.length < 2 ? '0' : '') + h.toUpperCase(); + } + x++; + } + } + return o; + }, + URLDecode: function (s) { + var o = s; + var binVal, t; + var r = /(%[^%]{2})/; + while ((m = r.exec(o)) != null && m.length > 1 && m[1] != '') { + b = parseInt(m[1].substr(1), 16); + t = String.fromCharCode(b); + o = o.replace(m[1], t); + } + return o; + } +}); + + +function isValidEmailAddress(emailAddress) { + var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); + return pattern.test(emailAddress); +} + +function mymovie_del(imdbid, btn) { + var rand_no = Math.random(); + $.ajax({ + url: WWW_TOP + '/ajax_mymovies?rand=' + rand_no, + data: { del: imdbid}, + dataType: "html", + success: function (data) { + $(btn).hide(); + $(btn).prev("a").show(); + }, + error: function (xhr, err, e) { + } + }); + + return false; +} + +function mymovie_add(imdbid, btn) { + $(btn).hide(); + $(btn).next("a").show(); + + var rand_no = Math.random(); + $.ajax({ + url: WWW_TOP + '/ajax_mymovies?rand=' + rand_no, + data: { add: imdbid}, + dataType: "html", + success: function (data) { + }, + error: function (xhr, err, e) { + } + }); + + return false; +} + + +// qtip growl +$(document).ready(function () { + + window.createGrowl = function (tipText /*, tipTitle, persistent*/) { + // Use the last visible jGrowl qtip as our positioning target + var target = $('.qtip.jgrowl:visible:last'); + var tipTitle = 'Attention!'; + var persistent = false; + + // Create your jGrowl qTip... + $(document.body).qtip({ + // Any content config you want here really.... go wild! + content: { + text: tipText, + title: { + text: tipTitle, + button: true + } + }, + position: { + my: 'top right', // Not really important... + at: (target.length ? 'bottom' : 'top') + ' right', // If target is window use 'top right' instead of 'bottom right' + target: target.length ? target : $(document.body), // Use our target declared above + adjust: { y: 5 } // Add some vertical spacing + }, + show: { + event: false, // Don't show it on a regular event + ready: true, // Show it when ready (rendered) + effect: function () { + $(this).stop(0, 1).fadeIn(400); + }, // Matches the hide effect + + // Custom option for use with the .get()/.set() API, awesome! + persistent: persistent + }, + hide: { + event: false, // Don't hide it on a regular event + effect: function (api) { + // Do a regular fadeOut, but add some spice! + $(this).stop(0, 1).fadeOut(400).queue(function () { + // Destroy this tooltip after fading out + api.destroy(); + + // Update positions + updateGrowls(); + }) + } + }, + style: { + classes: 'jgrowl qtip-dark qtip-shadow qtip-rounded', // Some nice visual classes + tip: false // No tips for this one (optional ofcourse) + }, + events: { + render: function (event, api) { + // Trigger the timer (below) on render + timer.call(api.elements.tooltip, event); + } + } + }) + .removeData('qtip'); + }; + + // Make it a window property see we can call it outside via updateGrowls() at any point + window.updateGrowls = function () { + // Loop over each jGrowl qTip + var each = $('.qtip.jgrowl:not(:animated)'); + each.each(function (i) { + var api = $(this).data('qtip'); + + // Set the target option directly to prevent reposition() from being called twice. + api.options.position.target = !i ? $(document.body) : each.eq(i - 1); + api.set('position.at', (!i ? 'top' : 'bottom') + ' right'); + }); + }; + + // Setup our timer function + function timer(event) { + var api = $(this).data('qtip'), + lifespan = 5000; // 5 second lifespan + + // If persistent is set to true, don't do anything. + if (api.get('show.persistent') === true) { + return; + } + + // Otherwise, start/clear the timer depending on event type + clearTimeout(api.timer); + if (event.type !== 'mouseover') { + api.timer = setTimeout(api.hide, lifespan); + } + } + + // Utilise delegate so we don't have to rebind for every qTip! + $(document).delegate('.qtip.jgrowl', 'mouseover mouseout', timer); +}); \ No newline at end of file diff --git a/www/templates_shared/styles/admin.css b/www/templates_shared/styles/admin.css new file mode 100644 index 000000000..66c60ee56 --- /dev/null +++ b/www/templates_shared/styles/admin.css @@ -0,0 +1,59 @@ +body { background: #FFFFFF ; } +textarea { height:100px; width:400px; } +fieldset { margin-bottom:20px; border:1px solid #999;} +legend { padding: 0.4em 0.6em; border:1px solid #999; font-weight:bold; text-align:right; } + + +#content { width: 77%; } +#sidebar { width: 200px; } +#sidebar li li:hover { cursor:auto; } +#logo { width: 0; height: 0; margin: 0 auto; padding-left:0; margin-top:0; } +.footer { width: 100%; height: 100px; margin: 0 auto; background: #FFF; border-top: 0; } +#menu { height:0px; border:0px;} + + +table.input td { vertical-align:top;} + +/* group editing */ +div#group_list { +} + +div#message { + display: none; + margin: 0 0 10px 0; + color: #fff; + background: #008C00; + border: 1px solid #ddd; + padding: 5px; + } + +/* deactivate link */ +div#group_list a.group_active, +div#group_list a.group_active:visited, +div#group_list a.group_active:active +a.backfill_active, +a.backfill_active:visited, +a.backfill_active:active { + color: #CC0000; +} + +/* activate link */ +div#group_list a.group_deactive +div#group_list a.group_deactive:visited, +div#group_list a.group_deactive:active +a.backfill_deactive, +a.backfill_deactive:visited, +a.backfill_deactive:active { + color: #008C00; +} + +#donate { + float: right; + display: block; + width: 150px; + border: 1px solid #ddd; + text-align: center; + padding: 8px 0px 8px 0px; +} +#donate form { margin: 0px; padding: 0px; } +#donate h3 { margin: 0px 0px 6px 0px; padding: 0px; } \ No newline at end of file diff --git a/www/templates_shared/styles/bootstrap.min.css b/www/templates_shared/styles/bootstrap.min.css new file mode 100644 index 000000000..cd1c616ad --- /dev/null +++ b/www/templates_shared/styles/bootstrap.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/www/templates_shared/styles/install.css b/www/templates_shared/styles/install.css new file mode 100644 index 000000000..199f4dda7 --- /dev/null +++ b/www/templates_shared/styles/install.css @@ -0,0 +1,46 @@ +/* +site wide html styles +*/ +body { margin: 0; padding: 0; background: #FFFFFF url(../images/menu.gif) repeat-x; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 14px; color: #515151; } +input, select, textarea { font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 14px;} +a { text-decoration: none; color: blue; } +h1, h2, h3 { margin: 0; font-weight: normal; color: #485459; } +li { padding-top:10px; } +textarea { font-family: Arial, Helvetica, sans-serif; height:100px; width:300px;} +h1 { font-size: 3.0em; padding-bottom:10px;} +h2 { font-size: 2.0em; padding-bottom:10px;} +input[type=text], input[type=password], textarea, select { background: #fff; background: -webkit-gradient(linear, left top, left 25, from(#fff), color-stop(4%, #f0f0f0), to(#fff)); border: 1px solid #ccc; border-bottom-color: #999; border-right-color: #999; margin: 0; padding: 4px; color: #444; font-size: 100%; outline: none; } + + + +/* +page layout +*/ +#logo { margin-left: 200px; margin-top: 30px; margin-bottom: 30px; } +.content { border: 1px solid #515151; width: 600px; padding: 30px; margin-left: auto; margin-right: auto; background: #FFF; border:1px solid #EEE; -moz-box-shadow: 3px 6px 8px -4px #777; -webkit-box-shadow: 3px 6px 8px -4px #777; box-shadow: 3px 6px 8px -4px #777; } +.footer { font-size: 10px; text-align: center; } + +/* +install warning message +*/ +div.error { color: red; padding: 20px; } +span.error { color: red; } +span.warn { color: orange; } +span.success { color: green; } + +/* +lists +*/ +table.data { border-collapse:collapse; } +table.data th { text-align:left; vertical-align:top; background-color:#DDD; border-color: #AAA; border-width: 1px; border-style: solid; padding:3px; font-style:bolder; text-transform:capitalize;} +table.data td { white-space:normal; vertical-align:top; padding:5px; border-color: #AAA; border-width: 1px; border-style: solid; } +table.data td.less { color: #888; font-size: 0.8em; white-space:nowrap; } +table.data td.icons { white-space:nowrap; padding-left:0px; padding-right:0px; width:60px; } +table.highlight tr:hover td { background-color: #E1F0D9; } +table tr.alt { background-color: #EEE; } +table.data em {font-weight:bolder; color:red;} +div.hint, div.hint a {font-size:0.9em; font-style:italic; color:#999;} +div.hint { margin-bottom:10px;} +input.long {width:400px; } +input.short { width:40px; } +input.date { width:70px; } diff --git a/www/templates_shared/styles/jquery.multiselect.css b/www/templates_shared/styles/jquery.multiselect.css new file mode 100644 index 000000000..f04797105 --- /dev/null +++ b/www/templates_shared/styles/jquery.multiselect.css @@ -0,0 +1,93 @@ +.ms-container{ + background: transparent url('../images/icons/switch.png') no-repeat 50% 50%; + width: 500px; +} + +.ms-container:after{ + content: "."; + display: block; + height: 0; + line-height: 0; + font-size: 0; + clear: both; + min-height: 0; + visibility: hidden; +} + +.ms-container .ms-selectable, .ms-container .ms-selection{ + background: #fff; + color: #555555; + float: left; + width: 45%; +} +.ms-container .ms-selection{ + float: right; +} + +.ms-container .ms-list{ + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + position: relative; + height: 200px; + padding: 0; + overflow-y: auto; +} + +.ms-container .ms-list.ms-focus{ + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; +} + +.ms-container ul{ + margin: 0; + list-style-type: none; + padding: 0; +} + +.ms-container .ms-optgroup-container{ + width: 100%; +} + +.ms-container .ms-optgroup-label{ + margin: 0; + padding: 5px 0px 0px 5px; + cursor: pointer; + color: #999; +} + +.ms-container .ms-selectable li.ms-elem-selectable, +.ms-container .ms-selection li.ms-elem-selection{ + border-bottom: 1px #eee solid; + padding: 2px 10px; + color: #555; + font-size: 14px; +} + +.ms-container .ms-selectable li.ms-hover, +.ms-container .ms-selection li.ms-hover{ + cursor: pointer; + color: #fff; + text-decoration: none; + background-color: #08c; +} + +.ms-container .ms-selectable li.disabled, +.ms-container .ms-selection li.disabled{ + background-color: #eee; + color: #aaa; + cursor: text; +} \ No newline at end of file diff --git a/www/templates_shared/styles/jquery.pnotify.default.css b/www/templates_shared/styles/jquery.pnotify.default.css new file mode 100644 index 000000000..de1068aab --- /dev/null +++ b/www/templates_shared/styles/jquery.pnotify.default.css @@ -0,0 +1,83 @@ +/* +Document : jquery.pnotify.default.css +Created on : Nov 23, 2009, 3:14:10 PM +Author : Hunter Perrin +Version : 1.2.0 +Link : http://pinesframework.org/pnotify/ +Description: + Default styling for Pines Notify jQuery plugin. +*/ +/* -- Notice */ +.ui-pnotify { +top: 25px; +right: 25px; +position: absolute; +height: auto; +/* Ensures notices are above everything */ +z-index: 9999; +} +/* Hides position: fixed from IE6 */ +html > body .ui-pnotify { +position: fixed; +} +.ui-pnotify .ui-pnotify-shadow { +-webkit-box-shadow: 0px 2px 10px rgba(50, 50, 50, 0.5); +-moz-box-shadow: 0px 2px 10px rgba(50, 50, 50, 0.5); +box-shadow: 0px 2px 10px rgba(50, 50, 50, 0.5); +} +.ui-pnotify-container { +background-position: 0 0; +padding: .8em; +height: 100%; +margin: 0; +} +.ui-pnotify-sharp { +-webkit-border-radius: 0; +-moz-border-radius: 0; +border-radius: 0; +} +.ui-pnotify-closer, .ui-pnotify-sticker { +float: right; +margin-left: .2em; +} +.ui-pnotify-title { +display: block; +margin-bottom: .4em; +} +.ui-pnotify-text { +display: block; +} +.ui-pnotify-icon, .ui-pnotify-icon span { +display: block; +float: left; +margin-right: .2em; +} +/* -- History Pulldown */ +.ui-pnotify-history-container { +position: absolute; +top: 0; +right: 18px; +width: 70px; +border-top: none; +padding: 0; +-webkit-border-top-left-radius: 0; +-moz-border-top-left-radius: 0; +border-top-left-radius: 0; +-webkit-border-top-right-radius: 0; +-moz-border-top-right-radius: 0; +border-top-right-radius: 0; +/* Ensures history container is above notices. */ +z-index: 10000; +} +.ui-pnotify-history-container .ui-pnotify-history-header { +padding: 2px; +} +.ui-pnotify-history-container button { +cursor: pointer; +display: block; +width: 100%; +} +.ui-pnotify-history-container .ui-pnotify-history-pulldown { +display: block; +margin: 0 auto; +} \ No newline at end of file diff --git a/www/templates_shared/styles/jquery.qtip.css b/www/templates_shared/styles/jquery.qtip.css new file mode 100644 index 000000000..e466f4c14 --- /dev/null +++ b/www/templates_shared/styles/jquery.qtip.css @@ -0,0 +1,623 @@ +/* + * qTip2 - Pretty powerful tooltips - v2.2.0 + * http://qtip2.com + * + * Copyright (c) 2013 Craig Michael Thompson + * Released under the MIT, GPL licenses + * http://jquery.org/license + * + * Date: Sun Dec 15 2013 12:33 EST-0500 + * Plugins: tips viewport imagemap svg modal ie6 + * Styles: basic css3 + */ +.qtip{ + position: absolute; + left: -28000px; + top: -28000px; + display: none; + + max-width: 280px; + min-width: 50px; + + font-size: 10.5px; + line-height: 12px; + + direction: ltr; + + box-shadow: none; + padding: 0; +} + + .qtip-content{ + position: relative; + padding: 5px 9px; + overflow: hidden; + + text-align: left; + word-wrap: break-word; + } + + .qtip-titlebar{ + position: relative; + padding: 5px 35px 5px 10px; + overflow: hidden; + + border-width: 0 0 1px; + font-weight: bold; + } + + .qtip-titlebar + .qtip-content{ border-top-width: 0 !important; } + + /* Default close button class */ + .qtip-close{ + position: absolute; + right: -9px; top: -9px; + + cursor: pointer; + outline: medium none; + + border-width: 1px; + border-style: solid; + border-color: transparent; + } + + .qtip-titlebar .qtip-close{ + right: 4px; top: 50%; + margin-top: -9px; + } + + * html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */ + + .qtip-titlebar .ui-icon, + .qtip-icon .ui-icon{ + display: block; + text-indent: -1000em; + direction: ltr; + } + + .qtip-icon, .qtip-icon .ui-icon{ + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + text-decoration: none; + } + + .qtip-icon .ui-icon{ + width: 18px; + height: 14px; + + line-height: 14px; + text-align: center; + text-indent: 0; + font: normal bold 10px/13px Tahoma,sans-serif; + + color: inherit; + background: transparent none no-repeat -100em -100em; + } + +/* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */ +.qtip-focus{} + +/* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */ +.qtip-hover{} + +/* Default tooltip style */ +.qtip-default{ + border-width: 1px; + border-style: solid; + border-color: #F1D031; + + background-color: #FFFFA3; + color: #555; +} + + .qtip-default .qtip-titlebar{ + background-color: #FFEF93; + } + + .qtip-default .qtip-icon{ + border-color: #CCC; + background: #F1F1F1; + color: #777; + } + + .qtip-default .qtip-titlebar .qtip-close{ + border-color: #AAA; + color: #111; + } + + + +/*! Light tooltip style */ +.qtip-light{ + background-color: white; + border-color: #E2E2E2; + color: #454545; +} + + .qtip-light .qtip-titlebar{ + background-color: #f1f1f1; + } + + +/*! Dark tooltip style */ +.qtip-dark{ + background-color: #505050; + border-color: #303030; + color: #f3f3f3; +} + + .qtip-dark .qtip-titlebar{ + background-color: #404040; + } + + .qtip-dark .qtip-icon{ + border-color: #444; + } + + .qtip-dark .qtip-titlebar .ui-state-hover{ + border-color: #303030; + } + + +/*! Cream tooltip style */ +.qtip-cream{ + background-color: #FBF7AA; + border-color: #F9E98E; + color: #A27D35; +} + + .qtip-cream .qtip-titlebar{ + background-color: #F0DE7D; + } + + .qtip-cream .qtip-close .qtip-icon{ + background-position: -82px 0; + } + + +/*! Red tooltip style */ +.qtip-red{ + background-color: #F78B83; + border-color: #D95252; + color: #912323; +} + + .qtip-red .qtip-titlebar{ + background-color: #F06D65; + } + + .qtip-red .qtip-close .qtip-icon{ + background-position: -102px 0; + } + + .qtip-red .qtip-icon{ + border-color: #D95252; + } + + .qtip-red .qtip-titlebar .ui-state-hover{ + border-color: #D95252; + } + + +/*! Green tooltip style */ +.qtip-green{ + background-color: #CAED9E; + border-color: #90D93F; + color: #3F6219; +} + + .qtip-green .qtip-titlebar{ + background-color: #B0DE78; + } + + .qtip-green .qtip-close .qtip-icon{ + background-position: -42px 0; + } + + +/*! Blue tooltip style */ +.qtip-blue{ + background-color: #E5F6FE; + border-color: #ADD9ED; + color: #5E99BD; +} + + .qtip-blue .qtip-titlebar{ + background-color: #D0E9F5; + } + + .qtip-blue .qtip-close .qtip-icon{ + background-position: -2px 0; + } + + + +.qtip-shadow{ + -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); + box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15); +} + +/* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */ +.qtip-rounded, +.qtip-tipsy, +.qtip-bootstrap{ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.qtip-rounded .qtip-titlebar{ + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +/* Youtube tooltip style */ +.qtip-youtube{ + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 3px #333; + -moz-box-shadow: 0 0 3px #333; + box-shadow: 0 0 3px #333; + + color: white; + border-width: 0; + + background: #4A4A4A; + background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black)); + background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%); + background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%); +} + + .qtip-youtube .qtip-titlebar{ + background-color: #4A4A4A; + background-color: rgba(0,0,0,0); + } + + .qtip-youtube .qtip-content{ + padding: .75em; + font: 12px arial,sans-serif; + + filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000); + -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"; + } + + .qtip-youtube .qtip-icon{ + border-color: #222; + } + + .qtip-youtube .qtip-titlebar .ui-state-hover{ + border-color: #303030; + } + + +/* jQuery TOOLS Tooltip style */ +.qtip-jtools{ + background: #232323; + background: rgba(0, 0, 0, 0.7); + background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323)); + background-image: -moz-linear-gradient(top, #717171, #232323); + background-image: -webkit-linear-gradient(top, #717171, #232323); + background-image: -ms-linear-gradient(top, #717171, #232323); + background-image: -o-linear-gradient(top, #717171, #232323); + + border: 2px solid #ddd; + border: 2px solid rgba(241,241,241,1); + + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + + -webkit-box-shadow: 0 0 12px #333; + -moz-box-shadow: 0 0 12px #333; + box-shadow: 0 0 12px #333; +} + + /* IE Specific */ + .qtip-jtools .qtip-titlebar{ + background-color: transparent; + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"; + } + .qtip-jtools .qtip-content{ + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"; + } + + .qtip-jtools .qtip-titlebar, + .qtip-jtools .qtip-content{ + background: transparent; + color: white; + border: 0 dashed transparent; + } + + .qtip-jtools .qtip-icon{ + border-color: #555; + } + + .qtip-jtools .qtip-titlebar .ui-state-hover{ + border-color: #333; + } + + +/* Cluetip style */ +.qtip-cluetip{ + -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4); + + background-color: #D9D9C2; + color: #111; + border: 0 dashed transparent; +} + + .qtip-cluetip .qtip-titlebar{ + background-color: #87876A; + color: white; + border: 0 dashed transparent; + } + + .qtip-cluetip .qtip-icon{ + border-color: #808064; + } + + .qtip-cluetip .qtip-titlebar .ui-state-hover{ + border-color: #696952; + color: #696952; + } + + +/* Tipsy style */ +.qtip-tipsy{ + background: black; + background: rgba(0, 0, 0, .87); + + color: white; + border: 0 solid transparent; + + font-size: 11px; + font-family: 'Lucida Grande', sans-serif; + font-weight: bold; + line-height: 16px; + text-shadow: 0 1px black; +} + + .qtip-tipsy .qtip-titlebar{ + padding: 6px 35px 0 10px; + background-color: transparent; + } + + .qtip-tipsy .qtip-content{ + padding: 6px 10px; + } + + .qtip-tipsy .qtip-icon{ + border-color: #222; + text-shadow: none; + } + + .qtip-tipsy .qtip-titlebar .ui-state-hover{ + border-color: #303030; + } + + +/* Tipped style */ +.qtip-tipped{ + border: 3px solid #959FA9; + + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + + background-color: #F9F9F9; + color: #454545; + + font-weight: normal; + font-family: serif; +} + + .qtip-tipped .qtip-titlebar{ + border-bottom-width: 0; + + color: white; + background: #3A79B8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D)); + background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D); + background-image: -moz-linear-gradient(top, #3A79B8, #2E629D); + background-image: -ms-linear-gradient(top, #3A79B8, #2E629D); + background-image: -o-linear-gradient(top, #3A79B8, #2E629D); + filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"; + } + + .qtip-tipped .qtip-icon{ + border: 2px solid #285589; + background: #285589; + } + + .qtip-tipped .qtip-icon .ui-icon{ + background-color: #FBFBFB; + color: #555; + } + + +/** + * Twitter Bootstrap style. + * + * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11. + * Does not work with IE 7. + */ +.qtip-bootstrap{ + /** Taken from Bootstrap body */ + font-size: 14px; + line-height: 20px; + color: #333333; + + /** Taken from Bootstrap .popover */ + padding: 1px; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + + .qtip-bootstrap .qtip-titlebar{ + /** Taken from Bootstrap .popover-title */ + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; + } + + .qtip-bootstrap .qtip-titlebar .qtip-close{ + /** + * Overrides qTip2: + * .qtip-titlebar .qtip-close{ + * [...] + * right: 4px; + * top: 50%; + * [...] + * border-style: solid; + * } + */ + right: 11px; + top: 45%; + border-style: none; + } + + .qtip-bootstrap .qtip-content{ + /** Taken from Bootstrap .popover-content */ + padding: 9px 14px; + } + + .qtip-bootstrap .qtip-icon{ + /** + * Overrides qTip2: + * .qtip-default .qtip-icon { + * border-color: #CCC; + * background: #F1F1F1; + * color: #777; + * } + */ + background: transparent; + } + + .qtip-bootstrap .qtip-icon .ui-icon{ + /** + * Overrides qTip2: + * .qtip-icon .ui-icon{ + * width: 18px; + * height: 14px; + * } + */ + width: auto; + height: auto; + + /* Taken from Bootstrap .close */ + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); + } + + .qtip-bootstrap .qtip-icon .ui-icon:hover{ + /* Taken from Bootstrap .close:hover */ + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); + } + + +/* IE9 fix - removes all filters */ +.qtip:not(.ie9haxors) div.qtip-content, +.qtip:not(.ie9haxors) div.qtip-titlebar{ + filter: none; + -ms-filter: none; +} + + + +.qtip .qtip-tip{ + margin: 0 auto; + overflow: hidden; + z-index: 10; + +} + + /* Opera bug #357 - Incorrect tip position + https://github.com/Craga89/qTip2/issues/367 */ + x:-o-prefocus, .qtip .qtip-tip{ + visibility: hidden; + } + + .qtip .qtip-tip, + .qtip .qtip-tip .qtip-vml, + .qtip .qtip-tip canvas{ + position: absolute; + + color: #123456; + background: transparent; + border: 0 dashed transparent; + } + + .qtip .qtip-tip canvas{ top: 0; left: 0; } + + .qtip .qtip-tip .qtip-vml{ + behavior: url(#default#VML); + display: inline-block; + visibility: visible; + } + +#qtip-overlay{ + position: fixed; + left: 0; top: 0; + width: 100%; height: 100%; +} + + /* Applied to modals with show.modal.blur set to true */ + #qtip-overlay.blurs{ cursor: pointer; } + + /* Change opacity of overlay here */ + #qtip-overlay div{ + position: absolute; + left: 0; top: 0; + width: 100%; height: 100%; + + background-color: black; + + opacity: 0.7; + filter:alpha(opacity=70); + -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; + } + + + +.qtipmodal-ie6fix{ + position: absolute !important; +} \ No newline at end of file diff --git a/www/templates_shared/styles/posterwall.css b/www/templates_shared/styles/posterwall.css new file mode 100644 index 000000000..89f72a9e3 --- /dev/null +++ b/www/templates_shared/styles/posterwall.css @@ -0,0 +1,859 @@ +body,h1,h2,h3,h4,h5,h6,img,input,form,fieldset{ + margin:0; + padding:0; + outline:0; + border:0; +} + + +*{ + outline:0; +} + + +body{ + font-family:"Droid Sans",Arial,serif; + font-size:13px; + color:#000; + background-color:#d5d3be; +} + + +div.poster a img{ + margin:0; + padding:0; + border:0; +} + + +div.poster a{ + text-decoration:none; + color:#008fbb; +} + + +div.icons { + white-space:nowrap; + padding-left:0px; + padding-right:0px; + width:65px; + margin: 0 auto; +} + +.icon_allmusic { background-image:url('../images/icons/allmusic.png'); } +.icon_allmusic2 { content:url('../images/icons/allmusic.png'); } +.icon_amazon { background-image:url('../images/icons/amazon.png'); } +.icon_amazon2 { content:url('../images/icons/amazon.png'); } +.icon_giantbomb { background-image:url('../images/icons/giantbomb.png');} +.icon_cart { background-image:url('../images/icons/cartup.png'); } +.icon_cart_clicked { background-image:url('../images/icons/cartdown.png'); } +.icon_couch { background-image:url('../images/icons/couch.png'); } +.icon_couch2 { content:url('../images/icons/couch.png'); } +.icon_discogs { background-image:url('../images/icons/discogs.png'); } +.icon_gamespot { background-image:url('../images/icons/gamespot.png'); } +.icon_ign { background-image:url('../images/icons/ign.png'); } +.icon_lastfm { background-image:url('../images/icons/lastfm.png'); } +.icon_nzb { background-image:url('../images/icons/nzbup.png'); } +.icon_nzb_clicked { background-image:url('../images/icons/nzbdown.png'); } +.icon_nzb a { text-decoration:none; padding-bottom:2px; padding-right:12px; } +.icon_predbme { background-image:url('../images/icons/predbme.png'); } +.icon_imdb { background-image:url('../images/icons/imdb.png'); } +.icon_imdb2 { content:url('../images/icons/imdb.png'); } +.icon_imdb a { text-decoration:none; padding-bottom:2px; padding-right:12px; } +.icon_sab { background-image:url('../images/icons/sabup.png'); } +.icon_sab_clicked { background-image:url('../images/icons/sabdown.png'); } +.icon_trakt { background-image:url('../images/icons/trakt.png'); } +.icon_trakt2 { content:url('../images/icons/trakt.png'); } +.icon_tvrage { background-image:url('../images/icons/tvrage.png'); } +.icon_check { background-image:url('../images/icons/check.png'); } +.icon_cp { background-image:url('../images/icons/couch.png'); } +.icon_goodreads { background-image:url('../images/icons/goodreads.png'); } +.icon_shelfari { background-image:url('../images/icons/shelfari.png'); } + +a.divlink { + display:block; + width:16px; + height:16px; + float:left; +} + +h1{ +} + + +h2{ +} + + +h3{ + margin:13px 0; + font-size:18px; + font-weight:normal; +} + + +h3 a{ + color:#000; +} + + +h3 a.see-more{ + display:block; + border-radius:8px; + color:#000; + padding:5px 7px; + display:block; + float:right; + font-size:12px; + font-weight:normal; + background-color:#d5d3be; +} + + +h3 a.see-more:hover{ + color:#07637a; +; +} + + +h3 a:hover{ + text-decoration:underline; +} + + +input.placeholder{ + color:#aaa!important; +} + + +::-moz-selection{ + background:#4DBCE9; + color:#fff; + text-shadow:none; +} + + +::selection{ + background:#4DBCE9; + color:#fff; + text-shadow:none; +} + + +br.clear{ + clear:both; +} + + +.content{ + margin:0 auto; +} + +/* +#main,.main{ + overflow:hidden; +} + + +#main-wrapper,.main-wrapper{ + background-color:#e8e8dc; + padding-bottom:20px; +} + + +#main-wrapper.alt,.main-wrapper.alt{ + background-color:#d5d3be; +} + + +#main-wrapper.no-bottom,.main-wrapper.no-bottom{ + padding-bottom:0; +} + + +#main-wrapper.less-top,.main-wrapper.less-top{ + margin-top:-40px; +} + + +#main-wrapper.more-top,.main-wrapper.more-top{ + padding-top:20px; +} + + +#main-wrapper.no-top,.main-wrapper.no-top{ + margin-top:0; +} + + +#main-wrapper.less-bottom,.main-wrapper.less-bottom{ + padding-bottom:10px; +} + + +#main-wrapper.top-border,.main-wrapper.top-border{ + border-top:solid 2px #D5D3BE; +} + + +.main-wrapper.alt .recent-wrapper .recent-row,.main-wrapper.alt .recent-wrapper .recent-row.alt{ + background-color:transparent; + border-bottom-color:#bbb9a6; +} + + +.main-wrapper.alt .recent-wrapper .recent-row:first-child{ + border-top:solid 1px #bbb9a6; +} + + +.main-wrapper.alt .recent-wrapper .recent-row:hover{ + background-color:#ebe9d4; +} + + +#main-wrapper.alt .title-overflow,.main-wrapper.alt .title-overflow{ + background-image:url(https://trakt.us/images/title-overflow-alt.png); +} +*/ + +.title-overflow{ + background:url("../images/title-overflow.png") repeat-y 100% 0; + width:30px; + height:40px; + position:absolute; + top:0; + right:0; +} + +.main-content { + background: none repeat scroll 0% 0% rgb(242, 242, 242); + box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); + text-align: center; +} + +.one-column.no-padding{ + padding:0; +} + +.library-wrapper{ + overflow:hidden; + max-width:100%; + padding:10px; + margin: 0px; +} + +.library-console { + display:inline-block; + width: 130px; + height: 180px; +} + +.library-games { + display:inline-block; + width: 130px; + height: 130px; +} + +.library-music { + display:inline-block; + width: 250px; + height: 250px; +} + +.library-wrapper .library-show{ + display:inline-block; + margin:10px 10px 0 10px; +} + + +/*.library-wrapper .library-show .rank-wrapper{ + position:absolute; + z-index:3; + text-align:center; + width:100%; + top:-10px; +}*/ + + +.library-wrapper .library-show .rank-wrapper .rank{ + background:rgba(0,0,0,0.8); + color:#fff; + padding:4px 8px; + border-radius:15px; + font-size:14px; + font-weight:bold; +} + + +.library-wrapper .library-show .remove-watched,.library-wrapper .library-show .remove-library,.library-wrapper .library-show .remove-watchlist,.library-wrapper .library-show .remove-seen,.library-wrapper .library-show .remove-checkin{ + margin-left:126px; + display:none; +} + + +.library-wrapper .library-show.screen .remove-watched,.library-wrapper .library-show.screen .remove-library,.library-wrapper .library-show.screen .remove-watchlist,.library-wrapper .library-show.screen .remove-seen,.library-wrapper .library-show.screen .remove-checkin{ + margin-left:155px; + display:none; +} + + +.episodes-listing-episode .remove-watchlist{ + margin-left:204px; + display:none; +} + + +.library-wrapper .library-show:hover .remove-watched,.library-wrapper .library-show:hover .remove-library,.library-wrapper .library-show:hover .remove-watchlist,.episodes-listing-episode:hover .remove-watchlist,.library-wrapper .library-show:hover .remove-seen,.library-wrapper .library-show:hover .remove-checkin{ + display:block; +} + + +.library-wrapper .library-show .poster{ + position:relative; + border:solid 1px #d0d0c5; + transition:border-color .5s; + -moz-transition:border-color .5s; + -webkit-transition:border-color .5s; + -o-transition:border-color .5s; +} + + +.library-wrapper .library-show.with-rating-bar .poster{ + padding-bottom:22px; +} + + +.library-wrapper .library-show.with-rating-bar .quick-icons.rating-pod{ + top:228px; +} + + +.library-wrapper .library-show.screen.with-rating-bar .poster{ + padding-bottom:23px; +} + + +.library-wrapper .library-show.screen.with-rating-bar .quick-icons.rating-pod{ + top:121px; +} + + +.library-wrapper .library-show .poster:hover{ + border-color:#000; +} + + +.library-wrapper .library-show .poster.screen-overlay{ +} + + +.library-wrapper .library-show .poster.screen-overlay .poster-art{ + opacity:0.5; + filter:url(filters.svg#grayscale); + filter:gray; + -webkit-filter:grayscale(1); +} + + +.library-wrapper .library-show .poster.screen-overlay .screen{ + position:absolute; + z-index:2; + height:78px; + width:138px; + top:62px; + overflow:hidden; + -moz-box-shadow:0 0 10px 1px #666; + -webkit-box-shadow:0 0 10px 1px #666; + box-shadow:0 0 10px 1px #666; + -webkit-transform:rotate(-5deg); + -moz-transform:rotate(-5deg); + -o-transform:rotate(-5deg); + -ms-transform:rotate(-5deg); +} + + +.library-wrapper .library-show .poster.screen-overlay .screen img{ + width:138px; + height:auto; +} + + +.library-wrapper .library-show img{ + display: inline-block; + width:138px; + height:203px; +} + + +.library-wrapper .library-show.screen{ + position:relative; +} + + +.library-wrapper .library-show.screen .poster{ + height:95px; + overflow:hidden; +} + + +.library-wrapper .library-show.screen img{ + display:block; + width:170px; + height:auto; +} + + +.library-wrapper .library-show .on{ + font-size:11px; + padding:2px 5px; + line-height:13px; +} + + +.library-wrapper .library-show h4{ + width:140px; + overflow:hidden; + position:relative; + white-space:nowrap; + font-size:12px; + margin-top:3px; +} + + +.library-wrapper .library-show.screen h4,.library-wrapper .library-show.screen h5,.library-wrapper .library-show.screen h6{ + width:170px; +} + + +.library-wrapper .library-show h4 a{ + color:#000; +} + + +.library-wrapper .library-show h4 a:hover{ + color:#000; + text-decoration:none; +} + +.library-wrapper .library-show h5{ + width:140px; + overflow:hidden; + position:relative; + white-space:nowrap; + margin-top:1px; +} + + +.library-wrapper .library-show h5,.library-wrapper .library-show h5 a{ + font-weight:normal; + font-size:12px; + color:#333; +} + + +.library-wrapper .library-show h5 strong{ + color:#008FBB; +} + + +.library-wrapper .library-show .title{ + display:block; + font-weight:bold; + color:#000; +} + + +.library-wrapper .library-show .plays-truncate{ + width:140px; + overflow:hidden; + position:relative; + white-space:nowrap; +} + + +.library-wrapper .library-show .plays{ + display:block; + color:#666; + font-size:12px; + font-weight:normal; + width:140px; + overflow:hidden; + position:relative; + white-space:nowrap; +} + + +.library-wrapper .library-show .plays a{ + color:#666; +} + + +.library-wrapper .library-show .plays a strong{ + color:#008FBB; +} + + +.library-wrapper .library-show h6{ + color:#999; + font-size:11px; + font-style:italic; + padding-top:5px; + font-weight:normal; + width:140px; + overflow:hidden; + position:relative; + white-space:nowrap; +} + + +.library-wrapper .library-show h6 a{ + font-weight:bold; + color:#999; +} + + +.library-wrapper .library-show .watched-added{ + display:block; + color:#999; + font-size:10px; +} + + +.library-wrapper .library-show.actor .poster{ + overflow:hidden; + height:203px; +} + + +.library-wrapper .library-show.actor img{ + height:auto; +} + +.library-wrapper .library-show:hover .library-info-icons,.episodes-listing-episode:hover .library-info-icons,.shout-list-item .poster:hover .library-info-icons,.screen-wrapper:hover .library-info-icons,.poster-wrapper:hover .library-info-icons{ + opacity:1; +} + + +.library-wrapper .library-show:hover .quick-icons,.episodes-listing-episode:hover .quick-icons,.shout-list-item .poster:hover .quick-icons,.screen-wrapper:hover .quick-icons,.poster-wrapper:hover .quick-icons{ + opacity:1!important; +} + +.quick-icons{ + position:absolute; + z-index:1; + opacity:0; + transition:opacity .5s; + -moz-transition:opacity .5s; + -webkit-transition:opacity .5s; + -o-transition:opacity .5s; +} + + +.quick-icons.general{ + top:169px; + left:6px; + background-color:rgba(0,0,0,0.7); + width:128px; + height:30px; + -moz-border-radius:6px; + border-radius:6px; + text-align:center; +} + + +.episodes-listing-episode .quick-icons.general,.episode-row .screen-wrapper .quick-icons.general{ + top:88px; + left:45px; +} + + +.library-show.screen .quick-icons.general{ + top:60px; + left:21px; +} + + +.shout-list-item .screen .quick-icons.general{ + top:44px; +} + + +.quick-icons span{ + margin:5px 2px 0 2px; + cursor:pointer; + vertical-align:middle; + width:18px; + height:18px; + background-size:contain; + background-position:center center; + background-repeat:no-repeat; + display:inline-block; +} + + +.quick-icons.general span:first-child{ + margin-left:0; +} + + +.quick-icons span.seen{ + background-image:url(https://trakt.us/images/quick-icons/seen.png); + width:21px; +} + + +.quick-icons span.seen:hover,.quick-icons span.seen.current{ + background-image:url(https://trakt.us/images/quick-icons/seen-on.png); +} + + +.quick-icons span.watchlist{ + background-image:url(https://trakt.us/images/quick-icons/watchlist.png); + width:12px; +} + + +.quick-icons span.watchlist:hover,.quick-icons span.watchlist.current{ + background-image:url(https://trakt.us/images/quick-icons/watchlist-on.png); +} + + +.quick-icons span.list{ + background-image:url(https://trakt.us/images/quick-icons/list.png); +} + + +.quick-icons span.list:hover,.quick-icons span.list.current{ + background-image:url(https://trakt.us/images/quick-icons/list-on.png); +} + + +.quick-icons span.collection{ + background-image:url(https://trakt.us/images/quick-icons/collection.png); + width:12px; +} + + +.quick-icons span.collection:hover,.quick-icons span.collection.current{ + background-image:url(https://trakt.us/images/quick-icons/collection-on.png); +} + + +.quick-icons span.add-to-list{ + padding-left:0!important; + background-position:center center!important; +} + + +.quick-icons.rating-pod{ + top:206px; + left:0; + width:155px; + height:30px; + text-align:center; + padding:0; +} + + +.episodes-listing-episode .quick-icons.rating-pod,.episode-row .screen-wrapper .quick-icons.rating-pod{ + top:125px; + width:218px!important; +} + + +.library-show.screen .quick-icons.rating-pod{ + top:98px; + width:170px; +} + + +.shout-list-item .screen .quick-icons.rating-pod{ + top:80px; +} + + +.quick-icons.rating-pod span{ + opacity:0.5; +} + + +.quick-icons.rating-pod span.unhover{ + opacity:0.5!important; +} + + +.quick-icons.rating-pod span:hover,.quick-icons.rating-pod span.current,.quick-icons.rating-pod span.hover{ + opacity:1; +} + + +.quick-icons.rating-pod span.simple.rate-love{ + background-image:url(https://trakt.us/images/quick-icons/heart-love.png); +} + + +.quick-icons.rating-pod span.simple.rate-hate{ + background-image:url(https://trakt.us/images/quick-icons/heart-hate.png); +} + + +.quick-icons.rating-pod span.advanced{ + width:13px; + height:30px; + margin:0!important; + background-color:#333!important; + background-image:url(https://trakt.us/images/quick-icons/heart-love.png); + background-size:12px 12px; + float:left; +} + + +.episodes-listing-episode .quick-icons.rating-pod span.advanced,.episode-row .screen-wrapper .quick-icons.rating-pod span.advanced{ + width:21px; + background-size:18px 18px; +} + + +.library-show.screen .quick-icons.rating-pod span.advanced{ + width:16px; + background-size:14px 14px; +} + + +.quick-icons.rating-pod span.advanced:first-child{ + margin-left:4px!important; +} + + +.rating-pod{ + background-color:#333; + padding:5px 10px 5px 7px; + border-radius:0 0 6px 6px; + overflow:hidden; + margin:1px; + color:#ccc; + position:relative; +} + + +.rating-pod .percent{ + float:left; + font-size:18px; + font-weight:bold; + background-position:100% 50%; + background-repeat:no-repeat; + padding-right:20px; + color:#fff; +} + + +.rating-pod .percent-sign{ + font-weight:normal; + font-size:12px; + vertical-align:top; + padding-left:2px; + line-height:21px; +} + + +.rating-pod .votes{ + float:right; + line-height:21px; + font-size:11px; + font-style:italic; +} + + +.instructions-wrapper{ + color: rgb(255, 255, 255); + text-shadow: 0px -1px 1px rgb(17, 17, 17); + padding: 10px 10px 11px; + font-size: 16px; + border-radius: 4px 4px 0px 0px; + border-top: 1px solid rgb(119, 119, 119); + border-bottom: 1px solid rgb(51, 51, 51); + background-color: rgb(95, 95, 95); + position:relative; +} + +.main-title { + color: rgb(255, 255, 255); + text-shadow: 0px -1px 1px rgb(17, 17, 17); + padding: 10px 10px 11px; + font-size: 16px; + border-radius: 4px 4px 0px 0px; + border-top: 1px solid rgb(119, 119, 119); + border-bottom: 1px solid rgb(51, 51, 51); + background-color: rgb(95, 95, 95); + background-image: -moz-linear-gradient(center top , rgb(102, 102, 102), rgb(85, 85, 85)); +} + +.main-wrapper { + background: none repeat scroll 0% 0% rgb(208, 208, 208); + color: rgb(153, 153, 153); + padding: 9px; +} + + + +h2{ + font-weight:normal; + line-height:22px; + font-size:22px; + position:relative; +} + + +h2{ + font-weight:normal; + line-height:21px; + font-size:17px; + color:#000; +} + + +h2 span{ + font-weight:bold; +} + + +h2 a:hover{ + text-decoration:underline; +} + + +h2 a.show{ + font-weight:bold; +} + + +h2 a.see-more{ + float:right; + font-size:16px; + line-height:22px; + margin-left:20px; + color:#ddd; +} + + +h2 .help-text{ + float:right; + font-weight:normal; + color:#aaa; + font-style:italic; + font-size:14px; + line-height:22px; +} + + +h2 .hide-watched{ + font-size:13px; + padding-top:1px; + padding-bottom:1px; +} + + +h2 .hide-watched:hover{ + text-decoration:none; +} \ No newline at end of file diff --git a/www/templates_shared/styles/style.css b/www/templates_shared/styles/style.css new file mode 100644 index 000000000..b3a19e3d2 --- /dev/null +++ b/www/templates_shared/styles/style.css @@ -0,0 +1,423 @@ +/* Site-wide html styles */ +body { margin: 0 auto; padding: 0; background: #FFF url(../images/menu.gif) repeat-x left top; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12px; color: #515151; } +h1, h2, h3 { margin: 0; font-weight: normal; color: #485459; } +input, select, textarea { font-family: Calibri, Arial, Helvetica, sans-serif; } +textarea { height:100px; width:300px; } +h1 { font-size: 44px; padding-bottom:10px; } +h2 { padding-bottom:5px; font-size: 1.6em; } +h3 { padding:10px 0 5px 0; } +p, ul, ol { margin-top: 0; line-height: 240%; text-align: justify; } +ul, ol { } +blockquote { } +a { color: #108120; text-decoration: none; } +a:hover { text-decoration: underline; } +a img { border: none; } +img.left { float: left; margin: 7px 30px 0 0; } +img.right { float: right; margin: 7px 0 0 30px; } +hr { display: none; } +input[type=text], input[type=password], textarea, select { background: #fff; background: -webkit-gradient(linear, left top, left 25, from(#fff), color-stop(4%, #f0f0f0), to(#fff)); border: 1px solid #ccc; border-bottom-color: #999; border-right-color: #999; margin: 0; padding: 4px; color: #444; font-size: 100%; outline: none; } + + + + + + +/* +page structure +*/ +#header { width: 85%; margin: 0 auto; } +#page { width: 85%; margin: 0 auto; padding: 50px 0px 0px 0px;} + +#logo { width: 85%; margin: 0 auto; height: 65px; padding-left:5px; margin-top:4px; background:url("../images/banner.jpg") no-repeat bottom left; } +#logo h1, #logo p { display:none; margin: 0px; line-height: normal; text-transform: lowercase; font-weight: normal; color: #485459; } +#logo p { margin-top: 2px; font-size: 13px; color: #A8A8A8; } +#logo h1 { padding-top: 10px; font-size: 48px; } +#logo a { color: #A8A8A8; } +#logo .logolink { float:left; } +#logo img { margin-top:15px; } +#logo h1 a { color: #485459; } + +#statusbar { width: 85%; margin: 0 auto; text-align:right; padding:5px 10px 0 0;} +#statusbar a { color: #515151;} + +#content { float: right; width: 85%;} +#content h1 { font-size: 2.3em;} +#content p { margin-bottom:20px;} + +#sidebar { float: left; width: 160px;} +#sidebar ul {margin: 0; padding: 0; line-height: normal; list-style-type: none; text-align: left; } +#sidebar li { margin-bottom: 30px; padding: 0 0 0 0;} +#sidebar li ul { list-style-type: none; list-style-position:inside; margin: 0px 10px; padding: 0; margin-left: 1em;} +#sidebar li li { background-image: url('../images/bullet.jpg'); background-repeat: no-repeat; background-position: 0.7em 1.1em; margin: 0; padding-left: .5em; padding-top: .8em;padding-bottom:10px; border-bottom: 1px solid #E9E8DD;} +#sidebar li li a {padding: 0 0 0 20px; font-weight: normal; color: #808080;} +#sidebar li li a:hover {color: #108120;} +#sidebar li li:hover { cursor:pointer; background-color:#EEE; background-image: url('../images/bullet_hov.jpg');} + +#sidebar p { margin: 0; padding: 0px 14px;} +#sidebar h2 { height: 30px; margin: 0 0 5px 0px; padding: 6px 0 2px 14px; font-size: 18px; font-weight: normal; color: #485459;} +#sidebar p { line-height: 200%;} +#sidebar a { text-align: left; text-decoration: none; font-weight: bold;} + +.w3validator img {margin:10px 0 10px 0;} +.footer { width: 100%; height: 102px; margin: 0 auto; background: #E1E1E1; border-top: 5px solid #656565;} +.footer p { margin: 0; padding: 20px 0px 0px 0px; text-align: center; line-height: normal; font-size: 0.9em; } +.footer a {} + + + + + + +/* +browse by category top menu +*/ +#menu { height:33px; float: left; width: 100%; background-color:#e5e5e5; } +#menu { padding:0 4px 0 4px; margin-right:1px; border:1px #CCC solid; background-color:#e5e5e5; -moz-border-radius: 4px; -webkit-border-radius: 4px;} + +.menupic {padding-left:15px;} + +#menulink { float: left; } +#menulink ul { list-style-type: none; padding: 0; margin: 0; } +#menulink li { float: left; position: relative; z-index: 100; } +#menulink a, #menulink :visited {height:32px; display: block; font-size: 0.9em; width: 70px; padding: 1px 0px 0px 5px; color: #000; background-color: #e5e5e5; text-decoration: none; text-align: left; vertical-align: middle; } +#menulink :hover, #menulink a.selected {color:#fff; background-color: #777; } +#menulink ul ul { visibility: hidden; position: absolute; width: 60px; height: 0; } +#menulink ul li:hover ul, #menulink ul a:hover ul { visibility: visible; } +#menusearchlink { padding-top:5px; float:right; } +#menusearchlink input, #menusearchlink select { font-size: 0.9em; color:#555; } +#menucontainer { width:85%; height:10px; } + +select#headcat {width:120px; float:right; margin-left:5px; height:25px;} +select#headcat option { padding-left: 10px; } +select#headcat option.grouping { padding-left: 5px; font-weight: bold; } +#headsearch{float:right;height:15px;} + +.gobutton {display:inline;float:right;margin-left:5px;} +.gobutton input { background:url('../images/icons/go.png') no-repeat; cursor:pointer; border: none; width:30px; height:25px; } + +/* menu styling for when menu is displayed in top position */ +#logo ul { list-style-type: none; float:right; margin: 0 0 10px 0; padding:0; line-height: normal; text-align: right; } +#logo ul li h2 {display:none;} +#logo ul li ul li {float: left; margin-left: 1em; padding-right:5px; } +#logo ul li a {color:#333;} +#logo ul ul {list-style-type: square;} + + + + + + + + +/* +data tables, most lists. +*/ +#browsetable, #coverstable, #forumtable { margin-top: 10px; clear: both; } +table.data { border-collapse:collapse; } +table.data th { text-align:left; vertical-align:top; background-color:#DDD; border-color: #AAA; border-width: 1px; border-style: solid; padding:3px; font-style:bolder; text-transform:capitalize;} +table.data td { white-space:normal; vertical-align:top; padding:5px; border-color: #AAA; border-width: 1px; border-style: solid; } +table.data td.less { color: #888; font-size: 0.9em; white-space:nowrap; } +table.data td.icons { white-space:nowrap; padding-left:0px; padding-right:0px; width:60px; } +table.data td.check {cursor:pointer;} +table.highlight tr:hover td { background-color: #e8fbe6; } +table tr.alt { background-color: #F6F6F6; } +table tr.new { background-color: #f6f8ff; } +table.data em {font-weight:bolder; color:red;} +table td.item { padding:5px 5px 2px 5px; } +table td.static { background-color: #FFF; } +.left { text-align:left !important;} +.right { text-align:right !important;} +.mid { text-align:center !important;} +.nowrap {white-space:nowrap;} +#detailstable { width: 70%; } +#detailstable th { width: 70px; } + +table.innerdata { border-collapse:collapse;} +table.innerdata td { padding:2px; border-left-width:0; border-bottom-width:0; border-color: #EEE; } +table.innerdata th { padding:2px; border-style: none; background-color:#EEE;} + +table.input th, table.input td { text-align: left; vertical-align:top; } + +/* +form inputs and helpers +*/ +div.hint, div.hint a {font-size:0.9em; font-style:italic; color:#999;} +div.hint { margin-bottom:10px;} +input.long {width:400px; } +input.short { width:40px; } +input.tiny { width: 25px; } +input.date { width:70px; } +fieldset { margin-bottom:20px; border:1px solid #999;} +legend { padding: 0.4em 0.6em; border:1px solid #999; font-weight:bold; text-align:left; } + + + + + + + +/* +pager +*/ +div.pager {display:inline;} +div.pager a {font-weight:bold; background-color:#DDD; padding:0 3px 0px 4px; border:1px #CCC solid;} +div.pager .current {color:#fff; font-weight:bold; background-color:#777; padding:0 4px 0px 4px; border:1px #CCC solid;} + + + + + + + +/* +round buttoning +*/ +.rndbtn { padding:0 4px 0 4px; margin-right:1px; border:1px #CCC solid; background-color:#EEE; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } +table.highlight tr:hover .rndbtn, table tr.alt .rndbtn { background-color: #fff; } +table.highlight tr:hover .rndbtn:hover { background-color: #DDD; } +table.highlight tr:hover td.static { background-color: #FFF; } + + + + + + + +/* +site wide covers and images with dropshadows +*/ +img.shadow {padding: 5px 5px 5px 5px; background: #FFF; border:1px solid #EEE; -moz-box-shadow: 3px 6px 8px -4px #777; -webkit-box-shadow: 3px 6px 8px -4px #777; box-shadow: 3px 6px 8px -4px #777; border-collapse:separate; } + + + + + + + +/* +mainly one-off styles used on individual pages +*/ +#forumtable a.title { font-size: 1.4em; } + +pre#nfo { font-family: "Courier New", "DejaVu Sans Mono", monospace; font-size: 12px; line-height: 13px; } + +div.resextra { padding-top:7px; color: #555; font-size: 0.9em; height:16px; } +div.resextra a { color: #555; text-decoration:none; } +div.resextra div.admin { float:right; } +div.resextra div.btns {float:left; } + +div.movextra { padding-top:5px; color: #888; font-size: 0.9em; } +div.movextra td {border:0; padding:0 0 10px 0} +div.movextra tr.mlextra {display:none;} + +div.movcover { width:140px; } +div.movcover img { margin-bottom:5px;} +div.movcover .rndbtn {display:inline-block; margin-top:2px;} +.mediainfo, .seriesinfo, .preinfo, .prehashinfo {cursor:pointer;} + +a.external { background: url('../images/newwindow.png') center right no-repeat !important; padding-right:13px !important;} + +ol.tracklist li { line-height: 140%; } + +div.tvseriesheading img {float:right; margin:10px 0 10px 10px; max-width:300px;} +div.tvseriesheading p {text-align:left;} + +span.descfull {display:none;} +a.descmore { display: inline; margin: 0px; margin-left:5px;} + + +div.error { padding:20px; padding-left:50px; border:1px solid #BBB; background: #FED0D0 url(../images/icons/warning.png) no-repeat top; background-position: 5px 50%; font-size:1.2em; font-weight:bold; margin-bottom:10px;} +div.info { padding:20px; padding-left:50px; border:1px solid #BBB; background: #5bc0de url(../images/icons/information.png) no-repeat top; background-position: 5px 50%; font-size:1.2em; font-weight:bold; margin-bottom:10px;} +div.comments { padding-top:20px; } + +.invitesuccess {display:none; font-weight:bold; padding-left:10px; color:green;} +.invitefailed {display:none; font-weight:bold; padding-left:10px; color:red;} + +div.nosearchresults {margin-left:25px; padding-top:50px;} +div.nosearchresults ul { line-height: 150%;} + +span.warning { color: red; } + + +/*! Newznab tooltip style */ +.ui-tooltip-tmux .ui-tooltip-titlebar, +.ui-tooltip-tmux .ui-tooltip-content{ + border-color: #90D93F; + color: #3F6219; +} + + .ui-tooltip-tmux .ui-tooltip-content{ + background-color: #CAED9E; + } + + .ui-tooltip-tmux .ui-tooltip-titlebar{ + background-color: #B0DE78; + color:white; + font-size:1.2em; + } + + .ui-tooltip-tmuxb .ui-state-default .ui-tooltip-icon{ + background-position: -42px 0; + } + +table.ui-tooltip-tmux th {vertical-align:top;text-align:right;} +ul.ui-tooltip-tmux li {text-align:left;} + +.rarfilelist {cursor:pointer;} +/*.tooltiphead {background-color:#A9DB66; padding:5px;color:white; font-weight:bold; margin:-5px -10px 5px -10px;}*/ +.ui-tooltip ul {padding:0; margin:0;line-height: 160%;} +.ui-tooltip li {list-style-type:none;} + +.tabs { padding: 0; list-style: none; } +.tabs li { float: left; border: 1px solid #AAA; margin-bottom: -1px; margin-right: 5px; overflow: hidden; background: #F4F4F4; } +.tabs li a { padding: 0 10px 0 10px; } +.tabs li.active { background: #DDD; border-bottom: 1px solid #EEE; } + + +/* +movie, console and music modals with backdrop images. +*/ +#movieinfo { background-position: center center; background-repeat: no-repeat; position: absolute; z-index: 2;} +#movieinfo h1 { font-size: 32px; padding: 10px 10px 0px 20px; color: #fff; text-shadow: 0px 0px 4px #000; } +#movieinfo h2, #movieinfo h3 { padding: 10px 20px 0px 20px; color: #fff; text-shadow: 0px 0px 4px #000; } +#movieinfo a { color: #fff; } +#movieinfo img.cover { margin-right: 20px; -webkit-box-shadow: 0px 0px 4px #000; -moz-box-shadow: 0px 0px 4px #000; box-shadow: 0px 0px 4px #000; border-collapse:separate;} +#backdrop { position: absolute; width: 810px; height: 455px; left: -1px; top: 5px; background-color: #000; overflow: hidden;} +#backdrop img { opacity:0.5; width: 100%; height: 100%;} + +#musicinfo { color:#FFF; min-height:435px; background-color:#7F7F7F; background-image:url('../../covers/music/backdrop.jpg'); background-repeat: repeat-x;} +#musicinfo h1 { font-size: 32px; padding: 10px 10px 0px 20px; color: #fff; } +#musicinfo h2, #musicinfo h3, #musicinfo p { padding: 10px 20px 0px 20px; color: #fff;} +#musicinfo a { color: #fff; } +#musicinfo img.cover { float:right; margin:20px 20px 0 20px; padding: 5px 5px 5px 5px; background: #FFF; border:1px solid #EEE; -moz-box-shadow: 3px 6px 8px -4px #333; -webkit-box-shadow: 3px 6px 8px -4px #333; box-shadow: 3px 6px 8px -4px #333; border-collapse:separate; } +#musicinfo p {text-align: left; line-height: 180%;} + +#moviefull .pic { margin-left: 20px; float: right; } +#moviefull {padding-bottom:20px;} +#moviepreviews {text-align: center;} +#moviepreviews img {max-width:600px;} +#moviepreviews .previewtitle {margin-bottom: 20px;} + +/* +icons and multioperation buttons +*/ +input.nzb_check_all { margin-left:5px; } +#nzb_multi_operations_form { clear: both; } +div.nzb_multi_operations { color:#888; display:inline; float:right; text-align: right; clear: both; } +div.nzb_multi_operations input { color:#888; background-color:#fff; border:1px solid #ddd; } +div.nzb_multi_operations input:hover { color:#000; border:1px solid #000; cursor:pointer; } + +div.icon { width:16px; height:16px; background-repeat:no-repeat; cursor:pointer; position:relative; float:left; margin:2px; } +table.data td.icons div.icon { opacity:.20; } +div.icon_cart { background-image:url('../images/icons/cartup.png'); } +div.icon_cart_clicked { background-image:url('../images/icons/cartdown.png'); } +div.icon_nzb { background-image:url('../images/icons/nzbup.png'); } +div.icon_nzb_clicked { background-image:url('../images/icons/nzbdown.png'); } +div.icon_nzb a { text-decoration:none; padding-bottom:2px; padding-right:12px; } + +div.icon_sab { + background-image: url('../images/icons/queueup.png'); +} + +div.icon_sab_clicked { + background-image: url('../images/icons/queuedown.png'); +} + +div.icon_tvrage { background-image:url('../images/icons/tvrage.png'); } +div.icon_check { background-image:url('../images/icons/check.png'); } +div.icon_nzbvortex { background-image: url('../images/icons/vortex/bigsmile.png'); } +div.icon_nzbvortex_clicked { background-image: url('../images/icons/vortex/bigsmiledown.png'); } + + + + + + +/* + ColorBox Core Style + The following rules are the styles that are consistant between themes. + Avoid changing this area to maintain compatability with future versions of ColorBox. +*/ +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;} +#cboxOverlay{position:fixed; width:100%; height:100%;} +#cboxMiddleLeft, #cboxBottomLeft{clear:left;} +#cboxContent{position:relative; overflow:visible;} +#cboxLoadedContent{overflow:auto;} +#cboxLoadedContent iframe{display:block; width:100%; height:100%; border:0;} +#cboxTitle{margin:0;} +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;} +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;} + +#cboxOverlay{background:#fff;} + +#colorbox{} + #cboxTopLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) 0 0 no-repeat;} + #cboxTopCenter{height:25px; background:url(../images/colorbox/border1.png) 0 -50px repeat-x;} + #cboxTopRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) -25px 0 no-repeat;} + #cboxBottomLeft{width:25px; height:25px; background:url(../images/colorbox/border1.png) 0 -25px no-repeat;} + #cboxBottomCenter{height:25px; background:url(../images/colorbox/border1.png) 0 -75px repeat-x;} + #cboxBottomRight{width:25px; height:25px; background:url(../images/colorbox/border1.png) -25px -25px no-repeat;} + #cboxMiddleLeft{width:25px; background:url(../images/colorbox/border2.png) 0 0 repeat-y;} + #cboxMiddleRight{width:25px; background:url(../images/colorbox/border2.png) -25px 0 repeat-y;} + #cboxContent{background:#fff;} + #cboxLoadedContent{background:#fff; margin-top:32px; padding:1px; } + #cboxLoadingOverlay{background:#fff;} + #cboxTitle{position:absolute; font-size:125%; top:-2px; left:0; color:#000; } + #cboxCurrent{position:absolute; top:-1px; right:205px; text-indent:-9999px;} + #cboxSlideshow, #cboxPrevious, #cboxNext, #cboxClose{text-indent:-9999px; width:20px; height:20px; position:absolute; top:-1px; background:url(../images/colorbox/controls.png) 0 0 no-repeat;} + #cboxPrevious{background-position:0px 0px; right:44px;} + #cboxPrevious.hover{background-position:0px -25px;} + #cboxNext{background-position:-25px 0px; right:22px;} + #cboxNext.hover{background-position:-25px -25px;} + #cboxClose{background-position:-50px 0px; right:0;} + #cboxClose.hover{background-position:-50px -25px;} + .cboxSlideshow_on #cboxPrevious, .cboxSlideshow_off #cboxPrevious{right:66px;} + .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;} + .cboxSlideshow_on #cboxSlideshow.hover{background-position:-100px -25px;} + .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;} + .cboxSlideshow_off #cboxSlideshow.hover{background-position:-75px -25px;} + +/* + The following fixes png-transparency for IE6. +*/ +.cboxIE #cboxTopLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderTopLeft.png, sizingMethod='scale');} +.cboxIE #cboxTopCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderTopCenter.png, sizingMethod='scale');} +.cboxIE #cboxTopRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderTopRight.png, sizingMethod='scale');} +.cboxIE #cboxBottomLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderBottomLeft.png, sizingMethod='scale');} +.cboxIE #cboxBottomCenter{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderBottomCenter.png, sizingMethod='scale');} +.cboxIE #cboxBottomRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderBottomRight.png, sizingMethod='scale');} +.cboxIE #cboxMiddleLeft{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderMiddleLeft.png, sizingMethod='scale');} +.cboxIE #cboxMiddleRight{background:transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=images/colorbox/internet_explorer/borderMiddleRight.png, sizingMethod='scale');} + +/* + Use colorbox example 2 css for movieinfo popups +*/ +.cboxMovie{} + .cboxMovie #cboxContent{margin-top:32px; background: transparent;} + .cboxMovie #cboxTopLeft{display:none;} + .cboxMovie #cboxTopCenter{display:none;} + .cboxMovie #cboxTopRight{display:none;} + .cboxMovie #cboxBottomLeft{display:none;} + .cboxMovie #cboxBottomCenter{display:none;} + .cboxMovie #cboxBottomRight{display:none;} + .cboxMovie #cboxMiddleLeft{display:none;} + .cboxMovie #cboxMiddleRight{display:none;} + .cboxMovie #cboxLoadedContent{margin-top: 5px; background:#888; padding:1px;} + .cboxMovie #cboxLoadingGraphic{background:url(../images/loading.gif) center center no-repeat;} + .cboxMovie #cboxLoadingOverlay{background:#000;} + .cboxMovie #cboxTitle{position:absolute; top:-22px; left:0; color:#000;} + .cboxMovie #cboxCurrent{position:absolute; top:-22px; right:205px; text-indent:-9999px;} + .cboxMovie #cboxSlideshow, .cboxMovie #cboxPrevious, .cboxMovie #cboxNext, .cboxMovie #cboxClose{text-indent:-9999px; width:20px; height:20px; position:absolute; top:-20px; background:url(../images/colorbox/controls2.png) 0 0 no-repeat;} + .cboxMovie #cboxPrevious{background-position:0px 0px; right:44px;} + .cboxMovie #cboxPrevious.hover{background-position:0px -25px;} + .cboxMovie #cboxNext{background-position:-25px 0px; right:22px;} + .cboxMovie #cboxNext.hover{background-position:-25px -25px;} + .cboxMovie #cboxClose{background-position:-50px 0px; right:0;} + .cboxMovie #cboxClose.hover{background-position:-50px -25px;} + .cboxMovie .cboxSlideshow_on #cboxPrevious, .cboxMovie .cboxSlideshow_off #cboxPrevious{right:66px;} + .cboxMovie .cboxSlideshow_on #cboxSlideshow{background-position:-75px -25px; right:44px;} + .cboxMovie .cboxSlideshow_on #cboxSlideshow.hover{background-position:-100px -25px;} + .cboxMovie .cboxSlideshow_off #cboxSlideshow{background-position:-100px 0px; right:44px;} + .cboxMovie .cboxSlideshow_off #cboxSlideshow.hover{background-position:-75px -25px;} + + diff --git a/www/templates/charisma/views/admin/adminmenu.tpl b/www/templates_shared/views/admin/adminmenu.tpl similarity index 100% rename from www/templates/charisma/views/admin/adminmenu.tpl rename to www/templates_shared/views/admin/adminmenu.tpl diff --git a/www/templates/charisma/views/admin/ajax_release-edit.tpl b/www/templates_shared/views/admin/ajax_release-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/ajax_release-edit.tpl rename to www/templates_shared/views/admin/ajax_release-edit.tpl diff --git a/www/templates/charisma/views/admin/anidb-edit.tpl b/www/templates_shared/views/admin/anidb-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/anidb-edit.tpl rename to www/templates_shared/views/admin/anidb-edit.tpl diff --git a/www/templates/charisma/views/admin/anidb-list.tpl b/www/templates_shared/views/admin/anidb-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/anidb-list.tpl rename to www/templates_shared/views/admin/anidb-list.tpl diff --git a/www/templates/charisma/views/admin/anidb-remove.tpl b/www/templates_shared/views/admin/anidb-remove.tpl similarity index 100% rename from www/templates/charisma/views/admin/anidb-remove.tpl rename to www/templates_shared/views/admin/anidb-remove.tpl diff --git a/www/templates/charisma/views/admin/baseadminpage.tpl b/www/templates_shared/views/admin/baseadminpage.tpl similarity index 100% rename from www/templates/charisma/views/admin/baseadminpage.tpl rename to www/templates_shared/views/admin/baseadminpage.tpl diff --git a/www/templates/charisma/views/admin/binaryblacklist-edit.tpl b/www/templates_shared/views/admin/binaryblacklist-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/binaryblacklist-edit.tpl rename to www/templates_shared/views/admin/binaryblacklist-edit.tpl diff --git a/www/templates/charisma/views/admin/binaryblacklist-list.tpl b/www/templates_shared/views/admin/binaryblacklist-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/binaryblacklist-list.tpl rename to www/templates_shared/views/admin/binaryblacklist-list.tpl diff --git a/www/templates/charisma/views/admin/book-edit.tpl b/www/templates_shared/views/admin/book-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/book-edit.tpl rename to www/templates_shared/views/admin/book-edit.tpl diff --git a/www/templates/charisma/views/admin/book-list.tpl b/www/templates_shared/views/admin/book-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/book-list.tpl rename to www/templates_shared/views/admin/book-list.tpl diff --git a/www/templates/charisma/views/admin/category-edit.tpl b/www/templates_shared/views/admin/category-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/category-edit.tpl rename to www/templates_shared/views/admin/category-edit.tpl diff --git a/www/templates/charisma/views/admin/category-list.tpl b/www/templates_shared/views/admin/category-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/category-list.tpl rename to www/templates_shared/views/admin/category-list.tpl diff --git a/www/templates/charisma/views/admin/category_regexes-edit.tpl b/www/templates_shared/views/admin/category_regexes-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/category_regexes-edit.tpl rename to www/templates_shared/views/admin/category_regexes-edit.tpl diff --git a/www/templates/charisma/views/admin/category_regexes-list.tpl b/www/templates_shared/views/admin/category_regexes-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/category_regexes-list.tpl rename to www/templates_shared/views/admin/category_regexes-list.tpl diff --git a/www/templates/charisma/views/admin/collection_regexes-edit.tpl b/www/templates_shared/views/admin/collection_regexes-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/collection_regexes-edit.tpl rename to www/templates_shared/views/admin/collection_regexes-edit.tpl diff --git a/www/templates/charisma/views/admin/collection_regexes-list.tpl b/www/templates_shared/views/admin/collection_regexes-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/collection_regexes-list.tpl rename to www/templates_shared/views/admin/collection_regexes-list.tpl diff --git a/www/templates/charisma/views/admin/collection_regexes-test.tpl b/www/templates_shared/views/admin/collection_regexes-test.tpl similarity index 100% rename from www/templates/charisma/views/admin/collection_regexes-test.tpl rename to www/templates_shared/views/admin/collection_regexes-test.tpl diff --git a/www/templates/charisma/views/admin/comments-list.tpl b/www/templates_shared/views/admin/comments-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/comments-list.tpl rename to www/templates_shared/views/admin/comments-list.tpl diff --git a/www/templates/charisma/views/admin/console-edit.tpl b/www/templates_shared/views/admin/console-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/console-edit.tpl rename to www/templates_shared/views/admin/console-edit.tpl diff --git a/www/templates/charisma/views/admin/console-list.tpl b/www/templates_shared/views/admin/console-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/console-list.tpl rename to www/templates_shared/views/admin/console-list.tpl diff --git a/www/templates/charisma/views/admin/content-add.tpl b/www/templates_shared/views/admin/content-add.tpl similarity index 100% rename from www/templates/charisma/views/admin/content-add.tpl rename to www/templates_shared/views/admin/content-add.tpl diff --git a/www/templates/charisma/views/admin/content-list.tpl b/www/templates_shared/views/admin/content-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/content-list.tpl rename to www/templates_shared/views/admin/content-list.tpl diff --git a/www/templates/charisma/views/admin/db-optimise.tpl b/www/templates_shared/views/admin/db-optimise.tpl similarity index 100% rename from www/templates/charisma/views/admin/db-optimise.tpl rename to www/templates_shared/views/admin/db-optimise.tpl diff --git a/www/templates/charisma/views/admin/game-edit.tpl b/www/templates_shared/views/admin/game-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/game-edit.tpl rename to www/templates_shared/views/admin/game-edit.tpl diff --git a/www/templates/charisma/views/admin/game-list.tpl b/www/templates_shared/views/admin/game-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/game-list.tpl rename to www/templates_shared/views/admin/game-list.tpl diff --git a/www/templates/charisma/views/admin/group-bulk.tpl b/www/templates_shared/views/admin/group-bulk.tpl similarity index 100% rename from www/templates/charisma/views/admin/group-bulk.tpl rename to www/templates_shared/views/admin/group-bulk.tpl diff --git a/www/templates/charisma/views/admin/group-edit.tpl b/www/templates_shared/views/admin/group-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/group-edit.tpl rename to www/templates_shared/views/admin/group-edit.tpl diff --git a/www/templates/charisma/views/admin/group-list.tpl b/www/templates_shared/views/admin/group-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/group-list.tpl rename to www/templates_shared/views/admin/group-list.tpl diff --git a/www/templates/charisma/views/admin/index.tpl b/www/templates_shared/views/admin/index.tpl similarity index 100% rename from www/templates/charisma/views/admin/index.tpl rename to www/templates_shared/views/admin/index.tpl diff --git a/www/templates/charisma/views/admin/menu-edit.tpl b/www/templates_shared/views/admin/menu-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/menu-edit.tpl rename to www/templates_shared/views/admin/menu-edit.tpl diff --git a/www/templates/charisma/views/admin/menu-list.tpl b/www/templates_shared/views/admin/menu-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/menu-list.tpl rename to www/templates_shared/views/admin/menu-list.tpl diff --git a/www/templates/charisma/views/admin/movie-add.tpl b/www/templates_shared/views/admin/movie-add.tpl similarity index 100% rename from www/templates/charisma/views/admin/movie-add.tpl rename to www/templates_shared/views/admin/movie-add.tpl diff --git a/www/templates/charisma/views/admin/movie-edit.tpl b/www/templates_shared/views/admin/movie-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/movie-edit.tpl rename to www/templates_shared/views/admin/movie-edit.tpl diff --git a/www/templates/charisma/views/admin/movie-list.tpl b/www/templates_shared/views/admin/movie-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/movie-list.tpl rename to www/templates_shared/views/admin/movie-list.tpl diff --git a/www/templates/charisma/views/admin/music-edit.tpl b/www/templates_shared/views/admin/music-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/music-edit.tpl rename to www/templates_shared/views/admin/music-edit.tpl diff --git a/www/templates/charisma/views/admin/music-list.tpl b/www/templates_shared/views/admin/music-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/music-list.tpl rename to www/templates_shared/views/admin/music-list.tpl diff --git a/www/templates/charisma/views/admin/nzb-export.tpl b/www/templates_shared/views/admin/nzb-export.tpl similarity index 100% rename from www/templates/charisma/views/admin/nzb-export.tpl rename to www/templates_shared/views/admin/nzb-export.tpl diff --git a/www/templates/charisma/views/admin/nzb-import.tpl b/www/templates_shared/views/admin/nzb-import.tpl similarity index 100% rename from www/templates/charisma/views/admin/nzb-import.tpl rename to www/templates_shared/views/admin/nzb-import.tpl diff --git a/www/templates/charisma/views/admin/preview-list.tpl b/www/templates_shared/views/admin/preview-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/preview-list.tpl rename to www/templates_shared/views/admin/preview-list.tpl diff --git a/www/templates/charisma/views/admin/rage-edit.tpl b/www/templates_shared/views/admin/rage-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/rage-edit.tpl rename to www/templates_shared/views/admin/rage-edit.tpl diff --git a/www/templates/charisma/views/admin/rage-list.tpl b/www/templates_shared/views/admin/rage-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/rage-list.tpl rename to www/templates_shared/views/admin/rage-list.tpl diff --git a/www/templates/charisma/views/admin/rage-remove.tpl b/www/templates_shared/views/admin/rage-remove.tpl similarity index 100% rename from www/templates/charisma/views/admin/rage-remove.tpl rename to www/templates_shared/views/admin/rage-remove.tpl diff --git a/www/templates/charisma/views/admin/regex-edit.tpl b/www/templates_shared/views/admin/regex-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/regex-edit.tpl rename to www/templates_shared/views/admin/regex-edit.tpl diff --git a/www/templates/charisma/views/admin/regex-list.tpl b/www/templates_shared/views/admin/regex-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/regex-list.tpl rename to www/templates_shared/views/admin/regex-list.tpl diff --git a/www/templates/charisma/views/admin/regex-submit.tpl b/www/templates_shared/views/admin/regex-submit.tpl similarity index 100% rename from www/templates/charisma/views/admin/regex-submit.tpl rename to www/templates_shared/views/admin/regex-submit.tpl diff --git a/www/templates/charisma/views/admin/regex-test.tpl b/www/templates_shared/views/admin/regex-test.tpl similarity index 100% rename from www/templates/charisma/views/admin/regex-test.tpl rename to www/templates_shared/views/admin/regex-test.tpl diff --git a/www/templates/charisma/views/admin/release-edit.tpl b/www/templates_shared/views/admin/release-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/release-edit.tpl rename to www/templates_shared/views/admin/release-edit.tpl diff --git a/www/templates/charisma/views/admin/release-files.tpl b/www/templates_shared/views/admin/release-files.tpl similarity index 100% rename from www/templates/charisma/views/admin/release-files.tpl rename to www/templates_shared/views/admin/release-files.tpl diff --git a/www/templates/charisma/views/admin/release-list.tpl b/www/templates_shared/views/admin/release-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/release-list.tpl rename to www/templates_shared/views/admin/release-list.tpl diff --git a/www/templates/charisma/views/admin/release_naming_regexes-edit.tpl b/www/templates_shared/views/admin/release_naming_regexes-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/release_naming_regexes-edit.tpl rename to www/templates_shared/views/admin/release_naming_regexes-edit.tpl diff --git a/www/templates/charisma/views/admin/release_naming_regexes-list.tpl b/www/templates_shared/views/admin/release_naming_regexes-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/release_naming_regexes-list.tpl rename to www/templates_shared/views/admin/release_naming_regexes-list.tpl diff --git a/www/templates/charisma/views/admin/release_naming_regexes-test.tpl b/www/templates_shared/views/admin/release_naming_regexes-test.tpl similarity index 100% rename from www/templates/charisma/views/admin/release_naming_regexes-test.tpl rename to www/templates_shared/views/admin/release_naming_regexes-test.tpl diff --git a/www/templates/charisma/views/admin/role-edit.tpl b/www/templates_shared/views/admin/role-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/role-edit.tpl rename to www/templates_shared/views/admin/role-edit.tpl diff --git a/www/templates/charisma/views/admin/role-list.tpl b/www/templates_shared/views/admin/role-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/role-list.tpl rename to www/templates_shared/views/admin/role-list.tpl diff --git a/www/templates/charisma/views/admin/sharing.tpl b/www/templates_shared/views/admin/sharing.tpl similarity index 100% rename from www/templates/charisma/views/admin/sharing.tpl rename to www/templates_shared/views/admin/sharing.tpl diff --git a/www/templates/charisma/views/admin/site-debug.tpl b/www/templates_shared/views/admin/site-debug.tpl similarity index 100% rename from www/templates/charisma/views/admin/site-debug.tpl rename to www/templates_shared/views/admin/site-debug.tpl diff --git a/www/templates/charisma/views/admin/site-edit.tpl b/www/templates_shared/views/admin/site-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/site-edit.tpl rename to www/templates_shared/views/admin/site-edit.tpl diff --git a/www/templates/charisma/views/admin/site-stats.tpl b/www/templates_shared/views/admin/site-stats.tpl similarity index 100% rename from www/templates/charisma/views/admin/site-stats.tpl rename to www/templates_shared/views/admin/site-stats.tpl diff --git a/www/templates/charisma/views/admin/spotnab-edit.tpl b/www/templates_shared/views/admin/spotnab-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/spotnab-edit.tpl rename to www/templates_shared/views/admin/spotnab-edit.tpl diff --git a/www/templates/charisma/views/admin/spotnab-list.tpl b/www/templates_shared/views/admin/spotnab-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/spotnab-list.tpl rename to www/templates_shared/views/admin/spotnab-list.tpl diff --git a/www/templates/charisma/views/admin/thetvdb-edit.tpl b/www/templates_shared/views/admin/thetvdb-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/thetvdb-edit.tpl rename to www/templates_shared/views/admin/thetvdb-edit.tpl diff --git a/www/templates/charisma/views/admin/thetvdb-list.tpl b/www/templates_shared/views/admin/thetvdb-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/thetvdb-list.tpl rename to www/templates_shared/views/admin/thetvdb-list.tpl diff --git a/www/templates/charisma/views/admin/thetvdb-remove.tpl b/www/templates_shared/views/admin/thetvdb-remove.tpl similarity index 100% rename from www/templates/charisma/views/admin/thetvdb-remove.tpl rename to www/templates_shared/views/admin/thetvdb-remove.tpl diff --git a/www/templates/charisma/views/admin/tmux-edit.tpl b/www/templates_shared/views/admin/tmux-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/tmux-edit.tpl rename to www/templates_shared/views/admin/tmux-edit.tpl diff --git a/www/templates/charisma/views/admin/user-edit.tpl b/www/templates_shared/views/admin/user-edit.tpl similarity index 100% rename from www/templates/charisma/views/admin/user-edit.tpl rename to www/templates_shared/views/admin/user-edit.tpl diff --git a/www/templates/charisma/views/admin/user-list.tpl b/www/templates_shared/views/admin/user-list.tpl similarity index 100% rename from www/templates/charisma/views/admin/user-list.tpl rename to www/templates_shared/views/admin/user-list.tpl diff --git a/www/templates/charisma/views/admin/view-logs.tpl b/www/templates_shared/views/admin/view-logs.tpl similarity index 100% rename from www/templates/charisma/views/admin/view-logs.tpl rename to www/templates_shared/views/admin/view-logs.tpl