From 4738428c2c205f42200386ae09b44b9ec07b9144 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sat, 27 Jul 2013 14:33:25 -0700 Subject: Move subsonic-android to root --- subsonic-site/src/main/webapp/WEB-INF/web.xml | 13 - subsonic-site/src/main/webapp/ad.jsp | 6 - subsonic-site/src/main/webapp/adwords-android.jsp | 45 - subsonic-site/src/main/webapp/android-donation.jsp | 88 -- .../src/main/webapp/api-addChatMessage.jsp | 28 - .../src/main/webapp/api-changePassword.jsp | 35 - .../src/main/webapp/api-createPlaylist.jsp | 39 - subsonic-site/src/main/webapp/api-createShare.jsp | 41 - subsonic-site/src/main/webapp/api-createUser.jsp | 112 --- .../src/main/webapp/api-deletePlaylist.jsp | 27 - subsonic-site/src/main/webapp/api-deleteShare.jsp | 25 - subsonic-site/src/main/webapp/api-deleteUser.jsp | 28 - subsonic-site/src/main/webapp/api-download.jsp | 28 - subsonic-site/src/main/webapp/api-getAlbum.jsp | 29 - subsonic-site/src/main/webapp/api-getAlbumList.jsp | 44 - .../src/main/webapp/api-getAlbumList2.jsp | 42 - subsonic-site/src/main/webapp/api-getArtist.jsp | 29 - subsonic-site/src/main/webapp/api-getArtists.jsp | 15 - subsonic-site/src/main/webapp/api-getAvatar.jsp | 27 - .../src/main/webapp/api-getChatMessages.jsp | 28 - subsonic-site/src/main/webapp/api-getCoverArt.jsp | 34 - subsonic-site/src/main/webapp/api-getIndexes.jsp | 35 - subsonic-site/src/main/webapp/api-getLicense.jsp | 17 - subsonic-site/src/main/webapp/api-getLyrics.jsp | 35 - .../src/main/webapp/api-getMusicDirectory.jsp | 32 - .../src/main/webapp/api-getMusicFolders.jsp | 15 - .../src/main/webapp/api-getNowPlaying.jsp | 15 - subsonic-site/src/main/webapp/api-getPlaylist.jsp | 28 - subsonic-site/src/main/webapp/api-getPlaylists.jsp | 29 - subsonic-site/src/main/webapp/api-getPodcasts.jsp | 28 - .../src/main/webapp/api-getRandomSongs.jsp | 52 - subsonic-site/src/main/webapp/api-getShares.jsp | 14 - subsonic-site/src/main/webapp/api-getSong.jsp | 29 - subsonic-site/src/main/webapp/api-getStarred.jsp | 14 - subsonic-site/src/main/webapp/api-getStarred2.jsp | 14 - subsonic-site/src/main/webapp/api-getUser.jsp | 29 - subsonic-site/src/main/webapp/api-getVideos.jsp | 15 - .../src/main/webapp/api-jukeboxControl.jsp | 60 -- subsonic-site/src/main/webapp/api-ping.jsp | 14 - subsonic-site/src/main/webapp/api-scrobble.jsp | 34 - subsonic-site/src/main/webapp/api-search.jsp | 65 -- subsonic-site/src/main/webapp/api-search2.jsp | 65 -- subsonic-site/src/main/webapp/api-search3.jsp | 65 -- subsonic-site/src/main/webapp/api-setRating.jsp | 33 - subsonic-site/src/main/webapp/api-star.jsp | 41 - subsonic-site/src/main/webapp/api-stream.jsp | 59 -- subsonic-site/src/main/webapp/api-unstar.jsp | 41 - .../src/main/webapp/api-updatePlaylist.jsp | 64 -- subsonic-site/src/main/webapp/api-updateShare.jsp | 37 - subsonic-site/src/main/webapp/api.jsp | 425 -------- subsonic-site/src/main/webapp/apps.jsp | 650 ------------- subsonic-site/src/main/webapp/banner.jsp | 103 -- subsonic-site/src/main/webapp/changelog.jsp | 1011 -------------------- subsonic-site/src/main/webapp/demo.jsp | 55 -- subsonic-site/src/main/webapp/documentation.jsp | 66 -- subsonic-site/src/main/webapp/donate.jsp | 26 - .../src/main/webapp/download-subsonic.jsp | 19 - subsonic-site/src/main/webapp/download.jsp | 165 ---- subsonic-site/src/main/webapp/download2.jsp | 45 - subsonic-site/src/main/webapp/faq.jsp | 57 -- subsonic-site/src/main/webapp/favicon.ico | Bin 1150 -> 0 bytes subsonic-site/src/main/webapp/features.jsp | 226 ----- subsonic-site/src/main/webapp/footer.jsp | 11 - subsonic-site/src/main/webapp/forum.jsp | 3 - subsonic-site/src/main/webapp/getting-started.jsp | 175 ---- subsonic-site/src/main/webapp/google-translate.jsp | 9 - subsonic-site/src/main/webapp/header.jsp | 18 - subsonic-site/src/main/webapp/hosting.jsp | 91 -- subsonic-site/src/main/webapp/inc/css/banner.css | 104 -- subsonic-site/src/main/webapp/inc/css/style.css | 345 ------- subsonic-site/src/main/webapp/inc/img/air.png | Bin 1589 -> 0 bytes subsonic-site/src/main/webapp/inc/img/android.png | Bin 4032 -> 0 bytes subsonic-site/src/main/webapp/inc/img/appstore.png | Bin 2811 -> 0 bytes .../main/webapp/inc/img/available_on_appstore.png | Bin 10081 -> 0 bytes .../main/webapp/inc/img/banner/android-video.png | Bin 40397 -> 0 bytes .../src/main/webapp/inc/img/banner/apps.png | Bin 225880 -> 0 bytes .../src/main/webapp/inc/img/banner/apps.xcf | Bin 813795 -> 0 bytes .../src/main/webapp/inc/img/banner/banner-01.jpg | Bin 65070 -> 0 bytes .../src/main/webapp/inc/img/banner/banner-bg.gif | Bin 4094 -> 0 bytes .../src/main/webapp/inc/img/banner/car.png | Bin 258554 -> 0 bytes .../src/main/webapp/inc/img/banner/iphone.png | Bin 25818 -> 0 bytes .../src/main/webapp/inc/img/banner/isub1.png | Bin 39807 -> 0 bytes .../src/main/webapp/inc/img/banner/next-hover.png | Bin 1569 -> 0 bytes .../src/main/webapp/inc/img/banner/next.png | Bin 1492 -> 0 bytes .../src/main/webapp/inc/img/banner/prev-hover.png | Bin 1583 -> 0 bytes .../src/main/webapp/inc/img/banner/prev.png | Bin 1528 -> 0 bytes .../src/main/webapp/inc/img/banner/screenshot.png | Bin 109736 -> 0 bytes .../src/main/webapp/inc/img/banner/video.png | Bin 288813 -> 0 bytes .../src/main/webapp/inc/img/banner/wp7.png | Bin 66308 -> 0 bytes .../src/main/webapp/inc/img/blackberry.png | Bin 3889 -> 0 bytes subsonic-site/src/main/webapp/inc/img/body-bg.gif | Bin 370 -> 0 bytes .../src/main/webapp/inc/img/button-download.png | Bin 2846 -> 0 bytes .../main/webapp/inc/img/change-password-small.png | Bin 6437 -> 0 bytes .../src/main/webapp/inc/img/change-password.png | Bin 28840 -> 0 bytes subsonic-site/src/main/webapp/inc/img/chumby.png | Bin 3631 -> 0 bytes .../src/main/webapp/inc/img/content-bg.gif | Bin 509 -> 0 bytes subsonic-site/src/main/webapp/inc/img/donate.png | Bin 1036 -> 0 bytes .../src/main/webapp/inc/img/download-fedora.png | Bin 1007 -> 0 bytes .../src/main/webapp/inc/img/download-linux.png | Bin 866 -> 0 bytes .../src/main/webapp/inc/img/download-mac.png | Bin 552 -> 0 bytes .../src/main/webapp/inc/img/download-ubuntu.png | Bin 719 -> 0 bytes .../src/main/webapp/inc/img/download-windows.png | Bin 1017 -> 0 bytes .../src/main/webapp/inc/img/download_small.gif | Bin 313 -> 0 bytes .../src/main/webapp/inc/img/fancyzoom/closebox.png | Bin 1910 -> 0 bytes .../src/main/webapp/inc/img/fancyzoom/spacer.gif | Bin 43 -> 0 bytes .../webapp/inc/img/fancyzoom/zoom-caption-fill.png | Bin 134 -> 0 bytes .../webapp/inc/img/fancyzoom/zoom-caption-l.png | Bin 310 -> 0 bytes .../webapp/inc/img/fancyzoom/zoom-caption-r.png | Bin 290 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow1.png | Bin 310 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow2.png | Bin 164 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow3.png | Bin 368 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow4.png | Bin 178 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow5.png | Bin 180 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow6.png | Bin 428 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow7.png | Bin 186 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-shadow8.png | Bin 426 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-1.png | Bin 1882 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-10.png | Bin 1892 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-11.png | Bin 1901 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-12.png | Bin 1902 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-2.png | Bin 1893 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-3.png | Bin 1922 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-4.png | Bin 1890 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-5.png | Bin 1938 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-6.png | Bin 1927 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-7.png | Bin 1898 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-8.png | Bin 1910 -> 0 bytes .../main/webapp/inc/img/fancyzoom/zoom-spin-9.png | Bin 1901 -> 0 bytes .../src/main/webapp/inc/img/features/amy-small.png | Bin 22455 -> 0 bytes .../src/main/webapp/inc/img/features/amy.png | Bin 136659 -> 0 bytes .../main/webapp/inc/img/features/avatar-small.png | Bin 16135 -> 0 bytes .../src/main/webapp/inc/img/features/avatar.png | Bin 38811 -> 0 bytes .../src/main/webapp/inc/img/features/bbc.png | Bin 897 -> 0 bytes .../src/main/webapp/inc/img/features/extras.png | Bin 5493 -> 0 bytes .../src/main/webapp/inc/img/features/extras.xcf | Bin 21405 -> 0 bytes .../src/main/webapp/inc/img/features/flac.png | Bin 6082 -> 0 bytes .../src/main/webapp/inc/img/features/itunes.png | Bin 9047 -> 0 bytes .../src/main/webapp/inc/img/features/lame.png | Bin 6634 -> 0 bytes .../src/main/webapp/inc/img/features/lame.png.orig | Bin 6634 -> 0 bytes .../src/main/webapp/inc/img/features/last-fm.png | Bin 2158 -> 0 bytes .../main/webapp/inc/img/features/logon-small.png | Bin 7002 -> 0 bytes .../src/main/webapp/inc/img/features/logon.png | Bin 15407 -> 0 bytes .../main/webapp/inc/img/features/media-support.png | Bin 40814 -> 0 bytes .../main/webapp/inc/img/features/media-support.xcf | Bin 64150 -> 0 bytes .../src/main/webapp/inc/img/features/mp3.png | Bin 18814 -> 0 bytes .../src/main/webapp/inc/img/features/mp3.png.orig | Bin 18814 -> 0 bytes .../src/main/webapp/inc/img/features/nrk.png | Bin 2040 -> 0 bytes .../inc/img/features/personal-settings-small.png | Bin 13076 -> 0 bytes .../webapp/inc/img/features/personal-settings.png | Bin 7461 -> 0 bytes .../src/main/webapp/inc/img/features/podcast.png | Bin 3250 -> 0 bytes .../src/main/webapp/inc/img/features/shoutcast.png | Bin 8265 -> 0 bytes .../webapp/inc/img/features/shoutcast.png.orig | Bin 8265 -> 0 bytes .../src/main/webapp/inc/img/features/wap-small.png | Bin 23306 -> 0 bytes .../src/main/webapp/inc/img/features/wap.png | Bin 83573 -> 0 bytes .../src/main/webapp/inc/img/features/wikipedia.png | Bin 5617 -> 0 bytes .../webapp/inc/img/features/wikipedia.png.orig | Bin 16462 -> 0 bytes .../src/main/webapp/inc/img/features/winamp.png | Bin 40578 -> 0 bytes .../main/webapp/inc/img/features/winamp.png.orig | Bin 40578 -> 0 bytes .../src/main/webapp/inc/img/features/wmp.png | Bin 42662 -> 0 bytes .../src/main/webapp/inc/img/features/wmp.png.orig | Bin 42662 -> 0 bytes subsonic-site/src/main/webapp/inc/img/footer.gif | Bin 5338 -> 0 bytes .../main/webapp/inc/img/gettingstarted/license.png | Bin 44025 -> 0 bytes .../inc/img/gettingstarted/license_thumb.png | Bin 88683 -> 0 bytes .../webapp/inc/img/gettingstarted/musicfolders.png | Bin 38957 -> 0 bytes .../inc/img/gettingstarted/musicfolders_thumb.png | Bin 106793 -> 0 bytes subsonic-site/src/main/webapp/inc/img/gigapros.png | Bin 1840 -> 0 bytes subsonic-site/src/main/webapp/inc/img/gpl.png | Bin 2986 -> 0 bytes subsonic-site/src/main/webapp/inc/img/header.gif | Bin 2251 -> 0 bytes .../src/main/webapp/inc/img/home-rollover.gif | Bin 1791 -> 0 bytes .../src/main/webapp/inc/img/itemcontentborder.gif | Bin 65 -> 0 bytes .../src/main/webapp/inc/img/mac-appstore.jpg | Bin 6717 -> 0 bytes .../main/webapp/inc/img/mac-installer-small.png | Bin 23561 -> 0 bytes .../src/main/webapp/inc/img/mac-installer.png | Bin 75268 -> 0 bytes .../src/main/webapp/inc/img/merchandise.png | Bin 20488 -> 0 bytes .../src/main/webapp/inc/img/mpa-nominee.png | Bin 10428 -> 0 bytes subsonic-site/src/main/webapp/inc/img/paypal.gif | Bin 2127 -> 0 bytes .../src/main/webapp/inc/img/ripserver-small.png | Bin 6830 -> 0 bytes .../src/main/webapp/inc/img/ripserver.png | Bin 18375 -> 0 bytes .../main/webapp/inc/img/screenshots/screen01.png | Bin 209029 -> 0 bytes .../main/webapp/inc/img/screenshots/screen02.png | Bin 352778 -> 0 bytes .../main/webapp/inc/img/screenshots/screen03.png | Bin 97498 -> 0 bytes .../main/webapp/inc/img/screenshots/screen05.png | Bin 743820 -> 0 bytes .../main/webapp/inc/img/screenshots/screen06.png | Bin 118009 -> 0 bytes .../main/webapp/inc/img/screenshots/screen07.png | Bin 194749 -> 0 bytes .../main/webapp/inc/img/screenshots/screen08.png | Bin 140362 -> 0 bytes .../main/webapp/inc/img/screenshots/screen09.png | Bin 140191 -> 0 bytes .../main/webapp/inc/img/screenshots/screen10.png | Bin 139752 -> 0 bytes .../main/webapp/inc/img/screenshots/screen11.png | Bin 196900 -> 0 bytes .../main/webapp/inc/img/screenshots/screen12.png | Bin 102123 -> 0 bytes .../main/webapp/inc/img/screenshots/screen13.png | Bin 178352 -> 0 bytes .../main/webapp/inc/img/screenshots/screen14.png | Bin 114613 -> 0 bytes .../main/webapp/inc/img/screenshots/screen15.png | Bin 115140 -> 0 bytes .../main/webapp/inc/img/screenshots/screen16.png | Bin 112808 -> 0 bytes .../main/webapp/inc/img/screenshots/screen17.png | Bin 482545 -> 0 bytes .../main/webapp/inc/img/screenshots/screen18.png | Bin 209911 -> 0 bytes .../main/webapp/inc/img/screenshots/screen19.png | Bin 352106 -> 0 bytes .../main/webapp/inc/img/screenshots/screen20.png | Bin 417249 -> 0 bytes .../main/webapp/inc/img/screenshots/screen21.png | Bin 338262 -> 0 bytes .../main/webapp/inc/img/screenshots/screen22.png | Bin 181565 -> 0 bytes .../main/webapp/inc/img/screenshots/screen23.png | Bin 115985 -> 0 bytes .../main/webapp/inc/img/screenshots/screen24.png | Bin 224079 -> 0 bytes .../main/webapp/inc/img/screenshots/screen25.png | Bin 119445 -> 0 bytes .../main/webapp/inc/img/screenshots/screen26.png | Bin 51974 -> 0 bytes .../main/webapp/inc/img/screenshots/screen27.png | Bin 180693 -> 0 bytes .../main/webapp/inc/img/screenshots/screen28.png | Bin 361945 -> 0 bytes .../main/webapp/inc/img/screenshots/screen29.png | Bin 30897 -> 0 bytes .../main/webapp/inc/img/screenshots/screen30.png | Bin 73600 -> 0 bytes .../main/webapp/inc/img/screenshots/screen31.png | Bin 100196 -> 0 bytes .../main/webapp/inc/img/screenshots/screen32.png | Bin 81977 -> 0 bytes .../main/webapp/inc/img/screenshots/screen33.png | Bin 37987 -> 0 bytes .../main/webapp/inc/img/screenshots/screen34.png | Bin 107142 -> 0 bytes .../main/webapp/inc/img/screenshots/screen35.png | Bin 218136 -> 0 bytes .../main/webapp/inc/img/screenshots/screen36.png | Bin 45077 -> 0 bytes .../main/webapp/inc/img/screenshots/screen37.png | Bin 266136 -> 0 bytes .../main/webapp/inc/img/screenshots/screen38.png | Bin 280620 -> 0 bytes .../main/webapp/inc/img/screenshots/screen39.png | Bin 66566 -> 0 bytes .../main/webapp/inc/img/screenshots/screen40.png | Bin 334178 -> 0 bytes .../main/webapp/inc/img/screenshots/screen41.png | Bin 26309 -> 0 bytes .../main/webapp/inc/img/screenshots/screen42.png | Bin 228047 -> 0 bytes .../main/webapp/inc/img/screenshots/screen43.png | Bin 34464 -> 0 bytes .../main/webapp/inc/img/screenshots/screen44.png | Bin 39845 -> 0 bytes .../main/webapp/inc/img/screenshots/screen45.png | Bin 29265 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb01.png | Bin 39427 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb02.png | Bin 52858 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb03.png | Bin 23919 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb05.png | Bin 83024 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb06.png | Bin 30336 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb07.png | Bin 28877 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb08.png | Bin 39843 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb09.png | Bin 40084 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb10.png | Bin 38347 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb11.png | Bin 43291 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb12.png | Bin 26359 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb13.png | Bin 40783 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb14.png | Bin 28876 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb15.png | Bin 29549 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb16.png | Bin 32605 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb17.png | Bin 44071 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb18.png | Bin 42192 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb19.png | Bin 42864 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb20.png | Bin 41571 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb21.png | Bin 37146 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb22.png | Bin 28286 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb23.png | Bin 24979 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb24.png | Bin 36146 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb25.png | Bin 27858 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb27.png | Bin 52753 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb28.png | Bin 87617 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb29.png | Bin 11576 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb30.png | Bin 25612 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb31.png | Bin 30137 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb33.png | Bin 39381 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb35.png | Bin 89884 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb36.png | Bin 61584 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb37.png | Bin 48708 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb38.png | Bin 135325 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb39.png | Bin 26633 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb40.png | Bin 86109 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb41.png | Bin 7605 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb42.png | Bin 62084 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb43.png | Bin 42038 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb44.png | Bin 30622 -> 0 bytes .../main/webapp/inc/img/screenshots/thumb45.png | Bin 24059 -> 0 bytes subsonic-site/src/main/webapp/inc/img/search.png | Bin 1267 -> 0 bytes subsonic-site/src/main/webapp/inc/img/sindre.jpeg | Bin 1978 -> 0 bytes subsonic-site/src/main/webapp/inc/img/star.png | Bin 547 -> 0 bytes .../src/main/webapp/inc/img/subsonic-forum.png | Bin 8506 -> 0 bytes .../src/main/webapp/inc/img/subsonic-shop.jpeg | Bin 18328 -> 0 bytes .../src/main/webapp/inc/img/subsonic-tshirt.png | Bin 119589 -> 0 bytes subsonic-site/src/main/webapp/inc/img/subsonic.png | Bin 14302 -> 0 bytes subsonic-site/src/main/webapp/inc/img/top.gif | Bin 68 -> 0 bytes .../src/main/webapp/inc/img/topnav-div.gif | Bin 263 -> 0 bytes .../src/main/webapp/inc/img/topnav-hover.gif | Bin 504 -> 0 bytes subsonic-site/src/main/webapp/inc/img/topnav.gif | Bin 5356 -> 0 bytes subsonic-site/src/main/webapp/inc/img/ubuntu.png | Bin 1262 -> 0 bytes .../webapp/inc/img/windows-installer-small.png | Bin 8516 -> 0 bytes .../src/main/webapp/inc/img/windows-installer.png | Bin 18267 -> 0 bytes .../main/webapp/inc/img/windows-marketplace.png | Bin 2676 -> 0 bytes subsonic-site/src/main/webapp/inc/img/windows7.png | Bin 1977 -> 0 bytes .../src/main/webapp/inc/img/zazeen-ad.gif | Bin 35430 -> 0 bytes subsonic-site/src/main/webapp/inc/img/zazeen.gif | Bin 3993 -> 0 bytes subsonic-site/src/main/webapp/inc/js/FancyZoom.js | 761 --------------- .../src/main/webapp/inc/js/FancyZoomHTML.js | 318 ------ .../src/main/webapp/inc/js/jquery-1.4.4.min.js | 167 ---- .../src/main/webapp/inc/video/subsonic-medium.jpg | Bin 60689 -> 0 bytes subsonic-site/src/main/webapp/index.html | 10 - subsonic-site/src/main/webapp/index.jsp | 120 --- subsonic-site/src/main/webapp/installation.jsp | 278 ------ subsonic-site/src/main/webapp/libraries.jsp | 48 - subsonic-site/src/main/webapp/menu.jsp | 32 - subsonic-site/src/main/webapp/merchandise.jsp | 7 - subsonic-site/src/main/webapp/paypal-landing.jsp | 36 - subsonic-site/src/main/webapp/quotes.jsp | 55 -- subsonic-site/src/main/webapp/redirect-expired.jsp | 104 -- subsonic-site/src/main/webapp/ripserver.jsp | 8 - subsonic-site/src/main/webapp/robots.txt | 2 - subsonic-site/src/main/webapp/screenshots.jsp | 67 -- subsonic-site/src/main/webapp/search.jsp | 4 - subsonic-site/src/main/webapp/subsonic-ad.jsp | 51 - subsonic-site/src/main/webapp/tracking.jsp | 9 - subsonic-site/src/main/webapp/transcoding.jsp | 92 -- .../src/main/webapp/translate-subsonic.jsp | 6 - subsonic-site/src/main/webapp/translate.jsp | 65 -- subsonic-site/src/main/webapp/tutorial.jsp | 8 - subsonic-site/src/main/webapp/zazeen-ad.jsp | 12 - 305 files changed, 7606 deletions(-) delete mode 100644 subsonic-site/src/main/webapp/WEB-INF/web.xml delete mode 100644 subsonic-site/src/main/webapp/ad.jsp delete mode 100644 subsonic-site/src/main/webapp/adwords-android.jsp delete mode 100644 subsonic-site/src/main/webapp/android-donation.jsp delete mode 100644 subsonic-site/src/main/webapp/api-addChatMessage.jsp delete mode 100644 subsonic-site/src/main/webapp/api-changePassword.jsp delete mode 100644 subsonic-site/src/main/webapp/api-createPlaylist.jsp delete mode 100644 subsonic-site/src/main/webapp/api-createShare.jsp delete mode 100644 subsonic-site/src/main/webapp/api-createUser.jsp delete mode 100644 subsonic-site/src/main/webapp/api-deletePlaylist.jsp delete mode 100644 subsonic-site/src/main/webapp/api-deleteShare.jsp delete mode 100644 subsonic-site/src/main/webapp/api-deleteUser.jsp delete mode 100644 subsonic-site/src/main/webapp/api-download.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getAlbum.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getAlbumList.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getAlbumList2.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getArtist.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getArtists.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getAvatar.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getChatMessages.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getCoverArt.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getIndexes.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getLicense.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getLyrics.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getMusicDirectory.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getMusicFolders.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getNowPlaying.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getPlaylist.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getPlaylists.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getPodcasts.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getRandomSongs.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getShares.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getSong.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getStarred.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getStarred2.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getUser.jsp delete mode 100644 subsonic-site/src/main/webapp/api-getVideos.jsp delete mode 100644 subsonic-site/src/main/webapp/api-jukeboxControl.jsp delete mode 100644 subsonic-site/src/main/webapp/api-ping.jsp delete mode 100644 subsonic-site/src/main/webapp/api-scrobble.jsp delete mode 100644 subsonic-site/src/main/webapp/api-search.jsp delete mode 100644 subsonic-site/src/main/webapp/api-search2.jsp delete mode 100644 subsonic-site/src/main/webapp/api-search3.jsp delete mode 100644 subsonic-site/src/main/webapp/api-setRating.jsp delete mode 100644 subsonic-site/src/main/webapp/api-star.jsp delete mode 100644 subsonic-site/src/main/webapp/api-stream.jsp delete mode 100644 subsonic-site/src/main/webapp/api-unstar.jsp delete mode 100644 subsonic-site/src/main/webapp/api-updatePlaylist.jsp delete mode 100644 subsonic-site/src/main/webapp/api-updateShare.jsp delete mode 100644 subsonic-site/src/main/webapp/api.jsp delete mode 100644 subsonic-site/src/main/webapp/apps.jsp delete mode 100644 subsonic-site/src/main/webapp/banner.jsp delete mode 100644 subsonic-site/src/main/webapp/changelog.jsp delete mode 100644 subsonic-site/src/main/webapp/demo.jsp delete mode 100644 subsonic-site/src/main/webapp/documentation.jsp delete mode 100644 subsonic-site/src/main/webapp/donate.jsp delete mode 100644 subsonic-site/src/main/webapp/download-subsonic.jsp delete mode 100644 subsonic-site/src/main/webapp/download.jsp delete mode 100644 subsonic-site/src/main/webapp/download2.jsp delete mode 100644 subsonic-site/src/main/webapp/faq.jsp delete mode 100644 subsonic-site/src/main/webapp/favicon.ico delete mode 100644 subsonic-site/src/main/webapp/features.jsp delete mode 100644 subsonic-site/src/main/webapp/footer.jsp delete mode 100644 subsonic-site/src/main/webapp/forum.jsp delete mode 100644 subsonic-site/src/main/webapp/getting-started.jsp delete mode 100644 subsonic-site/src/main/webapp/google-translate.jsp delete mode 100644 subsonic-site/src/main/webapp/header.jsp delete mode 100644 subsonic-site/src/main/webapp/hosting.jsp delete mode 100644 subsonic-site/src/main/webapp/inc/css/banner.css delete mode 100644 subsonic-site/src/main/webapp/inc/css/style.css delete mode 100644 subsonic-site/src/main/webapp/inc/img/air.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/android.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/appstore.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/available_on_appstore.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/android-video.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/apps.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/apps.xcf delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/banner-01.jpg delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/banner-bg.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/car.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/iphone.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/isub1.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/next-hover.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/next.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/prev-hover.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/prev.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/screenshot.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/video.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/banner/wp7.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/blackberry.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/body-bg.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/button-download.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/change-password-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/change-password.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/chumby.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/content-bg.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/donate.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/download-fedora.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/download-linux.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/download-mac.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/download-ubuntu.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/download-windows.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/download_small.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/closebox.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/spacer.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-fill.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-l.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-r.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow1.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow2.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow3.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow4.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow5.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow6.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow7.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow8.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-1.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-10.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-11.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-12.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-2.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-3.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-4.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-5.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-6.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-7.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-8.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-9.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/amy-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/amy.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/avatar-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/avatar.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/bbc.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/extras.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/extras.xcf delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/flac.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/itunes.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/lame.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/lame.png.orig delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/last-fm.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/logon-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/logon.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/media-support.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/media-support.xcf delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/mp3.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/mp3.png.orig delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/nrk.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/personal-settings-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/personal-settings.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/podcast.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/shoutcast.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/shoutcast.png.orig delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/wap-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/wap.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/wikipedia.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/wikipedia.png.orig delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/winamp.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/winamp.png.orig delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/wmp.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/features/wmp.png.orig delete mode 100644 subsonic-site/src/main/webapp/inc/img/footer.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/gettingstarted/license.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/gettingstarted/license_thumb.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders_thumb.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/gigapros.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/gpl.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/header.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/home-rollover.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/mac-appstore.jpg delete mode 100644 subsonic-site/src/main/webapp/inc/img/mac-installer-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/mac-installer.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/merchandise.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/mpa-nominee.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/paypal.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/ripserver-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/ripserver.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen01.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen02.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen03.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen05.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen06.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen07.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen08.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen09.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen10.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen11.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen12.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen13.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen14.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen15.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen16.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen17.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen18.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen19.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen20.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen21.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen22.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen23.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen24.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen25.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen26.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen27.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen28.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen29.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen30.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen31.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen32.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen33.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen34.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen35.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen36.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen37.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen38.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen39.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen40.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen41.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen42.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen43.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen44.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/screen45.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb01.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb02.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb03.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb05.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb06.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb07.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb08.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb09.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb10.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb11.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb12.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb13.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb14.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb15.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb16.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb17.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb18.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb19.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb20.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb21.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb22.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb23.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb24.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb25.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb27.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb28.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb29.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb30.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb31.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb33.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb35.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb36.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb37.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb38.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb39.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb40.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb41.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb42.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb43.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb44.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/screenshots/thumb45.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/search.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/sindre.jpeg delete mode 100644 subsonic-site/src/main/webapp/inc/img/star.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/subsonic-forum.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/subsonic-shop.jpeg delete mode 100644 subsonic-site/src/main/webapp/inc/img/subsonic-tshirt.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/subsonic.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/top.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/topnav-div.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/topnav-hover.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/topnav.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/ubuntu.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/windows-installer-small.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/windows-installer.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/windows-marketplace.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/windows7.png delete mode 100644 subsonic-site/src/main/webapp/inc/img/zazeen-ad.gif delete mode 100644 subsonic-site/src/main/webapp/inc/img/zazeen.gif delete mode 100644 subsonic-site/src/main/webapp/inc/js/FancyZoom.js delete mode 100644 subsonic-site/src/main/webapp/inc/js/FancyZoomHTML.js delete mode 100644 subsonic-site/src/main/webapp/inc/js/jquery-1.4.4.min.js delete mode 100644 subsonic-site/src/main/webapp/inc/video/subsonic-medium.jpg delete mode 100644 subsonic-site/src/main/webapp/index.html delete mode 100644 subsonic-site/src/main/webapp/index.jsp delete mode 100644 subsonic-site/src/main/webapp/installation.jsp delete mode 100644 subsonic-site/src/main/webapp/libraries.jsp delete mode 100644 subsonic-site/src/main/webapp/menu.jsp delete mode 100644 subsonic-site/src/main/webapp/merchandise.jsp delete mode 100644 subsonic-site/src/main/webapp/paypal-landing.jsp delete mode 100644 subsonic-site/src/main/webapp/quotes.jsp delete mode 100644 subsonic-site/src/main/webapp/redirect-expired.jsp delete mode 100644 subsonic-site/src/main/webapp/ripserver.jsp delete mode 100644 subsonic-site/src/main/webapp/robots.txt delete mode 100644 subsonic-site/src/main/webapp/screenshots.jsp delete mode 100644 subsonic-site/src/main/webapp/search.jsp delete mode 100644 subsonic-site/src/main/webapp/subsonic-ad.jsp delete mode 100644 subsonic-site/src/main/webapp/tracking.jsp delete mode 100644 subsonic-site/src/main/webapp/transcoding.jsp delete mode 100644 subsonic-site/src/main/webapp/translate-subsonic.jsp delete mode 100644 subsonic-site/src/main/webapp/translate.jsp delete mode 100644 subsonic-site/src/main/webapp/tutorial.jsp delete mode 100644 subsonic-site/src/main/webapp/zazeen-ad.jsp (limited to 'subsonic-site/src/main') diff --git a/subsonic-site/src/main/webapp/WEB-INF/web.xml b/subsonic-site/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 7cd15a49..00000000 --- a/subsonic-site/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Subsonic Site - - - index.html - index.jsp - - - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/ad.jsp b/subsonic-site/src/main/webapp/ad.jsp deleted file mode 100644 index e89a43ed..00000000 --- a/subsonic-site/src/main/webapp/ad.jsp +++ /dev/null @@ -1,6 +0,0 @@ -
- - - - -
diff --git a/subsonic-site/src/main/webapp/adwords-android.jsp b/subsonic-site/src/main/webapp/adwords-android.jsp deleted file mode 100644 index 795dc39e..00000000 --- a/subsonic-site/src/main/webapp/adwords-android.jsp +++ /dev/null @@ -1,45 +0,0 @@ - - - - - Subsonic » Free Music Streamer - - - - - <%@ include file="tracking.jsp" %> - - - -

