aboutsummaryrefslogtreecommitdiff
path: root/subsonic-site/src/main/webapp/inc
diff options
context:
space:
mode:
Diffstat (limited to 'subsonic-site/src/main/webapp/inc')
-rw-r--r--subsonic-site/src/main/webapp/inc/css/banner.css104
-rw-r--r--subsonic-site/src/main/webapp/inc/css/style.css345
-rw-r--r--subsonic-site/src/main/webapp/inc/img/air.pngbin0 -> 1589 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/android.pngbin0 -> 4032 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/appstore.pngbin0 -> 2811 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/available_on_appstore.pngbin0 -> 10081 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/android-video.pngbin0 -> 40397 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/apps.pngbin0 -> 225880 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/apps.xcfbin0 -> 813795 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/banner-01.jpgbin0 -> 65070 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/banner-bg.gifbin0 -> 4094 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/car.pngbin0 -> 258554 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/iphone.pngbin0 -> 25818 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/isub1.pngbin0 -> 39807 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/next-hover.pngbin0 -> 1569 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/next.pngbin0 -> 1492 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/prev-hover.pngbin0 -> 1583 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/prev.pngbin0 -> 1528 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/screenshot.pngbin0 -> 109736 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/video.pngbin0 -> 288813 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/banner/wp7.pngbin0 -> 66308 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/blackberry.pngbin0 -> 3889 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/body-bg.gifbin0 -> 370 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/button-download.pngbin0 -> 2846 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/change-password-small.pngbin0 -> 6437 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/change-password.pngbin0 -> 28840 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/chumby.pngbin0 -> 3631 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/content-bg.gifbin0 -> 509 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/donate.pngbin0 -> 1036 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/download-fedora.pngbin0 -> 1007 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/download-linux.pngbin0 -> 866 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/download-mac.pngbin0 -> 552 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/download-ubuntu.pngbin0 -> 719 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/download-windows.pngbin0 -> 1017 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/download_small.gifbin0 -> 313 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/closebox.pngbin0 -> 1910 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/spacer.gifbin0 -> 43 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-fill.pngbin0 -> 134 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-l.pngbin0 -> 310 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-r.pngbin0 -> 290 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow1.pngbin0 -> 310 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow2.pngbin0 -> 164 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow3.pngbin0 -> 368 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow4.pngbin0 -> 178 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow5.pngbin0 -> 180 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow6.pngbin0 -> 428 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow7.pngbin0 -> 186 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow8.pngbin0 -> 426 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-1.pngbin0 -> 1882 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-10.pngbin0 -> 1892 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-11.pngbin0 -> 1901 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-12.pngbin0 -> 1902 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-2.pngbin0 -> 1893 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-3.pngbin0 -> 1922 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-4.pngbin0 -> 1890 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-5.pngbin0 -> 1938 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-6.pngbin0 -> 1927 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-7.pngbin0 -> 1898 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-8.pngbin0 -> 1910 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-9.pngbin0 -> 1901 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/amy-small.pngbin0 -> 22455 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/amy.pngbin0 -> 136659 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/avatar-small.pngbin0 -> 16135 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/avatar.pngbin0 -> 38811 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/bbc.pngbin0 -> 897 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/extras.pngbin0 -> 5493 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/extras.xcfbin0 -> 21405 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/flac.pngbin0 -> 6082 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/itunes.pngbin0 -> 9047 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/lame.pngbin0 -> 6634 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/lame.png.origbin0 -> 6634 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/last-fm.pngbin0 -> 2158 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/logon-small.pngbin0 -> 7002 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/logon.pngbin0 -> 15407 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/media-support.pngbin0 -> 40814 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/media-support.xcfbin0 -> 64150 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/mp3.pngbin0 -> 18814 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/mp3.png.origbin0 -> 18814 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/nrk.pngbin0 -> 2040 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/personal-settings-small.pngbin0 -> 13076 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/personal-settings.pngbin0 -> 7461 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/podcast.pngbin0 -> 3250 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/shoutcast.pngbin0 -> 8265 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/shoutcast.png.origbin0 -> 8265 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/wap-small.pngbin0 -> 23306 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/wap.pngbin0 -> 83573 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/wikipedia.pngbin0 -> 5617 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/wikipedia.png.origbin0 -> 16462 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/winamp.pngbin0 -> 40578 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/winamp.png.origbin0 -> 40578 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/wmp.pngbin0 -> 42662 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/features/wmp.png.origbin0 -> 42662 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/footer.gifbin0 -> 5338 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/gettingstarted/license.pngbin0 -> 44025 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/gettingstarted/license_thumb.pngbin0 -> 88683 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders.pngbin0 -> 38957 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders_thumb.pngbin0 -> 106793 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/gigapros.pngbin0 -> 1840 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/gpl.pngbin0 -> 2986 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/header.gifbin0 -> 2251 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/home-rollover.gifbin0 -> 1791 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/itemcontentborder.gifbin0 -> 65 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/mac-appstore.jpgbin0 -> 6717 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/mac-installer-small.pngbin0 -> 23561 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/mac-installer.pngbin0 -> 75268 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/merchandise.pngbin0 -> 20488 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/mpa-nominee.pngbin0 -> 10428 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/paypal.gifbin0 -> 2127 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/ripserver-small.pngbin0 -> 6830 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/ripserver.pngbin0 -> 18375 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen01.pngbin0 -> 209029 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen02.pngbin0 -> 352778 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen03.pngbin0 -> 97498 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen05.pngbin0 -> 743820 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen06.pngbin0 -> 118009 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen07.pngbin0 -> 194749 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen08.pngbin0 -> 140362 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen09.pngbin0 -> 140191 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen10.pngbin0 -> 139752 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen11.pngbin0 -> 196900 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen12.pngbin0 -> 102123 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen13.pngbin0 -> 178352 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen14.pngbin0 -> 114613 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen15.pngbin0 -> 115140 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen16.pngbin0 -> 112808 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen17.pngbin0 -> 482545 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen18.pngbin0 -> 209911 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen19.pngbin0 -> 352106 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen20.pngbin0 -> 417249 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen21.pngbin0 -> 338262 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen22.pngbin0 -> 181565 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen23.pngbin0 -> 115985 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen24.pngbin0 -> 224079 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen25.pngbin0 -> 119445 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen26.pngbin0 -> 51974 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen27.pngbin0 -> 180693 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen28.pngbin0 -> 361945 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen29.pngbin0 -> 30897 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen30.pngbin0 -> 73600 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen31.pngbin0 -> 100196 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen32.pngbin0 -> 81977 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen33.pngbin0 -> 37987 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen34.pngbin0 -> 107142 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen35.pngbin0 -> 218136 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen36.pngbin0 -> 45077 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen37.pngbin0 -> 266136 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen38.pngbin0 -> 280620 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen39.pngbin0 -> 66566 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen40.pngbin0 -> 334178 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen41.pngbin0 -> 26309 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen42.pngbin0 -> 228047 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen43.pngbin0 -> 34464 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen44.pngbin0 -> 39845 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/screen45.pngbin0 -> 29265 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb01.pngbin0 -> 39427 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb02.pngbin0 -> 52858 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb03.pngbin0 -> 23919 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb05.pngbin0 -> 83024 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb06.pngbin0 -> 30336 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb07.pngbin0 -> 28877 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb08.pngbin0 -> 39843 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb09.pngbin0 -> 40084 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb10.pngbin0 -> 38347 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb11.pngbin0 -> 43291 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb12.pngbin0 -> 26359 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb13.pngbin0 -> 40783 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb14.pngbin0 -> 28876 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb15.pngbin0 -> 29549 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb16.pngbin0 -> 32605 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb17.pngbin0 -> 44071 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb18.pngbin0 -> 42192 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb19.pngbin0 -> 42864 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb20.pngbin0 -> 41571 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb21.pngbin0 -> 37146 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb22.pngbin0 -> 28286 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb23.pngbin0 -> 24979 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb24.pngbin0 -> 36146 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb25.pngbin0 -> 27858 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb27.pngbin0 -> 52753 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb28.pngbin0 -> 87617 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb29.pngbin0 -> 11576 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb30.pngbin0 -> 25612 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb31.pngbin0 -> 30137 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb33.pngbin0 -> 39381 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb35.pngbin0 -> 89884 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb36.pngbin0 -> 61584 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb37.pngbin0 -> 48708 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb38.pngbin0 -> 135325 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb39.pngbin0 -> 26633 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb40.pngbin0 -> 86109 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb41.pngbin0 -> 7605 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb42.pngbin0 -> 62084 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb43.pngbin0 -> 42038 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb44.pngbin0 -> 30622 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/screenshots/thumb45.pngbin0 -> 24059 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/search.pngbin0 -> 1267 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/sindre.jpegbin0 -> 1978 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/star.pngbin0 -> 547 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/subsonic-forum.pngbin0 -> 8506 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/subsonic-shop.jpegbin0 -> 18328 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/subsonic-tshirt.pngbin0 -> 119589 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/subsonic.pngbin0 -> 14302 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/top.gifbin0 -> 68 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/topnav-div.gifbin0 -> 263 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/topnav-hover.gifbin0 -> 504 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/topnav.gifbin0 -> 5356 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/ubuntu.pngbin0 -> 1262 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/windows-installer-small.pngbin0 -> 8516 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/windows-installer.pngbin0 -> 18267 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/windows-marketplace.pngbin0 -> 2676 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/windows7.pngbin0 -> 1977 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/zazeen-ad.gifbin0 -> 35430 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/img/zazeen.gifbin0 -> 3993 bytes
-rw-r--r--subsonic-site/src/main/webapp/inc/js/FancyZoom.js761
-rw-r--r--subsonic-site/src/main/webapp/inc/js/FancyZoomHTML.js318
-rw-r--r--subsonic-site/src/main/webapp/inc/js/jquery-1.4.4.min.js167
-rw-r--r--subsonic-site/src/main/webapp/inc/video/subsonic-medium.jpgbin0 -> 60689 bytes
217 files changed, 1695 insertions, 0 deletions
diff --git a/subsonic-site/src/main/webapp/inc/css/banner.css b/subsonic-site/src/main/webapp/inc/css/banner.css
new file mode 100644
index 00000000..22f1d669
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/css/banner.css
@@ -0,0 +1,104 @@
+
+#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
new file mode 100644
index 00000000..ab5435ba
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/css/style.css
@@ -0,0 +1,345 @@
+*,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
new file mode 100644
index 00000000..ff1199a0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/air.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/android.png b/subsonic-site/src/main/webapp/inc/img/android.png
new file mode 100644
index 00000000..5180aeab
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/android.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/appstore.png b/subsonic-site/src/main/webapp/inc/img/appstore.png
new file mode 100644
index 00000000..0cb660bc
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/appstore.png
Binary files 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
new file mode 100644
index 00000000..c02b588d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/available_on_appstore.png
Binary files 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
new file mode 100644
index 00000000..a405faae
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/android-video.png
Binary files 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
new file mode 100644
index 00000000..513a9609
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/apps.png
Binary files 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
new file mode 100644
index 00000000..f4c47872
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/apps.xcf
Binary files 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
new file mode 100644
index 00000000..95301745
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/banner-01.jpg
Binary files 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
new file mode 100644
index 00000000..f62c250d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/banner-bg.gif
Binary files 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
new file mode 100644
index 00000000..ed516232
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/car.png
Binary files 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
new file mode 100644
index 00000000..508e46ae
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/iphone.png
Binary files 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
new file mode 100644
index 00000000..ac3bd21b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/isub1.png
Binary files 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
new file mode 100644
index 00000000..461a158a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/next-hover.png
Binary files 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
new file mode 100644
index 00000000..74319504
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/next.png
Binary files 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
new file mode 100644
index 00000000..ac3fd348
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/prev-hover.png
Binary files 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
new file mode 100644
index 00000000..46331b14
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/prev.png
Binary files 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
new file mode 100644
index 00000000..25dc44b4
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/screenshot.png
Binary files 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
new file mode 100644
index 00000000..52dd9dd3
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/video.png
Binary files 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
new file mode 100644
index 00000000..0312d4d7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/banner/wp7.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/blackberry.png b/subsonic-site/src/main/webapp/inc/img/blackberry.png
new file mode 100644
index 00000000..471d4dfe
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/blackberry.png
Binary files 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
new file mode 100644
index 00000000..40a631a0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/body-bg.gif
Binary files 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
new file mode 100644
index 00000000..dc990cf7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/button-download.png
Binary files 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
new file mode 100644
index 00000000..8b882cb1
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/change-password-small.png
Binary files 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
new file mode 100644
index 00000000..01fd4679
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/change-password.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/chumby.png b/subsonic-site/src/main/webapp/inc/img/chumby.png
new file mode 100644
index 00000000..8d0b683e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/chumby.png
Binary files 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
new file mode 100644
index 00000000..f253c508
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/content-bg.gif
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/donate.png b/subsonic-site/src/main/webapp/inc/img/donate.png
new file mode 100644
index 00000000..3b00577e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/donate.png
Binary files 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
new file mode 100644
index 00000000..4e57200e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/download-fedora.png
Binary files 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
new file mode 100644
index 00000000..872d802f
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/download-linux.png
Binary files 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
new file mode 100644
index 00000000..509a50b2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/download-mac.png
Binary files 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
new file mode 100644
index 00000000..3a904dc7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/download-ubuntu.png
Binary files 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
new file mode 100644
index 00000000..d66f0be3
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/download-windows.png
Binary files 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
new file mode 100644
index 00000000..fa56b595
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/download_small.gif
Binary files 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
new file mode 100644
index 00000000..4de4396d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/closebox.png
Binary files 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
new file mode 100644
index 00000000..5bfd67a2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/spacer.gif
Binary files 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
new file mode 100644
index 00000000..1e341533
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-fill.png
Binary files 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
new file mode 100644
index 00000000..a63ea481
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-l.png
Binary files 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
new file mode 100644
index 00000000..15980d58
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-caption-r.png
Binary files 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
new file mode 100644
index 00000000..8b48000b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow1.png
Binary files 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
new file mode 100644
index 00000000..09209f37
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow2.png
Binary files 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
new file mode 100644
index 00000000..7636fec2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow3.png
Binary files 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
new file mode 100644
index 00000000..c7f148d9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow4.png
Binary files 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
new file mode 100644
index 00000000..2a75b82a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow5.png
Binary files 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
new file mode 100644
index 00000000..65801aa0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow6.png
Binary files 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
new file mode 100644
index 00000000..cb447608
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow7.png
Binary files 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
new file mode 100644
index 00000000..f1c6acdb
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-shadow8.png
Binary files 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
new file mode 100644
index 00000000..5615629c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-1.png
Binary files 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
new file mode 100644
index 00000000..77595dbd
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-10.png
Binary files 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
new file mode 100644
index 00000000..c2147d56
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-11.png
Binary files 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
new file mode 100644
index 00000000..cf027248
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-12.png
Binary files 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
new file mode 100644
index 00000000..95eaae89
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-2.png
Binary files 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
new file mode 100644
index 00000000..9e2b9cb3
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-3.png
Binary files 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
new file mode 100644
index 00000000..a39c0fc0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-4.png
Binary files 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
new file mode 100644
index 00000000..80bea63b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-5.png
Binary files 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
new file mode 100644
index 00000000..b962e5f7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-6.png
Binary files 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
new file mode 100644
index 00000000..9b6e489f
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-7.png
Binary files 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
new file mode 100644
index 00000000..fe147d5f
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-8.png
Binary files 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
new file mode 100644
index 00000000..b321b1c7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/fancyzoom/zoom-spin-9.png
Binary files 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
new file mode 100644
index 00000000..77765178
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/amy-small.png
Binary files 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
new file mode 100644
index 00000000..9a0a5bbd
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/amy.png
Binary files 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
new file mode 100644
index 00000000..66a95810
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/avatar-small.png
Binary files 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
new file mode 100644
index 00000000..943c8ff6
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/avatar.png
Binary files 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
new file mode 100644
index 00000000..906f5e27
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/bbc.png
Binary files 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
new file mode 100644
index 00000000..40369ae9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/extras.png
Binary files 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
new file mode 100644
index 00000000..1e25fcc9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/extras.xcf
Binary files 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
new file mode 100644
index 00000000..f601d00a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/flac.png
Binary files 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
new file mode 100644
index 00000000..f0fc1aa8
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/itunes.png
Binary files 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
new file mode 100644
index 00000000..0e2f79f4
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/lame.png
Binary files 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
new file mode 100644
index 00000000..0e2f79f4
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/lame.png.orig
Binary files 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
new file mode 100644
index 00000000..0c92ac2b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/last-fm.png
Binary files 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
new file mode 100644
index 00000000..015cda1c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/logon-small.png
Binary files 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
new file mode 100644
index 00000000..01514b8f
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/logon.png
Binary files 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
new file mode 100644
index 00000000..1e15244e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/media-support.png
Binary files 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
new file mode 100644
index 00000000..d42e43e4
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/media-support.xcf
Binary files 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
new file mode 100644
index 00000000..0ea7c8af
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/mp3.png
Binary files 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
new file mode 100644
index 00000000..0ea7c8af
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/mp3.png.orig
Binary files 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
new file mode 100644
index 00000000..cc6986cd
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/nrk.png
Binary files 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
new file mode 100644
index 00000000..b1369be0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/personal-settings-small.png
Binary files 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
new file mode 100644
index 00000000..398ba2e9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/personal-settings.png
Binary files 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
new file mode 100644
index 00000000..01a98c64
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/podcast.png
Binary files 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
new file mode 100644
index 00000000..7d8acd18
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png
Binary files 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
new file mode 100644
index 00000000..7d8acd18
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/shoutcast.png.orig
Binary files 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
new file mode 100644
index 00000000..f41eb81b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/wap-small.png
Binary files 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
new file mode 100644
index 00000000..637e52f0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/wap.png
Binary files 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
new file mode 100644
index 00000000..39233e28
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png
Binary files 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
new file mode 100644
index 00000000..12d0e244
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/wikipedia.png.orig
Binary files 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
new file mode 100644
index 00000000..cc35943b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/winamp.png
Binary files 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
new file mode 100644
index 00000000..cc35943b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/winamp.png.orig
Binary files 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
new file mode 100644
index 00000000..3449e18d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/wmp.png
Binary files 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
new file mode 100644
index 00000000..3449e18d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/features/wmp.png.orig
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/footer.gif b/subsonic-site/src/main/webapp/inc/img/footer.gif
new file mode 100644
index 00000000..fa269e85
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/footer.gif
Binary files 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
new file mode 100644
index 00000000..9dbada3c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/gettingstarted/license.png
Binary files 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
new file mode 100644
index 00000000..1a951a91
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/gettingstarted/license_thumb.png
Binary files 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
new file mode 100644
index 00000000..0b236083
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders.png
Binary files 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
new file mode 100644
index 00000000..620c813c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/gettingstarted/musicfolders_thumb.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/gigapros.png b/subsonic-site/src/main/webapp/inc/img/gigapros.png
new file mode 100644
index 00000000..b5b1f2d3
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/gigapros.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/gpl.png b/subsonic-site/src/main/webapp/inc/img/gpl.png
new file mode 100644
index 00000000..b06e0439
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/gpl.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/header.gif b/subsonic-site/src/main/webapp/inc/img/header.gif
new file mode 100644
index 00000000..115a5738
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/header.gif
Binary files 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
new file mode 100644
index 00000000..1f9fc0db
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/home-rollover.gif
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif b/subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif
new file mode 100644
index 00000000..7e3d252b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/itemcontentborder.gif
Binary files 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
new file mode 100644
index 00000000..6531fd23
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/mac-appstore.jpg
Binary files 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
new file mode 100644
index 00000000..9f07bc9b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/mac-installer-small.png
Binary files 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
new file mode 100644
index 00000000..ca38de3e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/mac-installer.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/merchandise.png b/subsonic-site/src/main/webapp/inc/img/merchandise.png
new file mode 100644
index 00000000..11f94fa8
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/merchandise.png
Binary files 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
new file mode 100644
index 00000000..657f7c88
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/mpa-nominee.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/paypal.gif b/subsonic-site/src/main/webapp/inc/img/paypal.gif
new file mode 100644
index 00000000..d017250a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/paypal.gif
Binary files 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
new file mode 100644
index 00000000..b220c40d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/ripserver-small.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/ripserver.png b/subsonic-site/src/main/webapp/inc/img/ripserver.png
new file mode 100644
index 00000000..00c58d85
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/ripserver.png
Binary files 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
new file mode 100644
index 00000000..53771adf
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen01.png
Binary files 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
new file mode 100644
index 00000000..e63fa2f4
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen02.png
Binary files 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
new file mode 100644
index 00000000..e4c7ee58
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen03.png
Binary files 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
new file mode 100644
index 00000000..aedc6874
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen05.png
Binary files 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
new file mode 100644
index 00000000..22794dab
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen06.png
Binary files 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
new file mode 100644
index 00000000..a81c3b10
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen07.png
Binary files 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
new file mode 100644
index 00000000..72283443
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen08.png
Binary files 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
new file mode 100644
index 00000000..e8770c62
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen09.png
Binary files 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
new file mode 100644
index 00000000..7595e82d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen10.png
Binary files 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
new file mode 100644
index 00000000..80074d99
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen11.png
Binary files 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
new file mode 100644
index 00000000..cd979719
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen12.png
Binary files 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
new file mode 100644
index 00000000..f594532a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen13.png
Binary files 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
new file mode 100644
index 00000000..d2adb422
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen14.png
Binary files 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
new file mode 100644
index 00000000..6bc3b296
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen15.png
Binary files 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
new file mode 100644
index 00000000..db292acb
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen16.png
Binary files 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
new file mode 100644
index 00000000..e42004ba
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen17.png
Binary files 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
new file mode 100644
index 00000000..827f1e8a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen18.png
Binary files 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
new file mode 100644
index 00000000..1a4b90ad
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen19.png
Binary files 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
new file mode 100644
index 00000000..77f3c426
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen20.png
Binary files 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
new file mode 100644
index 00000000..ab2e645d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen21.png
Binary files 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
new file mode 100644
index 00000000..8287d2ab
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen22.png
Binary files 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
new file mode 100644
index 00000000..fc5ea59b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen23.png
Binary files 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
new file mode 100644
index 00000000..bff8ba81
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen24.png
Binary files 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
new file mode 100644
index 00000000..8f09b94c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen25.png
Binary files 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
new file mode 100644
index 00000000..154c34b0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen26.png
Binary files 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
new file mode 100644
index 00000000..4233d2f9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen27.png
Binary files 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
new file mode 100644
index 00000000..1514347b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen28.png
Binary files 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
new file mode 100644
index 00000000..97826ef6
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen29.png
Binary files 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
new file mode 100644
index 00000000..a1ef9428
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen30.png
Binary files 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
new file mode 100644
index 00000000..3d09bc69
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen31.png
Binary files 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
new file mode 100644
index 00000000..06a1d621
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen32.png
Binary files 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
new file mode 100644
index 00000000..25915c31
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen33.png
Binary files 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
new file mode 100644
index 00000000..6ba7cd35
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen34.png
Binary files 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
new file mode 100644
index 00000000..d4117ba1
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen35.png
Binary files 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
new file mode 100644
index 00000000..d2d06093
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen36.png
Binary files 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
new file mode 100644
index 00000000..607d75ab
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen37.png
Binary files 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
new file mode 100644
index 00000000..04beaca7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen38.png
Binary files 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
new file mode 100644
index 00000000..64bfa7c2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen39.png
Binary files 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
new file mode 100644
index 00000000..96023bdd
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen40.png
Binary files 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
new file mode 100644
index 00000000..077783eb
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen41.png
Binary files 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
new file mode 100644
index 00000000..9b1f31e2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen42.png
Binary files 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
new file mode 100644
index 00000000..2493b601
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen43.png
Binary files 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
new file mode 100644
index 00000000..4ec7d197
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen44.png
Binary files 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
new file mode 100644
index 00000000..f384c93b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/screen45.png
Binary files 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
new file mode 100644
index 00000000..605383d6
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb01.png
Binary files 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
new file mode 100644
index 00000000..23e9e9f8
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb02.png
Binary files 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
new file mode 100644
index 00000000..8378058d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb03.png
Binary files 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
new file mode 100644
index 00000000..9c132083
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb05.png
Binary files 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
new file mode 100644
index 00000000..f454486c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb06.png
Binary files 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
new file mode 100644
index 00000000..a0f4fe5c
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb07.png
Binary files 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
new file mode 100644
index 00000000..ba6b3d6b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb08.png
Binary files 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
new file mode 100644
index 00000000..2115721e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb09.png
Binary files 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
new file mode 100644
index 00000000..2a24588d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb10.png
Binary files 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
new file mode 100644
index 00000000..8444f2ad
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb11.png
Binary files 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
new file mode 100644
index 00000000..fbf03231
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb12.png
Binary files 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
new file mode 100644
index 00000000..cb841be1
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb13.png
Binary files 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
new file mode 100644
index 00000000..529082f6
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb14.png
Binary files 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
new file mode 100644
index 00000000..03396f44
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb15.png
Binary files 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
new file mode 100644
index 00000000..a1b7d033
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb16.png
Binary files 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
new file mode 100644
index 00000000..58deaef7
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb17.png
Binary files 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
new file mode 100644
index 00000000..9fc3f4ec
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb18.png
Binary files 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
new file mode 100644
index 00000000..b06f3834
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb19.png
Binary files 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
new file mode 100644
index 00000000..d5dd2a59
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb20.png
Binary files 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
new file mode 100644
index 00000000..55289db9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb21.png
Binary files 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
new file mode 100644
index 00000000..55b2f3b9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb22.png
Binary files 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
new file mode 100644
index 00000000..8d499d53
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb23.png
Binary files 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
new file mode 100644
index 00000000..050d2d1b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb24.png
Binary files 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
new file mode 100644
index 00000000..40f81c44
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb25.png
Binary files 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
new file mode 100644
index 00000000..ad674590
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb27.png
Binary files 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
new file mode 100644
index 00000000..fae6d77d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb28.png
Binary files 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
new file mode 100644
index 00000000..249b5d15
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb29.png
Binary files 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
new file mode 100644
index 00000000..ac7610ed
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb30.png
Binary files 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
new file mode 100644
index 00000000..f2d34ebf
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb31.png
Binary files 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
new file mode 100644
index 00000000..944bcc2a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb33.png
Binary files 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
new file mode 100644
index 00000000..0020c90d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb35.png
Binary files 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
new file mode 100644
index 00000000..0c819962
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb36.png
Binary files 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
new file mode 100644
index 00000000..67e3142a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb37.png
Binary files 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
new file mode 100644
index 00000000..b277ec15
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb38.png
Binary files 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
new file mode 100644
index 00000000..2c0c70a2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb39.png
Binary files 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
new file mode 100644
index 00000000..d92cbf35
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb40.png
Binary files 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
new file mode 100644
index 00000000..7a5aceee
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb41.png
Binary files 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
new file mode 100644
index 00000000..a60200e9
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb42.png
Binary files 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
new file mode 100644
index 00000000..3591d0c0
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb43.png
Binary files 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
new file mode 100644
index 00000000..4ef3276a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb44.png
Binary files 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
new file mode 100644
index 00000000..5c49c48d
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/screenshots/thumb45.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/search.png b/subsonic-site/src/main/webapp/inc/img/search.png
new file mode 100644
index 00000000..4e522b23
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/search.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/sindre.jpeg b/subsonic-site/src/main/webapp/inc/img/sindre.jpeg
new file mode 100644
index 00000000..b3656f39
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/sindre.jpeg
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/star.png b/subsonic-site/src/main/webapp/inc/img/star.png
new file mode 100644
index 00000000..cd2b8bb2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/star.png
Binary files 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
new file mode 100644
index 00000000..39ba6e6e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/subsonic-forum.png
Binary files 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
new file mode 100644
index 00000000..6a4dde6a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/subsonic-shop.jpeg
Binary files 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
new file mode 100644
index 00000000..730f92cf
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/subsonic-tshirt.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/subsonic.png b/subsonic-site/src/main/webapp/inc/img/subsonic.png
new file mode 100644
index 00000000..f2cb2a60
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/subsonic.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/top.gif b/subsonic-site/src/main/webapp/inc/img/top.gif
new file mode 100644
index 00000000..a3a18784
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/top.gif
Binary files 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
new file mode 100644
index 00000000..3a4f7238
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/topnav-div.gif
Binary files 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
new file mode 100644
index 00000000..45547bb1
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/topnav-hover.gif
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/topnav.gif b/subsonic-site/src/main/webapp/inc/img/topnav.gif
new file mode 100644
index 00000000..e5fadeed
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/topnav.gif
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/ubuntu.png b/subsonic-site/src/main/webapp/inc/img/ubuntu.png
new file mode 100644
index 00000000..f707e260
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/ubuntu.png
Binary files 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
new file mode 100644
index 00000000..d33639b4
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/windows-installer-small.png
Binary files 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
new file mode 100644
index 00000000..07bbcf5b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/windows-installer.png
Binary files 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
new file mode 100644
index 00000000..0d3c18ad
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/windows-marketplace.png
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/windows7.png b/subsonic-site/src/main/webapp/inc/img/windows7.png
new file mode 100644
index 00000000..0559b26e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/windows7.png
Binary files 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
new file mode 100644
index 00000000..45189efe
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/zazeen-ad.gif
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/img/zazeen.gif b/subsonic-site/src/main/webapp/inc/img/zazeen.gif
new file mode 100644
index 00000000..3fcd454e
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/img/zazeen.gif
Binary files differ
diff --git a/subsonic-site/src/main/webapp/inc/js/FancyZoom.js b/subsonic-site/src/main/webapp/inc/js/FancyZoom.js
new file mode 100644
index 00000000..37df0b7b
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/js/FancyZoom.js
@@ -0,0 +1,761 @@
+// 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 <a href> links to images will be updated to zoom inline.
+// Add rel="nozoom" to your <a href> 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 <body>'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 <a>.
+ // If there's no element in the <a>, 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
new file mode 100644
index 00000000..7644a9a8
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/js/FancyZoomHTML.js
@@ -0,0 +1,318 @@
+// 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 <div>'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
+ //
+ // <div id="ZoomBox">
+ // <a href="javascript:zoomOut();"><img src="/images/spacer.gif" id="ZoomImage" border="0"></a> <!-- THE IMAGE -->
+ // <div id="ZoomClose">
+ // <a href="javascript:zoomOut();"><img src="/images/closebox.png" width="30" height="30" border="0"></a>
+ // </div>
+ // </div>
+
+ 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.
+
+ // <div id="ShadowBox"><table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0"> X
+ // <tr height="25">
+ // <td width="27"><img src="/images/zoom-shadow1.png" width="27" height="25"></td>
+ // <td background="/images/zoom-shadow2.png">&nbsp;</td>
+ // <td width="27"><img src="/images/zoom-shadow3.png" width="27" height="25"></td>
+ // </tr>
+
+ 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 = '<img src=';
+ var inSpacer1 = document.createElement("img");
+ inSpacer1.setAttribute('src',zoomImagesURI+'spacer.gif');
+ inSpacer1.setAttribute('height', '1');
+ inSpacer1.setAttribute('width', '1');
+ inSpacer1.style.display = 'block';
+ inCol2.appendChild(inSpacer1);
+
+ var inCol3 = document.createElement("td");
+ inCol3.style.width = '27px';
+ inRow1.appendChild(inCol3);
+ var inShadowImg3 = document.createElement("img");
+ inShadowImg3.setAttribute('src', zoomImagesURI+'zoom-shadow3.png');
+ inShadowImg3.setAttribute('width', '27');
+ inShadowImg3.setAttribute('height', '25');
+ inShadowImg3.style.display = 'block';
+ inCol3.appendChild(inShadowImg3);
+
+ // <tr>
+ // <td background="/images/zoom-shadow4.png">&nbsp;</td>
+ // <td bgcolor="#ffffff">&nbsp;</td>
+ // <td background="/images/zoom-shadow5.png">&nbsp;</td>
+ // </tr>
+
+ inRow2 = document.createElement("tr");
+ inShadowTbody.appendChild(inRow2);
+
+ var inCol4 = document.createElement("td");
+ inCol4.setAttribute('background', zoomImagesURI+'zoom-shadow4.png');
+ inRow2.appendChild(inCol4);
+ // inCol4.innerHTML = '&nbsp;';
+ 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 = '&nbsp;';
+ 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 = '&nbsp;';
+ 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);
+
+ // <tr height="26">
+ // <td width="27"><img src="/images/zoom-shadow6.png" width="27" height="26"</td>
+ // <td background="/images/zoom-shadow7.png">&nbsp;</td>
+ // <td width="27"><img src="/images/zoom-shadow8.png" width="27" height="26"></td>
+ // </tr>
+ // </table>
+
+ 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 = '&nbsp;';
+ 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
+ //
+ // <div id="ZoomCapDiv" style="margin-left: 13px; margin-right: 13px;">
+ // <table border="1" cellpadding="0" cellspacing="0">
+ // <tr height="26">
+ // <td><img src="zoom-caption-l.png" width="13" height="26"></td>
+ // <td rowspan="3" background="zoom-caption-fill.png"><div id="ZoomCaption"></div></td>
+ // <td><img src="zoom-caption-r.png" width="13" height="26"></td>
+ // </tr>
+ // </table>
+ // </div>
+
+ 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
new file mode 100644
index 00000000..8f3ca2e2
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/js/jquery-1.4.4.min.js
@@ -0,0 +1,167 @@
+/*!
+ * 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;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"||
+h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)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(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--;
+if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))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<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z],
+z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j,
+s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v=
+s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)||
+[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u,
+false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";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="<input type='radio' name='radiotest' checked='checked'/>";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="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";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<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this,
+a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e=
+c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,
+a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",
+colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===
+1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "),
+l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,
+"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-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<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r=
+a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=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<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b=
+w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=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<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
+d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this,
+Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp=
+c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U};
+var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!==
+"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V,
+xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-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;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d,
+a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d=
+1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d===
+"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}});
+c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?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;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i,
+[y]).length>0){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;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*"));
+return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!==
+B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,
+POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()===
+i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=
+i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g,
+"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=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 i<n[3]-0},gt:function(g,i,n){return i>n[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<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n===
+"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/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<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1;
+for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"),
+i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";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="<a href='#'></a>";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="<p class='TEST'></p>";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="<div class='test e'></div><div class='test'></div>";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;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML;
+c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})},
+not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},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<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-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<f;e++)for(h=this[e];h;)if(l?l.index(h)>-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=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1,
+"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_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<div>","</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></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=
+c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a,
+b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")):
+this[f]:this[f],f>0||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;f<h;f++){var l=(f>0?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></$2>");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]==="<table>"&&!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\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/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("<div>").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<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay",
+d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b,
+d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)===
+"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L||
+1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=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<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===
+b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&&
+h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle;
+for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+=
+parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",
+height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells=
+f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a,
+"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-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
new file mode 100644
index 00000000..799ba92a
--- /dev/null
+++ b/subsonic-site/src/main/webapp/inc/video/subsonic-medium.jpg
Binary files differ