Subsonic Music Streamer

-

- Stream and download music from your home computer to Android, iPhone and Windows Phone. - All your music - anywhere, anytime! Never sync again. - Supports most audio formats, including mp3, ogg, aac, flac, wma. -

- -

- Supports streaming, downloading, playlists, album art, searching and automatic conversion to lower bitrates. - For improved performance, music you have listened to is cached on the phone. - An offline mode is also available for when you are outside 3G/Wi-Fi coverage. -

- -

- Server software is available for Windows, Mac and Linux. -

- -

- For more information, visit subsonic.org, or download the Subsonic app from - Android Market or Apple App Store. The app is by default connected to a demo server so you can try it out without installing the - Subsonic server software on your home computer. -

- - - - - - - - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/android-donation.jsp b/subsonic-site/src/main/webapp/android-donation.jsp deleted file mode 100644 index 831d7b5c..00000000 --- a/subsonic-site/src/main/webapp/android-donation.jsp +++ /dev/null @@ -1,88 +0,0 @@ - - - - - Subsonic » Free Music Streamer - - - - - - - -

Love Subsonic?

- -

- Please support continued development and maintenance by giving a donation. -

- -

- As a donor you get the following benefits: -

- - -

- The suggested donation amount is €20, but you can give any amount you like. -

- -

- Click one of the buttons to go to PayPal where you can pay by credit card or by using your PayPal account. - Once the donation is processed, you will receive a license key by email. -

- - - - - - - - -
- - - - - - - -
€10
-
- - - - - - - -
€20
-
- - - - - - - -
€25
-
- - - - - - - -
€30
-
- -

- For more information, please visit subsonic.org -

- - diff --git a/subsonic-site/src/main/webapp/api-addChatMessage.jsp b/subsonic-site/src/main/webapp/api-addChatMessage.jsp deleted file mode 100644 index 1d9d01dc..00000000 --- a/subsonic-site/src/main/webapp/api-addChatMessage.jsp +++ /dev/null @@ -1,28 +0,0 @@ -

addChatMessage

- -

- http://your-server/rest/addChatMessage.view -
Since 1.2.0 -

- -

- Adds a message to the chat log. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
messageYesThe chat message.
- -

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-changePassword.jsp b/subsonic-site/src/main/webapp/api-changePassword.jsp deleted file mode 100644 index a7fcb039..00000000 --- a/subsonic-site/src/main/webapp/api-changePassword.jsp +++ /dev/null @@ -1,35 +0,0 @@ -

changePassword

- -

- http://your-server/rest/changePassword.view -
Since 1.1.0 -

- -

- Changes the password of an existing Subsonic user, using the following parameters. - You can only change your own password unless you have admin privileges. -

- - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
usernameYesThe name of the user which should change its password.
passwordYesThe new password of the new user, either in clear text of hex-encoded (see above).
- -

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-createPlaylist.jsp b/subsonic-site/src/main/webapp/api-createPlaylist.jsp deleted file mode 100644 index dd39f0cd..00000000 --- a/subsonic-site/src/main/webapp/api-createPlaylist.jsp +++ /dev/null @@ -1,39 +0,0 @@ -

createPlaylist

- -

- http://your-server/rest/createPlaylist.view -
Since 1.2.0 -

- -

- Creates (or updates) a playlist. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
playlistIdYes (if updating)The playlist ID.
nameYes (if creating)The human-readable name of the playlist.
songIdYesID of a song in the playlist. Use one songId parameter for each song in the playlist.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-createShare.jsp b/subsonic-site/src/main/webapp/api-createShare.jsp deleted file mode 100644 index bc9d4115..00000000 --- a/subsonic-site/src/main/webapp/api-createShare.jsp +++ /dev/null @@ -1,41 +0,0 @@ -

createShare

-

- http://your-server/rest/createShare.view -
Since 1.6.0 -

-

- Creates a public URL that can be used by anyone to stream music or video from the Subsonic server. The URL is short and - suitable for posting on Facebook, Twitter etc. Note: The user must be authorized to share (see Settings > Users - > User is allowed to share files with anyone). -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesID of a song, album or video to share. Use one id parameter for each entry to share.
descriptionNoA user-defined description that will be displayed to people visiting the shared media.
expiresNoThe time at which the share expires. Given as milliseconds since 1970.
-

- Returns a <subsonic-response> element with a nested <shares> - element on success, which in turns contains a single <share> element for the newly created share. - Example. -

diff --git a/subsonic-site/src/main/webapp/api-createUser.jsp b/subsonic-site/src/main/webapp/api-createUser.jsp deleted file mode 100644 index 331148b3..00000000 --- a/subsonic-site/src/main/webapp/api-createUser.jsp +++ /dev/null @@ -1,112 +0,0 @@ -

createUser

- -

- http://your-server/rest/createUser.view -
Since 1.1.0 -

- -

- Creates a new Subsonic user, using the following parameters: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
usernameYesThe name of the new user.
passwordYesThe password of the new user, either in clear text of hex-encoded (see above).
emailYesThe email address of the new user.
ldapAuthenticatedNofalseWhether the user is authenicated in LDAP.
adminRoleNofalseWhether the user is administrator.
settingsRoleNotrueWhether the user is allowed to change settings and password.
streamRoleNotrueWhether the user is allowed to play files.
jukeboxRoleNofalseWhether the user is allowed to play files in jukebox mode.
downloadRoleNofalseWhether the user is allowed to download files.
uploadRoleNofalseWhether the user is allowed to upload files.
playlistRoleNofalseWhether the user is allowed to create and delete playlists. Since 1.8.0, changing this role has no effect.
coverArtRoleNofalseWhether the user is allowed to change cover art and tags.
commentRoleNofalseWhether the user is allowed to create and edit comments and ratings.
podcastRoleNofalseWhether the user is allowed to administrate Podcasts.
shareRoleNofalse(Since 1.8.0)Whether the user is allowed to share files with anyone.
- -

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-deletePlaylist.jsp b/subsonic-site/src/main/webapp/api-deletePlaylist.jsp deleted file mode 100644 index 8a9cef6d..00000000 --- a/subsonic-site/src/main/webapp/api-deletePlaylist.jsp +++ /dev/null @@ -1,27 +0,0 @@ -

deletePlaylist

- -

- http://your-server/rest/deletePlaylist.view -
Since 1.2.0 -

- -

- Deletes a saved playlist. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idyesID of the playlist to delete, as obtained by getPlaylists.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-deleteShare.jsp b/subsonic-site/src/main/webapp/api-deleteShare.jsp deleted file mode 100644 index 8c15f536..00000000 --- a/subsonic-site/src/main/webapp/api-deleteShare.jsp +++ /dev/null @@ -1,25 +0,0 @@ -

deleteShare

-

- http://your-server/rest/deleteShare.view -
Since 1.6.0 -

-

- Deletes an existing share. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesID of the share to delete.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-deleteUser.jsp b/subsonic-site/src/main/webapp/api-deleteUser.jsp deleted file mode 100644 index 4fc94de8..00000000 --- a/subsonic-site/src/main/webapp/api-deleteUser.jsp +++ /dev/null @@ -1,28 +0,0 @@ -

deleteUser

- -

- http://your-server/rest/deleteUser.view -
Since 1.3.0 -

- -

- Deletes an existing Subsonic user, using the following parameters: -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
usernameYesThe name of the user to delete.
- -

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-download.jsp b/subsonic-site/src/main/webapp/api-download.jsp deleted file mode 100644 index 63b55a00..00000000 --- a/subsonic-site/src/main/webapp/api-download.jsp +++ /dev/null @@ -1,28 +0,0 @@ -

download

- -

- http://your-server/rest/download.view -
Since 1.0.0 -

- -

- Downloads a given media file. Similar to stream, but this method returns the original media data - without transcoding or downsampling. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesA string which uniquely identifies the file to download. Obtained by calls to getMusicDirectory.
-

- Returns binary data on success, or an XML document on error (in which case the HTTP content type will start with "text/xml"). -

diff --git a/subsonic-site/src/main/webapp/api-getAlbum.jsp b/subsonic-site/src/main/webapp/api-getAlbum.jsp deleted file mode 100644 index 3980c740..00000000 --- a/subsonic-site/src/main/webapp/api-getAlbum.jsp +++ /dev/null @@ -1,29 +0,0 @@ -

getAlbum

- -

- http://your-server/rest/getAlbum.view -
Since 1.8.0 -

- -

- Returns details for an album, including a list of songs. This method organizes music according to ID3 tags. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesThe album ID.
-

- Returns a <subsonic-response> element with a nested <album> - element on success. - Example. -

diff --git a/subsonic-site/src/main/webapp/api-getAlbumList.jsp b/subsonic-site/src/main/webapp/api-getAlbumList.jsp deleted file mode 100644 index a5f2e0d3..00000000 --- a/subsonic-site/src/main/webapp/api-getAlbumList.jsp +++ /dev/null @@ -1,44 +0,0 @@ -

getAlbumList

- -

- http://your-server/rest/getAlbumList.view -
Since 1.2.0 -

- -

- Returns a list of random, newest, highest rated etc. albums. Similar to the album lists - on the home page of the Subsonic web interface. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
typeYesThe list type. Must be one of the following: random, newest, - highest, frequent, recent. Since 1.8.0 - you can also use alphabeticalByName or alphabeticalByArtist to page through all albums - alphabetically, and starred to retrieve starred albums.
sizeNo10The number of albums to return. Max 500.
offsetNo0The list offset. Useful if you for example want to page through the list of newest albums.
-

- Returns a <subsonic-response> element with a nested <albumList> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getAlbumList2.jsp b/subsonic-site/src/main/webapp/api-getAlbumList2.jsp deleted file mode 100644 index ee2c962f..00000000 --- a/subsonic-site/src/main/webapp/api-getAlbumList2.jsp +++ /dev/null @@ -1,42 +0,0 @@ -

getAlbumList2

- -

- http://your-server/rest/getAlbumList2.view -
Since 1.8.0 -

- -

- Similar to getAlbumList, but organizes music according to ID3 tags. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
typeYesThe list type. Must be one of the following: random, newest, - frequent, recent, starred, - alphabeticalByName or alphabeticalByArtist.
sizeNo10The number of albums to return. Max 500.
offsetNo0The list offset. Useful if you for example want to page through the list of newest albums.
-

- Returns a <subsonic-response> element with a nested <albumList2> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getArtist.jsp b/subsonic-site/src/main/webapp/api-getArtist.jsp deleted file mode 100644 index d649f5a6..00000000 --- a/subsonic-site/src/main/webapp/api-getArtist.jsp +++ /dev/null @@ -1,29 +0,0 @@ -

getArtist

- -

- http://your-server/rest/getArtist.view -
Since 1.8.0 -

- -

- Returns details for an artist, including a list of albums. This method organizes music according to ID3 tags. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesThe artist ID.
-

- Returns a <subsonic-response> element with a nested <artist> - element on success. - Example. -

diff --git a/subsonic-site/src/main/webapp/api-getArtists.jsp b/subsonic-site/src/main/webapp/api-getArtists.jsp deleted file mode 100644 index fdc4f5f7..00000000 --- a/subsonic-site/src/main/webapp/api-getArtists.jsp +++ /dev/null @@ -1,15 +0,0 @@ -

getArtists

- -

- http://your-server/rest/getArtists.view -
Since 1.8.0 -

- -

- Similar to getIndexes, but organizes music according to ID3 tags. -

- -

- Returns a <subsonic-response> element with a nested <artists> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getAvatar.jsp b/subsonic-site/src/main/webapp/api-getAvatar.jsp deleted file mode 100644 index 4201dd52..00000000 --- a/subsonic-site/src/main/webapp/api-getAvatar.jsp +++ /dev/null @@ -1,27 +0,0 @@ -

getAvatar

- -

- http://your-server/rest/getAvatar.view -
Since 1.8.0 -

- -

- Returns the avatar (personal image) for a user. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
usernameYesThe user in question.
-

- Returns the avatar image in binary form. -

diff --git a/subsonic-site/src/main/webapp/api-getChatMessages.jsp b/subsonic-site/src/main/webapp/api-getChatMessages.jsp deleted file mode 100644 index e27aa640..00000000 --- a/subsonic-site/src/main/webapp/api-getChatMessages.jsp +++ /dev/null @@ -1,28 +0,0 @@ -

getChatMessages

- -

- http://your-server/rest/getChatMessages.view -
Since 1.2.0 -

- -

- Returns the current visible (non-expired) chat messages. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
sinceNoOnly return messages newer than this time (in millis since Jan 1 1970).
-

- Returns a <subsonic-response> element with a nested <chatMessages> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getCoverArt.jsp b/subsonic-site/src/main/webapp/api-getCoverArt.jsp deleted file mode 100644 index 23f9ad5b..00000000 --- a/subsonic-site/src/main/webapp/api-getCoverArt.jsp +++ /dev/null @@ -1,34 +0,0 @@ -

getCoverArt

- -

- http://your-server/rest/getCoverArt.view -
Since 1.0.0 -

- -

- Returns a cover art image. -

- - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesA string which uniquely identifies the cover art file to download. Obtained by calls to getMusicDirectory. -
sizeNoIf specified, scale image to this size.
-

- Returns the cover art image in binary form. -

diff --git a/subsonic-site/src/main/webapp/api-getIndexes.jsp b/subsonic-site/src/main/webapp/api-getIndexes.jsp deleted file mode 100644 index 375f4a92..00000000 --- a/subsonic-site/src/main/webapp/api-getIndexes.jsp +++ /dev/null @@ -1,35 +0,0 @@ -

getIndexes

- -

- http://your-server/rest/getIndexes.view -
Since 1.0.0 -

- -

- Returns an indexed structure of all artists. -

- - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
musicFolderIdNoIf specified, only return artists in the music folder with the given ID. See getMusicFolders. -
ifModifiedSinceNoIf specified, only return a result if the artist collection has changed since the given time.
-

- Returns a <subsonic-response> element with a nested <indexes> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getLicense.jsp b/subsonic-site/src/main/webapp/api-getLicense.jsp deleted file mode 100644 index 32185d7b..00000000 --- a/subsonic-site/src/main/webapp/api-getLicense.jsp +++ /dev/null @@ -1,17 +0,0 @@ -

getLicense

- -

- http://your-server/rest/getLicense.view -
Since 1.0.0 -

- -

- Get details about the software license. Takes no extra parameters. Please note that access to the - REST API requires that the server has a valid license (after a 30-day trial period). To get a license key you can - give a donation to the Subsonic project. -

- -

- Returns a <subsonic-response> element with a nested <license> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getLyrics.jsp b/subsonic-site/src/main/webapp/api-getLyrics.jsp deleted file mode 100644 index e9cfeb9d..00000000 --- a/subsonic-site/src/main/webapp/api-getLyrics.jsp +++ /dev/null @@ -1,35 +0,0 @@ -

getLyrics

- -

- http://your-server/rest/getLyrics.view -
Since 1.2.0 -

- -

- Searches for and returns lyrics for a given song. -

- - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
artistNoThe artist name.
titleNoThe song title.
-

- Returns a <subsonic-response> element with a nested <lyrics> - element on success. The <lyrics> element is empty if no matching lyrics was found. - Example. -

diff --git a/subsonic-site/src/main/webapp/api-getMusicDirectory.jsp b/subsonic-site/src/main/webapp/api-getMusicDirectory.jsp deleted file mode 100644 index 87e159a1..00000000 --- a/subsonic-site/src/main/webapp/api-getMusicDirectory.jsp +++ /dev/null @@ -1,32 +0,0 @@ -

getMusicDirectory

- -

- http://your-server/rest/getMusicDirectory.view -
Since 1.0.0 -

- -

- Returns a listing of all files in a music directory. Typically used to get list of albums for an artist, - or list of songs for an album. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesA string which uniquely identifies the music folder. Obtained by calls to getIndexes or getMusicDirectory. -
-

- Returns a <subsonic-response> element with a nested <directory> - element on success. - Example 1. - Example 2. -

diff --git a/subsonic-site/src/main/webapp/api-getMusicFolders.jsp b/subsonic-site/src/main/webapp/api-getMusicFolders.jsp deleted file mode 100644 index f7e5ac5c..00000000 --- a/subsonic-site/src/main/webapp/api-getMusicFolders.jsp +++ /dev/null @@ -1,15 +0,0 @@ -

getMusicFolders

- -

- http://your-server/rest/getMusicFolders.view -
Since 1.0.0 -

- -

- Returns all configured top-level music folders. Takes no extra parameters. -

- -

- Returns a <subsonic-response> element with a nested <musicFolders> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getNowPlaying.jsp b/subsonic-site/src/main/webapp/api-getNowPlaying.jsp deleted file mode 100644 index 597994d7..00000000 --- a/subsonic-site/src/main/webapp/api-getNowPlaying.jsp +++ /dev/null @@ -1,15 +0,0 @@ -

getNowPlaying

- -

- http://your-server/rest/getNowPlaying.view -
Since 1.0.0 -

- -

- Returns what is currently being played by all users. Takes no extra parameters. -

- -

- Returns a <subsonic-response> element with a nested <nowPlaying> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getPlaylist.jsp b/subsonic-site/src/main/webapp/api-getPlaylist.jsp deleted file mode 100644 index 0e795f8b..00000000 --- a/subsonic-site/src/main/webapp/api-getPlaylist.jsp +++ /dev/null @@ -1,28 +0,0 @@ -

getPlaylist

- -

- http://your-server/rest/getPlaylist.view -
Since 1.0.0 -

- -

- Returns a listing of files in a saved playlist. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idyesID of the playlist to return, as obtained by getPlaylists.
-

- Returns a <subsonic-response> element with a nested <playlist> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getPlaylists.jsp b/subsonic-site/src/main/webapp/api-getPlaylists.jsp deleted file mode 100644 index 0bc87e23..00000000 --- a/subsonic-site/src/main/webapp/api-getPlaylists.jsp +++ /dev/null @@ -1,29 +0,0 @@ -

getPlaylists

- -

- http://your-server/rest/getPlaylists.view -
Since 1.0.0 -

- -

- Returns all playlists a user is allowed to play. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
usernameno(Since 1.8.0) If specified, return playlists for this user rather than for the authenticated user. The authenticated user must - have admin role if this parameter is used.
-

- Returns a <subsonic-response> element with a nested <playlists> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getPodcasts.jsp b/subsonic-site/src/main/webapp/api-getPodcasts.jsp deleted file mode 100644 index a5a6b2d2..00000000 --- a/subsonic-site/src/main/webapp/api-getPodcasts.jsp +++ /dev/null @@ -1,28 +0,0 @@ -

getPodcasts

- -

- http://your-server/rest/getPodcasts.view -
Since 1.6.0 -

- -

- Returns all podcast channels the server subscribes to and their episodes. Takes no extra parameters. -

- -

- Returns a <subsonic-response> element with a nested <podcasts> - element on success. Example. -

- -

getShares

-

- http://your-server/rest/getShares.view -
Since 1.6.0 -

-

- Returns information about shared media this user is allowed to manage. Takes no extra parameters. -

-

- Returns a <subsonic-response> element with a nested <shares> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getRandomSongs.jsp b/subsonic-site/src/main/webapp/api-getRandomSongs.jsp deleted file mode 100644 index bba4fccb..00000000 --- a/subsonic-site/src/main/webapp/api-getRandomSongs.jsp +++ /dev/null @@ -1,52 +0,0 @@ -

getRandomSongs

- -

- http://your-server/rest/getRandomSongs.view -
Since 1.2.0 -

- -

- Returns random songs matching the given criteria. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
sizeNo10The maximum number of songs to return. Max 500.
genreNoOnly returns songs belonging to this genre.
fromYearNoOnly return songs published after or in this year.
toYearNoOnly return songs published before or in this year.
musicFolderIdNoOnly return songs in the music folder with the given ID. See getMusicFolders.
-

- Returns a <subsonic-response> element with a nested <randomSongs> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getShares.jsp b/subsonic-site/src/main/webapp/api-getShares.jsp deleted file mode 100644 index 096d47d8..00000000 --- a/subsonic-site/src/main/webapp/api-getShares.jsp +++ /dev/null @@ -1,14 +0,0 @@ -

getShares

-

- http://your-server/rest/getShares.view -
Since 1.6.0 -

-

- Returns information about shared media this user is allowed to manage. Takes no extra parameters. -

- -

- Returns a <subsonic-response> element with a nested <shares> - element on success. - Example. -

diff --git a/subsonic-site/src/main/webapp/api-getSong.jsp b/subsonic-site/src/main/webapp/api-getSong.jsp deleted file mode 100644 index 3b799a3f..00000000 --- a/subsonic-site/src/main/webapp/api-getSong.jsp +++ /dev/null @@ -1,29 +0,0 @@ -

getSong

- -

- http://your-server/rest/getSong.view -
Since 1.8.0 -

- -

- Returns details for a song. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesThe song ID.
-

- Returns a <subsonic-response> element with a nested <song> - element on success. - Example. -

diff --git a/subsonic-site/src/main/webapp/api-getStarred.jsp b/subsonic-site/src/main/webapp/api-getStarred.jsp deleted file mode 100644 index a6e411fc..00000000 --- a/subsonic-site/src/main/webapp/api-getStarred.jsp +++ /dev/null @@ -1,14 +0,0 @@ -

getStarred

- -

- http://your-server/rest/getStarred.view -
Since 1.8.0 -

- -

- Returns starred songs, albums and artists. -

-

- Returns a <subsonic-response> element with a nested <starred> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getStarred2.jsp b/subsonic-site/src/main/webapp/api-getStarred2.jsp deleted file mode 100644 index c6e9232a..00000000 --- a/subsonic-site/src/main/webapp/api-getStarred2.jsp +++ /dev/null @@ -1,14 +0,0 @@ -

getStarred2

- -

- http://your-server/rest/getStarred2.view -
Since 1.8.0 -

- -

- Similar to getStarred, but organizes music according to ID3 tags. -

-

- Returns a <subsonic-response> element with a nested <starred2> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getUser.jsp b/subsonic-site/src/main/webapp/api-getUser.jsp deleted file mode 100644 index 12615b7c..00000000 --- a/subsonic-site/src/main/webapp/api-getUser.jsp +++ /dev/null @@ -1,29 +0,0 @@ -

getUser

- -

- http://your-server/rest/getUser.view -
Since 1.3.0 -

- -

- Get details about a given user, including which authorization roles it has. - Can be used to enable/disable certain features in the client, such as jukebox control. -

- - - - - - - - - - - - - -
ParameterRequiredDefaultComment
usernameYesThe name of the user to retrieve. You can only retrieve your own user unless you have admin privileges.
-

- Returns a <subsonic-response> element with a nested <user> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-getVideos.jsp b/subsonic-site/src/main/webapp/api-getVideos.jsp deleted file mode 100644 index 11fc7ed0..00000000 --- a/subsonic-site/src/main/webapp/api-getVideos.jsp +++ /dev/null @@ -1,15 +0,0 @@ -

getVideos

- -

- http://your-server/rest/getVideos.view -
Since 1.8.0 -

- -

- Returns all video files. -

- -

- Returns a <subsonic-response> element with a nested <videos> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-jukeboxControl.jsp b/subsonic-site/src/main/webapp/api-jukeboxControl.jsp deleted file mode 100644 index ee87a9b2..00000000 --- a/subsonic-site/src/main/webapp/api-jukeboxControl.jsp +++ /dev/null @@ -1,60 +0,0 @@ -

jukeboxControl

- -

- http://your-server/rest/jukeboxControl.view -
Since 1.2.0 -

- -

- Controls the jukebox, i.e., playback directly on the server's audio hardware. Note: The user must - be authorized to control the jukebox (see Settings > Users > User is allowed to play files in jukebox mode). -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
actionYesThe operation to perform. Must be one of: get, status (since 1.7.0), set (since 1.7.0), - start, stop, skip, add, clear, remove, shuffle, setGain -
indexNoUsed by skip and remove. Zero-based index of the song to skip to or remove.
offsetNo(Since 1.7.0) Used by skip. Start playing this many seconds into the track.
idNoUsed by add and set. ID of song to add to the jukebox playlist. Use multiple id parameters - to add many songs in the same request. (set is similar to a clear followed by a add, but - will not change the currently playing track.) -
gainNoUsed by setGain to control the playback volume. A float value between 0.0 and 1.0.
-

- Returns a <jukeboxStatus> element on success, unless the get - action is used, in which case a nested <jukeboxPlaylist> element is returned. - Example 1. - Example 2. -

diff --git a/subsonic-site/src/main/webapp/api-ping.jsp b/subsonic-site/src/main/webapp/api-ping.jsp deleted file mode 100644 index af9568fa..00000000 --- a/subsonic-site/src/main/webapp/api-ping.jsp +++ /dev/null @@ -1,14 +0,0 @@ -

ping

- -

- http://your-server/rest/ping.view -
Since 1.0.0 -

- -

- Used to test connectivity with the server. Takes no extra parameters. -

- -

- Returns an empty <subsonic-response> element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-scrobble.jsp b/subsonic-site/src/main/webapp/api-scrobble.jsp deleted file mode 100644 index 9a01f49f..00000000 --- a/subsonic-site/src/main/webapp/api-scrobble.jsp +++ /dev/null @@ -1,34 +0,0 @@ -

scrobble

- -

- http://your-server/rest/scrobble.view -
Since 1.5.0 -

- -

- "Scrobbles" a given music file on last.fm. Requires that the user has configured his/her last.fm - credentials on the Subsonic server (Settings > Personal). -

- - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesA string which uniquely identifies the file to scrobble.
submissionNoTrueWhether this is a "submission" or a "now playing" notification.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-search.jsp b/subsonic-site/src/main/webapp/api-search.jsp deleted file mode 100644 index f74fba2e..00000000 --- a/subsonic-site/src/main/webapp/api-search.jsp +++ /dev/null @@ -1,65 +0,0 @@ -

search

- -

- http://your-server/rest/search.view -
Since 1.0.0 -
Deprecated since 1.4.0, use search2 instead. -

- -

- Returns a listing of files matching the given search criteria. Supports paging through the result. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
artistNoArtist to search for.
albumNoAlbum to searh for.
titleNoSong title to search for.
anyNoSearches all fields.
countNo20Maximum number of results to return.
offsetNo0Search result offset. Used for paging.
newerThanNoOnly return matches that are newer than this. Given as milliseconds since 1970.
-

- Returns a <subsonic-response> element with a nested <searchResult> - element on success. Example. -

diff --git a/subsonic-site/src/main/webapp/api-search2.jsp b/subsonic-site/src/main/webapp/api-search2.jsp deleted file mode 100644 index c1491f4d..00000000 --- a/subsonic-site/src/main/webapp/api-search2.jsp +++ /dev/null @@ -1,65 +0,0 @@ -

search2

- -

- http://your-server/rest/search2.view -
Since 1.4.0 -

- -

- Returns albums, artists and songs matching the given search criteria. Supports paging through the result. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
queryYesSearch query.
artistCountNo20Maximum number of artists to return.
artistOffsetNo0Search result offset for artists. Used for paging.
albumCountNo20Maximum number of albums to return.
albumOffsetNo0Search result offset for albums. Used for paging.
songCountNo20Maximum number of songs to return.
songOffsetNo0Search result offset for songs. Used for paging.
-

- Returns a <subsonic-response> element with a nested <searchResult2> - element on success. Example. -

- diff --git a/subsonic-site/src/main/webapp/api-search3.jsp b/subsonic-site/src/main/webapp/api-search3.jsp deleted file mode 100644 index 623a65a5..00000000 --- a/subsonic-site/src/main/webapp/api-search3.jsp +++ /dev/null @@ -1,65 +0,0 @@ -

search3

- -

- http://your-server/rest/search3.view -
Since 1.8.0 -

- -

- Similar to search2, but organizes music according to ID3 tags. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
queryYesSearch query.
artistCountNo20Maximum number of artists to return.
artistOffsetNo0Search result offset for artists. Used for paging.
albumCountNo20Maximum number of albums to return.
albumOffsetNo0Search result offset for albums. Used for paging.
songCountNo20Maximum number of songs to return.
songOffsetNo0Search result offset for songs. Used for paging.
-

- Returns a <subsonic-response> element with a nested <searchResult3> - element on success. Example. -

- diff --git a/subsonic-site/src/main/webapp/api-setRating.jsp b/subsonic-site/src/main/webapp/api-setRating.jsp deleted file mode 100644 index c2fd34ae..00000000 --- a/subsonic-site/src/main/webapp/api-setRating.jsp +++ /dev/null @@ -1,33 +0,0 @@ -

setRating

- -

- http://your-server/rest/setRating.view -
Since 1.6.0 -

- -

- Sets the rating for a music file. -

- - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesA string which uniquely identifies the file (song) or folder (album/artist) to rate.
ratingYesThe rating between 1 and 5 (inclusive), or 0 to remove the rating.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-star.jsp b/subsonic-site/src/main/webapp/api-star.jsp deleted file mode 100644 index a18c9b68..00000000 --- a/subsonic-site/src/main/webapp/api-star.jsp +++ /dev/null @@ -1,41 +0,0 @@ -

star

- -

- http://your-server/rest/star.view -
Since 1.8.0 -

- -

- Attaches a star to a song, album or artist. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idNoThe ID of the file (song) or folder (album/artist) to star. Multiple parameters allowed.
albumIdNoThe ID of an album to star. Use this rather than id if the client accesses the media collection according to ID3 - tags rather than file structure. Multiple parameters allowed.
artistIdNoThe ID of an artist to star. Use this rather than id if the client accesses the media collection according to ID3 - tags rather than file structure. Multiple parameters allowed.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-stream.jsp b/subsonic-site/src/main/webapp/api-stream.jsp deleted file mode 100644 index dba598c1..00000000 --- a/subsonic-site/src/main/webapp/api-stream.jsp +++ /dev/null @@ -1,59 +0,0 @@ -

stream

- -

- http://your-server/rest/stream.view -
Since 1.0.0 -

- -

- Streams a given media file. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesA string which uniquely identifies the file to stream. Obtained by calls to getMusicDirectory.
maxBitRateNo(Since 1.2.0) If specified, the server will attempt to limit the bitrate - to this value, in kilobits per second. If set to zero, no limit is imposed.
formatNo(Since 1.6.0) Specifies the preferred target format (e.g., "mp3" or "flv") in case there are multiple applicable transcodings.
timeOffsetNoOnly applicable to video streaming. If specified, start streaming at the given offset (in seconds) into the video. - Typically used to implement video skipping.
sizeNo(Since 1.6.0) Only applicable to video streaming. Requested video size specified as WxH, for instance "640x480".
estimateContentLengthNofalse(Since 1.8.0). If set to "true", the Content-Length HTTP header will be set to an estimated value - for transcoded or downsampled media.
-

- Returns binary data on success, or an XML document on error (in which case the HTTP content type will start with "text/xml"). -

diff --git a/subsonic-site/src/main/webapp/api-unstar.jsp b/subsonic-site/src/main/webapp/api-unstar.jsp deleted file mode 100644 index 9644f7b5..00000000 --- a/subsonic-site/src/main/webapp/api-unstar.jsp +++ /dev/null @@ -1,41 +0,0 @@ -

unstar

- -

- http://your-server/rest/unstar.view -
Since 1.8.0 -

- -

- Removes the star from a song, album or artist. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idNoThe ID of the file (song) or folder (album/artist) to unstar. Multiple parameters allowed.
albumIdNoThe ID of an album to unstar. Use this rather than id if the client accesses the media collection according to ID3 - tags rather than file structure. Multiple parameters allowed.
artistIdNoThe ID of an artist to unstar. Use this rather than id if the client accesses the media collection according to ID3 - tags rather than file structure. Multiple parameters allowed.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-updatePlaylist.jsp b/subsonic-site/src/main/webapp/api-updatePlaylist.jsp deleted file mode 100644 index e10856b5..00000000 --- a/subsonic-site/src/main/webapp/api-updatePlaylist.jsp +++ /dev/null @@ -1,64 +0,0 @@ -

updatePlaylist

- -

- http://your-server/rest/updatePlaylist.view -
Since 1.8.0 -

- -

- Updates a playlist. Only the owner of a playlist is allowed to update it. -

- - - - - - - - - - - - - - - - - - - - - - - - - - <%--TODO: Add later--%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - <%----%> - - - - - - - - - - - - -
ParameterRequiredDefaultComment
playlistIdYesThe playlist ID.
nameNoThe human-readable name of the playlist.
commentNoThe playlist comment.
usernameToAddNoAllow this user to listen to this playlist. Multiple parameters allowed.
usernameToRemoveNoDisallow this user to listen to this playlist. Multiple parameters allowed.
songIdToAddNoAdd this song with this ID to the playlist. Multiple parameters allowed.
songIndexToRemoveNoRemove the song at this position in the playlist. Multiple parameters allowed.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api-updateShare.jsp b/subsonic-site/src/main/webapp/api-updateShare.jsp deleted file mode 100644 index 8523ef30..00000000 --- a/subsonic-site/src/main/webapp/api-updateShare.jsp +++ /dev/null @@ -1,37 +0,0 @@ -

updateShare

-

- http://your-server/rest/updateShare.view -
Since 1.6.0 -

-

- Updates the description and/or expiration date for an existing share. -

- - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
idYesID of the share to update.
descriptionNoA user-defined description that will be displayed to people visiting the shared media.
expiresNoThe time at which the share expires. Given as milliseconds since 1970, or zero to remove the expiration.
-

- Returns an empty <subsonic-response> element on success. -

diff --git a/subsonic-site/src/main/webapp/api.jsp b/subsonic-site/src/main/webapp/api.jsp deleted file mode 100644 index ffcbf0dd..00000000 --- a/subsonic-site/src/main/webapp/api.jsp +++ /dev/null @@ -1,425 +0,0 @@ - - - -<%! String current = "api"; %> -<%@ include file="header.jsp" %> - - - - - -
-<%@ include file="menu.jsp" %> - -
-
-

Subsonic API

- -

- The Subsonic API allows anyone to build their own programs using Subsonic as the media server, whether they're - on the web, the desktop or on mobile devices. All the Subsonic apps are built using the - Subsonic API. -

-

- Feel free to join the Subsonic App Developers group - for discussions, suggestions and questions. -

- -

Introduction

- -

- The Subsonic API allows you to call methods that respond in REST style xml. - Individual methods are detailed below. -

- -

- Please note that all methods take the following parameters: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterRequiredDefaultComment
uYesThe username.
pYesThe password, either in clear text or hex-encoded with a "enc:" prefix.
vYesThe protocol version implemented by the client, i.e., the version of the - subsonic-rest-api.xsd schema used (see below).
cYesA unique string identifying the client application.
fNoxmlRequest data to be returned in this format. Supported values are "xml", "json" (since 1.4.0) - and "jsonp" (since 1.6.0). If using jsonp, specify name of javascript callback function using - a callback parameter.
- -

- For example: -

- -

- http://your-server/rest/getIndexes.view?u=joe&p=sesame&v=1.1.0&c=myapp, or
- http://your-server/rest/getIndexes.view?u=joe&p=enc:736573616d65&v=1.1.0&c=myapp -

- -

- Starting with API version 1.2.0 it is no longer necessary to send the username and password as part of the URL. - Instead, HTTP Basic authentication could be - used. - (Only preemptive authentication is supported, meaning that the credentials should be supplied by the client - without being challenged for it.) -

- -

- Note that UTF-8 should be used when sending parameters to API methods. The XML returned - will also be encoded with UTF-8. -

- -

- All methods (except those that return binary data) returns XML documents conforming to the - subsonic-rest-api.xsd schema. This schema (as well as example XML documents) can be found - at http://your-server/xsd/ -

- -

Error handling

- -

- If a method fails it will return an error code and message in an <error> element. - In addition, the status attribute of the <subsonic-response> root element - will be set to failed instead of ok. For example: -

- -
-   <?xml version="1.0" encoding="UTF-8"?>
-   <subsonic-response xmlns="http://subsonic.org/restapi"
-                      status="failed" version="1.1.0">
-       <error code="40" message="Wrong username or password"/>
-   </subsonic-response>
-            
- -

- The following error codes are defined: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeDescription
0A generic error.
10Required parameter is missing.
20Incompatible Subsonic REST protocol version. Client must upgrade.
30Incompatible Subsonic REST protocol version. Server must upgrade.
40Wrong username or password.
50User is not authorized for the given operation.
60The trial period for the Subsonic server is over. Please donate to get a license key. Visit subsonic.org for details.
70The requested data was not found.
- -

Versions

- -

- This table shows the REST API version implemented in different Subsonic versions: -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subsonic versionREST API version
4.71.8.0
4.61.7.0
4.51.6.0
4.3.11.5.0
4.21.4.0
4.11.3.0
4.01.2.0
3.91.1.1
3.81.0.0
-

- Note that a Subsonic server is backward compatible with a REST client if and only if the major version is the same, - and the minor version of the client is less than or equal to the server's. For example, if the server has - REST API version 2.2, it supports client versions 2.0, 2.1 and 2.2, but not versions 1.x, 2.3+ or 3.x. The third - part of the version number is not used to determine compatibility. -

- -

File structure vs ID3 tags

- -

- Starting with version 1.8.0, the API provides methods for accessing the media collection - organized according to ID3 tags, rather than file structure. -

-

- For instance, browsing through the collection using ID3 tags should use the getArtists, getArtist - and getAlbum methods. - To browse using file structure you would use getIndexes and getMusicDirectory. -

-

- Correspondingly, there are two sets of methods for searching, starring and album lists. Refer to the method - documentation for details. -

- -

API method documentation

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
System - ping, - getLicense -
Browsing - getMusicFolders, - getIndexes, - getMusicDirectory, - getArtists, - getArtist, - getAlbum, - getSong, - getVideos -
Album/song lists - getAlbumList, - getAlbumList2, - getRandomSongs, - getNowPlaying, - getStarred, - getStarred2 -
Searching - search, - search2, - search3 -
Playlists - getPlaylists, - getPlaylist, - createPlaylist, - updatePlaylist, - deletePlaylist -
Media retrieval - stream, - download, - getCoverArt, - getLyrics, - getAvatar -
Media annotation - star, - unstar, - setRating, - scrobble -
Sharing - getShares, - createShare, - updateShare, - deleteShare -
Podcast - getPodcasts -
Jukebox - jukeboxControl -
Chat - getChatMessages, - addChatMessage -
User management - getUser, - createUser, - deleteUser, - changePassword -
- -<%@ include file="api-ping.jsp" %> -<%@ include file="api-getLicense.jsp" %> - -<%@ include file="api-getMusicFolders.jsp" %> -<%@ include file="api-getIndexes.jsp" %> -<%@ include file="api-getMusicDirectory.jsp" %> -<%@ include file="api-getArtists.jsp" %> -<%@ include file="api-getArtist.jsp" %> -<%@ include file="api-getAlbum.jsp" %> -<%@ include file="api-getSong.jsp" %> -<%@ include file="api-getVideos.jsp" %> - -<%@ include file="api-getAlbumList.jsp" %> -<%@ include file="api-getAlbumList2.jsp" %> -<%@ include file="api-getRandomSongs.jsp" %> -<%@ include file="api-getNowPlaying.jsp" %> -<%@ include file="api-getStarred.jsp" %> -<%@ include file="api-getStarred2.jsp" %> - -<%@ include file="api-search.jsp" %> -<%@ include file="api-search2.jsp" %> -<%@ include file="api-search3.jsp" %> - -<%@ include file="api-getPlaylists.jsp" %> -<%@ include file="api-getPlaylist.jsp" %> -<%@ include file="api-createPlaylist.jsp" %> -<%@ include file="api-updatePlaylist.jsp" %> -<%@ include file="api-deletePlaylist.jsp" %> - -<%@ include file="api-stream.jsp" %> -<%@ include file="api-download.jsp" %> -<%@ include file="api-getCoverArt.jsp" %> -<%@ include file="api-getLyrics.jsp" %> -<%@ include file="api-getAvatar.jsp" %> - -<%@ include file="api-star.jsp" %> -<%@ include file="api-unstar.jsp" %> -<%@ include file="api-setRating.jsp" %> -<%@ include file="api-scrobble.jsp" %> - -<%@ include file="api-getShares.jsp" %> -<%@ include file="api-createShare.jsp" %> -<%@ include file="api-updateShare.jsp" %> -<%@ include file="api-deleteShare.jsp" %> - -<%@ include file="api-getPodcasts.jsp" %> - -<%@ include file="api-jukeboxControl.jsp" %> - -<%@ include file="api-getChatMessages.jsp" %> -<%@ include file="api-addChatMessage.jsp" %> - -<%@ include file="api-getUser.jsp" %> -<%@ include file="api-createUser.jsp" %> -<%@ include file="api-deleteUser.jsp" %> -<%@ include file="api-changePassword.jsp" %> - -
- -
- - <%@ include file="google-translate.jsp" %> - <%@ include file="donate.jsp" %> - <%@ include file="merchandise.jsp" %> - -
- -
-
-
-
-<%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/apps.jsp b/subsonic-site/src/main/webapp/apps.jsp deleted file mode 100644 index 92f13119..00000000 --- a/subsonic-site/src/main/webapp/apps.jsp +++ /dev/null @@ -1,650 +0,0 @@ -<%@ page import="java.net.URL" %> - - - -<%! String current = "apps"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Subsonic Apps

- -

Check out the steadily growing list of Subsonic apps. These provide fun and alternative ways to - enjoy your media collection - no matter where you are.

- -

On your phone

- -
- - -
- -

On your device

- -
- - -
- -

On your desktop

- -
- - -
- -

In your browser

- -
- -
- -

- Please note that most of the apps are made by third-party developers, and are not maintained by - the Subsonic project. Some apps are commercial, while some are available for free. -

-

Also note that after a 30-day trial period you need a license key to use the apps. - You get a license key by giving a donation to the Subsonic project. The license never expires and is - valid for all current and future apps. By donating you also get other benefits; see info box on the - right. -

-

- Interested in making your own Subsonic app? Check out the API. -

- -
- - -
Subsonic for Android
-
-
-

- Android - Stream music and video from your home computer to your phone. Never sync again! - All your media - anywhere, anytime! -

-

- Songs are cached for offline playback. Supports mp3, ogg, aac, flac, wma. Most video formats supported too. -

- -

- You can also use this app as a remote control for music playing on your server. -

-

- Features offline mode, adaptive bitrates, equalizer and visualizer. -

-

- Developed and maintained by Sindre Mehus, the author of Subsonic. Available - on Android Market. -

- - - - - - -
-
-
- -
- - -
iSub for iPhone/iPad
-
-
-

- App Store - iSub is an iPhone/iPad app developed by Ben Baron, and is - available for purchase on the App Store. -

- - - - -
    -
  • Full support for creating and managing on-the-go playlists.
  • -
  • Automatic full song caching for the best network performance with no music drop outs.
  • -
  • Manually cache songs (Wifi sync) to listen offline, like on an airplane.
  • -
  • Caching of all browsed directories for speedy browsing.
  • -
  • Retina display support for beautiful album art while browsing and in the player.
  • -
  • Skipping within tracks, even while they are streaming.
  • -
  • Resuming music when interrupted by a call or text or when closing the app using the home button while a song is playing.
  • -
  • Each music folder is a playlist automatically so when you select a track from an album it will continue to play the rest of the tracks in that album.
  • -
  • Shuffle, Repeat 1, and Repeat All when playing an album.
  • -
  • Detailed track information by tapping the cover art.
  • -
  • Jukebox mode to use your device as a remote control for Subsonic for listening to music around the house.
  • -
-

- Support: support@isubapp.com -

- - -
-
-
- -
- - -
Z-Subsonic for iPhone/iPad
-
-
-

- App Store - Z-Subsonic is an iPhone/iPad app developed by Olusola Abiodun, and is - available for purchase on the App Store. -

- - - - -
    -
  • Access your entire music library from anywhere on your iPhone or iPod regardless of the size of your music collection.
  • -
  • Play song formats that the iPhone/iPod will not normally play e.g. wma, flac, ogg.
  • -
  • Caches all queued songs as quickly as possible once Wi-fi connection is detected.
  • -
  • Browse and manage cached songs by artist/album. Delete entire artist/album from cache at once.
  • -
  • Delete or change song priority on the Now Playing list while songs are playing.
  • -
  • Double buffering: upcoming song starts to download before the currently playing song finishes.
  • -
  • Seeking for fully cached songs.
  • -
  • Load playlists stored on the Subsonic server.
  • -
  • Multiple server configuration.
  • -
  • Random playlist generation using entire song collection.
  • -
  • Repeat/shuffle/skip songs.
  • -
  • SSL support with prompt to authorize self-signed certificates.
  • -
  • Full caching. Z-Subsonic can be used fully disconnected with previously streamed music.
  • -
  • Favorites. -
- -

- See the video on YouTube. -

- -

- Support: helpdesk@z-subsonic.com – - Forum: http://z-subsonic.com/z-subsonic-forum -

- - - -
-
-
- -
- - -
SubStream for iPhone/iPad
-
-
-

- App Store - SubStream is an iPhone/iPad app developed by Figment Inc., and is - available free of charge on the App Store. -

- - - - - - -
-
-
- -
- - -
Hypersonic for iPhone/iPad
-
-
-

- App Store - Hypersonic is a media player built to stream music live from a Subsonic server. - With Last.fm scrobbling, high quality mode, and support to specify a local server, you can always keep your full music collection with you. -

-

- Hypersonic is developed by Josh Betz and sells for $0.99 on App Store. -

- - - - - - - -
-
-
- -
- - -
Subsonic for Windows Phone
-
-
-

- Windows Marketplace - Subsonic Music Streamer is a Windows Phone 7 app developed by Anton Van Zuylen, and is - available for purchase in the Windows Marketplace. -

- - - - -
    -
  • Always have access to your entire music collection without the need for any third party server or subscription.
  • -
  • Supports all popular formats (WMA, FLAC, MP3, AAC, OCG etc).
  • -
  • Keep listening when you have no cellular coverage due to full local storage including cover art, lyrics and info.
  • -
  • Manage your local stored music in a convenient way.
  • -
  • Control the quality of the music by controlling the streaming bit-rate.
  • -
  • Create playlists on the device which can contain songs from different servers simultaneously.
  • -
  • Add easily your newest music, your recently played albums, or your frequently played albums.
  • -
  • Add random albums.
  • -
  • Full search support.
  • -
  • Keep playing behind locked screen.
  • -
  • Full integration with the Music and Video hub.
  • -
  • Automatic storage management of local stored songs.
  • -
  • Allowing to lock specific local songs.
  • -
- -

- This application focuses on fast and easy handling with two main pages: - "Now playing" where you see and control all what is currently playing including cover art and lyrics; and - "Add to now playing" providing different methods for adding albums and songs to your playlist. - Start the application and the music is playing (just one click)! -

-

- Support: anton@avzuylen.com -

-

Go get it on the Windows Phone Marketplace!

- -
-
-
- -
- - -
SubAir
-
-
-

- Adobe AIR - SubAir is a rich desktop application for Subsonic implemented with Adobe© AIR. - Works with Windows, Mac and Linux. -

- -

- Developed and maintained by Jim Resnowski, and - provided free or charge. -

-
-
-
- -
- - -
SonicAir
-
-
-

- BlackBerry - SonicAir is a Subsonic app for the BlackBerry PlayBook. Play all sorts of video and audio, even high definition 720P MKV files. -

- - - -
    -
  • Listen to music and watch videos.
  • -
  • Control bitrate.
  • -
  • Cache lists for offline use.
  • -
  • Create and play playlists.
  • -
  • Use quick list feature to create on-the-go playlists.
  • -
  • Download songs for offline use later.
  • -
-

- Developed and maintained by Mir & Windsor Design, it's sold for $2.99 - on BlackBerry App World. -

-
-
-
- - -
- - -
Subsonos
-
-
-

- Subsonos allows Subsonic users to enjoy their entire collection by streaming over a Sonos music system. -

- - - -

- Subsonos is a translation service (or proxy) that sits between your Sonos music system and your Subsonic streaming server. - Developed by NerdyHearn, Subsonos is currently in beta. -

-
-
-
- -
- - -
Subsonic for Chumby
-
-
-

- Chumby - Introducing the Subsonic app for Chumby-powered devices. -

- - - -
    -
  • Easy to use touchscreen tabletop experience for the Subsonic server.
  • -
  • Inviting home screen randomly cycles through your music collection.
  • -
  • Full alphabetical directory browsing and integrated soft keyboard for search.
  • -
  • Play "DJ" and add albums and songs to the internal playlist while listening.
  • -
  • Quick functions like "show 30 random albums", "play 50 random songs", etc.
  • -
  • Simple and responsive navigation system.
  • -
  • Runs on most Chumby-powered devices.
  • -
  • Long-term development road map.
  • -
- -

- Subsonic for Chumby is provided free of charge by develephant. -

-
-
-
- -
- - -
SubsonicTV
-
-
-

- SubsonicTV for Roku is the perfect solution for enjoying your music & video collection on your TV. - No need to go through the hassle of uploading to the cloud and syncing your files. -

- - - -

- Developed by JNC Ventures and Musiclouds, it's available both as a free lite version and a paid premium version. -

-
-
-
- -
- - -
Subsonic Channel
-
-
-

- Subsonic Channel is an open-source Roku frontend to Subsonic. -

- - - -
    -
  • Browse your entire catalog.
  • -
  • Search for artists, albums, songs.
  • -
  • Full catalog shuffle playback.
  • -
  • Quick browse of Subsonic album lists (Random, Recent, Top Rated, etc.)
  • -
- -

- Subsonic Channel is developed by Michael Ihde and is donation-supported. -

-
-
-
- -
- - -
XO
-
-
- - -

- XO is a Subsonic app for webOS. -

- -

- Stream any music directly to your TouchPad, Pre, Pixi, or Veer. Built-in HTML5 streaming media support and player, with support for file download - and drag-and-drop playlists. XO makes streaming your music from home to wherever you are simple and fun! -

- -

- It is also available for BlackBerry PlayBook. -

-

- XO is developed by Eric Blade. -

-
-
-
- -
- - -
Submariner
-
-
-

- Submariner is a Subsonic desktop application for Mac. -

- - -

- It provides a clean user interface to manage your remote libraries and to listen your music with simplicity. - With the cache streaming and download features, you can also listen to your favorite tracks offline. -

-

- Submariner -

-
-
-
- -
- - -
Thumper
-
-
-

- Thumper is a native Subsonic client for Mac. -

- - -
    -
  • A Native Mac Application - designed on the Mac, for the Mac.
  • -
  • Local Caching of Library Information, Audio, and Album Art - reduce bandwidth and get a more responsive experience.
  • -
  • Browse Artists, Albums, and Songs.
  • -
  • Quick Artist Filter - quickly narrow your results.
  • -
  • Playlists - play, create, and delete Subsonic playlists.
  • -
  • Search - find the song you're looking for quickly.
  • -
  • Current Playlist Persistence - pickup right where you left off, even after a reboot.
  • -
  • Mac Media Key Integration - previous, play/pause, and next key support.
  • -
  • Keyboard Shortcuts - control volume, repeat, shuffle, etc. through keyboard shortcuts.
  • -
  • Last.fm Integration - songs are scrobbled as they're played.
  • -
  • Playback via QuickTime - if QuickTime can play it, so can Thumper.
  • -
  • View Random, Newest, Highest Rated, Most Frequent, and Recently Played Albums.
  • -
  • Smart Playlist Creation - get random songs narrowed by genre or year.
  • -
  • Now Playing Support - See what other users are listening to.
  • -
  • Transcoding (including FLAC) support with Subsonic 4.6 or greater.
  • -
  • Video streaming (requires proper codec to be installed, see FAQ).
  • -
-

- Requires Mac OS X 10.7 or greater. -

-

- Thumper -

-
-
-
- -
- - -
SubGadget
-
-
-

- Windows 7 - SubGadget is a Windows Sidebar Gadget for Subsonic. Works with Windows 7 and Vista. -

- -

- Developed and maintained by Scott Mark, and provided free or charge. -

-
-
-
- -
- - -
Periscope Player
-
-
-

- Windows 7 - Periscope Player is a Windows desktop application for Subsonic. -

- -

- Developed and maintained by Matt Campanile. - Available as Lite and Pro versions. Lite is completely free and is a fully functional player. Pro adds some advanced features and is $4.99. -

-
-
-
- -
- - -
SubWiji
-
-
-

- SubWiji is a Windows desktop application for Subsonic. -

- - -

Supports docking, auto-hiding, keyboard shortcuts, now playing popup, album grid viewer and much more.

-

SubWiji is made by Paul O'Dell. Free of charge, but accepts donations.

-
-
-
- -
- - -
Subclient
-
-
-

- Subclient is Java desktop client for Subsonic. -

- - -
    -
  • MPlayer-based media playback.
  • -
  • Tray icon and media keys supported.
  • -
  • Multiple Subsonic servers can be used.
  • -
  • The playlist is saved between sessions.
  • -
  • Indexes, Podcasts and Playlists fetched from Subsonic server.
  • -
  • Cover arts stored locally to improve performance.
  • -
-

Subclient is made by Alejandro Celaya Alastrué and is free of charge.

-
-
-
- -
- - -
Perisonic
-
-
-

- Perisonic is a simple - Chrome app for playing random music from Subsonic. -

- -

- Perisonic is developed by Robin Bakker and is - available free of charge. -

-
-
-
- -
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="donate.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - diff --git a/subsonic-site/src/main/webapp/banner.jsp b/subsonic-site/src/main/webapp/banner.jsp deleted file mode 100644 index bf371d93..00000000 --- a/subsonic-site/src/main/webapp/banner.jsp +++ /dev/null @@ -1,103 +0,0 @@ - - -
- -
\ No newline at end of file diff --git a/subsonic-site/src/main/webapp/changelog.jsp b/subsonic-site/src/main/webapp/changelog.jsp deleted file mode 100644 index af6d22ad..00000000 --- a/subsonic-site/src/main/webapp/changelog.jsp +++ /dev/null @@ -1,1011 +0,0 @@ - - - -<%! String current = "changelog"; %> -<%@ include file="header.jsp" %> - - - - - -
-<%@ include file="menu.jsp" %> - -
-
-

Subsonic Change Log

- -

Subsonic 4.7.beta2 - Jun 08, 2012

-
    -
  • New: Playlist import/export.
  • -
  • New: Sort albums by year.
  • -
  • New: Show album year.
  • -
  • New: Added Czech translation, courtesy of Robert Ilyk.
  • -
  • New: Better error message if file or playlist not found.
  • -
  • Bugfix: Handle media files without any tags.
  • -
  • Bugfix: Display directory name rather than album name.
  • -
  • Bugfix: Fixed genre search problem.
  • -
- -

Subsonic 4.7.beta1 - May 12, 2012

-
    -
  • New: Major rewrite of the Subsonic core. It now uses less memory and is significantly faster.
  • -
  • New: "Star" support for managing your favorite artists, albums and songs.
  • -
  • New: Much improved playlist support: private/shared playlists, improved user interface.
  • -
  • New: Added option Settings > Media folders > Fast access mode which additionally improves performance for network disks.
  • -
  • New: Show media folder scanning status.
  • -
  • New: New albums lists: Starred and All.
  • -
  • New: Use ffmpeg rather than lame for downsampling.
  • -
  • New: Added Polish translation, courtesy of Michał Kotas
  • -
  • New: Added Catalan translation, courtesy of Josep Santaló.
  • -
  • New: Added Estonian translation, courtesy of Olav Mägi.
  • -
  • New: Updated Dutch translation, courtesy of W. van der Heijden.
  • -
  • New: Updated Swedish translation, courtesy of Fritte Jensen.
  • -
  • New: Updated Catalan translation, courtesy of Josep Santalo.
  • -
  • New: Added option to reset and email forgotten password or username.
  • -
  • New: Make it configurable to run as a different user than root in Linux RPM.
  • -
  • New: Display warning if running as root user.
  • -
  • New: Avoid false alarms from Windows virus scanners.
  • -
  • Bugfix: Fixed problem with players being associated to wrong users.
  • -
  • Bugfix: Serve generic cover art if failing to scale original.
  • -
  • REST: Full support for accessing the media collection organized according to ID3 tags, rather than file structure.
  • -
  • REST: Added starring and playlist management.
  • -
  • REST: Added disc number, creation date and media type.
  • -
  • REST: Suppress content length estimation by default. Added "estimateContentLength" parameter to stream method.
  • -
  • REST: Added getAvatar method.
  • -
  • REST: Added "shareRole" to createUser
  • -
  • REST: Fixed some JSON conversion problems ("JSON does not allow non-finite numbers")
  • -
  • REST: Fixed a problem with the "u" and "p" parameters sometimes not being used if the JSESSIONID cookie is present.
  • -
  • REST: Stream method now supports HEAD requests.
  • -
  • REST: Use shorter IDs.
  • -
  • Tech: Use port 4040 by default for new Windows installs.
  • -
- -

Subsonic 4.6 - Dec 06, 2011

-
    -
  • New: Added option to resend license key.
  • -
  • New: Added AIFF support.
  • -
- -

Subsonic 4.6.beta2 - Nov 17, 2011

-
    -
  • New: Added option in Settings > Transcoding: "Enable this transcoding for all existing and new players."
  • -
  • New: Updated Slovenian translation, courtesy of Jan Jamšek.
  • -
  • New: Added Google+ button.
  • -
  • New: Automatically delete obsolete players on startup.
  • -
  • Bugfix: Jukebox now support skipping when paused.
  • -
  • Bugfix: Fixed a case where guessing the title and track number failed.
  • -
  • Bugfix: Don't estimate content-length for web players.
  • -
  • Bugfix: Album search links missing if subdirectory exists.
  • -
  • Bugfix: Fixed broken Google search link.
  • -
  • Bugfix: Remove link to lyrics. chartlyrics.com no longer exists.
  • -
  • REST: Ensure that jukebox "set" method maintains correct current index.
  • -
  • REST: Added "scrobblingEnabled" to getUser.
  • -
  • Tech: Ensure Windows uninstaller only removes program files (in case user installs to c:\subsonic).
  • -
  • Tech: Subsonic Control Panel now prompts for elevated permissions when necessary.
  • -
- -

Subsonic 4.6.beta1 - Nov 1, 2011

-
    -
  • New: Simplified and improved transcoding framework.
  • -
  • New: Improved video quality with H.264 encoding.
  • -
  • New: Reimplemented jukebox. More robust and new features.
  • -
  • New: Share on Google+.
  • -
  • New: Estimate content-length for transcoded audio.
  • -
  • New: Updated Dutch translation, courtesy of Muiz.
  • -
  • New: Updated German translation, courtesy of deejay.
  • -
  • New: Added BUUF theme, courtesy of Fractal Systems.
  • -
  • New: Added UK English translation, courtesy of Brian Aust.
  • -
  • New: Hide dock icon on Mac.
  • -
  • Bugfix: Menu broken in "Settings > Shared media" when logged in as admin.
  • -
  • Tech: Improved security in Linux packages.
  • -
  • Tech: Stronger license check.
  • -
  • Tech: Use UTF-8 when reading playlist files.
  • -
  • API: Include files in root folders.
  • -
  • API: New jukebox features.
  • -
- -

Subsonic 4.5 - Aug 6, 2011

-
    -
  • New: Updated Korean translation, courtesy of Rhetor Choi.
  • -
  • New: Updated Danish translation, courtesy of Morten Hartvich.
  • -
  • Bugfix: Clear rating now works again.
  • -
  • Bugfix: Misc fixes to share settings page.
  • -
  • Bugfix: Revert back to running as root in Debian/Ubuntu.
  • -
  • API: JSONP support
  • -
- -

Subsonic 4.5.beta2 - Jul 28, 2011

-
    -
  • New: Implemented management of shared media (expiration, removal, statistics, description).
  • -
  • New: Added more actions for selected songs in album view (Download, Add to playlist).
  • -
  • New: Added more actions for selected songs in playlist view (Share).
  • -
  • New: Subsonic service no longer running as root on Debian/Ubuntu
  • -
  • API: Added share management methods.
  • -
  • API: Added rating support.
  • -
  • Bugfix: Use guest user when streaming shared media.
  • -
  • Bugfix: Use UTF-8 in search index file.
  • -
- -

Subsonic 4.5.beta1 - Jun 12, 2011

-
    -
  • New: Twitter/Facebook integration.
  • -
  • New: Share songs and videos by sending someone a link.
  • -
  • New: Support video in external player.
  • -
  • New: Support higher video bitrates, 3000 and 5000 kbps.
  • -
  • New: Added Bulgarian translation, courtesy of Ivan Achev.
  • -
  • New: Updated Norwegian translation, courtesy of Tommy Karlsen.
  • -
  • New: Updated German translation, courtesy of deejay2302.
  • -
  • New: Support http header "Content-Range" when streaming.
  • -
  • New: Ignore "@eaDir" folders on Synology devices.
  • -
  • API: Added REST method getPodcasts.
  • -
  • API: Added REST method getShareUrl.
  • -
  • API: Added user email to REST API.
  • -
  • API: Added example XMLs to API documentation.
  • -
  • API: Encoded passwords were not decoded correctly in REST methods createUser and changePassword.
  • -
  • API: Added "format" and "size" parameters to REST method stream.
  • -
  • Bugfix: Don't include podcasts when generating random songs.
  • -
  • Bugfix: Handle whitespace in podcast urls.
  • -
  • Bugfix: Updated expired ssl cert.
  • -
  • Bugfix: Mac installer: make transcode dir executable.
  • -
- -

Subsonic 4.4 - Feb 06, 2011

-
    -
  • New: Updated Greek translation, courtesy of Constantine Samaklis.
  • -
  • New: Updated Slovenian translation, courtesy of Jan Jamšek and Marko Kastelic.
  • -
- -

Subsonic 4.4.beta1 - Jan 20, 2011

-
    -
  • New: Added https support.
  • -
  • New: Added option to open video in resizable window.
  • -
  • New: Improved search with accented characters (e.g., searching for "bartok" will match "bartók").
  • -
  • New: Added REST API method for scrobbling to last.fm.
  • -
  • New: Added Greek translation, courtesy of Constantine Samaklis.
  • -
  • Bugfix: When converting videos, always use a width that is a multiple of two.
  • -
  • Bugfix: Handle invalid pixel aspect rates (PAR) reported by ffmpeg.
  • -
  • Bugfix: Don't scrobble videos to last.fm.
  • -
  • Bugfix: Remember port number and memory settings when reinstalling on Windows.
  • -
  • Bugfix: Accessing "Newest" album list from Android sometimes caused an error.
  • -
- -

Subsonic 4.3 - Jan 7, 2011

-
    -
  • Bugfix: When switching bit rate, also jump to correct time offset.
  • -
  • Bugfix: Fixed problem with audio getting out-of-sync with video.
  • -
  • Bugfix: When converting videos, always use a width that is a multiple of two.
  • -
  • Bugfix: Fixed bug in REST method createPlaylist.
  • -
  • Bugfix: Use language settings in /etc/default/locale on Ubuntu/Debian.
  • -
- -

Subsonic 4.3.beta1 - Dec 30, 2010

-
    -
  • New: Video support! Stream video to browsers and Android 2.2+ phones.
  • -
  • New: Added Korean translation, courtesy of Choi Jong-seok.
  • -
  • New: Updated French translation, courtesy of Yoann Spicher.
  • -
- -

Subsonic 4.2 - Nov 21, 2010

-
    -
  • New: Added Portuguese translation, courtesy of Miguel Fonseca.
  • -
  • New: Updated Italian translation, courtesy of Luca Perri.
  • -
  • Bugfix: Improved searching.
  • -
  • Bugfix: Set ID3 tags when transcoding.
  • -
  • Bugfix: Fixed problem with transcoding/downsampling failing for files with non-Latin characters.
  • -
  • Bugfix: Handle transcoding/downsampling files with double quotes in filename.
  • -
  • Bugfix: Remove html markup from podcast descriptions.
  • -
  • Bugfix: Fix broken link to allmusic.
  • -
- -

Subsonic 4.2.beta1 - Nov 4, 2010

-
    -
  • New: New & improved search engine based on Lucene.
  • -
  • New: New & improved cover art search based on Google Image Search.
  • -
  • New: Mac installer now includes transcoders, courtesy of einstein2x.
  • -
  • New: Updated German translation, courtesy of deejay2302.
  • -
  • New: Improved LAME integration (preserve ID3 tags, avoid skipping in Android client).
  • -
  • New: Added new REST API method for searching.
  • -
  • Bugfix: Fixed bug in startup script in standalone Subsonic (readlink).
  • -
- -

Subsonic 4.1 - Sep 10, 2010

-
    -
  • New: Updated Danish translation, courtesy of Morten Hartvich.
  • -
  • Bugfix: Exclude dot files in cover art search.
  • -
- -

Subsonic 4.1.beta1 - Aug 21, 2010

-
    -
  • New: Support automatic port forwarding on Airport Extreme/Express.
  • -
  • New: Improved tray/application/fav icons.
  • -
  • New: New and updated themes.
  • -
  • New: Improved Mac control panel.
  • -
  • New: Added REST API methods getUser and deleteUser.
  • -
  • New: Added Traditional Chinese translation, courtesy of Cheng Jen Li.
  • -
  • New: Updated French translation, courtesy of Christophe.
  • -
  • Bugfix: Fixed chat feature when deploying Subsonic on Tomcat.
  • -
  • Bugfix: Proper lookup of local IP on Linux.
  • -
  • Bugfix: Support html5 (return correct content type and length).
  • -
  • Performance: Faster coverart lookup.
  • -
  • Tech: Upgraded to LAME 3.98.4.
  • -
- -

Subsonic 4.0.1 - May 13, 2010

-
    -
  • Bugfix: Fixed broken cover art download.
  • -
  • Bugfix: Fixed broken m4a transcoding.
  • -
  • Bugfix: Fixed broken quick links in artist frame for some new themes.
  • -
- -

Subsonic 4.0 - May 12, 2010

-
    -
  • New: Added REST API method for deleting playlists.
  • -
  • Bugfix: Use UTF-8 encoding when creating M3U playlists.
  • -
  • Security: Network and cover art settings require admin role.
  • -
- -

Subsonic 4.0.beta2 - May 05, 2010

-
    -
  • New: Added themes Slick, High Contrast, High Contrast (Inverted) and High-Tech, courtesy of Fisher Evans.
  • -
  • New: Added themes Simplify, PinkPanther and Denim, courtesy of Thomas Bruce Dyrud.
  • -
  • New: Updated Danish translation, courtesy of Morten Hartvich.
  • -
  • Bugfix: User statistics for streamed data was too high.
  • -
  • Bugfix: Proper ordering songs on multi-disc albums.
  • -
  • Bugfix: Read tags from AAC files.
  • -
  • Bugfix: Fixed errors with chat feature.
  • -
  • Bugfix: More robust tag parsing and editing.
  • -
  • Bugfix: Removed "Settings > General > Video mask" that was added by mistake.
  • -
- -

Subsonic 4.0.beta1 - Apr 23, 2010

-
    -
  • New: New version of the Subsonic API with many new methods to be used by Subsonic apps.
  • -
  • New: New, simpler transcoder pack with ffmpeg and lame.
  • -
  • New: Improved usability of Settings > Network.
  • -
  • New: Added option to clear chat messages.
  • -
  • New: Added Monochrome themes, courtesy of David D.
  • -
  • New: Added Groove themes, courtesy of Thomas Bruce Dyrud.
  • -
  • New: Updated German translation, courtesy of deejay2302.
  • -
  • New: Updated Finnish translation, courtesy of Reijo Jäärni.
  • -
  • New: Updated Slovenian translation, courtesy of Andrej Žižmond.
  • -
  • New: Made user statistics graphs logarithmic.
  • -
  • New: Truncate long genre names in "More" page.
  • -
  • New: Improved year selection in "More" page.
  • -
  • New: Automatically exclude all hidden files and directories (those starting with ".")
  • -
  • Bugfix: Fixed native playback of AAC in Flash player.
  • -
  • Bugfix: Make Flash player work on Linux.
  • -
  • Bugfix: Fixed bug in coverart batch.
  • -
  • Bugfix: Fixed album link to last.fm.
  • -
  • Bugfix: Improved stability of lyrics lookup.
  • -
  • Tech: Replaced tag library with Jaudiotagger.
  • -
  • Tech: Compress html pages with gzip.
  • -
  • Tech: Changed default Java memory limit to 100 MB.
  • -
- -

Subsonic 3.9 - Feb 12, 2010

-
    -
  • New: Added link to SubAir in "More" page.
  • -
  • New: Make yourname.subsonic.org addresses also work within LANs.
  • -
  • Bugfix: Don't look for UPnP routers if port forwarding is disabled.
  • -
- -

Subsonic 3.9.beta1 - Jan 28, 2010

-
    -
  • New: Automatically configure port forwarding for compatible routers.
  • -
  • New: Access your server using an easy-to-remember address: yourname.subsonic.org
  • -
  • New: Added "Getting started" page for basic setup.
  • -
  • New: Cover art batch download, courtesy of Christian Nedregård.
  • -
  • New: Improved relevance for top hits in cover art search, courtesy of Christian Nedregård.
  • -
  • New: Added Polish translation, courtesy of Michał Kotas
  • -
  • New: Added Icelandic translation, courtesy of DJ Danni.
  • -
  • New: Updated Finnish translation, courtesy of Reijo Jäärni.
  • -
  • New: Updated Russian translation, courtesy of Anton Khoruzhy.
  • -
  • New: Reversed order of chat log, showing newest messages first.
  • -
  • New: Added API method to change password.
  • -
  • New: Discontinued Subsonic JME client.
  • -
  • Bugfix: Avoid setting incorrect content length when transcoding or downsampling.
  • -
  • Bugfix: Fixed lyrics lookup. Now uses chartlyrics.com which provides a stable API.
  • -
  • Bugfix: Fixed "Not in GZIP format" error in Discogs cover image search, courtesy of Christian Nedregård.
  • -
  • Bugfix: Sort list of saved playlists.
  • -
  • Bugfix: Home > Newest now sorts by creation date, not modification date.
  • -
  • Bugfix: Hide donate button when license is valid.
  • -
- -

Subsonic 3.8 - Oct 23, 2009

-
    -
  • New: (Android) Downloaded songs can now be played directly from the Subsonic app.
  • -
  • New: (Android) New feature: Download + Play.
  • -
  • New: (Android) New feature: Search.
  • -
  • New: (Android) New feature: Load playlist.
  • -
  • New: (Android) New feature: Delete from phone.
  • -
  • New: (Android) New feature: Check for software update.
  • -
  • New: (Android) Nicer song listing.
  • -
  • New: (Android) More informative error message when not connected.
  • -
  • New: (Android) Show artist shortcuts.
  • -
  • New: Added option to disable chat messages.
  • -
  • New: Delete chat entries more than seven days old.
  • -
  • New: Documented error codes in REST API.
  • -
  • New: Updated Swedish translation, courtesy of Fritte.
  • -
  • New: Updated German translation, courtesy of deejay2302 and Radon.
  • -
  • Bugfix: Fixed wrong background color in More page.
  • -
- -

Subsonic 3.8.beta1 - Oct 02, 2009

-
    -
  • New: Implemented Subsonic client for Android phones.
  • -
  • New: Added chat.
  • -
  • New: Added REST API for third party applications.
  • -
  • New: Support playlist repeat in web player.
  • -
  • New: Jukebox now support WAV format (including FLAC > WAV transcoding).
  • -
  • New: Updated to Last.fm submission protocol version 1.2.1, with support for "Now playing".
  • -
  • New: Updated Dutch translation, courtesy of Sander van der Grind and Jeremy Terpstra.
  • -
  • New: Updated Slovenian translation, courtesy of Andrej Žižmond
  • -
  • New: Improved French translation, courtesy of Raphaël Boulcourt.
  • -
  • New: Improved German translation, courtesy of 3R3.
  • -
  • New: Added Finnish translation, courtesy of Reijo Jäärni
  • -
  • Bugfix: Subsonic server doesn't require an internet connection during startup.
  • -
  • Bugfix: Avoid problems when upgrading stand-alone version.
  • -
  • Bugfix: Repeat now works properly in jukebox mode.
  • -
  • Bugfix: Looks nicer in Chrome.
  • -
  • Bugfix: Usernames can now contain white spaces and international characters.
  • -
  • Bugfix: Allow alternate date format in Podcast episodes.
  • -
  • Bugfix: Fixed broken Discogs image search.
  • -
  • Security: IP addresses are no longer displayed in the log or the status view.
  • -
- -

Subsonic 3.7 - Jun 22, 2009

-
    -
  • New: Default search option is now to search both title, album and artist.
  • -
  • New: Customizable default music, playlist and podcast folders in support of Amahi Home Server.
  • -
  • New: Added configurable message in login page.
  • -
  • Bugfix: Fixed broken WAR version.
  • -
  • Bugfix: Fixed broken tag editor.
  • -
  • Bugfix: Fixed broken upload progress bar.
  • -
  • Bugfix: Automatically start web player when clicking play on artist, album or song.
  • -
  • Bugfix: Fixed problem with "Random album" page being initially empty.
  • -
  • Bugfix: Added some padding above player toolbar.
  • -
  • Bugfix: Playlist combobox option disabling broken in IE8.
  • -
  • Security: Don't show full file paths in "Status" and "Help" pages.
  • -
- -

Subsonic 3.7.beta1 - May 08, 2009

-
    -
  • New: Jukebox support. Plays music directly on the server's audio hardware.
  • -
  • New: Improved search feature. (Paging, album/artist search fields.)
  • -
  • New: Added buttons for next/previous track in web player.
  • -
  • New: Support for artist-level comments.
  • -
  • New: Added new authorization role "User is allowed to change settings and password" in support for guest users.
  • -
  • New: Added theme "Cool and Clean", courtesy of Dan Eriksen.
  • -
  • New: Added theme "Midnight Fun", courtesy of Don Pearson.
  • -
  • New: Added Slovenian translation, courtesy of Andrej Žižmond.
  • -
  • New: Added Danish translation, courtesy of Morten Hartvich
  • -
  • New: Added Japanese translation, courtesy of Takahiro Suzuki.
  • -
  • New: Updated Norwegian translation, courtesy of jigsaw.
  • -
  • New: Updated Swedish translation, courtesy of Fredrik Leufkens.
  • -
  • New: Show online help as balloon tooltip.
  • -
  • New: Player is always visible in playlist, even when scrolling.
  • -
  • New: Removed frame borders.
  • -
  • New: Don't show player username or IP address in playlist.
  • -
  • New: Automatically trim text fields when entering email address and license key.
  • -
  • New: Added advanced option to bind Subsonic to a particular IP address. (More)
  • -
  • New: Improved subsonic.sh startup script.
  • -
  • New: Automatically add Windows Firewall exceptions during install. (More)
  • -
  • Performance: Improved browser and server caching of artist list. (More)
  • -
  • Performance: Only poll for service status if Subsonic Control Panel is opened. (More)
  • -
  • Bugfix: Web player now displays correct duration for transcoded tracks.
  • -
  • Bugfix: Sticky artist index now works in IE.
  • -
  • Bugfix: Discogs image retrieval now works again.
  • -
  • Bugfix: Now works behind SSL proxy. (More)
  • -
  • Bugfix: Missing album art for artists in multiple folders. (More)
  • -
  • Bugfix: Wrong player selected if different users access Subsonic from the same browser instance.
  • -
  • Bugfix: Wrong repeat state displayed in playlist.
  • -
  • Bugfix: Stop web player when playlist is cleared.
  • -
  • Bugfix: Lyrics lookup working again.
  • -
  • Bugfix: Support quotes in Podcast names. (More)
  • -
  • Bugfix: Fixed IE layout problem in top frame.
  • -
- -

Subsonic 3.6 - Feb 01, 2009

-
    -
  • Security: For improved security, only transcoders installed in SUBSONIC_HOME/transcode are allowed to be executed. This includes LAME downsampling.
  • -
  • New: Added Swedish translation by Jörgen Sjöberg.
  • -
  • New: Added two new locales, "English (United States)" and "English (United Kingdom)". The only difference currently is the date format.
  • -
  • New: Change tray icon if Subsonic server isn't running.
  • -
  • Bugfix: Make new Flash player work if Subsonic is behind proxy.
  • -
  • Bugfix: Fixed problem where server in some cases came to a state where streaming is refused.
  • -
  • Bugfix: Support download and streaming of files larger than 2 GB.
  • -
  • Bugfix: Use UTF-8 when generating m3u playlist.
  • -
  • Bugfix: Main frame now correctly switches to the currently playing album.
  • -
  • Bugfix: Show currently playing icon for all player types.
  • -
- -

Subsonic 3.6.beta2 - Jan 13, 2009

-
    -
  • New: Updated French translation. (Thanks to sheridan).
  • -
  • New: Improved subsonic.sh startup script.
  • -
  • Bugfix: New Flash player now works in Linux browsers. (Thanks to zeekay).
  • -
  • Bugfix: Fixed bug introduced in 3.6.beta1 causing streams to be killed repeatedly.
  • -
  • Bugfix: Show proper error message if user is not authorized to perform an operation.
  • -
  • Bugfix: Removing welcome title/subtitle/message doesn't work.
  • -
  • Bugfix: Welcome message too wide in IE.
  • -
  • Bugfix: Flash player doesn't work with Italian locale.
  • -
  • Bugfix: Disable "Play more random songs when end of playlist is reached" if Flash player.
  • -
  • Tech: Embedded player now requires Flash plugin 9.0.0 or later, not 9.0.115 or later.
  • -
- -

Subsonic 3.6.beta1 - Jan 05, 2009

-
    -
  • New: Much improved embedded Flash player.
  • -
  • New: Playlist is now Ajax-enabled, for a smoother user experience.
  • -
  • New: Configurable Welcome title, subtitle and message in home page. Uses wiki notation.
  • -
  • New: Fade-in effect for cover art images.
  • -
  • New: Option to append selected tracks to previously saved playlist.
  • -
  • New: Random play on artist/album level.
  • -
  • New: New agent/service architecture. Tray icon should now (finally) work on Vista.
  • -
  • New: From the Subsonic Control Panel you can now see the Windows service status, and start/stop the Subsonic service.
  • -
  • New: Display "Now playing" for up to an hour, including idle time.
  • -
  • New: Enable transcoders on first-time Windows install (since they are now bundled).
  • -
  • New: Added Cancel buttons to all settings pages.
  • -
  • New: Created subsonic.bat
  • -
  • New: Changed license to GPLv3.
  • -
  • New: Hide music library statistics if unavailable.
  • -
  • Bugfix: Fixed broken lyrics lookup (again).
  • -
  • Bugfix: Avoid ugly line breaks in IE.
  • -
  • Tech: Java 6 or later is now required for Windows installer version.
  • -
- -

Subsonic 3.5 - Nov 09, 2008

-
    -
  • New: New Subsonic logo (thanks to Concept211).
  • -
  • New: Added Italian translation (thanks to Michele Petrecca). -
  • New: Smooth scrolling in jump list.
  • -
  • New: Updated AAC decoder (faad.exe) in transcoder pack.
  • -
  • New: Added OS to about page.
  • -
  • New: Changed license to Creative Commons Noncommercial.
  • -
  • Bugfix: Added start menu item "Settings" as work-around for missing tray icon in Vista.
  • -
  • Bugfix: Fixed caching problem in Opera. (More)
  • -
  • Bugfix: Improved Windows installer. (More)
  • -
  • Bugfix: Fixed typos in several translations.
  • -
- -

Subsonic 3.5.beta2 - Sep 23, 2008

-
    -
  • New: Fancy cover art zoom.
  • -
  • New: Remove artist name from album name.
  • -
  • New: Transcoding pack is now included in Windows installer.
  • -
  • New: Updated German translation (thanks to Jörg Frommann) and Norwegian translation - (thanks to jigsaw). -
  • -
  • New: Added French translation (thanks to JohnDillinger). -
  • New: Added Ripserver theme.
  • -
  • Bugfix: Streaming to mobile phones now works better.
  • -
  • Bugfix: Made tray icon work on Vista (requires Java 6 or later).
  • -
  • Bugfix: Disable random playlist functionality if user is not authorized to play - music. -
  • -
  • Tech: Build number is now identical to Subversion revision.
  • -
- -

Subsonic 3.5.beta1 - Jul 10, 2008

-
    -
  • New: Implemented music player for Java-enabled mobile phones. - (More) -
  • -
  • New: Support for personal images (avatars).
  • -
  • New: Support "read-only" view. - (More) -
  • -
  • New: Simplified user interface in settings pages. Now only one "Save" button.
  • -
  • New: Improved usability of coverart search page. Now also searches discogs.com.
  • -
  • New: Merge artists with same name, but located in different music folders.
  • -
  • New: Added option "Let others see what I am playing"
  • -
  • New: Added option "Always use web player". - (More) -
  • -
  • New: Nicer controls in modern browsers (Opera 9.5, Firefox 3, IE 7).
  • -
  • Bugfix: Lots of extra players are no longer created.
  • -
  • Bugfix: Fix minor bug with letter appearing if only file (not directory) exists. - (More) -
  • -
  • Bugfix: Make standalone version work on Linux without X11 server.
  • -
  • Bugfix: Make lyrics work again. - (More) -
  • -
  • Bugfix: Proper sorting of "The" artists. - (More) -
  • -
  • Bugfix: Make source release build.
  • -
- -

Subsonic 3.4 - Apr 27, 2008

-
    -
  • New: Added optional setting for LDAP bind DN and password.
  • -
  • New: Added quick links to Google, Wikipedia, allmusic and Last.fm.
  • -
  • New: Added standalone installation option.
  • -
  • Bugfix: Fixed layout problems in Podcast page.
  • -
  • Bugfix: Clean up partially downloaded Podcast episodes at start-up.
  • -
  • Bugfix: Old Podcast episodes were in some cases not deleted.
  • -
- -

Subsonic 3.4.beta1 - Mar 28, 2008

-
    -
  • New: Added support for user authentication in LDAP, including Microsoft Active - Directory. -
  • -
  • New: Implemented "Party mode" with a simpler user interface.
  • -
  • New: Added option to specify music folder in "Random playlist".
  • -
  • New: Added option "Play more random songs when end of playlist is reached" in "Random - playlist". -
  • -
  • New: Implemented download option in WAP interface.
  • -
  • New: Implemented random playlist option in WAP interface.
  • -
  • New: Make index always visible (doesn't work in IE).
  • -
  • New: Added play/add/download buttons for songs in left frame.
  • -
  • New: Suggest track number in tag editor.
  • -
  • Bugfix: Fixed faulty layout in main frame.
  • -
  • Bugfix: Fixed caching bug of left frame (when changing theme etc).
  • -
  • Bugfix: "Highest rated" now also shows albums that have never been played.
  • -
  • Bugfix: Player selection in WAP interface now works.
  • -
  • Bugfix: Support quotes in search field and shortcut field.
  • -
  • Bugfix: Don't display track number zero.
  • -
  • Tech: Faster start-up on Windows. Extract war file to SUBSONIC_HOME/jetty instead of - temp directory. -
  • -
  • Tech: Made it possible to run the Jetty version on Linux and other platforms.
  • -
  • Tech: Allow up to one week of idle time in Jetty.
  • -
- -

Subsonic 3.3 - Dec 23, 2007

-
    -
  • New: Added "HD-720" and "Barents Sea" themes.
  • -
  • New: Improved layout of left and main frame.
  • -
  • New: Sort genres in "Edit tags".
  • -
  • Bugfix: Make transcoding work when combined with client-side playlist.
  • -
  • Bugfix: Case-insensitive sorting of artists.
  • -
  • Bugfix: Made genre parsing more robust.
  • -
  • Tech: Upgraded to Acegi 1.0.5
  • -
  • Tech: Upgraded to Spring 2.5
  • -
  • Tech: Make it compile with Java 5.
  • -
- -

Subsonic 3.3.beta1 - Nov 23, 2007

-
    -
  • New: Implemented client-side playlists, including random skipping within songs - (see Settings > Players > Playlist is managed by player). -
  • -
  • New: Support resumable downloads.
  • -
  • New: Rewrite stream URL if Subsonic is behind a proxy.
  • -
  • New: Added two new themes designed for large HD screens.
  • -
  • New: Added Russian translation by Iaroslav Andrusiak.
  • -
  • New: Made it possible to collapse/expand Podcast episodes. Improved layout and - usability. -
  • -
  • New: Added "Play on phone" option to wap interface.
  • -
  • New: Auto-focus on username field in login page.
  • -
  • New: Created new settings categories "Advanced" and "Personal".
  • -
  • New: Moved index from top to left frame.
  • -
  • Bugfix: Support Podcast folder that is located outside music folder.
  • -
  • Bugfix: Handle track number on the form "3/12"
  • -
  • Bugfix: Fixed concurrency bug when rendering wiki markup.
  • -
- -

Subsonic 3.2 - Oct 09, 2007

-
    -
  • New: Added support for editing genre in ID3 tags.
  • -
  • New: Show miniature album images in "Now playing" sidebar.
  • -
  • Bugfix: Handle podcasts with colons in the name.
  • -
  • Bugfix: Handle podcasts without enclosures.
  • -
  • Bugfix: Handle song, album and artist names with special characters (<, > etc) -
  • -
- -

Subsonic 3.2.beta1 - Sep 19, 2007

-
    -
  • New: Download Podcasts with the new integrated Podcast receiver.
  • -
  • New: One-click installation with the new Windows installer.
  • -
  • New: Fetch lyrics automatically from www.metrolyrics.com.
  • -
  • New: See what others are playing in the new "Now playing" sidebar.
  • -
  • New: Play music directly in the browser with the new integrated Flash-based player. -
  • -
  • New: New tag engine (entagged.sourceforge.net) supports tags in a lot of formats - (mp3, ogg, flac, wav, wma, - etc). -
  • -
  • New: Added confirmation dialog when deleting playlists.
  • -
  • New: Remember selected music folder (in left frame) across sessions.
  • -
  • Bugfix: Fixed bug with rendering multiple status charts concurrently.
  • -
  • Tech: Added db admin tool.
  • -
- -

Subsonic 3.1 - Jul 30, 2007

-

(No changes since 3.1.beta2)

- -

Subsonic 3.1.beta2 - Jul 23, 2007

-
    -
  • New: Optimized scanning of music folders. Dramatic improvement for network disks. -
  • -
  • Bugfix: Fixed minor concurrency bug in search index creation.
  • -
  • Bugfix: Make cache work if clocks on remote disks are out of sync.
  • -
  • Bugfix: Ensure that cover art images are ordered alphabetically.
  • -
  • Bugfix: Remove nag message for licensed users.
  • -
- -

Subsonic 3.1.beta1 - Jun 30, 2007

-
    -
  • New: Added checkboxes to songs in playlist, with option to perform operations on all - selected songs. -
  • -
  • New: Now possible to specify genre and decade when generating random playlist.
  • -
  • New: Added menu option to sort playlist by track, album or artist.
  • -
  • New: Audioscrobbling is now more fault-tolerant. Will retry if Last.fm is down.
  • -
  • New: Replaced Google ads with a donation request message. Donors will not see the - message. -
  • -
  • New: Added new attribute "default" to transcodings. When "default" is true, the - transcoding is automatically activated for new players. -
  • -
  • New: Implemented support for browser caching of left frame (with artist list).
  • -
  • New: Made downsampling command configurable.
  • -
  • New: Switch to "Now playing" after 3 minutes of inactivity.
  • -
  • New: Album page now has link to artist.
  • -
  • Bugfix: Logically delete/undelete metadata for albums that disappear/reappear on - disk. -
  • -
  • Bugfix: Fixed ugly checkboxes in IE.
  • -
- -

Subsonic 3.0 - Mar 22, 2007

-
    -
  • New: Added Google ads.
  • -
  • Tech: Upgraded jvorbiscomment - library. -
  • -
  • Bugfix: Artists from different music folders are now properly sorted.
  • -
- -

Subsonic 3.0.beta2 - Feb 24, 2007

-
    -
  • New: Added per-user bitrate limit.
  • -
  • New: Show error message in browser if Subsonic home can't be created.
  • -
  • Bugfix: Fixed remaining bugs (hopefully) related to folders with non-latin - characters. -
  • -
  • Bugfix: Zooming of ID3 cover art now works.
  • -
  • Bugfix: last.fm password must no longer be entered every time.
  • -
- -

Subsonic 3.0.beta1 - Feb 04, 2007

-
    -
  • New: Audioscrobbling support. Automatically register what you're playing on last.fm. -
  • -
  • New: Support display and editing of OGG Vorbis tags.
  • -
  • New: Display cover art embedded in ID3 tags.
  • -
  • New: Dutch translation by Ronald Knot.
  • -
  • New: Links to previous/next album by same artist.
  • -
  • New: Change tab order in login screen.
  • -
  • Bugfix: Support directory names with non-latin characters.
  • -
  • Bugfix: Fixed ampersand bug in wap interface.
  • -
  • Bugfix: Display hours for very long tracks.
  • -
  • Tech: Upgraded Spring and Acegi to latest versions.
  • -
- -

Subsonic 2.9 - Nov 13, 2006

-
    -
  • New: Added German translation by Harald Weiss.
  • -
  • New: Show server version and memory usage in help page.
  • -
  • Bugfix: Don't hang if unable to resolve latest version number.
  • -
  • Bugfix: Avoid duplicates in random album page.
  • -
  • Bugfix: More robust ID3 parsing.
  • -
  • Bugfix: More robust thumbnail scaling.
  • -
  • Bugfix: Fixed bug which in some cases made it impossible to restart streams.
  • -
  • Bugfix: Improve track number removal from title.
  • -
- -

Subsonic 2.9.beta1 - Oct 16, 2006

-
    -
  • Bugfix: Avoid excessive disk and memory usage when (re)scanning the music library - (bug introduced in 2.8). -
  • -
  • Bugfix: Avoid flickering PNG images in IE.
  • -
  • New: Improved thumbnail quality using step-wise bilinear resampling.
  • -
  • New: Thumbnails are now cached in SUBSONIC_HOME/thumbs. Expect significant speed-ups - (after a while), in particular for huge images. -
  • -
  • New: Improved search speed by a factor of two.
  • -
  • New: Miscellaneous other caching mechanisms for faster response times.
  • -
  • New: Support Wiki markup in album comments.
  • -
  • New: Added "Download" menu option to main album view.
  • -
  • New: Ratings are now per-user. Average rating is also displayed.
  • -
  • New: Now possible to delete rating (for current user).
  • -
  • New: Added Spanish translation by Jorge Bueno Magdalena. Gracias, Jorge!
  • -
  • New: New Subsonic logo.
  • -
  • New: Keep bitrate statistics even if player reconnects.
  • -
  • New: Support editing of track numbers in ID3 tags.
  • -
  • New: Show full file name as tool tip in ID3 tag editor.
  • -
  • New: Search results are now better sorted.
  • -
- -

Subsonic 2.8 - Sep 07, 2006

-
    -
  • New: Added option for transcoders to obey the player max bitrate setting.
  • -
  • New: Sort songs by track number.
  • -
  • New: Added transcoding support for Shorten and WavPack.
  • -
  • New: Improved caching of cover art images in browser.
  • -
  • New: Scroller color in Sandstorm theme.
  • -
  • New: Updated Norwegian translation.
  • -
  • New: Added Simplified Chinese translation by Neil Gao (currently incomplete).
  • -
  • Bugfix: Fixed performance problem with "Home" page.
  • -
  • Bugfix: Fixed broken wap interface.
  • -
  • Bugfix: Fixed playlist autoscroll.
  • -
  • Bugfix: Proper rendering of directories with both files and sub-directories.
  • -
- -

Subsonic 2.8.beta1 - Aug 13, 2006

-
    -
  • New: Transcoding plugin framework.
  • -
  • New: VBR (variable bitrate) detection and resampling.
  • -
  • New: Added form-based login with remember-me.
  • -
  • New: Added logout option.
  • -
  • New: Support per-user language and theme.
  • -
  • New: Show track number, genre, format, duration and file size.
  • -
  • New: Configurable level of song details.
  • -
  • New: Various artists detection.
  • -
  • New: Added option to stream over plain HTTP when using SSL.
  • -
  • New: Mouseover tooltip for truncated text and cover art images.
  • -
  • New: Optional notification of new final and beta releases.
  • -
  • New: Nicer error page.
  • -
  • New: Added "Back in black" and "Sandstorm" themes.
  • -
  • New: Exclude files and folders listed in "subsonic_exclude.txt"
  • -
  • Tech: New security implementation based on Acegi (http://acegisecurity.org/)
  • -
  • Tech: Springified WAP pages and servlets.
  • -
  • Tech: Springified DWR.
  • -
  • Tech: Springified DAO's and data source.
  • -
- -

Subsonic 2.7 - Jun 12, 2006

-
    -
  • Tech: Subsonic was completely rewritten to use the Spring MVC framework.
  • -
  • New: Theme support. Now ships with two themes, "Subsonic Default" and "2 minutes to - midnight". Theme authors are encouraged to contribute. -
  • -
  • New: Ajax-based ID3 tag editor.
  • -
  • New: Cover art 3D effect and popup. (3D effect not available in Internet Explorer). -
  • -
  • New: Added options to limit bandwidth for downloads and uploads.
  • -
  • New: Added progress bar to upload page.
  • -
  • New: Show upload (as well as download and streaming) charts in status page.
  • -
  • New: Added option to configure shortcuts to certain folders.
  • -
  • New: Rating where you can see how much each user has uploaded/downloaded/streamed. -
  • -
  • New: Nicer layout and graphics.
  • -
  • New: Added option to download playlists, both current and previously saved ones.
  • -
  • New: Now logs to c:/subsonic/subsonic.log (Windows) or /var/subsonic/subsonic.log - (other platforms). -
  • -
  • New: Support symbolic links on Unix.
  • -
  • New: Support XSPF playlist format.
  • -
  • New: Create backup of old image file when changing cover art.
  • -
  • Bugfix: Avoid wrapped lines if browser window is small.
  • -
  • Bugfix: Use proper Y-range in bandwidth charts.
  • -
  • Bugfix: Integer overflow in search index creation interval.
  • -
  • Bugfix: Some Amazon search didn't show any results.
  • -
  • Bugfix: Now possible to change cover art even if original file is write protected - (Windows only). -
  • -
- -

Subsonic 2.6 - Mar 10, 2006

-
    -
  • New: Nicer layout, colors and icons. Customizable welcome message. Option to limit - number of cover art images to display. -
  • -
  • New: You can now specify multiple media folders in the configuration. - This is useful, for example, if you have your music on multiple disks, or if you have one - directory with music, and another with movies. The index (on the left-hand side) can either show all - media folders (merged alphabetically), or you can select from a combo box which folder to display. -
  • -
  • New: Assign ratings (one to five stars) and comments to individual albums.
  • -
  • New: There is a new welcome page, displaying lists of random albums, newest albums, - highest rated albums, most often played albums and most recently played albums. -
  • -
  • New: You can configure a set of links to Internet TV and radio stations. These links - become available in the index on the left-hand side. Click on a link, and your player connects to the station. -
  • -
  • New: Saved playlists are now available as Podcasts (available from the "More" page). -
  • -
  • New: Improved player management. Support multiple players with the same IP address, - and players with dynamic IP addresses. Display player type (e.g., WinAmp) and last-seen date. -
  • -
  • New: Macedonian translation by Stefan Ivanovski.
  • -
  • New: Implemented support for non-Latin character encodings (for instance Japanese or - Cyrillic). -
  • -
  • New: Added option to load a previously saved playlist in the WAP interface.
  • -
  • New: "Album Info" now integrates with Google Music.
  • -
  • New: Avoid unnecessary reloading of the playlist window.
  • -
  • Bugfix: Fallback to file name if ID3 tags are present but empty.
  • -
  • Bugfix: LAME now works on Linux.
  • -
  • Bugfix: Solved problem with playlist autoscroll on rearrange.
  • -
  • Bugfix: Clicking index in top frame sometimes caused reloading of left frame.
  • -
- -

Subsonic 2.5 - Nov 25, 2005

-
    -
  • New: Implemented user management. Users are easily created, deleted and assigned - different privileges. -
  • -
  • New: Faster song switching. Players react immediately to playlist changes.
  • -
  • New: Now possible to refine search for cover art and album info.
  • -
  • New: Better support for OGG, AAC and other formats. Added proper suffix to stream URL - as a hint to the player.
  • -
  • New: Display media library statistics.
  • -
  • New: New location for preferences, search index and database (c:\subsonic or - /var/subsonic). -
  • -
  • Bugfix: Improved parsing of MP3 tags. Avoid funny characters in artist, album and - song title. -
  • -
- -

Subsonic 2.4 - Oct 10, 2005

-
    -
  • New: Download cover art and album info from Amazon web service.
  • -
  • New: Show selection of random albums on welcome page.
  • -
  • New: Display notice if LAME is not installed.
  • -
  • Bugfix: Allow max one stream per player.
  • -
  • Bugfix: Use user-wide (not system-wide) preferences on non-Windows platforms.
  • -
- -

Subsonic 2.3 - May 28, 2005

-
    -
  • New: Full internationalization support.
  • -
  • New: Automatic update of search index at specified intervals.
  • -
  • New: Search is now more like Google.
  • -
  • New: Updating search index is now a lot faster (30 seconds for 18000 songs).
  • -
  • New: Unique playlist "undo" function.
  • -
  • New: "Now Playing" automatically refreshes when a new album is played.
  • -
  • New: Ongoing downloads are now displayed in the status page, with charts showing - download speed. -
  • -
  • New: Some improvements in zip functionality.
  • -
  • New: Significantly improved accuracy in charts.
  • -
  • New: Better support for non-ASCII characters in SHOUTcast.
  • -
  • New: No longer necessary to enter username and password in player.
  • -
  • New: Support for "ignored articles".
  • -
  • New: Show log in help page.
  • -
- -

Subsonic 2.2 - March 17, 2005

-
    -
  • New: Implemented SHOUTcast support.
  • -
  • New: Added "Album info" which links to reviews etc at allmusic.com.
  • -
  • New: Support for uploading files from the browser to the Subsonic server. Zip-files - are automatically unpacked. -
  • -
  • New: Improved usability in search interface.
  • -
  • New: Option to specify http://yourhostname/stream/file.ogg etc.
  • -
  • Bugfix: Detect zero-terminated strings in ID3 tags.
  • -
  • Bugfix: Use ID3v2 tags instead of ID3v1, if both are present.
  • -
- -

Subsonic 2.1 - March 8, 2005

-
    -
  • New: Added more search options.
  • -
  • New: Added support for downloading an entire directory structure as a zip file.
  • -
  • New: Subsonic now parses song titles, artists and albums from ID3 tags.
  • -
  • New: Settings for cover art size and max bitrate can now be set for individual - players. -
  • -
  • New: Search index is now generated in the background.
  • -
  • New: Keep position in playlist frame (e.g., always show the currently playing track). -
  • -
  • Bugfix: Some minor bug fixes.
  • -
- -

Subsonic 2.0 - February 27, 2005

-
    -
  • New: Added WAP interface for controlling Subsonic from a mobile phone or PDA.
  • -
  • New: Added option to generate a random playlist.
  • -
  • New: Added option to download and save individual songs.
  • -
  • New: Subsonic now alerts users if a new version is available.
  • -
  • New: Improved documentation and usability.
  • -
  • New: ANT support.
  • -
- -

Subsonic 1.0 - February 10, 2005

-
    -
  • New: Added chart for displaying bitrates last few minutes.
  • -
  • New: Implemented transcoding to lower bitrates.
  • -
  • New: Added online help.
  • -
  • New: Support PLS and M3U playlists.
  • -
- -

Subsonic 0.1 - December 14, 2004

-
    -
  • Initial release.
  • -
- -
- - - -
-
-
-
-<%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/demo.jsp b/subsonic-site/src/main/webapp/demo.jsp deleted file mode 100644 index d6ce9cc4..00000000 --- a/subsonic-site/src/main/webapp/demo.jsp +++ /dev/null @@ -1,55 +0,0 @@ -<%@ page import="java.util.Random" %> - - - -<%! String current = "demo"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Online Demo

-

- Try the online demo to get a taste of what Subsonic is all about! -

- -
- - <% - Random random = new Random(System.currentTimeMillis()); - int userId = random.nextInt(5) + 1; - %> -

» Start demo

-
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="download-subsonic.jsp" %> - <%@ include file="donate.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/documentation.jsp b/subsonic-site/src/main/webapp/documentation.jsp deleted file mode 100644 index 5fa711f8..00000000 --- a/subsonic-site/src/main/webapp/documentation.jsp +++ /dev/null @@ -1,66 +0,0 @@ - - - -<%! String current = "documentation"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Documentation

- -
    -
  • Installation
    - How to install Subsonic on Windows, Mac, Linux and other platforms. -
  • -
  • Getting started
    - How to set up music folders, remote access etc. -
  • -
  • FAQ
    - Frequently asked questions. -
  • -
  • A practical guide to installing and configuring Subsonic
    - By Shane R. Monroe, Monroeworld.com. -
  • -
  • Wiki
    - Wiki pages contributed by your fellow Subsonic users. -
  • -
  • Forum
    - Discuss and ask questions to fellow users. Roughly 30 new posts per day. -
  • -
  • Transcoding
    - Detailed documentation of how Subsonic automatically converts between music formats. -
  • -
  • Translation
    - How to translate Subsonic to a new language. -
  • -
  • API documentation
    - How to access Subsonic using the REST API. (For developers) -
  • - -
- -
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="download-subsonic.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/donate.jsp b/subsonic-site/src/main/webapp/donate.jsp deleted file mode 100644 index c0bf9805..00000000 --- a/subsonic-site/src/main/webapp/donate.jsp +++ /dev/null @@ -1,26 +0,0 @@ - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/download-subsonic.jsp b/subsonic-site/src/main/webapp/download-subsonic.jsp deleted file mode 100644 index 2dd3d8c4..00000000 --- a/subsonic-site/src/main/webapp/download-subsonic.jsp +++ /dev/null @@ -1,19 +0,0 @@ - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/download.jsp b/subsonic-site/src/main/webapp/download.jsp deleted file mode 100644 index 997998a7..00000000 --- a/subsonic-site/src/main/webapp/download.jsp +++ /dev/null @@ -1,165 +0,0 @@ - - - -<%! - String current = "download"; - String stable = "4.6"; - String beta = "4.7.beta2"; // Set to null if no beta is available. -%> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
- - -
- <%@ include file="google-translate.jsp" %> - - - <%@ include file="merchandise.jsp" %> - -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/download2.jsp b/subsonic-site/src/main/webapp/download2.jsp deleted file mode 100644 index be6f6c70..00000000 --- a/subsonic-site/src/main/webapp/download2.jsp +++ /dev/null @@ -1,45 +0,0 @@ - - - - - Subsonic » Free Music Streamer - - - - - <%@ include file="tracking.jsp" %> - - - - - - - - -<%--Microsoft adCenter conversion--%> - - - - -

Please wait, contacting SourceForge download center...

- - diff --git a/subsonic-site/src/main/webapp/faq.jsp b/subsonic-site/src/main/webapp/faq.jsp deleted file mode 100644 index 570c02f7..00000000 --- a/subsonic-site/src/main/webapp/faq.jsp +++ /dev/null @@ -1,57 +0,0 @@ - - - -<%! String current = "faq"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Frequently Asked Questions

- -

Are there other payment options than PayPal?

-

Yes. You can make a payment to subsonic_donation@activeobjects.no on Moneybookers.

- -

How long does it take to get the license after I have donated?

-

Normally no more than ten minutes. If it should take longer, please take contact, - but please check your spam filter first.

- -

How do I install the license key I received by email?

-

Please follow the guide in the Getting Started documentation.

- -

I can't access my Subsonic server from the internet or from my iPhone/Android phone.

-

Please follow the guide in the Getting Started documentation.

- -

I forgot my Subsonic password. Can it be retrieved?

-

Yes. Please read this forum post.

- -

I've lost my license key. Can I have it resent?

-

Yes. Please go here.

- - <%--TODO: Network shares--%> -
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="download-subsonic.jsp" %> - <%@ include file="donate.jsp" %> - -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/favicon.ico b/subsonic-site/src/main/webapp/favicon.ico deleted file mode 100644 index d2c13383..00000000 Binary files a/subsonic-site/src/main/webapp/favicon.ico and /dev/null differ diff --git a/subsonic-site/src/main/webapp/features.jsp b/subsonic-site/src/main/webapp/features.jsp deleted file mode 100644 index f43ba114..00000000 --- a/subsonic-site/src/main/webapp/features.jsp +++ /dev/null @@ -1,226 +0,0 @@ - - - -<%! String current = "features"; %> -<%@ include file="header.jsp" %> - - - - - -
-<%@ include file="menu.jsp" %> - -
-
-

Subsonic Features

- -
- - -
Easy to use Back To Top
-
-
- -
-
-
    -
  • Listen to your music from anywhere – all you need is a browser.
  • -
  • The clean web interface is optimized for constrained bandwidth environments and efficient browsing through large music - collections (hundreds of gigabytes).
  • -
  • Free-text search helps you find your favorite tracks quickly.
  • -
  • Displays cover art, including images embedded in ID3 tags.
  • -
  • Assign ratings and comments to albums.
  • -
  • Common playlist features (add, remove, rearrange, repeat, shuffle, undo, save, load).
  • -
-
-
-
- -
- - -
Versatile Back To Top
-
-
- -
-
-
    -
  • Stream or download music directly to your phone. Apps available for Android, - iPhone and Windows Phone
  • -
  • Use the AIR desktop application, SubAir.
  • -
  • Control Subsonic from any mobile phone or PDA, using the WAP interface.
  • -
  • Supports multiple simultaneous players. Manage any player from any location.
  • -
  • Upload and download files to/from Subsonic, with automatic zipping and unzipping.
  • -
-
-
-
- -
- - -
Supports most media formats Back To Top
-
-
- -
- -
-
    -
  • Supports MP3, OGG, AAC and any other audio or video format that streams over HTTP.
  • -
  • Transcoding engine allows for streaming of a variety of lossy and lossless formats by converting to MP3 on-the-fly.
  • -
  • Works with any network-enabled media player, such as Winamp, iTunes, XMMS, VLC, MusicMatch and Windows Media Player. Also includes an embedded Flash player.
  • -
  • Tag parsing and editing of MP3, AAC, OGG, FLAC, WMA and APE files, using the Jaudiotagger library.
  • -
  • Playlists can be saved and restored. M3U, PLS and XSPF formats are supported. Saved playlists are available as Podcasts.
  • -
  • On-the-fly resampling to lower bitrates using the high-quality LAME encoder. Handy if your bandwidth is limited.
  • -
  • Implements the SHOUTcast protocol. Players which support this (including Winamp, iTunes and XMMS) display the current artist and song, along - with other metadata.
  • -
-
-
-
- -
- -
Customizable user experience Back To Top
-
-
- -

- -

-
-
    -
  • Available in these languages:

    - - - - - - - - - - - - - - - - - - - - - - - -
    • English (by Sindre Mehus)
    • French (by JohnDillinger)
    • Spanish (by Jorge Bueno Magdalena)
    • Portuguese (by Miguel Fonseca)
    • German (by Harald Weiss and Jörg Frommann)
    • Italian (by Michele Petrecca)
    • Greek (by Constantine Samaklis)
    • Russian (by Iaroslav Andrusiak)
    • Slovenian (by Andrej Žižmond, Jan Jamsek and Marko Kastelic)
    • Macedonian (by Stefan Ivanovski)
    • Polish (by Michał Kotas)
    • Bulgarian (by Ivan Achev)
    • Chinese (by Neil Gao)
    • Japanese (by Takahiro Suzuki)
    • Korean (by Choi Jong-seok)
    • Dutch (by Ronald Knot)
    • Norwegian (by Sindre Mehus and jigsaw)
    • Swedish (by Jörgen Sjöberg)
    • Danish (by Morten Hartvich)
    • Finnish (by Reijo Jäärni)
    • Icelandic (by DJ Danny)
    -
  • -
  • Select from 24 different themes, including some that are optimized for HD screens.
  • -
  • Highly configurable user interface.
  • -
-
-
-
- -
- - -
Integrates with the best web services Back To Top
-
-
- -

- -

-
-
    -
  • Automatically register what you're playing on Last.fm, using the built-in Audioscrobbling support.
  • -
  • Find cover art and lyrics using web services from Google and Chartlyrics.
  • -
  • Read album reviews and more at Wikipedia, Google Music and allmusic.
  • -
-
-
-
- -
- - -
Secure and reliableBack To Top
-
-
- -
-
-
    -
  • Users must log in with a username and password. Users are assigned different privileges.
  • -
  • Specify upload and download bandwidth limits.
  • -
  • Use HTTPS/SSL encryption for ultimate protection.
  • -
  • Supports authentication in LDAP and Active Directory.
  • -
  • Runs for months without crashing, hanging or leaking resources.
  • -
-
-
-
- -
- - -
Cool extra features Back To Top
-
-
- -
-
-
    -
  • Download Podcasts with the integrated Podcast receiver.
  • -
  • Manage your internet TV and radio stations.
  • -
  • Play music directly on the server's audio hardware using the jukebox mode.
  • -
-
-
-
- -
- - -
- <%@ include file="google-translate.jsp" %> - - - <%@ include file="download-subsonic.jsp" %> - <%@ include file="translate-subsonic.jsp" %> -
- -
-
-
-
-<%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/footer.jsp b/subsonic-site/src/main/webapp/footer.jsp deleted file mode 100644 index 277ea27a..00000000 --- a/subsonic-site/src/main/webapp/footer.jsp +++ /dev/null @@ -1,11 +0,0 @@ - - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/forum.jsp b/subsonic-site/src/main/webapp/forum.jsp deleted file mode 100644 index 9de0b47c..00000000 --- a/subsonic-site/src/main/webapp/forum.jsp +++ /dev/null @@ -1,3 +0,0 @@ -<% - response.sendRedirect("http://forum.subsonic.org/forum"); -%> \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/getting-started.jsp b/subsonic-site/src/main/webapp/getting-started.jsp deleted file mode 100644 index cdf077d5..00000000 --- a/subsonic-site/src/main/webapp/getting-started.jsp +++ /dev/null @@ -1,175 +0,0 @@ - - - -<%! String current = "getting-started"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Getting Started

- -

- This guide assumes that you have successfully installed the Subsonic server on your computer. If not, - please refer to the installation instructions. -

-

- After installing and starting Subsonic, open the Subsonic web page. The web address may differ depending - on your installation options, but is typically http://localhost - or http://localhost:4040. -

- -

1 Setting up music folders

- -

You must tell Subsonic where you keep your music. Select Settings > Music folders to add one or - more folders.

- -

Note that if you add more than one music folder, a list will appear on the left side of the screen where you can - select the active folder.

- - - -

Also note that Subsonic will organize your music according to how they are organized on your disk. - Unlike many other music applications, Subsonic does not organize the music according to the tag information - embedded in the files. (It does, however, also read the tags for presentation and search purposes.)

- -

Consequently, it's recommended that the music folders you add to Subsonic are organized in an - "artist/album/song" manner. There are music managers, like - MediaMonkey, that can help you achieve this.

- -

2 Setting up remote access

-

With Subsonic you can access your music anywhere on the internet or from your iPhone or Android phone. - However, in order to do that certain conditions must be met:

- -
    -
  • Your router must have a public IP address and must be accessible from the internet. This is true for most home internet connections.
  • -
  • Your router must support the UPnP or NAT-PMP protocol so that Subsonic can setup the appropriate port forwarding. If your router doesn't support - this you will have to configure the port forwarding manually.
  • -
- -

2.1 Automatic port forwarding

-

To enable automatic port forwarding in Subsonic, go to Settings > Network and enable the - "Automatically configure your router..." option. Click the Save button and pay close attention to the status message - that is displayed. If you get an error message, you should first try to configure your router to enable UPnP - (or NAT-PMP if you have an AirPort from Apple). - If it still fails, or your router doesn't support UPnP, follow the instructions below. - If it works, the Subsonic server will at regular intervals (every hour) contact the router and tell it to - forward incoming connections (from the internet) to the Subsonic server. -

- -

2.2 Manual port forwarding

-

If the automatic option didn't work you can still set it up manually. Consult portforward.com - to get instructions specific to your router. Note that the instructions contain important steps on how to - configure a static IP address for your computer. You should follow these. Later in the process, you - will find that Subsonic is not on the list of applications, so select the "Default Guide" instead. -

-

- When you get to the point where the router asks for private and public ports, enter the port number the - Subsonic server is using (normally 80 on Windows and 4040 on other operating systems) for both values. - If asked for a protocol, select TCP. -

- -

If you are unsure what any of this means you will probably need to consult someone with network configuration - experience.

- -

2.3 Setting up your personal subsonic.org address

-

Once you get the port forwarding set up correctly, the next step is to get yourself an easy-to-remember web address. - You will use this address to access your Subsonic server from the internet.

- -

From Settings > Network you can register your address. (Remember to log on with admin rights). - Enable the "Access your server over the internet..." option, - and enter your preferred address, for instance http://joe.subsonic.org.

- -

Click the Save button, and pay attention to the status message that is displayed. Note that Subsonic will also perform - a test to ensure that the web address works properly. If the test fails it might be an indication that the port - forwarding is not set up correctly.

- -

If you don't want to use a subsonic.org address you can get similar services from dynamic DNS providers such as dyndns.com.

- - -

2.4 Troubleshooting

-

This section describes some common network problems and how to fix them.

-
    -
  • Multiple routers. There might be more than one router on your network, for instance both an "inner" - wireless router and an "outer" (closest to the internet) cable/fiber modem with routing enabled. You must - make sure that incoming traffic received by the outermost router is forwarded to the inner router (which - in turn forwards the traffic on to your Subsonic server). You can do this by configuring port forwarding on the - outer router (forward traffic to the inner router), or setting it in bridge mode. Your ISP should - be able to help you if you have problems with this.
  • -
  • Port blocked by ISP. Many ISPs (Internet Service Providers) block incoming traffic on port 80, which is - used by most web servers. Subsonic uses port 80 by default on Windows. You can avoid this by configuring - Subsonic to use a different port. Open the Subsonic Control Panel by clicking on the Subsonic tray icon. - Change the port number to any random number between 1025 and 65,000. If you set up manual port forwarding - (see above), remember to update that as well.
  • -
  • Firewall. You might be running firewall software (on the Subsonic server) which blocks incoming traffic. - If this is the case, try first to turn the firewall off. If this helps, turn the firewall back on and configure it - to allow incoming traffic to Subsonic. Note: The Windows installer version of Subsonic will automatically - configure the built-in Windows Firewall.
  • -
- -

3 Registering your license key

-

Most features in Subsonic are free, but some (like mobile phone streaming) require a license after the 30-day - free trial. You get the license key by donating €10 or more to the Subsonic project. After you receive the license key - by email, you must register it on your server as follows:

- -
    -
  • Click the "Donate" link in the top right corner of the Subsonic web interface.
  • -
  • Enter the email address and license key you received by email.
  • -
- - - -

4 Using https

-

For improved security you can turn on https encryption. On Windows, open the Subsonic Control Panel by clicking - on the Subsonic tray icon, then enable https on the specified port (default 443). -

-

On Linux, add --https-port=4443 (or any other port) to SUBSONIC_ARGS in - /etc/default/subsonic (Ubuntu/Debian) or /etc/sysconfig/subsonic (Fedora/RPM). -

-

- Note that Subsonic uses a self-signed https certificate by default. This provides encryption but not - proper authentication. To use your own certificate you must put it in a Java keystore, then specify the - following Java system properties: subsonic.ssl.keystore – (Path to an alternate SSL keystore), and - subsonic.ssl.password – (Password of the alternate SSL keystore). On Windows, you can set these system - properties in C:\Program Files\Subsonic\subsonic-service.exe.vmoptions. -

- -
- - - -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/google-translate.jsp b/subsonic-site/src/main/webapp/google-translate.jsp deleted file mode 100644 index b2e9370e..00000000 --- a/subsonic-site/src/main/webapp/google-translate.jsp +++ /dev/null @@ -1,9 +0,0 @@ -
-
-
\ No newline at end of file diff --git a/subsonic-site/src/main/webapp/header.jsp b/subsonic-site/src/main/webapp/header.jsp deleted file mode 100644 index ed488809..00000000 --- a/subsonic-site/src/main/webapp/header.jsp +++ /dev/null @@ -1,18 +0,0 @@ - - - Subsonic » Free Music Streamer - - - - - - - - - - <%@ include file="tracking.jsp" %> - - - diff --git a/subsonic-site/src/main/webapp/hosting.jsp b/subsonic-site/src/main/webapp/hosting.jsp deleted file mode 100644 index a2f498e4..00000000 --- a/subsonic-site/src/main/webapp/hosting.jsp +++ /dev/null @@ -1,91 +0,0 @@ - - - -<%! - String current = "hosting"; - String gigaProsUrl = "http://www.gigapros.com/affiliate/scripts/click.php?a_aid=subsonic&desturl=http://www.gigapros.com/portal/index.php/products-a-services/specialty-hosting/subsonic-server.html"; - String zazeenUrl = "https://www.zazeen.com/OnlinePC.html"; -%> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Subsonic Hosting

- -

- An alternative to running the Subsonic on your own computer is to get a pre-installed Subsonic server from - one of our hosting partners. -

- -
-
Zazeen
-
-
- - Zazeen -

- Zazeen's Online PC comes with Ubuntu and a full range of applications and services, including - a ready-to-use Subsonic server. -

-

- Zazeen provides multiple 10Gbit fiber optic backbone and - peering arrangements to most ISPs in North America and Europe. -

- -

- Check out Zazeen's server plans and prices. -

-
-
-
- -
-
GigaPros
-
-
- - GigaPros -

- GigaPros' Subsonic hosting servers are actually powerful Virtual Private Servers (VPS), which are highly optimized to run Subsonic. -

-

- These VPS'es have fully functional pre-installed Subsonic server and they behave exactly like your own Dedicated Server - with full root access. -

- - - - -

- Check out GigaPros' server plans and prices. -

- - -
-
-
- -
- -
- <%@ include file="google-translate.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/inc/css/banner.css b/subsonic-site/src/main/webapp/inc/css/banner.css deleted file mode 100644 index 22f1d669..00000000 --- a/subsonic-site/src/main/webapp/inc/css/banner.css +++ /dev/null @@ -1,104 +0,0 @@ - -#banner-full { - width: 900px; - height: 299px; - background-color: #282828; - overflow: hidden; - position: relative; - border-top: 1px solid #5c5c5c; - border-bottom: 1px solid #4e4e4e; -} -#slide-prev { - position: absolute; - left: 815px; - top: 260px; - z-index: 200; - width:32px; - height:32px; - margin: 0; - padding: 0; - background: url('../img/banner/prev.png') no-repeat; -} -#slide-next { - position: absolute; - left: 860px; - top: 260px; - z-index: 200; - width:32px; - height:32px; - margin: 0; - padding: 0; - background: url('../img/banner/next.png') no-repeat; -} -#slide-prev:hover -{ - background: url('../img/banner/prev-hover.png') no-repeat; -} -#slide-next:hover -{ - background: url('../img/banner/next-hover.png') no-repeat; -} -#bannercontent { - position: absolute; - left: 0; - z-index: 100; -} -#banner-full .slide { - width: 900px; - height: 301px; - position: absolute; -} -#banner-full .slidecontent { - position: relative; - width: 900px; - height: 301px; -} -#banner-full .slide .screenshot { - position: absolute; - bottom: 0; - left: 0; -} -#banner-full .slide .title { - width: 380px; - height: 65px; - position: absolute; - top: 80px; - left: 515px; -} -#banner-full .slide1 .title { - top: 100px; - left: 530px; -} -#banner-full .slide4 .title { - left: 575px; -} -#banner-full .slide5 .title { - left: 575px; - width: 300px; -} -#banner-full .slide .title .large { - font-size: 24px; - font-weight: bold; - line-height: normal; - color: #fff; - margin-bottom:10px; -} -#banner-full .slide .title .small { - font-size: 16px; - font-style: normal; - color: #ddd; -} -#banner-full .slide .text { - position: absolute; - top: 185px; - left: 515px; - width: 380px; - line-height: 1.4em; - color: #aaa; -} - -#bannercontent .slide1 {left:0;} -#bannercontent .slide2 {left:900px;} -#bannercontent .slide3 {left:1800px;} -#bannercontent .slide4 {left:2700px;} -#bannercontent .slide5 {left:3600px;} diff --git a/subsonic-site/src/main/webapp/inc/css/style.css b/subsonic-site/src/main/webapp/inc/css/style.css deleted file mode 100644 index ab5435ba..00000000 --- a/subsonic-site/src/main/webapp/inc/css/style.css +++ /dev/null @@ -1,345 +0,0 @@ -*,h1,h2,h3,h4,h5,h6,p,div,body,html,ul,li,ol,img,a{margin:0;padding:0;} -body { - width: 100%; - margin: 0; - padding: 0 0 20px 0; - background: #fff url('../img/content-bg.gif') 0px 0px repeat-x; - font-size: 0.8em; - color: #444; - font-family: Arial, Helvetica, sans-serif; -} -.clear { clear: both; } -.hide { display: none; } -p { margin: 0.2em 0 1em 0; } -hr { display: none; } -a img { - border: none; -} -a { - color: #4275bc; - text-decoration: none; -} -a:hover { - color: #060c36; - text-decoration: underline; -} -.floatcontainer { - overflow: hidden; - width: 100%; -} -h1 { - font-size: 18px; - color: #060c36; - font-weight: bold; - padding: 0 0 6px 0; -} -h2 { - font-size: 14px; - color: #060c36; - font-weight: bold; - padding: 0 0 4px 0; -} -h2.div { - border-bottom: 1px solid #ccc; - margin-bottom: 10px; -} -h3 { - font-size: 13px; - color: #060c36; - font-weight: bold; - padding: 0 0 2px 0; -} -h4 { - font-size: 11px; - color: #060c36; - font-weight: normal; - text-transform: uppercase; -} -/* ---------- List Items ---------- */ -html>body #content ul.list { - list-style: none; - text-indent: -1em; -} -#content ul { - margin: 0 0 1em 0; - padding: 0 0 0 1em; -} -#content ul.list li { - padding: 4px 0 4px 0; - margin: 0 0 0 0.25em; -} -#content ul.list li:before { /* Show right angle quotes to cool browsers */ - content: "\00BB \0020"; -} -ol { - margin: 0 0 .8em 1em; - padding-left: 2em; -} -#content ol li { - margin-bottom: 1.6em; -} -#content ul.stars { - list-style: none; - margin: 0px; - padding: 0px; -} -#content ul.stars li { - background: url('../img/star.png') 0px 0px no-repeat; - padding: 0 10px 8px 20px; - margin: 0px; - list-style: none; -} -#content ul.stars li:before { - content: ""; -} -#container { - width: 900px; - margin: 0 auto; - padding-top: 106px; - position: relative; -} -#logo { - position: absolute; - left: -40px; - top: 0; - z-index: 99; -} -#content { - width: 898px; - background: #fff url('../img/content-bg.gif') 0px 0px repeat-x; - border: 1px solid #cbcedc; - line-height: 1.4em; -} -#main-col { - width: 600px; - padding: 15px 20px 15px 20px; - float: left; -} -#side-col { - margin: 20px 0 0 0; - width: 240px; - float: left; -} -#side-col .sidebox { - margin: 0 0 20px 0; - padding: 10px; - border: 1px solid #cbcedc; - background-color: #e6e7ee; -} -#wide-col { - padding: 15px 20px 15px 20px; -} -/* ---------- Nav ----------- */ -#nav { - background: url('../img/topnav.gif') top left no-repeat; - height: 39px; - width: 900px; - position: relative; - overflow: hidden; -} -#nav ul { - margin: 0; - padding: 0; - list-style-image: none; - list-style: none; -} -#nav li { - margin: 0; - padding: 0; - float: left; -} -#nav li a { - background: url('../img/topnav-hover.gif') 0px 99px repeat-x; - height: 39px; - color: #7281b3; - text-decoration: none; - display: block; - font-size: 14px; - overflow: hidden; - float: left; - cursor: pointer; -} -#nav li a span { - display: block; - float: left; - padding: 12px 11px 12px 11px; /* Change for narrower menu items. */ - background: url('../img/topnav-div.gif') right 1px no-repeat; -} -#nav li a:hover, #nav li a.active { - background: url('../img/topnav-hover.gif') 0px 1px repeat-x; - color: #a9b3d6; -} -#nav li#menu-home a:hover, #nav li#menu-home a.active { - background: url('../img/home-rollover.gif') 1px 1px no-repeat; - color: #a9b3d6; -} -/* ---------- Menu Visibility ---------- */ -#nav li a.open { - background: url('../img/topnav-hover.gif') 0px -49px repeat-x !important; - color: #ffffff !important; -} -#nav li#menu-home a.open { - background: url('../img/home-rollover.gif') 1px -49px no-repeat !important; - color: #ffffff !important; -} -/* ---------- Footer ----------- */ -#footer { - width: 900px; - background: url('../img/footer.gif') bottom left no-repeat; - border-top: 1px solid #383d5e; - color: #7281B3; - font-size: 11px; -} -#footer .footercontent { - padding: 10px; -} -#footer a { - text-decoration: none; - color: #9ea9ce; -} -#footer a:hover { - color: #fff; -} -/* ---------- Content Formatting ---------- */ -.column-left { - float: left; - width: 50%; -} -.column-right { - float: right; - width: 50%; -} -ul.column-right, ul.column-left { - margin: 0; - padding: 0; -} -/* ---------- Feature Table ----------- */ -tr.table-heading { - background: url('../img/header.gif') 0px 0px no-repeat; - color: #fff; - font-weight: bold; - line-height: normal; -} -tr.table-heading th { - padding: 6px 10px 6px 10px; -} -th.featurename { - text-align: left !important; -} -tr.table-altrow { - background: #f1f2f8; -} -table.featuretable td { - padding: 6px 10px 6px 10px; - text-align: center; -} -table.featuretable th a{ - color: #cccccc; -} -table.featuretable { - padding: 6px 4px; -} -table.featuretable td.meta { - padding: 0px; -} -td.featurename { - text-align: left !important; - width: 50%; -} -.important { - color: #911; - font-weight: bold; -} - -/* ---------- Transcoding Table ----------- */ -th.transcoding-heading { - text-align: left !important; - padding-right:2em; -} -td.transcoding { - white-space:nowrap; - padding-right:2em; -} - -/* ---------- API Parameter Table ----------- */ -th.param-heading { - font-size:11px; -} - -/* ---------- Feature Detail ----------- */ -.featureitem { - background: #f1f2f8; - margin-bottom: 20px; -} -.featureitem .heading { - background: url('../img/header.gif') 0px 0px no-repeat; - color: #fff; - font-weight: bold; - padding: 6px 10px 6px 10px; - position: relative; -} -.featureitem .content { - overflow: hidden; - width: 100%; - background: url('../img/itemcontentborder.gif') top left repeat-y; - border-bottom: 1px solid #CBCEDC; -} -.featureitem .content .description { - margin-right: 190px; - padding: 10px 0 10px 10px; -} -.featureitem .content .wide-description { - padding: 10px; -} -.featureitem .content .wide-content { - padding: 10px; -} -.featureitem .content .screenshot { - float: right; - padding: 10px 10px 10px 0px; -} - -.margin10-t { margin-top: 10px; } -.margin10-r { margin-right: 10px; } -.margin10-b { margin-bottom: 10px; } -.margin10-l { margin-left: 10px; } - -.margin20-t { margin-top: 20px; } -.margin20-r { margin-right: 20px; } -.margin20-b { margin-bottom: 20px; } -.margin20-l { margin-left: 20px; } - -/* ---------- Search form ---------- */ -#search { - position: absolute; - top: 55px; - right: 0; -} - -/* ---------- Content ---------- */ -.bugid, code, pre, td.transcoding { - font: 13px "Bitstream Vera Sans Mono", 'Courier New', Courier, Fixed, monospace; -} -.bugid { color: #09f; } -code, pre { color: #093; } -.bottomspace { - margin-bottom: 20px; -} -.backtotop { - position: absolute; - top: 8px; - right: 8px; -} -.img-right { - float: right; - margin-left: 10px; -} -.img-left { - float: left; - margin-right: 10px; -} -.img-center { - display:block; - margin-left:auto; - margin-right:auto; -} \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/inc/img/air.png b/subsonic-site/src/main/webapp/inc/img/air.png deleted file mode 100644 index ff1199a0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/air.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/android.png b/subsonic-site/src/main/webapp/inc/img/android.png deleted file mode 100644 index 5180aeab..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/android.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/appstore.png b/subsonic-site/src/main/webapp/inc/img/appstore.png deleted file mode 100644 index 0cb660bc..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/appstore.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/available_on_appstore.png b/subsonic-site/src/main/webapp/inc/img/available_on_appstore.png deleted file mode 100644 index c02b588d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/available_on_appstore.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/android-video.png b/subsonic-site/src/main/webapp/inc/img/banner/android-video.png deleted file mode 100644 index a405faae..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/android-video.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/apps.png b/subsonic-site/src/main/webapp/inc/img/banner/apps.png deleted file mode 100644 index 513a9609..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/apps.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/apps.xcf b/subsonic-site/src/main/webapp/inc/img/banner/apps.xcf deleted file mode 100644 index f4c47872..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/apps.xcf and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/banner-01.jpg b/subsonic-site/src/main/webapp/inc/img/banner/banner-01.jpg deleted file mode 100644 index 95301745..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/banner-01.jpg and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/banner-bg.gif b/subsonic-site/src/main/webapp/inc/img/banner/banner-bg.gif deleted file mode 100644 index f62c250d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/banner-bg.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/car.png b/subsonic-site/src/main/webapp/inc/img/banner/car.png deleted file mode 100644 index ed516232..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/car.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/iphone.png b/subsonic-site/src/main/webapp/inc/img/banner/iphone.png deleted file mode 100644 index 508e46ae..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/iphone.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/isub1.png b/subsonic-site/src/main/webapp/inc/img/banner/isub1.png deleted file mode 100644 index ac3bd21b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/isub1.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/next-hover.png b/subsonic-site/src/main/webapp/inc/img/banner/next-hover.png deleted file mode 100644 index 461a158a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/next-hover.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/next.png b/subsonic-site/src/main/webapp/inc/img/banner/next.png deleted file mode 100644 index 74319504..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/next.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/prev-hover.png b/subsonic-site/src/main/webapp/inc/img/banner/prev-hover.png deleted file mode 100644 index ac3fd348..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/prev-hover.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/prev.png b/subsonic-site/src/main/webapp/inc/img/banner/prev.png deleted file mode 100644 index 46331b14..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/prev.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/screenshot.png b/subsonic-site/src/main/webapp/inc/img/banner/screenshot.png deleted file mode 100644 index 25dc44b4..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/screenshot.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/video.png b/subsonic-site/src/main/webapp/inc/img/banner/video.png deleted file mode 100644 index 52dd9dd3..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/video.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/banner/wp7.png b/subsonic-site/src/main/webapp/inc/img/banner/wp7.png deleted file mode 100644 index 0312d4d7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/banner/wp7.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/blackberry.png b/subsonic-site/src/main/webapp/inc/img/blackberry.png deleted file mode 100644 index 471d4dfe..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/blackberry.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/body-bg.gif b/subsonic-site/src/main/webapp/inc/img/body-bg.gif deleted file mode 100644 index 40a631a0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/body-bg.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/button-download.png b/subsonic-site/src/main/webapp/inc/img/button-download.png deleted file mode 100644 index dc990cf7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/button-download.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/change-password-small.png b/subsonic-site/src/main/webapp/inc/img/change-password-small.png deleted file mode 100644 index 8b882cb1..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/change-password-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/change-password.png b/subsonic-site/src/main/webapp/inc/img/change-password.png deleted file mode 100644 index 01fd4679..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/change-password.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/chumby.png b/subsonic-site/src/main/webapp/inc/img/chumby.png deleted file mode 100644 index 8d0b683e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/chumby.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/content-bg.gif b/subsonic-site/src/main/webapp/inc/img/content-bg.gif deleted file mode 100644 index f253c508..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/content-bg.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/donate.png b/subsonic-site/src/main/webapp/inc/img/donate.png deleted file mode 100644 index 3b00577e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/donate.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/download-fedora.png b/subsonic-site/src/main/webapp/inc/img/download-fedora.png deleted file mode 100644 index 4e57200e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/download-fedora.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/download-linux.png b/subsonic-site/src/main/webapp/inc/img/download-linux.png deleted file mode 100644 index 872d802f..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/download-linux.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/download-mac.png b/subsonic-site/src/main/webapp/inc/img/download-mac.png deleted file mode 100644 index 509a50b2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/download-mac.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/download-ubuntu.png b/subsonic-site/src/main/webapp/inc/img/download-ubuntu.png deleted file mode 100644 index 3a904dc7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/download-ubuntu.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/download-windows.png b/subsonic-site/src/main/webapp/inc/img/download-windows.png deleted file mode 100644 index d66f0be3..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/download-windows.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/download_small.gif b/subsonic-site/src/main/webapp/inc/img/download_small.gif deleted file mode 100644 index fa56b595..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/download_small.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/closebox.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/closebox.png deleted file mode 100644 index 4de4396d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/closebox.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/spacer.gif b/subsonic-site/src/main/webapp/inc/img/fancyzoom/spacer.gif deleted file mode 100644 index 5bfd67a2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/spacer.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-fill.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-fill.png deleted file mode 100644 index 1e341533..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-fill.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-l.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-l.png deleted file mode 100644 index a63ea481..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-l.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-r.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-r.png deleted file mode 100644 index 15980d58..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-r.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow1.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow1.png deleted file mode 100644 index 8b48000b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow1.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow2.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow2.png deleted file mode 100644 index 09209f37..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow2.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow3.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow3.png deleted file mode 100644 index 7636fec2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow3.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow4.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow4.png deleted file mode 100644 index c7f148d9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow4.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow5.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow5.png deleted file mode 100644 index 2a75b82a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow5.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow6.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow6.png deleted file mode 100644 index 65801aa0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow6.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow7.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow7.png deleted file mode 100644 index cb447608..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow7.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow8.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow8.png deleted file mode 100644 index f1c6acdb..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow8.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-1.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-1.png deleted file mode 100644 index 5615629c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-1.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-10.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-10.png deleted file mode 100644 index 77595dbd..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-10.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-11.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-11.png deleted file mode 100644 index c2147d56..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-11.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-12.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-12.png deleted file mode 100644 index cf027248..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-12.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-2.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-2.png deleted file mode 100644 index 95eaae89..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-2.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-3.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-3.png deleted file mode 100644 index 9e2b9cb3..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-3.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-4.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-4.png deleted file mode 100644 index a39c0fc0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-4.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-5.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-5.png deleted file mode 100644 index 80bea63b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-5.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-6.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-6.png deleted file mode 100644 index b962e5f7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-6.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-7.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-7.png deleted file mode 100644 index 9b6e489f..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-7.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-8.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-8.png deleted file mode 100644 index fe147d5f..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-8.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-9.png b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-9.png deleted file mode 100644 index b321b1c7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-9.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/amy-small.png b/subsonic-site/src/main/webapp/inc/img/features/amy-small.png deleted file mode 100644 index 77765178..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/amy-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/amy.png b/subsonic-site/src/main/webapp/inc/img/features/amy.png deleted file mode 100644 index 9a0a5bbd..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/amy.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/avatar-small.png b/subsonic-site/src/main/webapp/inc/img/features/avatar-small.png deleted file mode 100644 index 66a95810..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/avatar-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/avatar.png b/subsonic-site/src/main/webapp/inc/img/features/avatar.png deleted file mode 100644 index 943c8ff6..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/avatar.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/bbc.png b/subsonic-site/src/main/webapp/inc/img/features/bbc.png deleted file mode 100644 index 906f5e27..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/bbc.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/extras.png b/subsonic-site/src/main/webapp/inc/img/features/extras.png deleted file mode 100644 index 40369ae9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/extras.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/extras.xcf b/subsonic-site/src/main/webapp/inc/img/features/extras.xcf deleted file mode 100644 index 1e25fcc9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/extras.xcf and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/flac.png b/subsonic-site/src/main/webapp/inc/img/features/flac.png deleted file mode 100644 index f601d00a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/flac.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/itunes.png b/subsonic-site/src/main/webapp/inc/img/features/itunes.png deleted file mode 100644 index f0fc1aa8..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/itunes.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/lame.png b/subsonic-site/src/main/webapp/inc/img/features/lame.png deleted file mode 100644 index 0e2f79f4..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/lame.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/lame.png.orig b/subsonic-site/src/main/webapp/inc/img/features/lame.png.orig deleted file mode 100644 index 0e2f79f4..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/lame.png.orig and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/last-fm.png b/subsonic-site/src/main/webapp/inc/img/features/last-fm.png deleted file mode 100644 index 0c92ac2b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/last-fm.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/logon-small.png b/subsonic-site/src/main/webapp/inc/img/features/logon-small.png deleted file mode 100644 index 015cda1c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/logon-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/logon.png b/subsonic-site/src/main/webapp/inc/img/features/logon.png deleted file mode 100644 index 01514b8f..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/logon.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/media-support.png b/subsonic-site/src/main/webapp/inc/img/features/media-support.png deleted file mode 100644 index 1e15244e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/media-support.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/media-support.xcf b/subsonic-site/src/main/webapp/inc/img/features/media-support.xcf deleted file mode 100644 index d42e43e4..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/media-support.xcf and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/mp3.png b/subsonic-site/src/main/webapp/inc/img/features/mp3.png deleted file mode 100644 index 0ea7c8af..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/mp3.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/mp3.png.orig b/subsonic-site/src/main/webapp/inc/img/features/mp3.png.orig deleted file mode 100644 index 0ea7c8af..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/mp3.png.orig and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/nrk.png b/subsonic-site/src/main/webapp/inc/img/features/nrk.png deleted file mode 100644 index cc6986cd..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/nrk.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/personal-settings-small.png b/subsonic-site/src/main/webapp/inc/img/features/personal-settings-small.png deleted file mode 100644 index b1369be0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/personal-settings-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/personal-settings.png b/subsonic-site/src/main/webapp/inc/img/features/personal-settings.png deleted file mode 100644 index 398ba2e9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/personal-settings.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/podcast.png b/subsonic-site/src/main/webapp/inc/img/features/podcast.png deleted file mode 100644 index 01a98c64..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/podcast.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png b/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png deleted file mode 100644 index 7d8acd18..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png.orig b/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png.orig deleted file mode 100644 index 7d8acd18..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png.orig and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/wap-small.png b/subsonic-site/src/main/webapp/inc/img/features/wap-small.png deleted file mode 100644 index f41eb81b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/wap-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/wap.png b/subsonic-site/src/main/webapp/inc/img/features/wap.png deleted file mode 100644 index 637e52f0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/wap.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png b/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png deleted file mode 100644 index 39233e28..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png.orig b/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png.orig deleted file mode 100644 index 12d0e244..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png.orig and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/winamp.png b/subsonic-site/src/main/webapp/inc/img/features/winamp.png deleted file mode 100644 index cc35943b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/winamp.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/winamp.png.orig b/subsonic-site/src/main/webapp/inc/img/features/winamp.png.orig deleted file mode 100644 index cc35943b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/winamp.png.orig and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/wmp.png b/subsonic-site/src/main/webapp/inc/img/features/wmp.png deleted file mode 100644 index 3449e18d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/wmp.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/features/wmp.png.orig b/subsonic-site/src/main/webapp/inc/img/features/wmp.png.orig deleted file mode 100644 index 3449e18d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/features/wmp.png.orig and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/footer.gif b/subsonic-site/src/main/webapp/inc/img/footer.gif deleted file mode 100644 index fa269e85..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/footer.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/gettingstarted/license.png b/subsonic-site/src/main/webapp/inc/img/gettingstarted/license.png deleted file mode 100644 index 9dbada3c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/gettingstarted/license.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/gettingstarted/license_thumb.png b/subsonic-site/src/main/webapp/inc/img/gettingstarted/license_thumb.png deleted file mode 100644 index 1a951a91..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/gettingstarted/license_thumb.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders.png b/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders.png deleted file mode 100644 index 0b236083..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders_thumb.png b/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders_thumb.png deleted file mode 100644 index 620c813c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders_thumb.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/gigapros.png b/subsonic-site/src/main/webapp/inc/img/gigapros.png deleted file mode 100644 index b5b1f2d3..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/gigapros.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/gpl.png b/subsonic-site/src/main/webapp/inc/img/gpl.png deleted file mode 100644 index b06e0439..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/gpl.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/header.gif b/subsonic-site/src/main/webapp/inc/img/header.gif deleted file mode 100644 index 115a5738..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/header.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/home-rollover.gif b/subsonic-site/src/main/webapp/inc/img/home-rollover.gif deleted file mode 100644 index 1f9fc0db..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/home-rollover.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif b/subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif deleted file mode 100644 index 7e3d252b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/mac-appstore.jpg b/subsonic-site/src/main/webapp/inc/img/mac-appstore.jpg deleted file mode 100644 index 6531fd23..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/mac-appstore.jpg and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/mac-installer-small.png b/subsonic-site/src/main/webapp/inc/img/mac-installer-small.png deleted file mode 100644 index 9f07bc9b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/mac-installer-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/mac-installer.png b/subsonic-site/src/main/webapp/inc/img/mac-installer.png deleted file mode 100644 index ca38de3e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/mac-installer.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/merchandise.png b/subsonic-site/src/main/webapp/inc/img/merchandise.png deleted file mode 100644 index 11f94fa8..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/merchandise.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/mpa-nominee.png b/subsonic-site/src/main/webapp/inc/img/mpa-nominee.png deleted file mode 100644 index 657f7c88..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/mpa-nominee.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/paypal.gif b/subsonic-site/src/main/webapp/inc/img/paypal.gif deleted file mode 100644 index d017250a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/paypal.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/ripserver-small.png b/subsonic-site/src/main/webapp/inc/img/ripserver-small.png deleted file mode 100644 index b220c40d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/ripserver-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/ripserver.png b/subsonic-site/src/main/webapp/inc/img/ripserver.png deleted file mode 100644 index 00c58d85..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/ripserver.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen01.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen01.png deleted file mode 100644 index 53771adf..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen01.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen02.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen02.png deleted file mode 100644 index e63fa2f4..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen02.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen03.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen03.png deleted file mode 100644 index e4c7ee58..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen03.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen05.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen05.png deleted file mode 100644 index aedc6874..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen05.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen06.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen06.png deleted file mode 100644 index 22794dab..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen06.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen07.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen07.png deleted file mode 100644 index a81c3b10..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen07.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen08.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen08.png deleted file mode 100644 index 72283443..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen08.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen09.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen09.png deleted file mode 100644 index e8770c62..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen09.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen10.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen10.png deleted file mode 100644 index 7595e82d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen10.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen11.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen11.png deleted file mode 100644 index 80074d99..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen11.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen12.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen12.png deleted file mode 100644 index cd979719..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen12.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen13.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen13.png deleted file mode 100644 index f594532a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen13.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen14.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen14.png deleted file mode 100644 index d2adb422..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen14.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen15.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen15.png deleted file mode 100644 index 6bc3b296..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen15.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen16.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen16.png deleted file mode 100644 index db292acb..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen16.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen17.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen17.png deleted file mode 100644 index e42004ba..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen17.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen18.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen18.png deleted file mode 100644 index 827f1e8a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen18.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen19.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen19.png deleted file mode 100644 index 1a4b90ad..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen19.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen20.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen20.png deleted file mode 100644 index 77f3c426..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen20.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen21.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen21.png deleted file mode 100644 index ab2e645d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen21.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen22.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen22.png deleted file mode 100644 index 8287d2ab..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen22.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen23.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen23.png deleted file mode 100644 index fc5ea59b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen23.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen24.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen24.png deleted file mode 100644 index bff8ba81..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen24.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen25.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen25.png deleted file mode 100644 index 8f09b94c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen25.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen26.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen26.png deleted file mode 100644 index 154c34b0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen26.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen27.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen27.png deleted file mode 100644 index 4233d2f9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen27.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen28.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen28.png deleted file mode 100644 index 1514347b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen28.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen29.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen29.png deleted file mode 100644 index 97826ef6..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen29.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen30.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen30.png deleted file mode 100644 index a1ef9428..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen30.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen31.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen31.png deleted file mode 100644 index 3d09bc69..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen31.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen32.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen32.png deleted file mode 100644 index 06a1d621..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen32.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen33.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen33.png deleted file mode 100644 index 25915c31..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen33.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen34.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen34.png deleted file mode 100644 index 6ba7cd35..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen34.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen35.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen35.png deleted file mode 100644 index d4117ba1..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen35.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen36.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen36.png deleted file mode 100644 index d2d06093..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen36.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen37.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen37.png deleted file mode 100644 index 607d75ab..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen37.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen38.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen38.png deleted file mode 100644 index 04beaca7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen38.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen39.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen39.png deleted file mode 100644 index 64bfa7c2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen39.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen40.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen40.png deleted file mode 100644 index 96023bdd..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen40.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen41.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen41.png deleted file mode 100644 index 077783eb..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen41.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen42.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen42.png deleted file mode 100644 index 9b1f31e2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen42.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen43.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen43.png deleted file mode 100644 index 2493b601..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen43.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen44.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen44.png deleted file mode 100644 index 4ec7d197..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen44.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/screen45.png b/subsonic-site/src/main/webapp/inc/img/screenshots/screen45.png deleted file mode 100644 index f384c93b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/screen45.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb01.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb01.png deleted file mode 100644 index 605383d6..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb01.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb02.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb02.png deleted file mode 100644 index 23e9e9f8..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb02.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb03.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb03.png deleted file mode 100644 index 8378058d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb03.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb05.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb05.png deleted file mode 100644 index 9c132083..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb05.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb06.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb06.png deleted file mode 100644 index f454486c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb06.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb07.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb07.png deleted file mode 100644 index a0f4fe5c..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb07.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb08.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb08.png deleted file mode 100644 index ba6b3d6b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb08.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb09.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb09.png deleted file mode 100644 index 2115721e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb09.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb10.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb10.png deleted file mode 100644 index 2a24588d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb10.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb11.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb11.png deleted file mode 100644 index 8444f2ad..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb11.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb12.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb12.png deleted file mode 100644 index fbf03231..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb12.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb13.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb13.png deleted file mode 100644 index cb841be1..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb13.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb14.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb14.png deleted file mode 100644 index 529082f6..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb14.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb15.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb15.png deleted file mode 100644 index 03396f44..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb15.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb16.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb16.png deleted file mode 100644 index a1b7d033..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb16.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb17.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb17.png deleted file mode 100644 index 58deaef7..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb17.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb18.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb18.png deleted file mode 100644 index 9fc3f4ec..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb18.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb19.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb19.png deleted file mode 100644 index b06f3834..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb19.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb20.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb20.png deleted file mode 100644 index d5dd2a59..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb20.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb21.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb21.png deleted file mode 100644 index 55289db9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb21.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb22.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb22.png deleted file mode 100644 index 55b2f3b9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb22.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb23.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb23.png deleted file mode 100644 index 8d499d53..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb23.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb24.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb24.png deleted file mode 100644 index 050d2d1b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb24.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb25.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb25.png deleted file mode 100644 index 40f81c44..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb25.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb27.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb27.png deleted file mode 100644 index ad674590..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb27.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb28.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb28.png deleted file mode 100644 index fae6d77d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb28.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb29.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb29.png deleted file mode 100644 index 249b5d15..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb29.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb30.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb30.png deleted file mode 100644 index ac7610ed..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb30.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb31.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb31.png deleted file mode 100644 index f2d34ebf..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb31.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb33.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb33.png deleted file mode 100644 index 944bcc2a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb33.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb35.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb35.png deleted file mode 100644 index 0020c90d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb35.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb36.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb36.png deleted file mode 100644 index 0c819962..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb36.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb37.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb37.png deleted file mode 100644 index 67e3142a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb37.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb38.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb38.png deleted file mode 100644 index b277ec15..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb38.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb39.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb39.png deleted file mode 100644 index 2c0c70a2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb39.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb40.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb40.png deleted file mode 100644 index d92cbf35..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb40.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb41.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb41.png deleted file mode 100644 index 7a5aceee..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb41.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb42.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb42.png deleted file mode 100644 index a60200e9..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb42.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb43.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb43.png deleted file mode 100644 index 3591d0c0..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb43.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb44.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb44.png deleted file mode 100644 index 4ef3276a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb44.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb45.png b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb45.png deleted file mode 100644 index 5c49c48d..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/screenshots/thumb45.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/search.png b/subsonic-site/src/main/webapp/inc/img/search.png deleted file mode 100644 index 4e522b23..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/search.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/sindre.jpeg b/subsonic-site/src/main/webapp/inc/img/sindre.jpeg deleted file mode 100644 index b3656f39..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/sindre.jpeg and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/star.png b/subsonic-site/src/main/webapp/inc/img/star.png deleted file mode 100644 index cd2b8bb2..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/star.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/subsonic-forum.png b/subsonic-site/src/main/webapp/inc/img/subsonic-forum.png deleted file mode 100644 index 39ba6e6e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/subsonic-forum.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/subsonic-shop.jpeg b/subsonic-site/src/main/webapp/inc/img/subsonic-shop.jpeg deleted file mode 100644 index 6a4dde6a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/subsonic-shop.jpeg and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/subsonic-tshirt.png b/subsonic-site/src/main/webapp/inc/img/subsonic-tshirt.png deleted file mode 100644 index 730f92cf..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/subsonic-tshirt.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/subsonic.png b/subsonic-site/src/main/webapp/inc/img/subsonic.png deleted file mode 100644 index f2cb2a60..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/subsonic.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/top.gif b/subsonic-site/src/main/webapp/inc/img/top.gif deleted file mode 100644 index a3a18784..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/top.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/topnav-div.gif b/subsonic-site/src/main/webapp/inc/img/topnav-div.gif deleted file mode 100644 index 3a4f7238..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/topnav-div.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/topnav-hover.gif b/subsonic-site/src/main/webapp/inc/img/topnav-hover.gif deleted file mode 100644 index 45547bb1..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/topnav-hover.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/topnav.gif b/subsonic-site/src/main/webapp/inc/img/topnav.gif deleted file mode 100644 index e5fadeed..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/topnav.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/ubuntu.png b/subsonic-site/src/main/webapp/inc/img/ubuntu.png deleted file mode 100644 index f707e260..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/ubuntu.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/windows-installer-small.png b/subsonic-site/src/main/webapp/inc/img/windows-installer-small.png deleted file mode 100644 index d33639b4..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/windows-installer-small.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/windows-installer.png b/subsonic-site/src/main/webapp/inc/img/windows-installer.png deleted file mode 100644 index 07bbcf5b..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/windows-installer.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/windows-marketplace.png b/subsonic-site/src/main/webapp/inc/img/windows-marketplace.png deleted file mode 100644 index 0d3c18ad..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/windows-marketplace.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/windows7.png b/subsonic-site/src/main/webapp/inc/img/windows7.png deleted file mode 100644 index 0559b26e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/windows7.png and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/zazeen-ad.gif b/subsonic-site/src/main/webapp/inc/img/zazeen-ad.gif deleted file mode 100644 index 45189efe..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/zazeen-ad.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/img/zazeen.gif b/subsonic-site/src/main/webapp/inc/img/zazeen.gif deleted file mode 100644 index 3fcd454e..00000000 Binary files a/subsonic-site/src/main/webapp/inc/img/zazeen.gif and /dev/null differ diff --git a/subsonic-site/src/main/webapp/inc/js/FancyZoom.js b/subsonic-site/src/main/webapp/inc/js/FancyZoom.js deleted file mode 100644 index 37df0b7b..00000000 --- a/subsonic-site/src/main/webapp/inc/js/FancyZoom.js +++ /dev/null @@ -1,761 +0,0 @@ -// FancyZoom.js - v1.1 - http://www.fancyzoom.com -// -// Copyright (c) 2008 Cabel Sasser / Panic Inc -// All rights reserved. -// -// Requires: FancyZoomHTML.js -// Instructions: Include JS files in page, call setupZoom() in onLoad. That's it! -// Any links to images will be updated to zoom inline. -// Add rel="nozoom" to your to disable zooming for an image. -// -// Redistribution and use of this effect in source form, with or without modification, -// are permitted provided that the following conditions are met: -// -// * USE OF SOURCE ON COMMERCIAL (FOR-PROFIT) WEBSITE REQUIRES ONE-TIME LICENSE FEE PER DOMAIN. -// Reasonably priced! Visit www.fancyzoom.com for licensing instructions. Thanks! -// -// * Non-commercial (personal) website use is permitted without license/payment! -// -// * Redistribution of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution of source code and derived works cannot be sold without specific -// written prior permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -var includeCaption = true; // Turn on the "caption" feature, and write out the caption HTML -var zoomTime = 5; // Milliseconds between frames of zoom animation -var zoomSteps = 15; // Number of zoom animation frames -var includeFade = 1; // Set to 1 to fade the image in / out as it zooms -var minBorder = 90; // Amount of padding between large, scaled down images, and the window edges -var shadowSettings = '0px 5px 25px rgba(0, 0, 0, '; // Blur, radius, color of shadow for compatible browsers - -var zoomImagesURI = 'inc/img/fancyzoom/'; // Location of the zoom and shadow images - -// Init. Do not add anything below this line, unless it's something awesome. - -var myWidth = 0, myHeight = 0, myScroll = 0; myScrollWidth = 0; myScrollHeight = 0; -var zoomOpen = false, preloadFrame = 1, preloadActive = false, preloadTime = 0, imgPreload = new Image(); -var preloadAnimTimer = 0; - -var zoomActive = new Array(); var zoomTimer = new Array(); -var zoomOrigW = new Array(); var zoomOrigH = new Array(); -var zoomOrigX = new Array(); var zoomOrigY = new Array(); - -var zoomID = "ZoomBox"; -var theID = "ZoomImage"; -var zoomCaption = "ZoomCaption"; -var zoomCaptionDiv = "ZoomCapDiv"; - -if (navigator.userAgent.indexOf("MSIE") != -1) { - var browserIsIE = true; -} - -// Zoom: Setup The Page! Called in your 's onLoad handler. - -function setupZoom() { - prepZooms(); - insertZoomHTML(); - zoomdiv = document.getElementById(zoomID); - zoomimg = document.getElementById(theID); -} - -// Zoom: Inject Javascript functions into hrefs pointing to images, one by one! -// Skip any href that contains a rel="nozoom" tag. -// This is done at page load time via an onLoad() handler. - -function prepZooms() { - if (! document.getElementsByTagName) { - return; - } - var links = document.getElementsByTagName("a"); - for (i = 0; i < links.length; i++) { - if (links[i].getAttribute("href")) { - if (links[i].getAttribute("href").search(/(.*)\.(jpg|jpeg|gif|png|bmp|tif|tiff)/gi) != -1) { - if (links[i].getAttribute("rel") != "nozoom") { - links[i].onclick = function (event) { return zoomClick(this, event); }; - links[i].onmouseover = function () { zoomPreload(this); }; - } - } - } - } -} - -// Zoom: Load an image into an image object. When done loading, function sets preloadActive to false, -// so other bits know that they can proceed with the zoom. -// Preloaded image is stored in imgPreload and swapped out in the zoom function. - -function zoomPreload(from) { - - var theimage = from.getAttribute("href"); - - // Only preload if we have to, i.e. the image isn't this image already - - if (imgPreload.src.indexOf(from.getAttribute("href").substr(from.getAttribute("href").lastIndexOf("/"))) == -1) { - preloadActive = true; - imgPreload = new Image(); - - // Set a function to fire when the preload is complete, setting flags along the way. - - imgPreload.onload = function() { - preloadActive = false; - } - - // Load it! - imgPreload.src = theimage; - } -} - -// Zoom: Start the preloading animation cycle. - -function preloadAnimStart() { - preloadTime = new Date(); - document.getElementById("ZoomSpin").style.left = (myWidth / 2) + 'px'; - document.getElementById("ZoomSpin").style.top = ((myHeight / 2) + myScroll) + 'px'; - document.getElementById("ZoomSpin").style.visibility = "visible"; - preloadFrame = 1; - document.getElementById("SpinImage").src = zoomImagesURI+'zoom-spin-'+preloadFrame+'.png'; - preloadAnimTimer = setInterval("preloadAnim()", 100); -} - -// Zoom: Display and ANIMATE the jibber-jabber widget. Once preloadActive is false, bail and zoom it up! - -function preloadAnim(from) { - if (preloadActive != false) { - document.getElementById("SpinImage").src = zoomImagesURI+'zoom-spin-'+preloadFrame+'.png'; - preloadFrame++; - if (preloadFrame > 12) preloadFrame = 1; - } else { - document.getElementById("ZoomSpin").style.visibility = "hidden"; - clearInterval(preloadAnimTimer); - preloadAnimTimer = 0; - zoomIn(preloadFrom); - } -} - -// ZOOM CLICK: We got a click! Should we do the zoom? Or wait for the preload to complete? -// todo?: Double check that imgPreload src = clicked src - -function zoomClick(from, evt) { - - var shift = getShift(evt); - - // Check for Command / Alt key. If pressed, pass them through -- don't zoom! - if (! evt && window.event && (window.event.metaKey || window.event.altKey)) { - return true; - } else if (evt && (evt.metaKey|| evt.altKey)) { - return true; - } - - // Get browser dimensions - getSize(); - - // If preloading still, wait, and display the spinner. - if (preloadActive == true) { - // But only display the spinner if it's not already being displayed! - if (preloadAnimTimer == 0) { - preloadFrom = from; - preloadAnimStart(); - } - } else { - // Otherwise, we're loaded: do the zoom! - zoomIn(from, shift); - } - - return false; - -} - -// Zoom: Move an element in to endH endW, using zoomHost as a starting point. -// "from" is an object reference to the href that spawned the zoom. - -function zoomIn(from, shift) { - - zoomimg.src = from.getAttribute("href"); - - // Determine the zoom settings from where we came from, the element in the . - // If there's no element in the , or we can't get the width, make stuff up - - if (from.childNodes[0].width) { - startW = from.childNodes[0].width; - startH = from.childNodes[0].height; - startPos = findElementPos(from.childNodes[0]); - } else { - startW = 50; - startH = 12; - startPos = findElementPos(from); - } - - hostX = startPos[0]; - hostY = startPos[1]; - - // Make up for a scrolled containing div. - // TODO: This HAS to move into findElementPos. - - if (document.getElementById('scroller')) { - hostX = hostX - document.getElementById('scroller').scrollLeft; - } - - // Determine the target zoom settings from the preloaded image object - - endW = imgPreload.width; - endH = imgPreload.height; - - // Start! But only if we're not zooming already! - - if (zoomActive[theID] != true) { - - // Clear everything out just in case something is already open - - if (document.getElementById("ShadowBox")) { - document.getElementById("ShadowBox").style.visibility = "hidden"; - } else if (! browserIsIE) { - - // Wipe timer if shadow is fading in still - if (fadeActive["ZoomImage"]) { - clearInterval(fadeTimer["ZoomImage"]); - fadeActive["ZoomImage"] = false; - fadeTimer["ZoomImage"] = false; - } - - document.getElementById("ZoomImage").style.webkitBoxShadow = shadowSettings + '0.0)'; - } - - document.getElementById("ZoomClose").style.visibility = "hidden"; - - // Setup the CAPTION, if existing. Hide it first, set the text. - - if (includeCaption) { - document.getElementById(zoomCaptionDiv).style.visibility = "hidden"; - if (from.getAttribute('title') && includeCaption) { - // Yes, there's a caption, set it up - document.getElementById(zoomCaption).innerHTML = from.getAttribute('title'); - } else { - document.getElementById(zoomCaption).innerHTML = ""; - } - } - - // Store original position in an array for future zoomOut. - - zoomOrigW[theID] = startW; - zoomOrigH[theID] = startH; - zoomOrigX[theID] = hostX; - zoomOrigY[theID] = hostY; - - // Now set the starting dimensions - - zoomimg.style.width = startW + 'px'; - zoomimg.style.height = startH + 'px'; - zoomdiv.style.left = hostX + 'px'; - zoomdiv.style.top = hostY + 'px'; - - // Show the zooming image container, make it invisible - - if (includeFade == 1) { - setOpacity(0, zoomID); - } - zoomdiv.style.visibility = "visible"; - - // If it's too big to fit in the window, shrink the width and height to fit (with ratio). - - sizeRatio = endW / endH; - if (endW > myWidth - minBorder) { - endW = myWidth - minBorder; - endH = endW / sizeRatio; - } - if (endH > myHeight - minBorder) { - endH = myHeight - minBorder; - endW = endH * sizeRatio; - } - - zoomChangeX = ((myWidth / 2) - (endW / 2) - hostX); - zoomChangeY = (((myHeight / 2) - (endH / 2) - hostY) + myScroll); - zoomChangeW = (endW - startW); - zoomChangeH = (endH - startH); - - // Shift key? - - if (shift) { - tempSteps = zoomSteps * 7; - } else { - tempSteps = zoomSteps; - } - - // Setup Zoom - - zoomCurrent = 0; - - // Setup Fade with Zoom, If Requested - - if (includeFade == 1) { - fadeCurrent = 0; - fadeAmount = (0 - 100) / tempSteps; - } else { - fadeAmount = 0; - } - - // Do It! - - zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+hostX+", "+zoomChangeX+", "+hostY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDoneIn(zoomID)')", zoomTime); - zoomActive[theID] = true; - } -} - -// Zoom it back out. - -function zoomOut(from, evt) { - - // Get shift key status. - // IE events don't seem to get passed through the function, so grab it from the window. - - if (getShift(evt)) { - tempSteps = zoomSteps * 7; - } else { - tempSteps = zoomSteps; - } - - // Check to see if something is happening/open - - if (zoomActive[theID] != true) { - - // First, get rid of the shadow if necessary. - - if (document.getElementById("ShadowBox")) { - document.getElementById("ShadowBox").style.visibility = "hidden"; - } else if (! browserIsIE) { - - // Wipe timer if shadow is fading in still - if (fadeActive["ZoomImage"]) { - clearInterval(fadeTimer["ZoomImage"]); - fadeActive["ZoomImage"] = false; - fadeTimer["ZoomImage"] = false; - } - - document.getElementById("ZoomImage").style.webkitBoxShadow = shadowSettings + '0.0)'; - } - - // ..and the close box... - - document.getElementById("ZoomClose").style.visibility = "hidden"; - - // ...and the caption if necessary! - - if (includeCaption && document.getElementById(zoomCaption).innerHTML != "") { - // fadeElementSetup(zoomCaptionDiv, 100, 0, 5, 1); - document.getElementById(zoomCaptionDiv).style.visibility = "hidden"; - } - - // Now, figure out where we came from, to get back there - - startX = parseInt(zoomdiv.style.left); - startY = parseInt(zoomdiv.style.top); - startW = zoomimg.width; - startH = zoomimg.height; - zoomChangeX = zoomOrigX[theID] - startX; - zoomChangeY = zoomOrigY[theID] - startY; - zoomChangeW = zoomOrigW[theID] - startW; - zoomChangeH = zoomOrigH[theID] - startH; - - // Setup Zoom - - zoomCurrent = 0; - - // Setup Fade with Zoom, If Requested - - if (includeFade == 1) { - fadeCurrent = 0; - fadeAmount = (100 - 0) / tempSteps; - } else { - fadeAmount = 0; - } - - // Do It! - - zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+startX+", "+zoomChangeX+", "+startY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDone(zoomID, theID)')", zoomTime); - zoomActive[theID] = true; - } -} - -// Finished Zooming In - -function zoomDoneIn(zoomdiv, theID) { - - // Note that it's open - - zoomOpen = true; - zoomdiv = document.getElementById(zoomdiv); - - // Position the table shadow behind the zoomed in image, and display it - - if (document.getElementById("ShadowBox")) { - - setOpacity(0, "ShadowBox"); - shadowdiv = document.getElementById("ShadowBox"); - - shadowLeft = parseInt(zoomdiv.style.left) - 13; - shadowTop = parseInt(zoomdiv.style.top) - 8; - shadowWidth = zoomdiv.offsetWidth + 26; - shadowHeight = zoomdiv.offsetHeight + 26; - - shadowdiv.style.width = shadowWidth + 'px'; - shadowdiv.style.height = shadowHeight + 'px'; - shadowdiv.style.left = shadowLeft + 'px'; - shadowdiv.style.top = shadowTop + 'px'; - - document.getElementById("ShadowBox").style.visibility = "visible"; - fadeElementSetup("ShadowBox", 0, 100, 5); - - } else if (! browserIsIE) { - // Or, do a fade of the modern shadow - fadeElementSetup("ZoomImage", 0, .8, 5, 0, "shadow"); - } - - // Position and display the CAPTION, if existing - - if (includeCaption && document.getElementById(zoomCaption).innerHTML != "") { - // setOpacity(0, zoomCaptionDiv); - zoomcapd = document.getElementById(zoomCaptionDiv); - zoomcapd.style.top = parseInt(zoomdiv.style.top) + (zoomdiv.offsetHeight + 15) + 'px'; - zoomcapd.style.left = (myWidth / 2) - (zoomcapd.offsetWidth / 2) + 'px'; - zoomcapd.style.visibility = "visible"; - // fadeElementSetup(zoomCaptionDiv, 0, 100, 5); - } - - // Display Close Box (fade it if it's not IE) - - if (!browserIsIE) setOpacity(0, "ZoomClose"); - document.getElementById("ZoomClose").style.visibility = "visible"; - if (!browserIsIE) fadeElementSetup("ZoomClose", 0, 100, 5); - - // Get keypresses - document.onkeypress = getKey; - -} - -// Finished Zooming Out - -function zoomDone(zoomdiv, theID) { - - // No longer open - - zoomOpen = false; - - // Clear stuff out, clean up - - zoomOrigH[theID] = ""; - zoomOrigW[theID] = ""; - document.getElementById(zoomdiv).style.visibility = "hidden"; - zoomActive[theID] == false; - - // Stop getting keypresses - - document.onkeypress = null; - -} - -// Actually zoom the element - -function zoomElement(zoomdiv, theID, zoomCurrent, zoomStartW, zoomChangeW, zoomStartH, zoomChangeH, zoomStartX, zoomChangeX, zoomStartY, zoomChangeY, zoomSteps, includeFade, fadeAmount, execWhenDone) { - - // console.log("Zooming Step #"+zoomCurrent+ " of "+zoomSteps+" (zoom " + zoomStartW + "/" + zoomChangeW + ") (zoom " + zoomStartH + "/" + zoomChangeH + ") (zoom " + zoomStartX + "/" + zoomChangeX + ") (zoom " + zoomStartY + "/" + zoomChangeY + ") Fade: "+fadeAmount); - - // Test if we're done, or if we continue - - if (zoomCurrent == (zoomSteps + 1)) { - zoomActive[theID] = false; - clearInterval(zoomTimer[theID]); - - if (execWhenDone != "") { - eval(execWhenDone); - } - } else { - - // Do the Fade! - - if (includeFade == 1) { - if (fadeAmount < 0) { - setOpacity(Math.abs(zoomCurrent * fadeAmount), zoomdiv); - } else { - setOpacity(100 - (zoomCurrent * fadeAmount), zoomdiv); - } - } - - // Calculate this step's difference, and move it! - - moveW = cubicInOut(zoomCurrent, zoomStartW, zoomChangeW, zoomSteps); - moveH = cubicInOut(zoomCurrent, zoomStartH, zoomChangeH, zoomSteps); - moveX = cubicInOut(zoomCurrent, zoomStartX, zoomChangeX, zoomSteps); - moveY = cubicInOut(zoomCurrent, zoomStartY, zoomChangeY, zoomSteps); - - document.getElementById(zoomdiv).style.left = moveX + 'px'; - document.getElementById(zoomdiv).style.top = moveY + 'px'; - zoomimg.style.width = moveW + 'px'; - zoomimg.style.height = moveH + 'px'; - - zoomCurrent++; - - clearInterval(zoomTimer[theID]); - zoomTimer[theID] = setInterval("zoomElement('"+zoomdiv+"', '"+theID+"', "+zoomCurrent+", "+zoomStartW+", "+zoomChangeW+", "+zoomStartH+", "+zoomChangeH+", "+zoomStartX+", "+zoomChangeX+", "+zoomStartY+", "+zoomChangeY+", "+zoomSteps+", "+includeFade+", "+fadeAmount+", '"+execWhenDone+"')", zoomTime); - } -} - -// Zoom Utility: Get Key Press when image is open, and act accordingly - -function getKey(evt) { - if (! evt) { - theKey = event.keyCode; - } else { - theKey = evt.keyCode; - } - - if (theKey == 27) { // ESC - zoomOut(this, evt); - } -} - -//////////////////////////// -// -// FADE Functions -// - -function fadeOut(elem) { - if (elem.id) { - fadeElementSetup(elem.id, 100, 0, 10); - } -} - -function fadeIn(elem) { - if (elem.id) { - fadeElementSetup(elem.id, 0, 100, 10); - } -} - -// Fade: Initialize the fade function - -var fadeActive = new Array(); -var fadeQueue = new Array(); -var fadeTimer = new Array(); -var fadeClose = new Array(); -var fadeMode = new Array(); - -function fadeElementSetup(theID, fdStart, fdEnd, fdSteps, fdClose, fdMode) { - - // alert("Fading: "+theID+" Steps: "+fdSteps+" Mode: "+fdMode); - - if (fadeActive[theID] == true) { - // Already animating, queue up this command - fadeQueue[theID] = new Array(theID, fdStart, fdEnd, fdSteps); - } else { - fadeSteps = fdSteps; - fadeCurrent = 0; - fadeAmount = (fdStart - fdEnd) / fadeSteps; - fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15); - fadeActive[theID] = true; - fadeMode[theID] = fdMode; - - if (fdClose == 1) { - fadeClose[theID] = true; - } else { - fadeClose[theID] = false; - } - } -} - -// Fade: Do the fade. This function will call itself, modifying the parameters, so -// many instances can run concurrently. Can fade using opacity, or fade using a box-shadow. - -function fadeElement(theID, fadeCurrent, fadeAmount, fadeSteps) { - - if (fadeCurrent == fadeSteps) { - - // We're done, so clear. - - clearInterval(fadeTimer[theID]); - fadeActive[theID] = false; - fadeTimer[theID] = false; - - // Should we close it once the fade is complete? - - if (fadeClose[theID] == true) { - document.getElementById(theID).style.visibility = "hidden"; - } - - // Hang on.. did a command queue while we were working? If so, make it happen now - - if (fadeQueue[theID] && fadeQueue[theID] != false) { - fadeElementSetup(fadeQueue[theID][0], fadeQueue[theID][1], fadeQueue[theID][2], fadeQueue[theID][3]); - fadeQueue[theID] = false; - } - } else { - - fadeCurrent++; - - // Now actually do the fade adjustment. - - if (fadeMode[theID] == "shadow") { - - // Do a special fade on the webkit-box-shadow of the object - - if (fadeAmount < 0) { - document.getElementById(theID).style.webkitBoxShadow = shadowSettings + (Math.abs(fadeCurrent * fadeAmount)) + ')'; - } else { - document.getElementById(theID).style.webkitBoxShadow = shadowSettings + (100 - (fadeCurrent * fadeAmount)) + ')'; - } - - } else { - - // Set the opacity depending on if we're adding or subtracting (pos or neg) - - if (fadeAmount < 0) { - setOpacity(Math.abs(fadeCurrent * fadeAmount), theID); - } else { - setOpacity(100 - (fadeCurrent * fadeAmount), theID); - } - } - - // Keep going, and send myself the updated variables - clearInterval(fadeTimer[theID]); - fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15); - } -} - -//////////////////////////// -// -// UTILITY functions -// - -// Utility: Set the opacity, compatible with a number of browsers. Value from 0 to 100. - -function setOpacity(opacity, theID) { - - var object = document.getElementById(theID).style; - - // If it's 100, set it to 99 for Firefox. - - if (navigator.userAgent.indexOf("Firefox") != -1) { - if (opacity == 100) { opacity = 99.9999; } // This is majorly awkward - } - - // Multi-browser opacity setting - - object.filter = "alpha(opacity=" + opacity + ")"; // IE/Win - object.opacity = (opacity / 100); // Safari 1.2, Firefox+Mozilla - -} - -// Utility: Math functions for animation calucations - From http://www.robertpenner.com/easing/ -// -// t = time, b = begin, c = change, d = duration -// time = current frame, begin is fixed, change is basically finish - begin, duration is fixed (frames), - -function linear(t, b, c, d) -{ - return c*t/d + b; -} - -function sineInOut(t, b, c, d) -{ - return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; -} - -function cubicIn(t, b, c, d) { - return c*(t/=d)*t*t + b; -} - -function cubicOut(t, b, c, d) { - return c*((t=t/d-1)*t*t + 1) + b; -} - -function cubicInOut(t, b, c, d) -{ - if ((t/=d/2) < 1) return c/2*t*t*t + b; - return c/2*((t-=2)*t*t + 2) + b; -} - -function bounceOut(t, b, c, d) -{ - if ((t/=d) < (1/2.75)){ - return c*(7.5625*t*t) + b; - } else if (t < (2/2.75)){ - return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; - } else if (t < (2.5/2.75)){ - return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; - } else { - return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; - } -} - - -// Utility: Get the size of the window, and set myWidth and myHeight -// Credit to quirksmode.org - -function getSize() { - - // Window Size - - if (self.innerHeight) { // Everyone but IE - myWidth = window.innerWidth; - myHeight = window.innerHeight; - myScroll = window.pageYOffset; - } else if (document.documentElement && document.documentElement.clientHeight) { // IE6 Strict - myWidth = document.documentElement.clientWidth; - myHeight = document.documentElement.clientHeight; - myScroll = document.documentElement.scrollTop; - } else if (document.body) { // Other IE, such as IE7 - myWidth = document.body.clientWidth; - myHeight = document.body.clientHeight; - myScroll = document.body.scrollTop; - } - - // Page size w/offscreen areas - - if (window.innerHeight && window.scrollMaxY) { - myScrollWidth = document.body.scrollWidth; - myScrollHeight = window.innerHeight + window.scrollMaxY; - } else if (document.body.scrollHeight > document.body.offsetHeight) { // All but Explorer Mac - myScrollWidth = document.body.scrollWidth; - myScrollHeight = document.body.scrollHeight; - } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari - myScrollWidth = document.body.offsetWidth; - myScrollHeight = document.body.offsetHeight; - } -} - -// Utility: Get Shift Key Status -// IE events don't seem to get passed through the function, so grab it from the window. - -function getShift(evt) { - var shift = false; - if (! evt && window.event) { - shift = window.event.shiftKey; - } else if (evt) { - shift = evt.shiftKey; - if (shift) evt.stopPropagation(); // Prevents Firefox from doing shifty things - } - return shift; -} - -// Utility: Find the Y position of an element on a page. Return Y and X as an array - -function findElementPos(elemFind) -{ - var elemX = 0; - var elemY = 0; - do { - elemX += elemFind.offsetLeft; - elemY += elemFind.offsetTop; - } while ( elemFind = elemFind.offsetParent ) - - return Array(elemX, elemY); -} \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/inc/js/FancyZoomHTML.js b/subsonic-site/src/main/webapp/inc/js/FancyZoomHTML.js deleted file mode 100644 index 7644a9a8..00000000 --- a/subsonic-site/src/main/webapp/inc/js/FancyZoomHTML.js +++ /dev/null @@ -1,318 +0,0 @@ -// FancyZoomHTML.js - v1.0 -// Used to draw necessary HTML elements for FancyZoom -// -// Copyright (c) 2008 Cabel Sasser / Panic Inc -// All rights reserved. - -function insertZoomHTML() { - - // All of this junk creates the three
's used to hold the closebox, image, and zoom shadow. - - var inBody = document.getElementsByTagName("body").item(0); - - // WAIT SPINNER - - var inSpinbox = document.createElement("div"); - inSpinbox.setAttribute('id', 'ZoomSpin'); - inSpinbox.style.position = 'absolute'; - inSpinbox.style.left = '10px'; - inSpinbox.style.top = '10px'; - inSpinbox.style.visibility = 'hidden'; - inSpinbox.style.zIndex = '525'; - inBody.insertBefore(inSpinbox, inBody.firstChild); - - var inSpinImage = document.createElement("img"); - inSpinImage.setAttribute('id', 'SpinImage'); - inSpinImage.setAttribute('src', zoomImagesURI+'zoom-spin-1.png'); - inSpinbox.appendChild(inSpinImage); - - // ZOOM IMAGE - // - //
- // - //
- // - //
- //
- - var inZoombox = document.createElement("div"); - inZoombox.setAttribute('id', 'ZoomBox'); - - inZoombox.style.position = 'absolute'; - inZoombox.style.left = '10px'; - inZoombox.style.top = '10px'; - inZoombox.style.visibility = 'hidden'; - inZoombox.style.zIndex = '499'; - - inBody.insertBefore(inZoombox, inSpinbox.nextSibling); - - var inImage1 = document.createElement("img"); - inImage1.onclick = function (event) { zoomOut(this, event); return false; }; - inImage1.setAttribute('src',zoomImagesURI+'spacer.gif'); - inImage1.setAttribute('id','ZoomImage'); - inImage1.setAttribute('border', '0'); - // inImage1.setAttribute('onMouseOver', 'zoomMouseOver();') - // inImage1.setAttribute('onMouseOut', 'zoomMouseOut();') - - // This must be set first, so we can later test it using webkitBoxShadow. - inImage1.setAttribute('style', '-webkit-box-shadow: '+shadowSettings+'0.0)'); - inImage1.style.display = 'block'; - inImage1.style.width = '10px'; - inImage1.style.height = '10px'; - inImage1.style.cursor = 'pointer'; // -webkit-zoom-out? - inZoombox.appendChild(inImage1); - - var inClosebox = document.createElement("div"); - inClosebox.setAttribute('id', 'ZoomClose'); - inClosebox.style.position = 'absolute'; - - // In MSIE, we need to put the close box inside the image. - // It's 2008 and I'm having to do a browser detect? Sigh. - if (browserIsIE) { - inClosebox.style.left = '-1px'; - inClosebox.style.top = '0px'; - } else { - inClosebox.style.left = '-15px'; - inClosebox.style.top = '-15px'; - } - - inClosebox.style.visibility = 'hidden'; - inZoombox.appendChild(inClosebox); - - var inImage2 = document.createElement("img"); - inImage2.onclick = function (event) { zoomOut(this, event); return false; }; - inImage2.setAttribute('src',zoomImagesURI+'closebox.png'); - inImage2.setAttribute('width','30'); - inImage2.setAttribute('height','30'); - inImage2.setAttribute('border','0'); - inImage2.style.cursor = 'pointer'; - inClosebox.appendChild(inImage2); - - // SHADOW - // Only draw the table-based shadow if the programatic webkitBoxShadow fails! - // Also, don't draw it if we're IE -- it wouldn't look quite right anyway. - - if (! document.getElementById('ZoomImage').style.webkitBoxShadow && ! browserIsIE) { - - // SHADOW BASE - - var inFixedBox = document.createElement("div"); - inFixedBox.setAttribute('id', 'ShadowBox'); - inFixedBox.style.position = 'absolute'; - inFixedBox.style.left = '50px'; - inFixedBox.style.top = '50px'; - inFixedBox.style.width = '100px'; - inFixedBox.style.height = '100px'; - inFixedBox.style.visibility = 'hidden'; - inFixedBox.style.zIndex = '498'; - inBody.insertBefore(inFixedBox, inZoombox.nextSibling); - - // SHADOW - // Now, the shadow table. Skip if not compatible, or irrevelant with -box-shadow. - - //
X - // - // - // - // - // - - var inShadowTable = document.createElement("table"); - inShadowTable.setAttribute('border', '0'); - inShadowTable.setAttribute('width', '100%'); - inShadowTable.setAttribute('height', '100%'); - inShadowTable.setAttribute('cellpadding', '0'); - inShadowTable.setAttribute('cellspacing', '0'); - inFixedBox.appendChild(inShadowTable); - - var inShadowTbody = document.createElement("tbody"); // Needed for IE (for HTML4). - inShadowTable.appendChild(inShadowTbody); - - var inRow1 = document.createElement("tr"); - inRow1.style.height = '25px'; - inShadowTbody.appendChild(inRow1); - - var inCol1 = document.createElement("td"); - inCol1.style.width = '27px'; - inRow1.appendChild(inCol1); - var inShadowImg1 = document.createElement("img"); - inShadowImg1.setAttribute('src', zoomImagesURI+'zoom-shadow1.png'); - inShadowImg1.setAttribute('width', '27'); - inShadowImg1.setAttribute('height', '25'); - inShadowImg1.style.display = 'block'; - inCol1.appendChild(inShadowImg1); - - var inCol2 = document.createElement("td"); - inCol2.setAttribute('background', zoomImagesURI+'zoom-shadow2.png'); - inRow1.appendChild(inCol2); - // inCol2.innerHTML = ' - // - // - // - // - - inRow2 = document.createElement("tr"); - inShadowTbody.appendChild(inRow2); - - var inCol4 = document.createElement("td"); - inCol4.setAttribute('background', zoomImagesURI+'zoom-shadow4.png'); - inRow2.appendChild(inCol4); - // inCol4.innerHTML = ' '; - var inSpacer2 = document.createElement("img"); - inSpacer2.setAttribute('src',zoomImagesURI+'spacer.gif'); - inSpacer2.setAttribute('height', '1'); - inSpacer2.setAttribute('width', '1'); - inSpacer2.style.display = 'block'; - inCol4.appendChild(inSpacer2); - - var inCol5 = document.createElement("td"); - inCol5.setAttribute('bgcolor', '#ffffff'); - inRow2.appendChild(inCol5); - // inCol5.innerHTML = ' '; - var inSpacer3 = document.createElement("img"); - inSpacer3.setAttribute('src',zoomImagesURI+'spacer.gif'); - inSpacer3.setAttribute('height', '1'); - inSpacer3.setAttribute('width', '1'); - inSpacer3.style.display = 'block'; - inCol5.appendChild(inSpacer3); - - var inCol6 = document.createElement("td"); - inCol6.setAttribute('background', zoomImagesURI+'zoom-shadow5.png'); - inRow2.appendChild(inCol6); - // inCol6.innerHTML = ' '; - var inSpacer4 = document.createElement("img"); - inSpacer4.setAttribute('src',zoomImagesURI+'spacer.gif'); - inSpacer4.setAttribute('height', '1'); - inSpacer4.setAttribute('width', '1'); - inSpacer4.style.display = 'block'; - inCol6.appendChild(inSpacer4); - - // - // - // - // - //
 
   
- //  
- - var inRow3 = document.createElement("tr"); - inRow3.style.height = '26px'; - inShadowTbody.appendChild(inRow3); - - var inCol7 = document.createElement("td"); - inCol7.style.width = '27px'; - inRow3.appendChild(inCol7); - var inShadowImg7 = document.createElement("img"); - inShadowImg7.setAttribute('src', zoomImagesURI+'zoom-shadow6.png'); - inShadowImg7.setAttribute('width', '27'); - inShadowImg7.setAttribute('height', '26'); - inShadowImg7.style.display = 'block'; - inCol7.appendChild(inShadowImg7); - - var inCol8 = document.createElement("td"); - inCol8.setAttribute('background', zoomImagesURI+'zoom-shadow7.png'); - inRow3.appendChild(inCol8); - // inCol8.innerHTML = ' '; - var inSpacer5 = document.createElement("img"); - inSpacer5.setAttribute('src',zoomImagesURI+'spacer.gif'); - inSpacer5.setAttribute('height', '1'); - inSpacer5.setAttribute('width', '1'); - inSpacer5.style.display = 'block'; - inCol8.appendChild(inSpacer5); - - var inCol9 = document.createElement("td"); - inCol9.style.width = '27px'; - inRow3.appendChild(inCol9); - var inShadowImg9 = document.createElement("img"); - inShadowImg9.setAttribute('src', zoomImagesURI+'zoom-shadow8.png'); - inShadowImg9.setAttribute('width', '27'); - inShadowImg9.setAttribute('height', '26'); - inShadowImg9.style.display = 'block'; - inCol9.appendChild(inShadowImg9); - } - - if (includeCaption) { - - // CAPTION - // - //
- // - // - // - // - // - // - //
- //
- - var inCapDiv = document.createElement("div"); - inCapDiv.setAttribute('id', 'ZoomCapDiv'); - inCapDiv.style.position = 'absolute'; - inCapDiv.style.visibility = 'hidden'; - inCapDiv.style.marginLeft = 'auto'; - inCapDiv.style.marginRight = 'auto'; - inCapDiv.style.zIndex = '501'; - - inBody.insertBefore(inCapDiv, inZoombox.nextSibling); - - var inCapTable = document.createElement("table"); - inCapTable.setAttribute('border', '0'); - inCapTable.setAttribute('cellPadding', '0'); // Wow. These honestly need to - inCapTable.setAttribute('cellSpacing', '0'); // be intercapped to work in IE. WTF? - inCapDiv.appendChild(inCapTable); - - var inTbody = document.createElement("tbody"); // Needed for IE (for HTML4). - inCapTable.appendChild(inTbody); - - var inCapRow1 = document.createElement("tr"); - inTbody.appendChild(inCapRow1); - - var inCapCol1 = document.createElement("td"); - inCapCol1.setAttribute('align', 'right'); - inCapRow1.appendChild(inCapCol1); - var inCapImg1 = document.createElement("img"); - inCapImg1.setAttribute('src', zoomImagesURI+'zoom-caption-l.png'); - inCapImg1.setAttribute('width', '13'); - inCapImg1.setAttribute('height', '26'); - inCapImg1.style.display = 'block'; - inCapCol1.appendChild(inCapImg1); - - var inCapCol2 = document.createElement("td"); - inCapCol2.setAttribute('background', zoomImagesURI+'zoom-caption-fill.png'); - inCapCol2.setAttribute('id', 'ZoomCaption'); - inCapCol2.setAttribute('valign', 'middle'); - inCapCol2.style.fontSize = '14px'; - inCapCol2.style.fontFamily = 'Helvetica'; - inCapCol2.style.fontWeight = 'bold'; - inCapCol2.style.color = '#ffffff'; - inCapCol2.style.textShadow = '0px 2px 4px #000000'; - inCapCol2.style.whiteSpace = 'nowrap'; - inCapRow1.appendChild(inCapCol2); - - var inCapCol3 = document.createElement("td"); - inCapRow1.appendChild(inCapCol3); - var inCapImg2 = document.createElement("img"); - inCapImg2.setAttribute('src', zoomImagesURI+'zoom-caption-r.png'); - inCapImg2.setAttribute('width', '13'); - inCapImg2.setAttribute('height', '26'); - inCapImg2.style.display = 'block'; - inCapCol3.appendChild(inCapImg2); - } -} \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/inc/js/jquery-1.4.4.min.js b/subsonic-site/src/main/webapp/inc/js/jquery-1.4.4.min.js deleted file mode 100644 index 8f3ca2e2..00000000 --- a/subsonic-site/src/main/webapp/inc/js/jquery-1.4.4.min.js +++ /dev/null @@ -1,167 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.4 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Nov 11 19:04:53 2010 -0500 - */ -(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= -h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
t
";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="

";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, -""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/subsonic-site/src/main/webapp/inc/video/subsonic-medium.jpg b/subsonic-site/src/main/webapp/inc/video/subsonic-medium.jpg deleted file mode 100644 index 799ba92a..00000000 Binary files a/subsonic-site/src/main/webapp/inc/video/subsonic-medium.jpg and /dev/null differ diff --git a/subsonic-site/src/main/webapp/index.html b/subsonic-site/src/main/webapp/index.html deleted file mode 100644 index 372f74d1..00000000 --- a/subsonic-site/src/main/webapp/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/index.jsp b/subsonic-site/src/main/webapp/index.jsp deleted file mode 100644 index 94ffd395..00000000 --- a/subsonic-site/src/main/webapp/index.jsp +++ /dev/null @@ -1,120 +0,0 @@ - - - -<%! String current = "home"; %> -<%@ include file="header.jsp" %> - - - - - -
-<%@ include file="menu.jsp" %> -<%@ include file="banner.jsp" %> - -
-
-

Welcome to Subsonic!

- -
- -
    -
  • Convert and stream lossless music on the fly.
  • -
  • Manage 100,000+ files in your music collection without hassle.
  • -
  • Download and listen to Podcasts.
  • -
  • Get cover art, lyrics, reviews and other album info from Google, Chartlyrics, - allmusic and Wikipedia.
  • -
  • Plus much more...
  • -
-
- -
-
What is Subsonic?
-
-
- -

- Subsonic is a free, web-based media streamer, providing ubiquitous access to your music. - Use it to share your music with friends, or to listen to your own music while at work. You can - stream to multiple players simultaneously, for instance to one player in your kitchen and another in - your living room. -

- - - -

- Subsonic is designed to handle very large music collections (hundreds of gigabytes). - Although optimized for MP3 streaming, it works for any audio or video format that can stream over HTTP, - for instance AAC and OGG. By using transcoder plug-ins, Subsonic supports - on-the-fly conversion and streaming of virtually any audio format, including WMA, FLAC, APE, Musepack, - WavPack and Shorten. -

- -

- If you have constrained bandwidth, you may set an upper limit for the bitrate of the music streams. - Subsonic will then automatically resample the music to a suitable bitrate. -

- -

- In addition to being a streaming media server, Subsonic works very well as a local jukebox. The - intuitive web interface, as well as search and index facilities, are optimized for efficient browsing through large - media libraries. Subsonic also comes with an integrated Podcast receiver, with many of the same features - as you find in iTunes. -

- -

- Based on Java technology, Subsonic runs on most platforms, including Windows, Mac, Linux and Unix variants. -

- - GPL - -

- Subsonic is open-source software licensed under GPL. -

- -
-
-
- -
-
About
-
-
-

- Sindre Mehus - Subsonic is developed by Sindre Mehus. - I live in Oslo, Norway and work as a Java software consultant. -

-

- If you have any questions, comments or suggestions for improvements, please visit the Subsonic Forum. -

-
-
-
-
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="download-subsonic.jsp" %> - <%@ include file="quotes.jsp" %> - <%@ include file="donate.jsp" %> -
- SourceForge.net -
-
-
-
-
-
-<%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/installation.jsp b/subsonic-site/src/main/webapp/installation.jsp deleted file mode 100644 index 9a477dc1..00000000 --- a/subsonic-site/src/main/webapp/installation.jsp +++ /dev/null @@ -1,278 +0,0 @@ - - - -<%! String current = "installation"; %> -<%@ include file="header.jsp" %> - - - - - -
-<%@ include file="menu.jsp" %> - -
-
-

Installing Subsonic

-

- Subsonic features several flexible installation options. Select the one which suits you best: -

- - - -Change password -

Important! - Immediately after installing Subsonic you should change the admin password to secure the server. - Point your browser to the Subsonic web page (see URL below), and log in with username admin and password - admin. Go to Settings > Users to change password and create new users. -

- -
- -
Windows installation
-
-
-

- On Windows, the easiest way to install Subsonic is using the provided Windows Installer: subsonic-x.x-setup.exe. -

- Windows Installer -

- It installs Subsonic as a service, available in Control Panel > Administrative Tools > Services, that is started automatically when you log on to Windows. -

-

- It also creates links in the Start Menu: Start > All Programs > Subsonic. From this menu you can start/stop the Subsonic service, open the Subsonic web page, or - change basic settings such as which port number Subsonic should use. You can also click on the little yellow submarine tray icon. -

-

- If you're upgrading an existing Subsonic installation, you don't have to uninstall the old version first. In any case, the existing Subsonic settings are preserved. -

-

- After installing and starting Subsonic, open the Subsonic web page on http://localhost. -

-
-
-
- -
- -
Mac installation
-
-
- Mac Installer -

- Download the installation package and run it. This installs Subsonic.app in Applications. Start it by opening Applications and - click the Subsonic icon. A small headset icon will appear in the menu bar. If you want Subsonic to start automatically when you log in, - open System Preferences > Accounts and add Subsonic to the list of Login Items. -

-

- After installing and starting Subsonic, open the Subsonic web page on http://localhost:4040. -

-

Advanced configuration

-

- To change the port number, Java memory settings or other startup parameters, edit /Applications/Subsonic.app/Contents/Info.plist. -

-

Troubleshooting

-

- If Subsonic doesn't start properly you can troubleshoot it by starting it from the command line: - /Applications/Subsonic.app/Contents/MacOS/JavaApplicationStub. -

-

- Also check the logs in /Library/Application Support/Subsonic. -

- -
-
-
- -
- -
Debian/Ubuntu installation
-
-
-

- This installation option applies to Debian Linux, including Ubuntu. -

-
    -
  • First, install Java: sudo apt-get install openjdk-6-jre
  • -
  • Download the Subsonic .deb package and install it: sudo dpkg -i subsonic-x.x.deb
  • -
-

- Notice that the installer configures your system to start Subsonic automatically when booting. - After installing, open the Subsonic web page on http://localhost:4040. -

- -

Change user

-

- By default the Subsonic process is run as the root user. To improve security it is strongly advised that you run it as a - dedicated user with less powerful privileges. You can specify this user by setting the SUBSONIC_USER variable in - /etc/default/subsonic. -

-

- Note that non-root users are by default not allowed to use ports below 1024. Also make sure to grant the user write permissions in - the music directories, otherwise changing album art and tags will fail. -

- -

Advanced configuration

-

- To change the port number, Java memory settings or other startup parameters, edit the SUBSONIC_ARGS variable in - /etc/default/subsonic. To restart Subsonic, do - sudo service subsonic restart -

- -

Troubleshooting

-

- Check the logs in /var/subsonic. -

- -
-
-
- -
- -
Red Hat/Fedora installation
-
-
-

- This installation option applies to Red Hat Linux, including Fedora. -

-
    -
  • First, install Java: sudo yum install java-1.6.0-openjdk
  • -
  • Download the Subsonic .rpm installation package and install it: sudo yum install --nogpgcheck subsonic-x.x.rpm
  • -
  • If nothing happens, try to remove the old version first (all settings will be retained): sudo yum remove subsonic
  • -
-

- Notice that the installer configures your system to start Subsonic automatically when booting. - After installing, open the Subsonic web page on http://localhost:4040. -

- -

Change user

-

- By default the Subsonic process is run as the root user. To improve security it is strongly advised that you run it as a - dedicated user with less powerful privileges. You can specify this user by setting the SUBSONIC_USER variable in - /etc/sysconfig/subsonic. -

-

- Note that non-root users are by default not allowed to use ports below 1024. Also make sure to grant the user write permissions in - the music directories, otherwise changing album art and tags will fail. -

- -

Advanced configuration

-

- To change the port number, Java memory settings or other startup parameters, edit the SUBSONIC_ARGS variable in - /etc/sysconfig/subsonic. To restart Subsonic, do - sudo service subsonic restart -

- -

Troubleshooting

-

- Check the logs in /var/subsonic. -

- -
-
-
- -
- -
Stand-alone installation
-
-
-

Requirements: Sun Java 5 or later (Download)

-

- This is Subsonic with an embedded Jetty server, and can be installed on any Windows, Linux, Unix, FreeNAS, unRAID etc operating system. -

-
    -
  • Unpack subsonic-x.x-standalone.tar.gz to SUBSONIC_HOME/standalone. - SUBSONIC_HOME is typically c:\subsonic on Windows, and /var/subsonic on Unix-based operating systems.
  • -
  • Optionally configure the startup script SUBSONIC_HOME/standalone/subsonic.sh
  • -
  • Execute the startup script. (Typically you will configure your operating system to execute the script automatically at start-up.)
  • -
  • Open the Subsonic web page. The default address is http://localhost:4040.
  • -
-
-
-
- -
- - -
WAR installation
-
-
-

Requirements: Java 5 or later (Download). A servlet container supporting Servlet 2.4 and JSP 2.0.

- -

- Use this option if you want to deploy Subsonic in an external server, such as Tomcat, Jetty, GlassFish or Geronimo. Subsonic comes - packaged as a standard Java web application, subsonic.war, which can be easily deployed in any compatible servlet container. - The most commonly used server is Tomcat, and the rest of this section describes how to install or upgrade Subsonic on a Tomcat server. - (Please note that Subsonic currently doesn't work with Tomcat 7.) -

- -
    -
  • Stop Tomcat if it's running.
  • -
  • Remove these files and directories if they exist: -
      -
    • TOMCAT_HOME/webapps/subsonic.war
    • -
    • TOMCAT_HOME/webapps/subsonic
    • -
    • TOMCAT_HOME/work
    • -
    -
  • -
  • Copy the file subsonic.war to TOMCAT_HOME/webapps.
  • -
  • Start Tomcat.
  • -
  • Point your web browser to http://localhost/subsonic (or - http://localhost:8080/subsonic if you installed Tomcat on port 8080.)
  • -
- -

Notes

-
    -
  • If you installed Tomcat as a Windows Service, you can start and stop it from the service manager: Control Panel > Administrative Tools > Services.
  • -
  • TOMCAT_HOME refers to the directory in which you installed Tomcat. On Windows this is normally C:\Program Files\Apache Software Foundation\Tomcat 5.5
  • -
  • On Linux, Subsonic keeps its files in /var/subsonic. Depending on your configuration, Tomcat may not be permitted to create this directory, in which case - you have to create it manually: mkdir /var/subsonic; chown tomcat:tomcat /var/subsonic
  • -
- -

Troubleshooting

-

- If you experience any problems, please make sure you follow the installation instructions above. Here's a list of suggestions of what to do if it still doesn't work: -

-
    -
  • Restart Tomcat.
  • -
  • Reinstall Subsonic.
  • -
  • Upgrade to the latest Tomcat version (at least if you're using Tomcat 5.0 or earlier).
  • -
  • Look for errors in the Subsonic log, c:\subsonic\subsonic.log or /var/subsonic/subsonic.log.
  • -
  • Look for errors in the Tomcat logs, TOMCAT_HOME/logs.
  • -
  • Post a message to the Subsonic forum. Please let us know what Subsonic version, Tomcat version and - operating system you're using. Also, please give a detailed description of the problem. This way, we'll be able to help you faster.
  • -
-
-
-
- -
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="tutorial.jsp" %> - <%@ include file="donate.jsp" %> - <%@ include file="translate-subsonic.jsp" %> - -
- -
-
-
-
-<%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/libraries.jsp b/subsonic-site/src/main/webapp/libraries.jsp deleted file mode 100644 index b0991114..00000000 --- a/subsonic-site/src/main/webapp/libraries.jsp +++ /dev/null @@ -1,48 +0,0 @@ - - - -<%! String current = "libraries"; %> -<%@ include file="header.jsp" %> - - - - - - - - - diff --git a/subsonic-site/src/main/webapp/menu.jsp b/subsonic-site/src/main/webapp/menu.jsp deleted file mode 100644 index b438c7ce..00000000 --- a/subsonic-site/src/main/webapp/menu.jsp +++ /dev/null @@ -1,32 +0,0 @@ - - -
-
- -
- - - - -
Search
-
- -
- -
- diff --git a/subsonic-site/src/main/webapp/merchandise.jsp b/subsonic-site/src/main/webapp/merchandise.jsp deleted file mode 100644 index c650c1d3..00000000 --- a/subsonic-site/src/main/webapp/merchandise.jsp +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/subsonic-site/src/main/webapp/paypal-landing.jsp b/subsonic-site/src/main/webapp/paypal-landing.jsp deleted file mode 100644 index 9f91cbb7..00000000 --- a/subsonic-site/src/main/webapp/paypal-landing.jsp +++ /dev/null @@ -1,36 +0,0 @@ - - - - - Subsonic » Free Music Streamer - - - - - <%@ include file="tracking.jsp" %> - - - -

Thank you!

- -

- Thanks for supporting Subsonic - your license key will be emailed to you shortly. -

- -

- If you haven't received the email within an hour, remember to check your spam folder. Feel free to - take contact if you have any questions or issues - regarding the payment or the Subsonic license key. -

- -

- To install the license, click the "Donate" link in the top right corner of the Subsonic web interface - (more info). -

- -

- For more information, please visit subsonic.org -

- - - diff --git a/subsonic-site/src/main/webapp/quotes.jsp b/subsonic-site/src/main/webapp/quotes.jsp deleted file mode 100644 index 8ac97fb3..00000000 --- a/subsonic-site/src/main/webapp/quotes.jsp +++ /dev/null @@ -1,55 +0,0 @@ - - - diff --git a/subsonic-site/src/main/webapp/redirect-expired.jsp b/subsonic-site/src/main/webapp/redirect-expired.jsp deleted file mode 100644 index 5b63eacf..00000000 --- a/subsonic-site/src/main/webapp/redirect-expired.jsp +++ /dev/null @@ -1,104 +0,0 @@ - - - - - Subsonic » Free Music Streamer - - - - - - - -

Trial period expired

- -

- Sorry, the trial period for the web address <%= request.getParameter("redirectFrom")%>.subsonic.org has expired. -

- -

- But don't worry; to get permanent ownership of the address you can give a one-time donation to the Subsonic project. -

- -

- As a donor you get the following benefits: -

- - -

- The suggested donation amount is - €20, - but you can give any amount you like. -

- -

- Click one of the buttons to go to PayPal where you can pay by credit card or by using your PayPal account. - Once the donation is processed, you will receive a license key by email. -

- - - - - - - - - -
- - - - - - - -
€10
-
- - - - - - - -
€15
-
- - - - - - - -
€20
-
- - - - - - - -
€25
-
- - - - - - - -
€30
-
- -

- For more information, please visit subsonic.org -

- - diff --git a/subsonic-site/src/main/webapp/ripserver.jsp b/subsonic-site/src/main/webapp/ripserver.jsp deleted file mode 100644 index 1dc0b2ec..00000000 --- a/subsonic-site/src/main/webapp/ripserver.jsp +++ /dev/null @@ -1,8 +0,0 @@ - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/robots.txt b/subsonic-site/src/main/webapp/robots.txt deleted file mode 100644 index 8093c87b..00000000 --- a/subsonic-site/src/main/webapp/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/screenshots.jsp b/subsonic-site/src/main/webapp/screenshots.jsp deleted file mode 100644 index be20ad46..00000000 --- a/subsonic-site/src/main/webapp/screenshots.jsp +++ /dev/null @@ -1,67 +0,0 @@ -<%@ page import="java.net.URL" %> - - -<%! String current = "screenshots"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
- - - - - - - - - - - - - - - - - - - - - -
- -
- - -
- -
- -
- -
- - -
- <%@ include file="google-translate.jsp" %> - <%@ include file="download-subsonic.jsp" %> - <%@ include file="donate.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/search.jsp b/subsonic-site/src/main/webapp/search.jsp deleted file mode 100644 index cc5e24a6..00000000 --- a/subsonic-site/src/main/webapp/search.jsp +++ /dev/null @@ -1,4 +0,0 @@ -<% - String query = request.getParameter("query") + "+site:subsonic.org"; - response.sendRedirect("http://www.google.com/search?q=" + query); -%> diff --git a/subsonic-site/src/main/webapp/subsonic-ad.jsp b/subsonic-site/src/main/webapp/subsonic-ad.jsp deleted file mode 100644 index 082cdbb0..00000000 --- a/subsonic-site/src/main/webapp/subsonic-ad.jsp +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Subsonic » Free Music Streamer - - - - - - -
-
-

  Love Subsonic?

-

- Support us by giving a donation and enjoy premium features like: -

-
-
Apps for Android, iPhone, WP 7, PlayBook, Roku ++.
-
Video streaming.
-
Share on Facebook, Twitter, Google+
-
Your personal server address: you.subsonic.org
-
No ads.
-
- -

- The suggested donation amount is €20, but you can give any amount you like. -

-

- €10, - €15, - €20, - €25, - €30 -

-

- Donate -

- -
-
- - diff --git a/subsonic-site/src/main/webapp/tracking.jsp b/subsonic-site/src/main/webapp/tracking.jsp deleted file mode 100644 index 672e67e5..00000000 --- a/subsonic-site/src/main/webapp/tracking.jsp +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/subsonic-site/src/main/webapp/transcoding.jsp b/subsonic-site/src/main/webapp/transcoding.jsp deleted file mode 100644 index c526f55c..00000000 --- a/subsonic-site/src/main/webapp/transcoding.jsp +++ /dev/null @@ -1,92 +0,0 @@ - - -<%! String current = "transcoding"; %> -<%@ include file="header.jsp" %> - - - - - -
- <%@ include file="menu.jsp" %> - -
-
-

Transcoding

-

- Transcoding is the process of converting media from one format to another. Subsonic's transcoding engine allows for streaming of - media that would normally not be streamable, for instance lossless formats. The transcoding is performed on-the-fly and doesn't require any disk usage. -

- -

- The actual transcoding is done by third-party command line programs which are installed in: -

-

- Windows  c:\subsonic\transcode
- Mac  /Library/Application Support/Subsonic/transcode
- Linux  /var/subsonic/transcode -

- -

- Note that two transcoders can be chained together. Subsonic comes pre-installed with ffmpeg which supports - a huge range of audio and video formats. -

- -

Recommended configuration

-

- The recommended settings for audio transcoding is: -

-

- Step 1  ffmpeg -i %s -ab %bk -v 0 -f mp3 -
-

- -

- The recommended settings for video transcoding is: -

-

- Step 1  ffmpeg -ss %o -i %s -async 1 -b %bk -s %wx%h -ar 44100 -ac 2 -v 0 -f flv -vcodec libx264 -preset superfast -threads 0 -
-

- -

- Note that "%s" is substituted with the path of the original file at run-time, and "%b" is substituted with - the max bitrate of the player. "%t", "%a" and "%l" are substituted with the song's title, artist and album. -

- - -

Adding custom transcoders

-

- You can add your own custom transcoder given that it fulfills the following requirements: -

-
    -
  • It must have a command line interface.
  • -
  • It must be able to send output to stdout.
  • -
  • If used in transcoding step 2 it must be able to read input from stdin.
  • -
- -

Troubleshooting

-
    -
  • Is the transcoder installed in c:\subsonic\transcode (or /var/subsonic/transcode)?
  • -
  • Is the transcoder activated for your player (in Settings > Players)?
  • -
  • Is the proper file extension added to the list of recognized file types (in Settings > General)?
  • -
  • If it still doesn't work, please check the Subsonic log.
  • -
- -
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="donate.jsp" %> - <%@ include file="merchandise.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/translate-subsonic.jsp b/subsonic-site/src/main/webapp/translate-subsonic.jsp deleted file mode 100644 index 668ea29e..00000000 --- a/subsonic-site/src/main/webapp/translate-subsonic.jsp +++ /dev/null @@ -1,6 +0,0 @@ -
\ No newline at end of file diff --git a/subsonic-site/src/main/webapp/translate.jsp b/subsonic-site/src/main/webapp/translate.jsp deleted file mode 100644 index ad371d3b..00000000 --- a/subsonic-site/src/main/webapp/translate.jsp +++ /dev/null @@ -1,65 +0,0 @@ - - - -<%! String current = "translate"; %> -<%@ include file="header.jsp" %> - - - -
-<%@ include file="menu.jsp" %> - -
-
-

Translating Subsonic

- -

- Here's how to translate Subsonic to a new language. This description assumes that you're using the Windows installer - version of Subsonic. -

- -

- In the following, <ROOT> refers to the directory in which you installed Subsonic - – normally c:\Program Files\Subsonic. -

-
    -
  1. Stop the Subsonic service if it's running.
  2. -
  3. Rename <ROOT>\subsonic.war to <ROOT>\subsonic.zip.
  4. -
  5. Unzip the zip file into a new directory called <ROOT>\subsonic.war. -
  6. Find the two-letter ISO-639 code for your language – a list is available here. - For instance, Italian is assigned the code it.
  7. -
  8. Add the ISO-639 code to the file <ROOT>\subsonic.war\WEB_INF\classes\net\sourceforge\subsonic\i18n\locales.txt.
  9. -
  10. In the same directory is the file ResourceBundle_en.properties which is the English translation. Use this (or any other file) - as the basis for your translation. Better yet, use the latest version from the - SVN repository.
  11. -
  12. Create the new resource file, for instance ResourceBundle_it.properties.
  13. -
  14. Translate the text in the new file.
  15. -
  16. If you are using a non-Latin alphabet (e.g., Cyrillic or Japanese), you have to convert the property file to ASCII before using it. - Use the native2ascii tool which is included in the Java Development Kit. For instance, if you're writing a Macedonian translation - (using the Cyrillic alphabet) using UTF-16 character encoding, you must convert it as follows:

    - - native2ascii -encoding utf-16 c:\develop\ResourceBundle_mk.properties <ROOT>/subsonic.war/WEB_INF/classes/net/sourceforge/subsonic/i18n/ResourceBundle_mk.properties -
  17. -
  18. You have to restart Subsonic for the changes to have effect.
  19. -
  20. When you're done, send the new language file to sindre@activeobjects.no.
  21. -
- -
- -
- <%@ include file="google-translate.jsp" %> - <%@ include file="donate.jsp" %> - <%@ include file="merchandise.jsp" %> -
- -
-
-
-
- <%@ include file="footer.jsp" %> -
- - - - diff --git a/subsonic-site/src/main/webapp/tutorial.jsp b/subsonic-site/src/main/webapp/tutorial.jsp deleted file mode 100644 index a26824f8..00000000 --- a/subsonic-site/src/main/webapp/tutorial.jsp +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/subsonic-site/src/main/webapp/zazeen-ad.jsp b/subsonic-site/src/main/webapp/zazeen-ad.jsp deleted file mode 100644 index d83d8170..00000000 --- a/subsonic-site/src/main/webapp/zazeen-ad.jsp +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - -- cgit v1.2.3