From 0222fd7bfe2fdf58e95c9a51a4c15042fc21a80d Mon Sep 17 00:00:00 2001 From: Elmar Kouwenhoven Date: Tue, 8 May 2012 09:59:16 +0200 Subject: [PATCH 1/9] Added new template 'lossless' --- data/interfaces/lossless/album.html | 144 ++ data/interfaces/lossless/artist.html | 190 +++ data/interfaces/lossless/base.html | 106 ++ data/interfaces/lossless/config.html | 775 ++++++++++ data/interfaces/lossless/css/config.less | 74 + data/interfaces/lossless/css/data_table.css | 326 +++++ data/interfaces/lossless/css/jquery-ui.css | 547 +++++++ data/interfaces/lossless/css/style.css | 1293 +++++++++++++++++ data/interfaces/lossless/css/style.less | 1116 ++++++++++++++ data/interfaces/lossless/css/style_bu.css | 1 + data/interfaces/lossless/extras.html | 15 + data/interfaces/lossless/history.html | 89 ++ .../interfaces/lossless/images/NoAlbumArt.png | Bin 0 -> 29433 bytes data/interfaces/lossless/images/button.png | Bin 0 -> 95 bytes data/interfaces/lossless/images/icon_add.png | Bin 0 -> 2845 bytes .../lossless/images/icon_delete.png | Bin 0 -> 3148 bytes .../interfaces/lossless/images/icon_extra.gif | Bin 0 -> 757 bytes data/interfaces/lossless/images/icon_gear.png | Bin 0 -> 3228 bytes .../lossless/images/icon_getextra.png | Bin 0 -> 3007 bytes .../lossless/images/icon_history.png | Bin 0 -> 2324 bytes data/interfaces/lossless/images/icon_logs.png | Bin 0 -> 3761 bytes .../lossless/images/icon_manage.png | Bin 0 -> 3108 bytes .../interfaces/lossless/images/icon_pause.png | Bin 0 -> 2855 bytes .../lossless/images/icon_refresh.png | Bin 0 -> 3444 bytes .../lossless/images/icon_removeextra.png | Bin 0 -> 3123 bytes .../lossless/images/icon_search.gif | Bin 0 -> 345 bytes .../lossless/images/icon_search.png | Bin 0 -> 3342 bytes .../lossless/images/icon_sprite_black.png | Bin 0 -> 4369 bytes .../lossless/images/icon_sprite_white.png | Bin 0 -> 4369 bytes .../lossless/images/icon_upcoming.png | Bin 0 -> 3035 bytes .../lossless/images/icon_wanted.png | Bin 0 -> 3403 bytes .../lossless/images/loader_black.gif | Bin 0 -> 9427 bytes .../lossless/images/loader_blue.gif | Bin 0 -> 9427 bytes .../lossless/images/loader_refresh_black.gif | Bin 0 -> 847 bytes .../lossless/images/loader_refresh_blue.gif | Bin 0 -> 847 bytes .../lossless/images/no-cover-art.png | Bin 0 -> 25265 bytes .../lossless/images/no-cover-artist.png | Bin 0 -> 6937 bytes data/interfaces/lossless/images/sort_asc.png | Bin 0 -> 968 bytes data/interfaces/lossless/images/sort_both.png | Bin 0 -> 135 bytes data/interfaces/lossless/images/sort_desc.png | Bin 0 -> 975 bytes data/interfaces/lossless/images/toTop.gif | Bin 0 -> 838 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_0_eeeeee_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_c0402a_40x100.png | Bin 0 -> 182 bytes .../images/ui-bg_flat_55_eeeeee_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_glass_100_f8f8f8_1x400.png | Bin 0 -> 129 bytes .../images/ui-bg_glass_35_dddddd_1x400.png | Bin 0 -> 109 bytes .../images/ui-bg_glass_60_eeeeee_1x400.png | Bin 0 -> 110 bytes .../ui-bg_inset-hard_75_999999_1x100.png | Bin 0 -> 114 bytes .../ui-bg_inset-soft_50_c9c9c9_1x100.png | Bin 0 -> 96 bytes .../images/ui-icons_3383bb_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_70b2e1_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_999999_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_fbc856_256x240.png | Bin 0 -> 4369 bytes data/interfaces/lossless/index.html | 101 ++ .../interfaces/lossless/js/fancybox/blank.gif | Bin 0 -> 43 bytes .../lossless/js/fancybox/fancy_close.png | Bin 0 -> 1517 bytes .../lossless/js/fancybox/fancy_loading.png | Bin 0 -> 10195 bytes .../lossless/js/fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes .../lossless/js/fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes .../lossless/js/fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes .../lossless/js/fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes .../lossless/js/fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes .../lossless/js/fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes .../lossless/js/fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes .../lossless/js/fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes .../lossless/js/fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes .../lossless/js/fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes .../lossless/js/fancybox/fancy_title_left.png | Bin 0 -> 503 bytes .../lossless/js/fancybox/fancy_title_main.png | Bin 0 -> 96 bytes .../lossless/js/fancybox/fancy_title_over.png | Bin 0 -> 70 bytes .../js/fancybox/fancy_title_right.png | Bin 0 -> 506 bytes .../lossless/js/fancybox/fancybox-x.png | Bin 0 -> 203 bytes .../lossless/js/fancybox/fancybox-y.png | Bin 0 -> 176 bytes .../lossless/js/fancybox/fancybox.png | Bin 0 -> 15287 bytes .../js/fancybox/jquery.easing-1.3.pack.js | 72 + .../js/fancybox/jquery.fancybox-1.3.4.css | 359 +++++ .../js/fancybox/jquery.fancybox-1.3.4.js | 1156 +++++++++++++++ .../js/fancybox/jquery.fancybox-1.3.4.pack.js | 46 + .../fancybox/jquery.mousewheel-3.0.4.pack.js | 14 + .../lossless/js/libs/dd_belatedpng.js | 13 + .../lossless/js/libs/jquery-1.7.2.min.js | 4 + .../lossless/js/libs/jquery-ui.min.js | 121 ++ .../lossless/js/libs/jquery.dataTables.min.js | 648 +++++++++ .../lossless/js/libs/modernizr-1.7.min.js | 2 + data/interfaces/lossless/js/plugins.js | 41 + data/interfaces/lossless/js/script.js | 294 ++++ data/interfaces/lossless/logs.html | 63 + data/interfaces/lossless/manage.html | 104 ++ data/interfaces/lossless/manageartists.html | 111 ++ data/interfaces/lossless/managenew.html | 67 + data/interfaces/lossless/searchresults.html | 81 ++ data/interfaces/lossless/shutdown.html | 13 + data/interfaces/lossless/upcoming.html | 99 ++ 95 files changed, 8085 insertions(+) create mode 100644 data/interfaces/lossless/album.html create mode 100644 data/interfaces/lossless/artist.html create mode 100644 data/interfaces/lossless/base.html create mode 100644 data/interfaces/lossless/config.html create mode 100644 data/interfaces/lossless/css/config.less create mode 100644 data/interfaces/lossless/css/data_table.css create mode 100644 data/interfaces/lossless/css/jquery-ui.css create mode 100644 data/interfaces/lossless/css/style.css create mode 100644 data/interfaces/lossless/css/style.less create mode 100644 data/interfaces/lossless/css/style_bu.css create mode 100644 data/interfaces/lossless/extras.html create mode 100644 data/interfaces/lossless/history.html create mode 100644 data/interfaces/lossless/images/NoAlbumArt.png create mode 100644 data/interfaces/lossless/images/button.png create mode 100644 data/interfaces/lossless/images/icon_add.png create mode 100644 data/interfaces/lossless/images/icon_delete.png create mode 100644 data/interfaces/lossless/images/icon_extra.gif create mode 100644 data/interfaces/lossless/images/icon_gear.png create mode 100644 data/interfaces/lossless/images/icon_getextra.png create mode 100644 data/interfaces/lossless/images/icon_history.png create mode 100644 data/interfaces/lossless/images/icon_logs.png create mode 100644 data/interfaces/lossless/images/icon_manage.png create mode 100644 data/interfaces/lossless/images/icon_pause.png create mode 100644 data/interfaces/lossless/images/icon_refresh.png create mode 100644 data/interfaces/lossless/images/icon_removeextra.png create mode 100644 data/interfaces/lossless/images/icon_search.gif create mode 100644 data/interfaces/lossless/images/icon_search.png create mode 100644 data/interfaces/lossless/images/icon_sprite_black.png create mode 100644 data/interfaces/lossless/images/icon_sprite_white.png create mode 100644 data/interfaces/lossless/images/icon_upcoming.png create mode 100644 data/interfaces/lossless/images/icon_wanted.png create mode 100644 data/interfaces/lossless/images/loader_black.gif create mode 100644 data/interfaces/lossless/images/loader_blue.gif create mode 100644 data/interfaces/lossless/images/loader_refresh_black.gif create mode 100644 data/interfaces/lossless/images/loader_refresh_blue.gif create mode 100644 data/interfaces/lossless/images/no-cover-art.png create mode 100644 data/interfaces/lossless/images/no-cover-artist.png create mode 100644 data/interfaces/lossless/images/sort_asc.png create mode 100644 data/interfaces/lossless/images/sort_both.png create mode 100644 data/interfaces/lossless/images/sort_desc.png create mode 100644 data/interfaces/lossless/images/toTop.gif create mode 100644 data/interfaces/lossless/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 data/interfaces/lossless/images/ui-bg_flat_0_eeeeee_40x100.png create mode 100644 data/interfaces/lossless/images/ui-bg_flat_55_c0402a_40x100.png create mode 100644 data/interfaces/lossless/images/ui-bg_flat_55_eeeeee_40x100.png create mode 100644 data/interfaces/lossless/images/ui-bg_glass_100_f8f8f8_1x400.png create mode 100644 data/interfaces/lossless/images/ui-bg_glass_35_dddddd_1x400.png create mode 100644 data/interfaces/lossless/images/ui-bg_glass_60_eeeeee_1x400.png create mode 100644 data/interfaces/lossless/images/ui-bg_inset-hard_75_999999_1x100.png create mode 100644 data/interfaces/lossless/images/ui-bg_inset-soft_50_c9c9c9_1x100.png create mode 100644 data/interfaces/lossless/images/ui-icons_3383bb_256x240.png create mode 100644 data/interfaces/lossless/images/ui-icons_454545_256x240.png create mode 100644 data/interfaces/lossless/images/ui-icons_70b2e1_256x240.png create mode 100644 data/interfaces/lossless/images/ui-icons_999999_256x240.png create mode 100644 data/interfaces/lossless/images/ui-icons_fbc856_256x240.png create mode 100644 data/interfaces/lossless/index.html create mode 100644 data/interfaces/lossless/js/fancybox/blank.gif create mode 100644 data/interfaces/lossless/js/fancybox/fancy_close.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_loading.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_nav_left.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_nav_right.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_e.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_n.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_ne.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_nw.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_s.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_se.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_sw.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_shadow_w.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_title_left.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_title_main.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_title_over.png create mode 100644 data/interfaces/lossless/js/fancybox/fancy_title_right.png create mode 100644 data/interfaces/lossless/js/fancybox/fancybox-x.png create mode 100644 data/interfaces/lossless/js/fancybox/fancybox-y.png create mode 100644 data/interfaces/lossless/js/fancybox/fancybox.png create mode 100644 data/interfaces/lossless/js/fancybox/jquery.easing-1.3.pack.js create mode 100644 data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.css create mode 100644 data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.js create mode 100644 data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.pack.js create mode 100644 data/interfaces/lossless/js/fancybox/jquery.mousewheel-3.0.4.pack.js create mode 100644 data/interfaces/lossless/js/libs/dd_belatedpng.js create mode 100644 data/interfaces/lossless/js/libs/jquery-1.7.2.min.js create mode 100644 data/interfaces/lossless/js/libs/jquery-ui.min.js create mode 100644 data/interfaces/lossless/js/libs/jquery.dataTables.min.js create mode 100644 data/interfaces/lossless/js/libs/modernizr-1.7.min.js create mode 100644 data/interfaces/lossless/js/plugins.js create mode 100644 data/interfaces/lossless/js/script.js create mode 100644 data/interfaces/lossless/logs.html create mode 100644 data/interfaces/lossless/manage.html create mode 100644 data/interfaces/lossless/manageartists.html create mode 100644 data/interfaces/lossless/managenew.html create mode 100644 data/interfaces/lossless/searchresults.html create mode 100644 data/interfaces/lossless/shutdown.html create mode 100644 data/interfaces/lossless/upcoming.html diff --git a/data/interfaces/lossless/album.html b/data/interfaces/lossless/album.html new file mode 100644 index 00000000..fc6643e5 --- /dev/null +++ b/data/interfaces/lossless/album.html @@ -0,0 +1,144 @@ +<%inherit file="base.html" /> +<%! + from headphones import db, helpers + myDB = db.DBConnection() +%> + +<%def name="headerIncludes()"> +
+
+ Delete Album + %if album['Status'] == 'Skipped': + Mark Album as Wanted + %elif album['Status'] == 'Wanted': + Force Check + Mark Album as Skipped + %else: + Retry Download + Try New Version + %endif +
+
+ « Back to ${album['ArtistName']} + + +<%def name="body()"> +
+
+
+ albumart +
+ +

${album['AlbumTitle']}

+

${album['ArtistName']}

+ <% + totalduration = myDB.action("SELECT SUM(TrackDuration) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + totaltracks = len(myDB.select("SELECT TrackTitle from tracks WHERE AlbumID=?", [album['AlbumID']])) + try: + albumduration = helpers.convert_milliseconds(totalduration) + except: + albumduration = 'n/a' + + %> +
+ %if description: +

${description['Summary']}

+ %endif +
    +
  • Tracks: ${totaltracks}
  • +
  • Duration: ${albumduration}
  • +
+
+ +
+
+ + + + + + + + + + + + + %for track in tracks: + <% + if track['Location']: + grade = 'A' + location = track['Location'] + else: + grade = 'X' + location = '' + + if track['BitRate']: + bitrate = str(track['BitRate']/1000) + ' kbps' + else: + bitrate = '' + + try: + trackduration = helpers.convert_milliseconds(track['TrackDuration']) + except: + trackduration = 'n/a' + + if not track['Format']: + format = 'Unknown' + else: + format = track['Format'] + %> + + + + + + + + + %endfor + <% + unmatched = myDB.select('SELECT * from have WHERE ArtistName LIKE ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']]) + %> + %if unmatched: + %for track in unmatched: + <% + duration = helpers.convert_seconds(float(track['TrackLength'])) + %> + + + + + + + + + %endfor + %endif + +
#Track TitleDurationLocal FileBit RateFormat
${track['TrackNumber']}${track['TrackTitle']}${trackduration}${location}${bitrate}${format}
${track['TrackNumber']}${track['TrackTitle']}${duration}${track['Location']}${int(track['BitRate'])/1000} kbps${track['Format']}
+
+
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + diff --git a/data/interfaces/lossless/artist.html b/data/interfaces/lossless/artist.html new file mode 100644 index 00000000..ce1b4aa8 --- /dev/null +++ b/data/interfaces/lossless/artist.html @@ -0,0 +1,190 @@ +<%inherit file="base.html"/> +<%! + from headphones import db + import headphones +%> + +<%def name="headerIncludes()"> +
+
+ Refresh Artist + Delete Artist + %if artist['Status'] == 'Paused': + Resume Artist + %else: + Pause Artist + %endif + %if artist['IncludeExtras']: + Remove Extras + %else: + Get Extras + %endif +
+
+ « Back to overview + + +<%def name="body()"> +
+
+ ${artist['ArtistName']} +
+

${artist['ArtistName']}

+
+ %if artist['Status'] == 'Loading': +

(Album information for this artist is currently being loaded)

+ %endif +
+
+ +
Mark selected albums as + + +
+ + + + + + + + + + + + + + + + %for album in albums: + <% + if album['Status'] == 'Skipped': + grade = 'Z' + elif album['Status'] == 'Wanted': + grade = 'X' + elif album['Status'] == 'Snatched': + grade = 'C' + else: + grade = 'A' + + myDB = db.DBConnection() + totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=?', [album['AlbumID']])) + havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])) + + try: + percent = (havetracks*100.0)/totaltracks + if percent > 100: + percent = 100 + except (ZeroDivisionError, TypeError): + percent = 0 + totaltracks = '?' + + avgbitrate = myDB.action("SELECT AVG(BitRate) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + if avgbitrate: + bitrate = str(int(avgbitrate)/1000) + ' kbps' + else: + bitrate = '' + + albumformatcount = myDB.action("SELECT COUNT(DISTINCT Format) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + if albumformatcount == 1: + albumformat = myDB.action("SELECT DISTINCT Format FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + elif albumformatcount > 1: + albumformat = 'Mixed' + else: + albumformat = '' + + lossy_formats = [str.upper(fmt) for fmt in headphones.LOSSY_MEDIA_FORMATS] + + %> + + + + + + + + + + + + %endfor + +
NameDateTypeStatusHaveBitrateFormat
${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']} + %if album['Status'] == 'Skipped': + [want] + %elif (album['Status'] == 'Wanted' or album['Status'] == 'Wanted Lossless'): + [skip] + %else: + [retry][new] + %endif + %if albumformat in lossy_formats and album['Status'] == 'Skipped': + [want lossless] + %elif albumformat in lossy_formats and (album['Status'] == 'Snatched' or album['Status'] == 'Downloaded'): + [retry lossless] + %endif +
${havetracks}/${totaltracks}
${bitrate}${albumformat}
+
+ + +<%def name="headIncludes()"> + + + + + diff --git a/data/interfaces/lossless/base.html b/data/interfaces/lossless/base.html new file mode 100644 index 00000000..02a3e297 --- /dev/null +++ b/data/interfaces/lossless/base.html @@ -0,0 +1,106 @@ +<% + import headphones + from headphones import version +%> + + + + + + + + + + + Headphones - ${title} + + + + + + + + + + ${next.headIncludes()} + + + + +
+
+
+ % if not headphones.CURRENT_VERSION: +
+ You're running an unknown version of Headphones. Click here to update +
+ % elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win': +
+ A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Click here to update +
+ % endif +
+ + + + +
+
+ +
+
+ ${next.headerIncludes()} +
+ ${next.body()} +
+ +
+
+ Version: ${headphones.CURRENT_VERSION} + %if version.HEADPHONES_VERSION != 'master': + (${version.HEADPHONES_VERSION}) + %endif + Check for new version +
+
+ Back to top +
+ + + + + + ${next.javascriptIncludes()} + + + + + + + + +<%def name="javascriptIncludes()"> +<%def name="headIncludes()"> +<%def name="headerIncludes()"> diff --git a/data/interfaces/lossless/config.html b/data/interfaces/lossless/config.html new file mode 100644 index 00000000..60d866ad --- /dev/null +++ b/data/interfaces/lossless/config.html @@ -0,0 +1,775 @@ +<%inherit file="base.html"/> +<%! + import headphones +%> + +<%def name="headerIncludes()"> +
+ +
+ +<%def name="body()"> + + + +
+

settingsSettings

+
+
+ +
+ +
+ + + + + + + +
+
+ Basic +
+ + + e.g. localhost or 0.0.0.0 +
+
+ + +
+
+ + +
+ +
+ + +
+
+ +
+
+
+
+ API +
+ +
+
+ + + + Current API key: ${config['api_key']} +
+
+ +
+ Interval +
+ + mins +
+ +
+ + mins +
+ +
+ + mins +
+
+
+
+ +
+ + + + + + + +
+
+ SABnzbd +
+ + + usually http://localhost:8080 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ Downloads +
+ + + Full path where SAB downloads your music. e.g. /Users/name/Downloads/music +
+
+
+
+ Torrents +
+ + + Folder your Download program watches for Torrents +
+
+ + + Number of minimum seeders a torrent must have to be accepted +
+
+ + + Full path where your torrent client downloads your music e.g. /Users/name/Downloads/music +
+
+
+ Blackhole +
+ +
+
+
+ + + Folder your Download program watches for NZBs +
+
+
+ +
+
+
+
+
+ + + + + + + +
+
+ NZBMatrix +
+ +
+
+
+ + +
+
+ + +
+
+
+ +
+ Newsnab +
+ +
+
+
+ + + e.g. http://nzb.su +
+
+ + +
+
+
+
+
+ NZBs.org +
+ +
+
+
+ + +
+
+
+
+ Newsbin +
+ +
+
+
+ + +
+
+ + +
+
+
+
+ Torrents +
+ +
+
+ +
+
+
+
+ +
+
+
+ + + + + +
+
+ Quality +
+ + + + +
+
+ + +
+ +
+
+
+ Post-Processing +
+ + + + + + + + +
+
+ + + e.g. /Users/name/Music/iTunes or /Volumes/share/music +
+
+
+
+
+ + + + + +
+ +
+ Renaming options +
+ + + Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name) + E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010] + +
+
+ + + Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year +
+
+ +
+ Re-Encoding Options + Note: this option requires the lame or ffmpeg encoder +
+ +
+
+ +
+ <% + if config['encoder'] == 'lame': + lameselect = 'selected="selected"' + ffmpegselect = '' + else: + lameselect = '' + ffmpegselect = 'selected="selected"' + %> +
+ + +
+
+ + +
+
+ +
+ Audio Properties +
+ + +
+
+ + +
+
+ + +
+ + + <% + if config["samplingfrequency"] == 44100: + freq44100 = 'selected="selected"' + freq48000 = '' + else: + freq44100 = '' + freq48000 = 'selected="selected"' + %> +
+ + +
+
+ +
+ Advanced Encoding Options +
+ + +
+
+ + +
+ +
+ +
+ +
+ Miscellaneous +
+ + +
+
+ +
+ +
+
+
+
+ Interface +
+ + + +
+
+ + +
+
+ + + +

Notifications

+
+

Prowl

+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+ + +
+

XBMC

+
+ +
+
+
+ + + e.g. http://localhost:8080. Separate hosts with commas +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+

NotifyMyAndroid

+
+ +
+
+
+ + + Separate multiple api keys with commas +
+
+ + +
+
+
+ +
+ Musicbrainz +
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + Get an Account +
+
+
+ +
+
+ +
+

Web Interface changes require a restart to take effect

+
+ + +
+ + +<%def name="javascriptIncludes()"> + + diff --git a/data/interfaces/lossless/css/config.less b/data/interfaces/lossless/css/config.less new file mode 100644 index 00000000..a726a661 --- /dev/null +++ b/data/interfaces/lossless/css/config.less @@ -0,0 +1,74 @@ +/* Variables */ +@base-font-face: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif; +@alt-font-face: "Trebuchet MS", Helvetica, Arial, sans-serif; +@base-font-size: 12px; +@text-color: #343434; +@swatch-blue: #4183C4; +@swatch-grey: #666666; +@link-color: @swatch-blue; +@border-color: #CCCCCC; +@msg-bg: #FFF6A9; +@msg-bg-success: #D3FFD7; +@msg-bg-error: #FFD3D3; + +/* Mixins */ +.rounded(@radius: 5px) { + -moz-border-radius: @radius; + -webkit-border-radius: @radius; + border-radius: @radius; +} +.roundedTop(@radius: 5px) { + -moz-border-radius-topleft: @radius; + -moz-border-radius-topright: @radius; + -webkit-border-top-right-radius: @radius; + -webkit-border-top-left-radius: @radius; + border-top-left-radius: @radius; + border-top-right-radius: @radius; +} +.roundedLeftTop(@radius: 5px) { + -moz-border-radius-topleft: @radius; + -webkit-border-top-left-radius: @radius; + border-top-left-radius: @radius; +} +.roundedRightTop(@radius: 5px) { + -moz-border-radius-topright: @radius; + -webkit-border-top-right-radius: @radius; + border-top-right-radius: @radius; +} +.roundedBottom(@radius: 5px) { + -moz-border-radius-bottomleft: @radius; + -moz-border-radius-bottomright: @radius; + -webkit-border-bottom-right-radius: @radius; + -webkit-border-bottom-left-radius: @radius; + border-bottom-left-radius: @radius; + border-bottom-right-radius: @radius; +} +.roundedLeftBottom(@radius: 5px) { + -moz-border-radius-bottomleft: @radius; + -webkit-border-bottom-left-radius: @radius; + border-bottom-left-radius: @radius; +} +.roundedRightBottom(@radius: 5px) { + -moz-border-radius-bottomright: @radius; + -webkit-border-bottom-right-radius: @radius; + border-bottom-right-radius: @radius; +} +.shadow(@shadow: 0 17px 11px -1px #ced8d9) { + -moz-box-shadow: @shadow; + -webkit-box-shadow: @shadow; + box-shadow: @shadow; +} +.gradient(@gradientFrom: #FFFFFF, @gradientTo: #EEEEEE){ + background-image: -moz-linear-gradient(@gradientFrom, @gradientTo) !important; + background-image: linear-gradient(@gradientFrom, @gradientTo) !important; + background-image: -webkit-linear-gradient(@gradientFrom, @gradientTo) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=@gradientFrom, endColorstr=@gradientTo) !important; + -ms-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=@gradientFrom, endColorstr=@gradientTo) !important; +} +.opacity(@opacity_percent:85) { + filter: ~"alpha(opacity=85)"; + -moz-opacity: @opacity_percent / 100 !important; + -khtml-opacity:@opacity_percent / 100 !important; + opacity:@opacity_percent / 100 !important; +} + diff --git a/data/interfaces/lossless/css/data_table.css b/data/interfaces/lossless/css/data_table.css new file mode 100644 index 00000000..a2642d13 --- /dev/null +++ b/data/interfaces/lossless/css/data_table.css @@ -0,0 +1,326 @@ +.dataTables_wrapper { + width: 100%; + min-height: 125px; + clear: both; + _height: 302px; + zoom: 1; /* Feeling sorry for IE */ +} +#wanted_table_wrapper { + margin-top: 0; +} +.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 20px; + height: 30px; + margin-left: -125px; + margin-top: -15px; + padding: 14px 0 2px 0; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 14px; + background-color: white; +} + +.dataTables_length { + width: 40%; + float: left; +} + +.dataTables_filter { + width: 50%; + float: right; + text-align: right; + margin-bottom: 15px; +} +.dataTables_filter input { + background: none repeat scroll 0 0 #FFFFFF; + border: 1px solid #CCC; + font-size: 15px; + padding: 2px 4px; +} +.dataTables_info { + width: 50%; + float: left; + font-weight: bold; +} + +.dataTables_paginate { + width: 44px; + * width: 50px; + float: right; + text-align: right; +} + +/* Pagination nested */ +.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next { + height: 19px; + width: 19px; + margin-left: 3px; + float: left; +} + +.paginate_disabled_previous { + background-image: url('../images/back_disabled.jpg'); +} + +.paginate_enabled_previous { + background-image: url('../images/back_enabled.jpg'); +} + +.paginate_disabled_next { + background-image: url('../images/forward_disabled.jpg'); +} + +.paginate_enabled_next { + background-image: url('../images/forward_enabled.jpg'); +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables display + */ +table.display { + margin: 20px auto; + clear: both; + border:1px solid #EEE; + width: 100%; + + /* Note Firefox 3.5 and before have a bug with border-collapse + * ( https://bugzilla.mozilla.org/show%5Fbug.cgi?id=155955 ) + * border-spacing: 0; is one possible option. Conditional-css.com is + * useful for this kind of thing + * + * Further note IE 6/7 has problems when calculating widths with border width. + * It subtracts one px relative to the other browsers from the first column, and + * adds one to the end... + * + * If you want that effect I'd suggest setting a border-top/left on th/td's and + * then filling in the gaps with other borders. + */ +} + +table.display thead th { + padding: 3px 18px 3px 10px; + background-color: white; + font-weight: bold; + font-size: 16px; + cursor: pointer; + * cursor: hand; +} + +table.display tfoot th { + padding: 3px 18px 3px 10px; + border-top: 1px solid black; + font-weight: bold; +} + +table.display tr.heading2 td { + border-bottom: 1px solid #aaa; +} + +table.display td { + padding: 8px 10px; + font-size: 16px; +} +table +table.display td.center { + text-align: center; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables sorting + */ + +.sorting_asc { + background: url('../images/sort_asc.png') no-repeat center right; +} + +.sorting_desc { + background: url('../images/sort_desc.png') no-repeat center right; +} + +.sorting { + background: url('../images/sort_both.png') no-repeat center right; +} + +.sorting_asc_disabled { + background: url('../images/sort_asc_disabled.png') no-repeat center right; +} + +.sorting_desc_disabled { + background: url('../images/sort_desc_disabled.png') no-repeat center right; +} + + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * DataTables row classes + */ +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #ddffdd; +} + +table.display tr.odd.gradeC { + background-color: #ddddff; +} + +table.display tr.even.gradeC { + background-color: #ddddff; +} +table.display tr.even.gradeL { + background-color: #ddddff; +} +table.display tr.odd.gradeL { + background-color: #ddddff; +} + +table.display tr.odd.gradeX { + background-color: #ffdddd; +} + +table.display tr.even.gradeX { + background-color: #ffdddd; +} + +table.display tr.odd.gradeU { + background-color: #ddd; +} + +table.display tr.even.gradeU { + background-color: #eee; +} + + +table.display tr.odd.gradeZ { + background-color: #FAFAFA; +} + +table.display tr.even.gradeZ { + background-color: white; +} +table.display tr.gradeL #status { + background: url("../images/loader_black.gif") no-repeat scroll 15px center transparent; + font-size: 11px; + text-indent: -3000px; +} +table.display tr.gradeA td, +table.display tr.gradeC td, +table.display tr.gradeX td, +table.display tr.gradeU td, +table.display tr.gradeZ td {border-bottom: 1px solid #FFF;} +table.display tr:last-child td { + border-bottom: 1px solid #eee; +} +table.display tr td#add .ui-icon { display: inline-block; } + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Misc + */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + *margin-top: -1px; +} + +.top, .bottom { + padding: 15px; + background-color: #F5F5F5; + border: 1px solid #CCCCCC; +} + +.top .dataTables_info { + float: none; +} + +.clear { + clear: both; +} + +.dataTables_empty { + font-size: 24px; + text-align: center; + vertical-align: middle; + background-color: white; + height: 50px; + width: 90%; +} + +tfoot input { + margin: 0.5em 0; + width: 100%; + color: #444; +} + +tfoot input.search_init { + color: #999; +} + +td.group { + background-color: #d1cfd0; + border-bottom: 2px solid #A19B9E; + border-top: 2px solid #A19B9E; +} + +td.details { + background-color: #d1cfd0; + border: 2px solid #A19B9E; +} + +.paging_full_numbers { + width: 400px; + height: 22px; + line-height: 22px; +} + +.paging_full_numbers span.paginate_button, + .paging_full_numbers span.paginate_active { + background: none repeat scroll 0 0 #F3F3F3; + border-radius: 5px 5px 5px 5px; + margin: 0 0 0 5px; + font-size: 15px; + padding: 2px 7px; + color: #4183C4; + cursor: pointer; + *cursor: hand; +} + +.paging_full_numbers span.paginate_button:hover { + background-color: #e2e2e2; +} + +.paging_full_numbers span.paginate_active { + background-color: #4183C4; + color: #FFF; +} + +table.display tr.even.row_selected td { + background-color: #B0BED9; +} + +table.display tr.odd.row_selected td { + background-color: #9FAFD1; +} + +div.box { + height: 100px; + padding: 10px; + overflow: auto; + border: 1px solid #8080FF; + background-color: #E5E5FF; +} diff --git a/data/interfaces/lossless/css/jquery-ui.css b/data/interfaces/lossless/css/jquery-ui.css new file mode 100644 index 00000000..c5d2fd39 --- /dev/null +++ b/data/interfaces/lossless/css/jquery-ui.css @@ -0,0 +1,547 @@ +/*! + * jQuery UI CSS Framework 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } +.ui-helper-clearfix:after { clear: both; } +.ui-helper-clearfix { zoom: 1; } +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/*! + * jQuery UI CSS Framework 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=02_glass.png&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=02_glass.png&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0pxdow=0px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Trebuchet MS, Helvetica, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Helvetica, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #f2f2f2; color: #333333; } +.ui-widget-content a { /*color: #333333;*/ } +.ui-widget-header { border: 1px solid #bbbbbb; background: #dddddd url(../images/ui-bg_glass_35_dddddd_1x400.png) 50% 50% repeat-x; color: #444444; font-weight: bold; } +.ui-widget-header a { color: #444444; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #eeeeee url(../images/ui-bg_glass_60_eeeeee_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #3383bb; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #3383bb; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #bbbbbb; background: #f8f8f8 url(../images/ui-bg_glass_100_f8f8f8_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #599fcf; } +.ui-state-hover a, .ui-state-hover a:hover { color: #599fcf; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #999999; background: #ccc; font-weight: bold; color: #ffffff; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #ffffff; background: #eeeeee url(../images/ui-bg_flat_55_eeeeee_40x100.png) 50% 50% repeat-x; color: #444444; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #444444; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #c0402a; background: #c0402a url(../images/ui-bg_flat_55_c0402a_40x100.png) 50% 50% repeat-x; color: #ffffff; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(../images/icon_sprite_black.png); } +.ui-widget-content .ui-icon {background-image: url(../images/icon_sprite_black.png); } +.ui-widget-header .ui-icon {background-image: url(../images/icon_sprite_black.png); } +.ui-button.ui-state-hover .ui-icon { background-image: url(../images/icon_sprite_white.png); } +.ui-state-default .ui-icon { background-image: url(../images/ui-icons_70b2e1_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_3383bb_256x240.png); } +.ui-state-active .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_3383bb_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_fbc856_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; -khtml-border-top-left-radius: 6px; border-top-left-radius: 6px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; -khtml-border-top-right-radius: 6px; border-top-right-radius: 6px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; -khtml-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; -khtml-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; } + +/* Overlays */ +.ui-widget-overlay { background: #eeeeee url(../images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); } +.ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 0pxdow=0px; -khtml-border-radius: 0pxdow=0px; -webkit-border-radius: 0pxdow=0px; border-radius: 0pxdow=0px; }/*! + * jQuery UI Resizable 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*! + * jQuery UI Selectable 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/*! + * jQuery UI Accordion 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/*! + * jQuery UI Autocomplete 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu @VERSION + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/*! + * jQuery UI Button 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button:hover { + color:#3383BB; +} +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: 0.2em 0.5em 0.2em 1.8em } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: 0.2em 1.8em 0.2em 0.5em } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .3em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/*! + * jQuery UI Dialog 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/*! + * jQuery UI Tabs 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: 0em; zoom: 1; background: transparent; border: none;} /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: 0; background: none; border:none;} +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap;background: #FFF; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; font-weight: normal; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; background-color: #f7f7f7; border-color: #CCC; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a { color: #454545; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: #f7f7f7; border: 1px solid #CCC; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/*! + * jQuery UI Datepicker 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/*! + * jQuery UI Progressbar 1.8.19 + * + * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; overflow: hidden; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/data/interfaces/lossless/css/style.css b/data/interfaces/lossless/css/style.css new file mode 100644 index 00000000..9927b171 --- /dev/null +++ b/data/interfaces/lossless/css/style.css @@ -0,0 +1,1293 @@ +/* Variables *//* Mixins */ +html, +body, +div, +span, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +abbr, +address, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +samp, +small, +strong, +sub, +sup, +var, +b, +i, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section, +summary, +time, +mark, +audio, +video { + border: 0; + font: inherit; + font-size: 100%; + margin: 0; + padding: 0; + vertical-align: baseline; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +html { + color: #343434; + font-size: 12px; + line-height: 1.5; +} +body { + background: #fff; + color: #343434; + font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif; + margin: 0; + overflow-y: scroll; + padding: 0; +} +a { + color: #4183c4; + text-decoration: none; + outline: none; +} +a:hover { + color: #8B8B8B; +} +a.blue { + color: blue; +} +a .ui-icon { + display: inline-block; + position: relative; + top: 2px; +} +.links a { + color: #666666; + clear: both; + display: inline-block; + float: left; +} +.links a:hover { + color: #4183c4; +} +.links a .ui-icon { + float: left; + margin-right: 5px; + margin-top: 3px; +} +h1 { + font-size: 24px; +} +h2 { + font-size: 20px; +} +h3 { + font-size: 16px; +} +p.center { + text-align: center; +} +hr { + border: 0; + border-top: 1px solid #cccccc; + display: block; + height: 1px; + margin: 1em 0; + padding: 0; +} +small { + font-size: 85%; +} +img.albumArt { + float: left; + min-height: 100%; + min-width: 100%; + position: relative; +} +.title { + margin-bottom: 20px; + margin-top: 10px; +} +.title h1 img { + float: left; + margin-right: 5px; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +table th { + background-image: -moz-linear-gradient(#fafafa, #eaeaea) !important; + background-image: linear-gradient(#fafafa, #eaeaea) !important; + background-image: -webkit-linear-gradient(#fafafa, #eaeaea) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + text-shadow: 1px 1px 0 #FFFFFF ; +} +table th input[type="checkbox"] { + vertical-align: middle; +} +table td { + vertical-align: top; +} +table td a { + color: #666666; +} +select, +input, +textarea, +button { + font: 99%; +} +textarea { + overflow: auto; +} +input { + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} +input:invalid, +textarea:invalid { + -moz-box-shadow: 0 0 5px #ff0000; + -webkit-box-shadow: 0 0 5px #ff0000; + box-shadow: 0 0 5px #ff0000; + -moz-border-radius: 1px; + -webkit-border-radius: 1px; + border-radius: 1px; +} +.no-boxshadow input:invalid, +.no-boxshadow textarea:invalid { + background-color: #f0dddd; +} +input[type="checkbox"] { + vertical-align: bottom; +} +label, +input[type="button"], +input[type="submit"], +input[type="image"], +button { + cursor: pointer; +} +button, +input, +select, +textarea { + margin: 0; +} +button { + overflow: visible; + width: auto; +} +input, +select, +form .checkbox input, +.configtable td#middle, +#artist_table td#have, +#album_table td#have { + vertical-align: middle; +} +input[type="radio"] { + vertical-align: text-bottom; +} +::-moz-selection, +::selection { + background: grey; + color: #fff; + text-shadow: none; +} +input[type=submit], +input[type=button] { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; + background: #222222 url("../images/button.png") repeat-x; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.25); + color: #fff; + cursor: pointer; + display: inline-block; + margin-right: 3px; + padding: 4px 10px; + position: relative; + text-decoration: none; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +form legend, +form h2 { + font-size: 16px; + font-weight: bold; + margin-bottom: 10px; +} +form table { + width: 100%; +} +form fieldset { + margin-bottom: 20px; +} +form fieldset small.heading { + color: #666; + display: block; + font-style: italic; + margin-bottom: 10px; + margin-top: -15px; +} +form .row { + font-family: Helvetica, Arial; + margin-bottom: 10px; +} +form .row label { + display: block; + float: left; + font-size: 12px; + line-height: normal; + padding-top: 7px; + width: 175px; +} +form .row input { + margin-right: 5px; +} +form .row input[type=text], +form .row input[type=password] { + border: 1px solid #DDD; + border-top: 1px solid #CDCDCD; + -moz-box-shadow: 0 1px 0 #f1f1f1; + -webkit-box-shadow: 0 1px 0 #f1f1f1; + box-shadow: 0 1px 0 #f1f1f1; + -moz-box-shadow: inset 0 1px 1px #e0e0e0; + -webkit-box-shadow: inset 0 1px 1px #e0e0e0; + box-shadow: inset 0 1px 1px #e0e0e0; + color: #343434; + font-size: 14px; + height: auto; + line-height: normal; + max-width: 230px; + margin-right: 5px; + padding: 3px 5px; +} +form .row small { + color: #999; + display: block; + font-size: 9px; + line-height: 12px; + margin-left: 175px; + margin-top: 3px; +} +form .left label { + float: none; + line-height: normal; + margin-bottom: 10px; + padding-top: 1px; + width: auto; +} +form .left input { + float: left; + margin-bottom: 10px; +} +form .radio label { + float: none; + line-height: normal; + margin-bottom: 10px; + padding-top: 1px; + width: auto; +} +form .radio input { + float: left; + margin-bottom: 10px; +} +form .radio small { + display: inline !important; + line-height: normal !important; + margin: 0 !important; + width: auto; +} +form .checkbox small { + display: inline !important; + line-height: normal !important; + margin: 0 !important; + width: auto; +} +ul, +ol { + margin-left: 2em; +} +ol { + list-style-type: decimal; +} +nav ul, +nav li { + list-style: none; + list-style-image: none; + margin: 0; +} +ul#nav { + float: right; + margin: 0; + padding: 0 0 0 10px; + border-left: 1px solid #FAFAFA; + -moz-box-shadow: -1px 0 0 #e0e0e0; + -webkit-box-shadow: -1px 0 0 #e0e0e0; + box-shadow: -1px 0 0 #e0e0e0; + height: 58px; +} +ul#nav li { + display: block; + float: left; + font-size: 18px; + font-weight: bold; + margin: 8px 0 0 0; + text-align: center; +} +ul#nav li a { + color: #343434; + display: block; + padding: 7px 15px; + text-shadow: 1px 1px 0px #FFF; + text-transform: capitalize; + border: 1px solid transparent; + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; +} +ul#nav li a:hover { + background-image: -moz-linear-gradient(#f1f1f1, #e0e0e0) !important; + background-image: linear-gradient(#f1f1f1, #e0e0e0) !important; + background-image: -webkit-linear-gradient(#f1f1f1, #e0e0e0) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + border: 1px solid #DDDDDD; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 0 #fafafa; + -webkit-box-shadow: 0 1px 0 #fafafa; + box-shadow: 0 1px 0 #fafafa; + -moz-box-shadow: 0 1px 0 #fafafa inset; + -webkit-box-shadow: 0 1px 0 #fafafa inset; + box-shadow: 0 1px 0 #fafafa inset; + -webkit-transition: color 0.2s ease-in; + -moz-transition: color 0.2s ease-in; + -o-transition: color 0.2s ease-in; + transition: color 0.2s ease-in; +} +ul#nav li a.config { + height: 28px; + width: 10px; +} +ul#nav li a.config img { + position: relative; + top: -7px; + left: -7px; +} +ul#nav li a.log { + font-size: 13px; + padding: 10px 15px 11px; +} +header { + background-image: -moz-linear-gradient(#fafafa, #eaeaea) !important; + background-image: linear-gradient(#fafafa, #eaeaea) !important; + background-image: -webkit-linear-gradient(#fafafa, #eaeaea) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + border-bottom: 1px solid #CACACA; + -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + height: 58px; + position: fixed; + width: 100%; + z-index: 999; +} +header .wrapper { + margin: 0 auto; + overflow: hidden; + position: relative; + width: 960px; +} +header #logo { + float: left; + margin-right: 20px; + position: relative; + top: -3px; + margin-left: 10px; +} +footer { + display: table; + margin: 20px auto; + width: 960px; +} +#main { + line-height: 24px; + margin: 0 auto; + padding: 75px 0 0; + width: 960px; +} +.message { + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + background-color: #fff6a9; + display: inline-block; + padding: 5px 10px; + margin-top: 10px; +} +.message .ui-icon { + float: left; + margin-right: 5px; + position: relative; + top: 4px; +} +#ajaxMsg { + border: 1px solid #cccccc; + background-image: -moz-linear-gradient(#ffffff, #eeeeee) !important; + background-image: linear-gradient(#ffffff, #eeeeee) !important; + background-image: -webkit-linear-gradient(#ffffff, #eeeeee) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + border-radius: 7px; + display: none; + font-size: 14px; + right: 10px; + -moz-box-shadow: 0px 0px 2px #aaaaaa; + -webkit-box-shadow: 0px 0px 2px #aaaaaa; + box-shadow: 0px 0px 2px #aaaaaa; + padding: 7px 10px; + position: fixed; + text-align: center; + bottom: 10px; + min-height: 22px; + width: 250px; + z-index: 9999; + filter: alpha(opacity=85); + -moz-opacity: 0.8 !important; + -khtml-opacity: 0.8 !important; + opacity: 0.8 !important; +} +#ajaxMsg .msg { + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; + line-height: normal; + padding-left: 20px; +} +#ajaxMsg .loader { + position: relative; + top: 2px; +} +#ajaxMsg.success { + background-image: -moz-linear-gradient(#d3ffd7, #c2edc6) !important; + background-image: linear-gradient(#d3ffd7, #c2edc6) !important; + background-image: -webkit-linear-gradient(#d3ffd7, #c2edc6) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + padding: 15px 10px; + text-align: left; +} +#ajaxMsg.error { + background-image: -moz-linear-gradient(#ffd3d3, #edc4c4) !important; + background-image: linear-gradient(#ffd3d3, #edc4c4) !important; + background-image: -webkit-linear-gradient(#ffd3d3, #edc4c4) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + padding: 15px 10px; + text-align: left; +} +#ajaxMsg .ui-icon { + display: inline-block; + margin-left: -20px; + top: 2px; + position: relative; + margin-right: 3px; +} +#updatebar { + -moz-border-radius-bottomleft: 10px; + -moz-border-radius-bottomright: 10px; + -webkit-border-bottom-right-radius: 10px; + -webkit-border-bottom-left-radius: 10px; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + background-color: #fff6a9; + border: 1px solid #cccccc; + font-size: 11px; + left: 35%; + margin: 0 auto; + padding: 1px 10px; + position: absolute; + text-align: center; + text-transform: lowercase; + top: 0; +} +#subhead .back { + float: left; + margin-top: -25px; +} +#subhead #subhead_container { + float: right; + height: 30px; + list-style-type: none; + width: 100%; + z-index: 998; +} +#subhead #subhead_container #subhead_menu { + float: right; + margin-top: 5px; + position: relative; + z-index: 99; +} +#subhead #subhead_container #subhead_menu a { + background-image: -moz-linear-gradient(#f4f4f4, #e7e7e7) !important; + background-image: linear-gradient(#f4f4f4, #e7e7e7) !important; + background-image: -webkit-linear-gradient(#f4f4f4, #e7e7e7) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + font-family: "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif; + font-size: 12px; + font-weight: normal; +} +#subhead #subhead_container #subhead_menu a:hover { + background-image: -moz-linear-gradient(#599bdc, #3072b3) !important; + background-image: linear-gradient(#599bdc, #3072b3) !important; + background-image: -webkit-linear-gradient(#599bdc, #3072b3) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + color: #FFF; + border-color: #518CC6 #518CC6 #2A65A0; +} +div#searchbar { + border-left: 1px solid #FAFAFA; + -moz-box-shadow: -1px 0 0 #e0e0e0; + -webkit-box-shadow: -1px 0 0 #e0e0e0; + box-shadow: -1px 0 0 #e0e0e0; + padding: 15px 0 15px 20px; + position: absolute; + left: 90px; + top: 2px; +} +div#searchbar input[type=text] { + border: 1px solid #DDD; + border-top: 1px solid #CDCDCD; + -moz-box-shadow: 0 1px 0 #f1f1f1; + -webkit-box-shadow: 0 1px 0 #f1f1f1; + box-shadow: 0 1px 0 #f1f1f1; + -moz-box-shadow: inset 0 1px 1px #e0e0e0; + -webkit-box-shadow: inset 0 1px 1px #e0e0e0; + box-shadow: inset 0 1px 1px #e0e0e0; + color: #999; + float: left; + font-size: 14px; + height: auto; + line-height: normal; + margin-right: 5px; + padding: 4px 5px 4px 25px; + width: 150px; +} +div#searchbar .mini-icon { + height: 20px; + width: 20px; + background: url("../images/icon_search.gif") left top no-repeat; + position: absolute; + display: block; + margin-left: 6px; + margin-top: 6px; +} +.configtable legend { + font-size: 16px; + font-weight: bold; + margin-bottom: 10px; + text-shadow: 1px 1px 0 #FFFFFF; +} +.configtable tr td:last-child { + border-left: 1px dotted #ddd; + padding-left: 20px; +} +.configtable td { + padding-right: 15px; + width: 50%; +} +.table_wrapper { + _height: 302px; + background-color: #FFF; + clear: both; + margin: 30px auto 0; + min-height: 100px; + position: relative; + width: 100%; + zoom: 1px; +} +.manage_wrapper { + _height: 302px; + clear: both; + margin: 20px auto 0; + min-height: 150px; + padding: 25px; + width: 88%; + zoom: 1px; +} +#paddingheader { + position: relative; + top: -25px; +} +#paddingheader h1 { + line-height: 33px; + width: 450px; +} +#paddingheader h1 img { + float: left; + margin-right: 5px; +} +div#nopaddingheader { + font-size: 24px; + font-weight: bold; + text-align: center; +} +div#artistheader { + margin-top: 50px; + min-height: 200px; +} +div#artistheader #artistImg { + background: #ffffff url("../images/loader_black.gif") center no-repeat; + border: 5px solid #FFF; + -moz-box-shadow: 1px 1px 2px 0 #555555; + -webkit-box-shadow: 1px 1px 2px 0 #555555; + box-shadow: 1px 1px 2px 0 #555555; + float: left; + height: 200px; + margin-bottom: 30px; + margin-right: 25px; + overflow: hidden; + text-indent: -3000px; + width: 200px; +} +div#artistheader #artistBio { + font-size: 16px; + line-height: 24px; + margin-top: 10px; +} +div#artistheader h1 a { + font-size: 32px; + margin-bottom: 5px; + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; +} +div#artistheader h2 a { + font-style: italic; + font-weight: bold; + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; +} +#artist_table { + background-color: #FFF; + padding: 20px; + width: 100%; +} +#artist_table th#select { + text-align: left; +} +#artist_table th#select input { + vertical-align: middle; +} +#artist_table #artistImg { + background: url("../images/loader_black.gif") no-repeat scroll center center #ffffff; + border: 3px solid #FFFFFF; + box-shadow: 1px 1px 2px 0 #555555; + float: left; + height: 50px; + overflow: hidden; + text-indent: -3000px; + width: 50px; +} +#artist_table th#name { + min-width: 200px; + text-align: left; +} +#artist_table th#album { + min-width: 300px; + text-align: left; +} +#artist_table th#status, +#artist_table th#albumart { + min-width: 50px; + text-align: left; +} +#artist_table th#have { + text-align: center; +} +#artist_table td#name { + min-width: 200px; + text-align: left; + vertical-align: middle; +} +#artist_table td#status { + min-width: 50px; + text-align: left; + vertical-align: middle; +} +#artist_table td#album { + min-width: 300px; + text-align: left; + vertical-align: middle; +} +#markalbum { + position: relative; + top: 25px; + display: inline-block; +} +#albumheader { + margin-top: 50px; + min-height: 200px; +} +#albumheader #albumImg { + background: #ffffff url("../images/loader_black.gif") center no-repeat; + border: 5px solid #FFF; + -moz-box-shadow: 1px 1px 2px 0 #555555; + -webkit-box-shadow: 1px 1px 2px 0 #555555; + box-shadow: 1px 1px 2px 0 #555555; + float: left; + height: 200px; + margin-bottom: 30px; + margin-right: 25px; + overflow: hidden; + text-indent: -3000px; + width: 200px; +} +#albumheader p { + font-size: 16px; + line-height: 24px; + margin-bottom: 10px; +} +#albumheader h1 a { + display: inline-block; + font-size: 32px; + line-height: 35px; + margin-bottom: 3px; + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; +} +#albumheader h2 a { + display: inline-block; + font-style: italic; + font-weight: 400; + margin-bottom: 5px; + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; +} +#albumheader .albuminfo { + margin-left: 210px; +} +#albumheader .albuminfo li { + border-right: 1px dotted #ccc; + float: left; + font-size: 16px; + font-weight: bold; + list-style: none; + margin-right: 10px; + padding-right: 10px; +} +#albumheader .albuminfo li:last-child { + border: none; +} +#album_table { + background-color: #FFF; +} +#album_table th#select { + min-width: 10px; + text-align: left; + vertical-align: middle; +} +#album_table th#select input { + vertical-align: middle; +} +#album_table th#reldate { + min-width: 70px; + text-align: center; + width: 175px; +} +#album_table th#status, +#album_table th#albumart { + min-width: 50px; + text-align: left; +} +#album_table th#status { + min-width: 80px; + text-align: center; + width: 175px; +} +#album_table th#wantlossless { + min-width: 80px; + text-align: center; + width: 80px; +} +#album_table td#albumart img { + background: #FFF; + border: 1px solid #ccc; + padding: 3px; +} +#album_table td#status a#wantlossless { + white-space: nowrap; +} +#manageheader { + margin-top: 45px; + margin-bottom: 0; +} +#track_wrapper { + font-size: 16px; + padding-top: 20px; + width: 100%; +} +#track_table th#number { + min-width: 10px; + text-align: right; +} +#track_table th#name { + min-width: 350px; + text-align: center; +} +#track_table th#location { + text-align: center; + width: 250px; +} +#track_table td { + border-bottom: 1px solid #FFFFFF; +} +#track_table td#number { + text-align: right; + vertical-align: middle; +} +#track_table td#name { + font-size: 15px; + text-align: left; + vertical-align: middle; +} +#track_table td#location { + font-size: 11px; + line-height: normal; + text-align: center; + vertical-align: middle; +} +#history_table { + background-color: #FFF; + font-size: 13px; + width: 100%; +} +#history_table td#dateadded { + font-size: 14px; + min-width: 150px; + text-align: center; + vertical-align: middle; +} +#history_table td#filename { + font-size: 15px; + min-width: 100px; + text-align: center; + vertical-align: middle; +} +#history_table td#size { + font-size: 14px; + min-width: 75px; + text-align: center; + vertical-align: middle; +} +#log_table { + background-color: #FFF; +} +#log_table th#timestamp { + min-width: 150px; + text-align: left; +} +#log_table th#level { + min-width: 60px; + text-align: left; +} +#log_table th#message { + min-width: 500px; + text-align: left; +} +#log_table td { + font-size: 12px; + padding: 2px 10px; +} +#searchresults_table th#albumname { + min-width: 225px; + text-align: left; +} +#searchresults_table th#artistname { + min-width: 325px; + text-align: center; +} +#searchresults_table #artistImg { + background: url("../images/loader_black.gif") no-repeat scroll center center #ffffff; + border: 3px solid #FFFFFF; + box-shadow: 1px 1px 2px 0 #555555; + float: left; + height: 50px; + overflow: hidden; + text-indent: -3000px; + width: 50px; +} +#searchresults_table td#albumname { + min-width: 200px; + text-align: left; + vertical-align: middle; +} +#searchresults_table td#artistname { + min-width: 300px; + text-align: left; + vertical-align: middle; +} +#searchresults_table td#score .bar { + width: 100px; + margin: 0 auto; + border: 1px solid #cccccc; + padding: 1px; + background-color: #FFF; +} +#searchresults_table td#score .bar .score { + height: 14px; + color: #343434; + color: #FFF; + font-size: 11px; + vertical-align: middle; + line-height: normal; + background-image: -moz-linear-gradient(#a3e532, #90cc2a) !important; + background-image: linear-gradient(#a3e532, #90cc2a) !important; + background-image: -webkit-linear-gradient(#a3e532, #90cc2a) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; +} +.progress-container { + background: #FFF; + border: 1px solid #ccc; + float: left; + height: 14px; + margin: 2px 5px 2px 0; + padding: 1px; + width: 100px; +} +.progress-container > div { + background-image: -moz-linear-gradient(#a3e532, #90cc2a) !important; + background-image: linear-gradient(#a3e532, #90cc2a) !important; + background-image: -webkit-linear-gradient(#a3e532, #90cc2a) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + height: 14px; +} +.havetracks { + font-size: 11px; + line-height: normal; + margin-left: 36px; + padding-bottom: 3px; + vertical-align: middle; +} +#version { + color: #999; + font-size: 10px; + position: relative; + z-index: 999; + margin: 20px auto; + text-align: center; + width: 390px; +} +#donate { + margin: 20px auto; + text-align: center; +} +#toTop { + background: url("../images/toTop.gif") no-repeat scroll 10px center #f7f7f7; + border-radius: 5px 0 0 0; + bottom: 0; + display: none; + padding: 10px 10px 10px 40px; + position: fixed; + right: 0; +} +#shutdown { + text-align: center; + vertical-align: middle; +} +#shutdown h1 img { + position: relative; + top: 7px; +} +.cloudtag { + font-size: 16px; + padding-top: 30px; +} +.cloudtag #cloud { + line-height: 1.5em; + margin: 0; + padding: 2px; + text-align: center; +} +.cloudtag #cloud a { + padding: 0; +} +.cloudtag #cloud a.tag1 { + font-size: 0.7em; + font-weight: 100; +} +.cloudtag #cloud a.tag2 { + font-size: 0.8em; + font-weight: 200; +} +.cloudtag #cloud a.tag3 { + font-size: 0.9em; + font-weight: 300; +} +.cloudtag #cloud a.tag4 { + font-size: 1em; + font-weight: 400; +} +.cloudtag #cloud a.tag5 { + font-size: 1.2em; + font-weight: 500; +} +.cloudtag #cloud a.tag6 { + font-size: 1.4em; + font-weight: 600; +} +.cloudtag #cloud a.tag7 { + font-size: 1.6em; + font-weight: bold; +} +.cloudtag #cloud a.tag8 { + font-size: 1.8em; + font-weight: 800; +} +.cloudtag #cloud a.tag9 { + font-size: 2.2em; + font-weight: 900; +} +.cloudtag #cloud a.tag10 { + font-size: 2.5em; + font-weight: 900; +} +.cloudtag #cloud li { + display: inline; +} +.floatright { + float: right; +} +.floatleft { + float: left; +} +.ir { + background-repeat: no-repeat; + direction: ltr; + display: block; + overflow: hidden; + text-align: left; + text-indent: -999em; +} +.hidden { + display: none; + visibility: hidden; +} +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} +.invisible { + visibility: hidden; +} +.clearfix:before, +.clearfix:after { + content: "\0020"; + display: block; + height: 0; + overflow: hidden; +} +.clearfix { + zoom: 1px; +} +.clearfix:after { + clear: both; +} +#album_table th#albumname, +#upcoming_table th#artistname, +#wanted_table th#artistname { + min-width: 150px; + text-align: center; +} +#album_table th#type, +#track_table th#duration { + min-width: 100px; + text-align: center; + width: 175px; +} +#album_table th#bitrate, +#album_table th#albumformat { + min-width: 60px; + text-align: center; +} +#album_table td#select, +#album_table td#albumart { + text-align: left; + vertical-align: middle; +} +#album_table td#albumname, +#album_table td#reldate, +#album_table td#type, +#track_table td#duration, +#upcoming_table td#select, +#upcoming_table td#status, +#wanted_table td#select, +#wanted_table td#status { + text-align: center; + vertical-align: middle; +} +#album_table td#status, +#album_table td#bitrate, +#album_table td#albumformat, +#album_table td#wantlossless { + font-size: 13px; + text-align: center; + vertical-align: middle; +} +div#albumheader .albuminfo li span, +div#artistheader h3 span { + font-weight: 400; +} +#track_table th#bitrate, +#track_table th#format, +#upcoming_table th#type, +#wanted_table th#type, +#searchresults_table th#score { + min-width: 75px; + text-align: center; +} +#track_table td#bitrate, +#track_table td#format { + font-size: 12px; + text-align: center; + vertical-align: middle; +} +#history_table td#status, +#history_table td#action { + font-size: 14px; + text-align: center; + vertical-align: middle; +} +#upcoming_table th#albumart, +#wanted_table th#albumart { + min-width: 50px; + text-align: center; +} +#upcoming_table th#albumname, +#wanted_table th#albumname { + min-width: 200px; + text-align: center; +} +#upcoming_table th#reldate, +#wanted_table th#reldate { + min-width: 100px; + text-align: center; +} +#upcoming_table td#albumart, +#wanted_table td#albumart { + min-width: 50px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#albumname, +#wanted_table td#albumname { + min-width: 200px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#artistname, +#wanted_table td#artistname { + min-width: 150px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#reldate, +#wanted_table td#reldate { + min-width: 100px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#type, +#wanted_table td#type, +#searchresults_table td#score { + min-width: 75px; + text-align: center; + vertical-align: middle; +} +table tr td#status a { + color: #4183c4; +} +.ie7 input[type="checkbox"] { + vertical-align: baseline; +} +.ie7 img { + -ms-interpolation-mode: bicubic; +} +.ie7 legend { + margin-left: -7px; +} diff --git a/data/interfaces/lossless/css/style.less b/data/interfaces/lossless/css/style.less new file mode 100644 index 00000000..031a9f23 --- /dev/null +++ b/data/interfaces/lossless/css/style.less @@ -0,0 +1,1116 @@ +// Config +@import "config.less"; + +html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video { + border: 0; + font: inherit; + font-size: 100%; + margin: 0; + padding: 0; + vertical-align: baseline; +} + +article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {display: block;} + +html { + color: @text-color; + font-size: @base-font-size; + line-height: 1.5; +} +body { + background: #fff; + color: @text-color; + font-family: @base-font-face; + margin: 0; + overflow-y: scroll; + padding: 0; +} + +// Links +a { + color: @link-color; + text-decoration: none; + outline: none; + &:hover { + color: #8B8B8B; + } + &.blue { + color: blue; + } + .ui-icon { + display:inline-block; + position: relative; + top: 2px; + + } +} +.links { + a { + color: @swatch-grey; + clear: both; + display: inline-block; + float: left; + &:hover { color: @link-color;} + .ui-icon { + float: left; + margin-right: 5px; + margin-top: 3px; + } + } +} + +// Markup +h1 { font-size: 24px;} +h2 { font-size: 20px;} +h3 { font-size: 16px;} +p { + &.center { + text-align: center; + } +} +hr { + border: 0; + border-top: 1px solid @border-color; + display: block; + height: 1px; + margin: 1em 0; + padding: 0; +} +small { + font-size: 85%; +} +img { + &.albumArt { + float: left; + min-height: 100%; + min-width: 100%; + position: relative; + } +} +.title { + margin-bottom:20px; + margin-top:10px; + h1 { + img { + float: left; + margin-right: 5px; + } + } +} +// Tables + +table { + border-collapse: collapse; + border-spacing: 0; + th { + .gradient(#FAFAFA, #EAEAEA); + text-shadow:1px 1px 0 #FFFFFF ; + input[type="checkbox"]{ vertical-align: middle;} + } + td { + vertical-align: top; + a { color: @swatch-grey;} + } +} + + +// Forms +select, input, textarea, button { font: 99%;} +textarea {overflow: auto;} +input { .rounded(3px);} +input:invalid, textarea:invalid { + .shadow(0 0 5px #ff0000); + .rounded(1px); +} +.no-boxshadow input:invalid,.no-boxshadow textarea:invalid { background-color: #f0dddd;} +input[type="checkbox"] { vertical-align: bottom; } +label, input[type="button"],input[type="submit"],input[type="image"], button { cursor: pointer;} +button,input, select, textarea { margin: 0;} +button { + overflow: visible; + width: auto; +} +input,select,form .checkbox input,.configtable td#middle, #artist_table td#have,#album_table td#have { vertical-align: middle; } + +input[type="radio"]{ vertical-align: text-bottom; } +::-moz-selection, ::selection { + background: grey; + color: #fff; + text-shadow: none; +} +input[type=submit], input[type=button] { + .rounded(5px); + background: #222222 url("../images/button.png") repeat-x; + border: 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.25); + color: #fff; + cursor: pointer; + display: inline-block; + margin-right: 3px; + padding: 4px 10px; + position: relative; + text-decoration: none; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} + +form { + legend, h2 { + font-size: 16px; + font-weight: bold; + margin-bottom: 10px; + } + table { width: 100%; } + fieldset { + margin-bottom: 20px; + small { + &.heading { + color: #666; + display: block; + font-style: italic; + margin-bottom: 10px; + margin-top: -15px; + } + } + } + .row { + font-family: Helvetica, Arial; + margin-bottom: 10px; + label { + display: block; + float: left; + font-size: 12px; + line-height: normal; + padding-top: 7px; + width: 175px; + } + input { margin-right: 5px; } + input[type=text], input[type=password] { + border: 1px solid #DDD; + border-top: 1px solid #CDCDCD; + .shadow(0 1px 0 #f1f1f1); + .shadow(inset 0 1px 1px #e0e0e0); + color: @text-color; + font-size: 14px; + height: auto; + line-height: normal; + max-width: 230px; + margin-right: 5px; + padding: 3px 5px; + } + small { + color: #999; + display: block; + font-size: 9px; + line-height: 12px; + margin-left: 175px; + margin-top: 3px; + } + } + .left { + label { + float: none; + line-height: normal; + margin-bottom: 10px; + padding-top: 1px; + width: auto; + } + input { + float: left; + margin-bottom: 10px; + } + } + .radio { + label { + float: none; + line-height: normal; + margin-bottom: 10px; + padding-top: 1px; + width: auto; + } + input { + float: left; + margin-bottom: 10px; + } + small { + display: inline !important; + line-height: normal !important; + margin: 0 !important; + width: auto; + } + } + .checkbox { + small { + display: inline !important; + line-height: normal !important; + margin: 0 !important; + width: auto; + } + } +} + +// Lists +ul, ol { margin-left: 2em;} +ol { list-style-type: decimal;} + +// Navigation +nav ul, nav li { + list-style: none; + list-style-image: none; + margin: 0; +} +ul#nav { + float: right; + margin: 0; + padding: 0 0 0 10px; + border-left: 1px solid #FAFAFA; + .shadow(-1px 0 0 #e0e0e0); + height: 58px; + li { + display: block; + float: left; + font-size: 18px; + font-weight: bold; + margin: 8px 0 0 0; + text-align: center; + a { + color: @text-color; + display: block; + padding: 7px 15px; + text-shadow: 1px 1px 0px #FFF; + text-transform: capitalize; + border: 1px solid transparent; + font-family: @alt-font-face; + &:hover { + .gradient(#F1F1F1, #E0E0E0); + border: 1px solid #DDDDDD; + .rounded(3px); + .shadow(0 1px 0 #FAFAFA); + .shadow(0 1px 0 #FAFAFA inset); + -webkit-transition:color .2s ease-in; + -moz-transition:color .2s ease-in; + -o-transition:color .2s ease-in; + transition:color .2s ease-in; + } + &.config { + height: 28px; + width: 10px; + img { + position: relative; + top: -7px; + left: -7px; + } + } + &.log { + font-size: 13px; + padding: 10px 15px 11px; + } + } + } +} +// Layout +header { + .gradient(#fafafa, #eaeaea); + border-bottom: 1px solid #CACACA; + .shadow(0 0 10px rgba(0, 0, 0, 0.1)); + height: 58px; + position: fixed; + width: 100%; + z-index: 999; + .wrapper { + margin: 0 auto; + overflow: hidden; + position: relative; + width: 960px; + } + #logo { + float: left; + margin-right: 20px; + position: relative; + top: -3px; + margin-left: 10px; + } +} +footer { + display: table; + margin: 20px auto; + width: 960px; +} +#main { + line-height: 24px; + margin: 0 auto; + padding: 75px 0 0; + width: 960px; +} + +// Messages +.message { + .rounded(10px); + background-color: @msg-bg; + display: inline-block; + padding: 5px 10px; + margin-top: 10px; + .ui-icon { + float: left; + margin-right: 5px; + position: relative; + top: 4px; + } +} +#ajaxMsg { + border: 1px solid @border-color; + .gradient(#FFFFFF, #EEEEEE); + .rounded(7px); + display: none; + font-size: 14px; + right: 10px; + .shadow(0px 0px 2px #aaa); + padding: 7px 10px; + position: fixed; + text-align: center; + bottom: 10px; + min-height: 22px; + width: 250px; + z-index: 9999; + .opacity(80); + .msg { + font-family: @alt-font-face; + line-height: normal; + padding-left: 20px; + } + .loader { + position: relative; + top: 2px; + } + &.success { + .gradient(@msg-bg-success,#C2EDC6); + padding: 15px 10px; + text-align: left; + } + &.error { + .gradient(@msg-bg-error,#EDC4C4); + padding:15px 10px; + text-align: left; + } + .ui-icon { + display: inline-block; + margin-left: -20px; + top: 2px; + position: relative; + margin-right: 3px; + } +} + +#updatebar { + .roundedBottom(10px); + background-color: @msg-bg; + border: 1px solid @border-color; + font-size: 11px; + left: 35%; + margin: 0 auto; + padding: 1px 10px; + position: absolute; + text-align: center; + text-transform: lowercase; + top: 0; +} + +// Subheader +#subhead { + .back { + float: left; + margin-top: -25px; + } + #subhead_container { + float: right; + height: 30px; + list-style-type: none; + width: 100%; + z-index: 998; + #subhead_menu { + float: right; + margin-top: 5px; + position: relative; + z-index: 99; + a { + .gradient(#F4F4F4, #e7e7e7); + font-family: @base-font-face; + font-size: 12px; + font-weight: normal; + &:hover { + .gradient(#599BDC, #3072B3); + color: #FFF; + border-color: #518CC6 #518CC6 #2A65A0; + } + } + } + } +} + +// Search +div#searchbar { + border-left: 1px solid #FAFAFA; + .shadow(-1px 0 0 #e0e0e0); + padding: 15px 0 15px 20px; + position: absolute; + left: 90px; + top: 2px; + input[type=text] { + border: 1px solid #DDD; + border-top: 1px solid #CDCDCD; + .shadow(0 1px 0 #f1f1f1); + .shadow(inset 0 1px 1px #e0e0e0); + color: #999; + float: left; + font-size: 14px; + height: auto; + line-height: normal; + margin-right: 5px; + padding: 4px 5px 4px 25px; + width: 150px; + } + .mini-icon { + height: 20px; + width: 20px; + background: url("../images/icon_search.gif") left top no-repeat; + position: absolute; + display: block; + margin-left: 6px; + margin-top: 6px; + } +} + +// Config Page +.configtable { + legend { + font-size: 16px; + font-weight: bold; + margin-bottom: 10px; + text-shadow: 1px 1px 0 #FFFFFF; + } + tr { + td { + &:last-child { + border-left: 1px dotted #ddd; + padding-left: 20px; + } + } + } + td { + padding-right: 15px; + width: 50%; + } +} + +// TABLES + +// wrappers +.table_wrapper { + _height: 302px; + background-color: #FFF; + clear: both; + margin: 30px auto 0; + min-height: 100px; + position: relative; + width: 100%; + zoom: 1px; +} +.manage_wrapper { + _height: 302px; + clear: both; + margin: 20px auto 0; + min-height: 150px; + padding: 25px; + width: 88%; + zoom: 1px; +} +// headers +#paddingheader { + position: relative; + top: -25px; + h1 { + line-height: 33px; + width: 450px; + img { + float:left; + margin-right: 5px; + } + } +} +div#nopaddingheader { + font-size: 24px; + font-weight: bold; + text-align: center; +} + +// Artist +div#artistheader { + margin-top: 50px; + min-height: 200px; + #artistImg { + background: #ffffff url("../images/loader_black.gif") center no-repeat; + border: 5px solid #FFF; + .shadow(1px 1px 2px 0 #555); + float: left; + height: 200px; + margin-bottom: 30px; + margin-right: 25px; + overflow: hidden; + text-indent: -3000px; + width: 200px; + } + #artistBio { + font-size: 16px; + line-height: 24px; + margin-top: 10px; + } + h1 { + a { + font-size: 32px; + margin-bottom: 5px; + font-family: @alt-font-face; + } + } + h2 { + a { + font-style: italic; + font-weight: bold; + font-family: @alt-font-face; + } + } +} + +#artist_table { + background-color: #FFF; + padding: 20px; + width: 100%; + th#select { + text-align: left; + input { vertical-align: middle;} + } + #artistImg { + background: url("../images/loader_black.gif") no-repeat scroll center center #FFFFFF; + border: 3px solid #FFFFFF; + box-shadow: 1px 1px 2px 0 #555555; + float: left; + height: 50px; + overflow: hidden; + text-indent: -3000px; + width: 50px; + } + th#name { + min-width: 200px; + text-align: left; + } + th#album { + min-width: 300px; + text-align: left; + } + th#status, th#albumart { + min-width: 50px; + text-align: left; + } + th#have { + text-align: center; + } + td#name { + min-width: 200px; + text-align: left; + vertical-align: middle; + } + td#status { + min-width: 50px; + text-align: left; + vertical-align: middle; + } + td#album { + min-width: 300px; + text-align: left; + vertical-align: middle; + } +} + +#markalbum { + position: relative; + top: 25px; + display: inline-block; +} + +// Album +#albumheader { + margin-top: 50px; + min-height: 200px; + #albumImg { + background: #ffffff url("../images/loader_black.gif") center no-repeat; + border: 5px solid #FFF; + .shadow(1px 1px 2px 0 #555); + float: left; + height: 200px; + margin-bottom: 30px; + margin-right: 25px; + overflow: hidden; + text-indent: -3000px; + width: 200px; + } + p { + font-size: 16px; + line-height: 24px; + margin-bottom: 10px; + } + h1 { + a { + display: inline-block; + font-size: 32px; + line-height: 35px; + margin-bottom: 3px; + font-family: @alt-font-face; + } + } + h2 { + a { + display: inline-block; + font-style: italic; + font-weight: 400; + margin-bottom: 5px; + font-family: @alt-font-face; + } + } + .albuminfo { + margin-left: 210px; + li { + border-right: 1px dotted #ccc; + float: left; + font-size: 16px; + font-weight: bold; + list-style: none; + margin-right: 10px; + padding-right: 10px; + &:last-child { border: none; } + } + } +} + +#album_table { + background-color: #FFF; + th#select { + min-width: 10px; + text-align: left; + vertical-align: middle; + input { vertical-align: middle;} + } + th#reldate { + min-width: 70px; + text-align: center; + width: 175px; + } + th#status, th#albumart { + min-width: 50px; + text-align: left; + } + th#status { + min-width: 80px; + text-align: center; + width: 175px; + } + th#wantlossless { + min-width: 80px; + text-align: center; + width: 80px; + } + td#albumart { + img { + background: #FFF; + border: 1px solid #ccc; + padding: 3px; + } + } + td#status { + a#wantlossless { + white-space: nowrap; + } + } +} + +// Manage +#manageheader { + margin-top: 45px; + margin-bottom: 0; +} + +// Tracks +#track_wrapper { + font-size: 16px; + padding-top: 20px; + width: 100%; +} + +#track_table { + th#number { + min-width: 10px; + text-align: right; + } + th#name { + min-width: 350px; + text-align: center; + } + th#location { + text-align: center; + width: 250px; + } + td { border-bottom: 1px solid #FFFFFF;} + td#number { + text-align: right; + vertical-align: middle; + } + td#name { + font-size: 15px; + text-align: left; + vertical-align: middle; + } + td#location { + font-size: 11px; + line-height: normal; + text-align: center; + vertical-align: middle; + } +} + +// History +#history_table { + background-color: #FFF; + font-size: 13px; + width: 100%; + td#dateadded { + font-size: 14px; + min-width: 150px; + text-align: center; + vertical-align: middle; + } + td#filename { + font-size: 15px; + min-width: 100px; + text-align: center; + vertical-align: middle; + } + td#size { + font-size: 14px; + min-width: 75px; + text-align: center; + vertical-align: middle; + } +} + +// Logs +#log_table { + background-color: #FFF; + th#timestamp { + min-width: 150px; + text-align: left; + } + th#level { + min-width: 60px; + text-align: left; + } + th#message { + min-width: 500px; + text-align: left; + } + td { + font-size: 12px; + padding: 2px 10px; + } +} +// Searchresults +#searchresults_table { + th#albumname { + min-width: 225px; + text-align: left; + } + th#artistname { + min-width: 325px; + text-align: center; + } + #artistImg { + background: url("../images/loader_black.gif") no-repeat scroll center center #FFFFFF; + border: 3px solid #FFFFFF; + box-shadow: 1px 1px 2px 0 #555555; + float: left; + height: 50px; + overflow: hidden; + text-indent: -3000px; + width: 50px; + } + td#albumname { + min-width: 200px; + text-align: left; + vertical-align: middle; + } + td#artistname { + min-width: 300px; + text-align: left; + vertical-align: middle; + } + td#score { + .bar { + width: 100px; + margin: 0 auto; + border: 1px solid @border-color; + padding: 1px; + background-color: #FFF; + .score { + height: 14px; + color: @text-color; + color: #FFF; + font-size: 11px; + vertical-align: middle; + line-height: normal; + .gradient(#A3E532,#90CC2A); + } + } + } +} +.progress-container { + background: #FFF; + border: 1px solid #ccc; + float: left; + height: 14px; + margin: 2px 5px 2px 0; + padding: 1px; + width: 100px; + & > div { + .gradient(#A3E532,#90CC2A); + height: 14px; + } +} +.havetracks { + font-size: 11px; + line-height: normal; + margin-left: 36px; + padding-bottom: 3px; + vertical-align: middle; +} + +// Globar elements +#version { + color: #999; + font-size: 10px; + position: relative; + z-index: 999; + margin: 20px auto; + text-align: center; + width: 390px; +} +#donate { + margin: 20px auto; + text-align: center; +} +#toTop { + background: url("../images/toTop.gif") no-repeat scroll 10px center #f7f7f7; + border-radius: 5px 0 0 0; + bottom: 0; + display: none; + padding: 10px 10px 10px 40px; + position: fixed; + right: 0; +} +#shutdown { + text-align: center; + vertical-align: middle; + h1 { + img { + position: relative; + top: 7px; + } + } +} +.cloudtag { + font-size: 16px; + padding-top: 30px; + #cloud { + line-height: 1.5em; + margin: 0; + padding: 2px; + text-align: center; + a { + padding: 0; + &.tag1 { + font-size: 0.7em; + font-weight: 100; + } + &.tag2 { + font-size: 0.8em; + font-weight: 200; + } + &.tag3 { + font-size: 0.9em; + font-weight: 300; + } + &.tag4 { + font-size: 1em; + font-weight: 400; + } + &.tag5 { + font-size: 1.2em; + font-weight: 500; + } + &.tag6 { + font-size: 1.4em; + font-weight: 600; + } + &.tag7 { + font-size: 1.6em; + font-weight: bold; + } + &.tag8 { + font-size: 1.8em; + font-weight: 800; + } + &.tag9 { + font-size: 2.2em; + font-weight: 900; + } + &.tag10 { + font-size: 2.5em; + font-weight: 900; + } + } + li { display: inline; } + } +} + +// Other elements +.floatright { float: right; } +.floatleft { float: left; } +.ir { + background-repeat: no-repeat; + direction: ltr; + display: block; + overflow: hidden; + text-align: left; + text-indent: -999em; +} +.hidden { + display: none; + visibility: hidden; +} +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} +.invisible { visibility: hidden; } + +.clearfix:before, .clearfix:after { + content: "\0020"; + display: block; + height: 0; + overflow: hidden; +} +.clearfix { + zoom: 1px; + &:after { clear: both; } +} + +// Table width +#album_table th#albumname, #upcoming_table th#artistname, #wanted_table th#artistname { + min-width: 150px; + text-align: center; +} +#album_table th#type, #track_table th#duration { + min-width: 100px; + text-align: center; + width: 175px; +} +#album_table th#bitrate, #album_table th#albumformat { + min-width: 60px; + text-align: center; +} +#album_table td#select, #album_table td#albumart { + text-align: left; + vertical-align: middle; +} +#album_table td#albumname,#album_table td#reldate, #album_table td#type, #track_table td#duration, #upcoming_table td#select, #upcoming_table td#status, #wanted_table td#select, #wanted_table td#status { + text-align: center; + vertical-align: middle; +} +#album_table td#status, #album_table td#bitrate, #album_table td#albumformat, #album_table td#wantlossless { + font-size: 13px; + text-align: center; + vertical-align: middle; +} +div#albumheader .albuminfo li span, div#artistheader h3 span { + font-weight: 400; +} +#track_table th#bitrate, #track_table th#format, #upcoming_table th#type, #wanted_table th#type, #searchresults_table th#score { + min-width: 75px; + text-align: center; +} +#track_table td#bitrate, #track_table td#format { + font-size: 12px; + text-align: center; + vertical-align: middle; +} +#history_table td#status, #history_table td#action { + font-size: 14px; + text-align: center; + vertical-align: middle; +} +#upcoming_table th#albumart, #wanted_table th#albumart { + min-width: 50px; + text-align: center; +} +#upcoming_table th#albumname, #wanted_table th#albumname { + min-width: 200px; + text-align: center; +} +#upcoming_table th#reldate, #wanted_table th#reldate { + min-width: 100px; + text-align: center; +} +#upcoming_table td#albumart, #wanted_table td#albumart { + min-width: 50px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#albumname, #wanted_table td#albumname { + min-width: 200px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#artistname, #wanted_table td#artistname { + min-width: 150px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#reldate, #wanted_table td#reldate { + min-width: 100px; + text-align: center; + vertical-align: middle; +} +#upcoming_table td#type, #wanted_table td#type, #searchresults_table td#score { + min-width: 75px; + text-align: center; + vertical-align: middle; +} +table tr td#status a { + color: @link-color; +} + +// IE +.ie7 { + input[type="checkbox"] { vertical-align: baseline;} + img {-ms-interpolation-mode: bicubic;} + legend { margin-left: -7px;} +} diff --git a/data/interfaces/lossless/css/style_bu.css b/data/interfaces/lossless/css/style_bu.css new file mode 100644 index 00000000..e72d2e11 --- /dev/null +++ b/data/interfaces/lossless/css/style_bu.css @@ -0,0 +1 @@ +html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}html{color:#343434;font-size:12px;line-height:1.5}body{background:#fff;color:#343434;font-family:"Helvetica Neue",Helvetica,Arial,Geneva,sans-serif;margin:0;overflow-y:scroll;padding:0}a{color:#4183c4;text-decoration:none;outline:0}a:hover{color:#8b8b8b}a.blue{color:blue}a .ui-icon{display:inline-block;position:relative;top:2px}.links a{color:#666;clear:both;display:inline-block;float:left}.links a:hover{color:#4183c4}.links a .ui-icon{float:left;margin-right:5px;margin-top:3px}h1{font-size:24px}h2{font-size:20px}h3{font-size:16px}p.center{text-align:center}hr{border:0;border-top:1px solid #ccc;display:block;height:1px;margin:1em 0;padding:0}small{font-size:85%}img.albumArt{float:left;min-height:100%;min-width:100%;position:relative}.title{margin-bottom:20px;margin-top:10px}.title h1 img{float:left;margin-right:5px}table{border-collapse:collapse;border-spacing:0}table th{background-image:-moz-linear-gradient(#fafafa,#eaeaea)!important;background-image:linear-gradient(#fafafa,#eaeaea)!important;background-image:-webkit-linear-gradient(#fafafa,#eaeaea)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;text-shadow:1px 1px 0 #fff}table th input[type="checkbox"]{vertical-align:middle}table td{vertical-align:top}table td a{color:#666}select,input,textarea,button{font:99%}textarea{overflow:auto}input{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}input:invalid,textarea:invalid{-moz-box-shadow:0 0 5px #f00;-webkit-box-shadow:0 0 5px #f00;box-shadow:0 0 5px #f00;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.no-boxshadow input:invalid,.no-boxshadow textarea:invalid{background-color:#f0dddd}input[type="checkbox"]{vertical-align:bottom}label,input[type="button"],input[type="submit"],input[type="image"],button{cursor:pointer}button,input,select,textarea{margin:0}button{overflow:visible;width:auto}input,select,form .checkbox input,.configtable td#middle,#artist_table td#have,#album_table td#have{vertical-align:middle}input[type="radio"]{vertical-align:text-bottom}::-moz-selection,::selection{background:grey;color:#fff;text-shadow:none}input[type=submit],input[type=button]{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:#222 url("../images/button.png") repeat-x;border:0;border-bottom:1px solid rgba(0,0,0,0.25);color:#fff;cursor:pointer;display:inline-block;margin-right:3px;padding:4px 10px;position:relative;text-decoration:none;text-shadow:0 -1px 1px rgba(0,0,0,0.25)}form legend,form h2{font-size:16px;font-weight:bold;margin-bottom:10px}form table{width:100%}form fieldset{margin-bottom:20px}form fieldset small.heading{color:#666;display:block;font-style:italic;margin-bottom:10px;margin-top:-15px}form .row{font-family:Helvetica,Arial;margin-bottom:10px}form .row label{display:block;float:left;font-size:12px;line-height:normal;padding-top:7px;width:175px}form .row input{margin-right:5px}form .row input[type=text],form .row input[type=password]{border:1px solid #DDD;border-top:1px solid #cdcdcd;-moz-box-shadow:0 1px 0 #f1f1f1;-webkit-box-shadow:0 1px 0 #f1f1f1;box-shadow:0 1px 0 #f1f1f1;-moz-box-shadow:inset 0 1px 1px #e0e0e0;-webkit-box-shadow:inset 0 1px 1px #e0e0e0;box-shadow:inset 0 1px 1px #e0e0e0;color:#343434;font-size:14px;height:auto;line-height:normal;max-width:230px;margin-right:5px;padding:3px 5px}form .row small{color:#999;display:block;font-size:9px;line-height:12px;margin-left:175px;margin-top:3px}form .left label{float:none;line-height:normal;margin-bottom:10px;padding-top:1px;width:auto}form .left input{float:left;margin-bottom:10px}form .radio label{float:none;line-height:normal;margin-bottom:10px;padding-top:1px;width:auto}form .radio input{float:left;margin-bottom:10px}form .radio small{display:inline!important;line-height:normal!important;margin:0!important;width:auto}form .checkbox small{display:inline!important;line-height:normal!important;margin:0!important;width:auto}ul,ol{margin-left:2em}ol{list-style-type:decimal}nav ul,nav li{list-style:none;list-style-image:none;margin:0}ul#nav{float:right;margin:0;padding:0 0 0 10px;border-left:1px solid #fafafa;-moz-box-shadow:-1px 0 0 #e0e0e0;-webkit-box-shadow:-1px 0 0 #e0e0e0;box-shadow:-1px 0 0 #e0e0e0;height:58px}ul#nav li{display:block;float:left;font-size:18px;font-weight:bold;margin:8px 0 0 0;text-align:center}ul#nav li a{color:#343434;display:block;padding:7px 15px;text-shadow:1px 1px 0 #FFF;text-transform:capitalize;border:1px solid transparent;font-family:"Trebuchet MS",Helvetica,Arial,sans-serif}ul#nav li a:hover{background-image:-moz-linear-gradient(#f1f1f1,#e0e0e0)!important;background-image:linear-gradient(#f1f1f1,#e0e0e0)!important;background-image:-webkit-linear-gradient(#f1f1f1,#e0e0e0)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 1px 0 #fafafa;-webkit-box-shadow:0 1px 0 #fafafa;box-shadow:0 1px 0 #fafafa;-moz-box-shadow:0 1px 0 #fafafa inset;-webkit-box-shadow:0 1px 0 #fafafa inset;box-shadow:0 1px 0 #fafafa inset;-webkit-transition:color .2s ease-in;-moz-transition:color .2s ease-in;-o-transition:color .2s ease-in;transition:color .2s ease-in}ul#nav li a.config{height:28px;width:10px}ul#nav li a.config img{position:relative;top:-7px;left:-7px}ul#nav li a.log{font-size:13px;padding:10px 15px 11px}header{background-image:-moz-linear-gradient(#fafafa,#eaeaea)!important;background-image:linear-gradient(#fafafa,#eaeaea)!important;background-image:-webkit-linear-gradient(#fafafa,#eaeaea)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;border-bottom:1px solid #cacaca;-moz-box-shadow:0 0 10px rgba(0,0,0,0.1);-webkit-box-shadow:0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 10px rgba(0,0,0,0.1);height:58px;position:fixed;width:100%;z-index:999}header .wrapper{margin:0 auto;overflow:hidden;position:relative;width:960px}header #logo{float:left;margin-right:20px;position:relative;top:-3px;margin-left:10px}footer{display:table;margin:20px auto;width:960px}#main{line-height:24px;margin:0 auto;padding:75px 0 0;width:960px}.message{-moz-border-radius:10px;-webkit-border-radius:10px;border-radius:10px;background-color:#fff6a9;display:inline-block;padding:5px 10px;margin-top:10px}.message .ui-icon{float:left;margin-right:5px;position:relative;top:4px}#ajaxMsg{background-color:#fdfff2;border:1px solid #ccc;-moz-border-radius-bottomleft:10px;-moz-border-radius-bottomright:10px;-webkit-border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;display:none;font-size:14px;left:50%;margin-left:-125px;min-height:16px;padding:0 10px;position:fixed;text-align:center;top:-1px;width:250px;z-index:9999}#ajaxMsg .msg{font-family:"Trebuchet MS",Helvetica,Arial,sans-serif;line-height:normal;padding-left:20px}#ajaxMsg.success{background-color:#d3ffd7;padding:10px 10px 10px}#ajaxMsg.error{background-color:#ffd3d3;padding:10px 10px 10px}#ajaxMsg .ui-icon{display:inline-block;margin-left:-20px;top:2px;position:relative;margin-right:3px}#updatebar{-moz-border-radius-bottomleft:10px;-moz-border-radius-bottomright:10px;-webkit-border-bottom-right-radius:10px;-webkit-border-bottom-left-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;background-color:#fff6a9;border:1px solid #ccc;font-size:11px;left:35%;margin:0 auto;padding:1px 10px;position:absolute;text-align:center;text-transform:lowercase;top:0}#subhead .back{float:left;margin-top:-25px}#subhead #subhead_container{float:right;height:30px;list-style-type:none;width:100%;z-index:998}#subhead #subhead_container #subhead_menu{float:right;margin-top:5px;position:relative;z-index:99}#subhead #subhead_container #subhead_menu a{background-image:-moz-linear-gradient(#f4f4f4,#e7e7e7)!important;background-image:linear-gradient(#f4f4f4,#e7e7e7)!important;background-image:-webkit-linear-gradient(#f4f4f4,#e7e7e7)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;font-family:"Helvetica Neue",Helvetica,Arial,Geneva,sans-serif;font-size:12px;font-weight:normal}#subhead #subhead_container #subhead_menu a:hover{background-image:-moz-linear-gradient(#599bdc,#3072b3)!important;background-image:linear-gradient(#599bdc,#3072b3)!important;background-image:-webkit-linear-gradient(#599bdc,#3072b3)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;color:#FFF;border-color:#518cc6 #518cc6 #2a65a0}div#searchbar{border-left:1px solid #fafafa;-moz-box-shadow:-1px 0 0 #e0e0e0;-webkit-box-shadow:-1px 0 0 #e0e0e0;box-shadow:-1px 0 0 #e0e0e0;padding:15px 0 15px 20px;position:absolute;left:90px;top:2px}div#searchbar input[type=text]{border:1px solid #DDD;border-top:1px solid #cdcdcd;-moz-box-shadow:0 1px 0 #f1f1f1;-webkit-box-shadow:0 1px 0 #f1f1f1;box-shadow:0 1px 0 #f1f1f1;-moz-box-shadow:inset 0 1px 1px #e0e0e0;-webkit-box-shadow:inset 0 1px 1px #e0e0e0;box-shadow:inset 0 1px 1px #e0e0e0;color:#999;float:left;font-size:14px;height:auto;line-height:normal;margin-right:5px;padding:4px 5px 4px 25px;width:150px}div#searchbar .mini-icon{height:20px;width:20px;background:url("../images/icon_search.gif") left top no-repeat;position:absolute;display:block;margin-left:6px;margin-top:6px}.configtable legend{font-size:16px;font-weight:bold;margin-bottom:10px;text-shadow:1px 1px 0 #fff}.configtable tr td:last-child{border-left:1px dotted #ddd;padding-left:20px}.configtable td{padding-right:15px;width:50%}.table_wrapper{_height:302px;background-color:#FFF;clear:both;margin:30px auto 0;min-height:100px;position:relative;width:100%;zoom:1px}.manage_wrapper{_height:302px;clear:both;margin:20px auto 0;min-height:150px;padding:25px;width:88%;zoom:1px}#paddingheader{position:relative;top:-25px}#paddingheader h1{line-height:33px;width:450px}#paddingheader h1 img{float:left;margin-right:5px}div#nopaddingheader{font-size:24px;font-weight:bold;text-align:center}div#artistheader{margin-top:50px;min-height:200px}div#artistheader #artistImg{background:#fff url("../images/loader_black.gif") center no-repeat;border:5px solid #FFF;-moz-box-shadow:1px 1px 2px 0 #555;-webkit-box-shadow:1px 1px 2px 0 #555;box-shadow:1px 1px 2px 0 #555;float:left;height:200px;margin-bottom:30px;margin-right:25px;overflow:hidden;text-indent:-3000px;width:200px}div#artistheader #artistBio{font-size:16px;line-height:24px;margin-top:10px}div#artistheader h1 a{font-size:32px;margin-bottom:5px;font-family:"Trebuchet MS",Helvetica,Arial,sans-serif}div#artistheader h2 a{font-style:italic;font-weight:bold;font-family:"Trebuchet MS",Helvetica,Arial,sans-serif}#artist_table{background-color:#FFF;padding:20px;width:100%}#artist_table th#select{text-align:left}#artist_table th#select input{vertical-align:middle}#artist_table th#name{min-width:200px;text-align:left}#artist_table th#album{min-width:300px;text-align:left}#artist_table th#status,#artist_table th#albumart{min-width:50px;text-align:left}#artist_table th#have{text-align:center}#artist_table td#name{min-width:200px;text-align:left;vertical-align:middle}#artist_table td#status{min-width:50px;text-align:left;vertical-align:middle}#artist_table td#album{min-width:300px;text-align:left;vertical-align:middle}#markalbum{position:relative;top:25px;display:inline-block}#albumheader{margin-top:50px;min-height:200px}#albumheader #albumImg{background:#fff url("../images/loader_black.gif") center no-repeat;border:5px solid #FFF;-moz-box-shadow:1px 1px 2px 0 #555;-webkit-box-shadow:1px 1px 2px 0 #555;box-shadow:1px 1px 2px 0 #555;float:left;height:200px;margin-bottom:30px;margin-right:25px;overflow:hidden;text-indent:-3000px;width:200px}#albumheader p{font-size:16px;line-height:24px;margin-bottom:10px}#albumheader h1 a{display:inline-block;font-size:32px;line-height:35px;margin-bottom:3px;font-family:"Trebuchet MS",Helvetica,Arial,sans-serif}#albumheader h2 a{display:inline-block;font-style:italic;font-weight:400;margin-bottom:5px;font-family:"Trebuchet MS",Helvetica,Arial,sans-serif}#albumheader .albuminfo{margin-left:210px}#albumheader .albuminfo li{border-right:1px dotted #ccc;float:left;font-size:16px;font-weight:bold;list-style:none;margin-right:10px;padding-right:10px}#albumheader .albuminfo li:last-child{border:0}#album_table{background-color:#FFF}#album_table th#select{min-width:10px;text-align:left;vertical-align:middle}#album_table th#select input{vertical-align:middle}#album_table th#reldate{min-width:70px;text-align:center;width:175px}#album_table th#status,#album_table th#albumart{min-width:50px;text-align:left}#album_table th#status{min-width:80px;text-align:center;width:175px}#album_table th#wantlossless{min-width:80px;text-align:center;width:80px}#album_table td#albumart img{background:#FFF;border:1px solid #ccc;padding:3px}#album_table td#status a#wantlossless{white-space:nowrap}#manageheader{margin-top:45px;margin-bottom:0}#track_wrapper{font-size:16px;padding-top:20px;width:100%}#track_table th#number{min-width:10px;text-align:right}#track_table th#name{min-width:350px;text-align:center}#track_table th#location{text-align:center;width:250px}#track_table td{border-bottom:1px solid #fff}#track_table td#number{text-align:right;vertical-align:middle}#track_table td#name{font-size:15px;text-align:left;vertical-align:middle}#track_table td#location{font-size:11px;line-height:normal;text-align:center;vertical-align:middle}#history_table{background-color:#FFF;font-size:13px;width:100%}#history_table td#dateadded{font-size:14px;min-width:150px;text-align:center;vertical-align:middle}#history_table td#filename{font-size:15px;min-width:100px;text-align:center;vertical-align:middle}#history_table td#size{font-size:14px;min-width:75px;text-align:center;vertical-align:middle}#log_table{background-color:#FFF}#log_table th#timestamp{min-width:150px;text-align:left}#log_table th#level{min-width:60px;text-align:left}#log_table th#message{min-width:500px;text-align:left}#log_table td{font-size:12px;padding:2px 10px}#searchresults_table th#albumname{min-width:225px;text-align:left}#searchresults_table th#artistname{min-width:325px;text-align:center}#searchresults_table td#albumname{min-width:200px;text-align:left;vertical-align:middle}#searchresults_table td#artistname{min-width:300px;text-align:left;vertical-align:middle}#searchresults_table td#score .bar{width:100px;margin:0 auto;border:1px solid #ccc;padding:1px;background-color:#FFF}#searchresults_table td#score .bar .score{height:14px;color:#343434;color:#FFF;font-size:11px;vertical-align:middle;line-height:normal;background-image:-moz-linear-gradient(#a3e532,#90cc2a)!important;background-image:linear-gradient(#a3e532,#90cc2a)!important;background-image:-webkit-linear-gradient(#a3e532,#90cc2a)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important}.progress-container{background:#FFF;border:1px solid #ccc;float:left;height:14px;margin:2px 5px 2px 0;padding:1px;width:100px}.progress-container>div{background-image:-moz-linear-gradient(#a3e532,#90cc2a)!important;background-image:linear-gradient(#a3e532,#90cc2a)!important;background-image:-webkit-linear-gradient(#a3e532,#90cc2a)!important;filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;-ms-filter:progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa,endColorstr=#eaeaea)!important;height:14px}.havetracks{font-size:11px;line-height:normal;margin-left:36px;padding-bottom:3px;vertical-align:middle}#version{color:#999;font-size:10px;position:relative;z-index:999;margin:20px auto;text-align:center;width:390px}#donate{margin:20px auto;text-align:center}#toTop{background:url("../images/toTop.gif") no-repeat scroll 10px center #f7f7f7;border-radius:5px 0 0 0;bottom:0;display:none;padding:10px 10px 10px 40px;position:fixed;right:0}#shutdown{text-align:center;vertical-align:middle}#shutdown h1 img{position:relative;top:7px}.cloudtag{font-size:16px;padding-top:30px}.cloudtag #cloud{line-height:1.5em;margin:0;padding:2px;text-align:center}.cloudtag #cloud a{padding:0}.cloudtag #cloud a.tag1{font-size:.7em;font-weight:100}.cloudtag #cloud a.tag2{font-size:.8em;font-weight:200}.cloudtag #cloud a.tag3{font-size:.9em;font-weight:300}.cloudtag #cloud a.tag4{font-size:1em;font-weight:400}.cloudtag #cloud a.tag5{font-size:1.2em;font-weight:500}.cloudtag #cloud a.tag6{font-size:1.4em;font-weight:600}.cloudtag #cloud a.tag7{font-size:1.6em;font-weight:bold}.cloudtag #cloud a.tag8{font-size:1.8em;font-weight:800}.cloudtag #cloud a.tag9{font-size:2.2em;font-weight:900}.cloudtag #cloud a.tag10{font-size:2.5em;font-weight:900}.cloudtag #cloud li{display:inline}.floatright{float:right}.floatleft{float:left}.ir{background-repeat:no-repeat;direction:ltr;display:block;overflow:hidden;text-align:left;text-indent:-999em}.hidden{display:none;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"\0020";display:block;height:0;overflow:hidden}.clearfix{zoom:1px}.clearfix:after{clear:both}#album_table th#albumname,#upcoming_table th#artistname,#wanted_table th#artistname{min-width:150px;text-align:center}#album_table th#type,#track_table th#duration{min-width:100px;text-align:center;width:175px}#album_table th#bitrate,#album_table th#albumformat{min-width:60px;text-align:center}#album_table td#select,#album_table td#albumart{text-align:left;vertical-align:middle}#album_table td#albumname,#album_table td#reldate,#album_table td#type,#track_table td#duration,#upcoming_table td#select,#upcoming_table td#status,#wanted_table td#select,#wanted_table td#status{text-align:center;vertical-align:middle}#album_table td#status,#album_table td#bitrate,#album_table td#albumformat,#album_table td#wantlossless{font-size:13px;text-align:center;vertical-align:middle}div#albumheader .albuminfo li span,div#artistheader h3 span{font-weight:400}#track_table th#bitrate,#track_table th#format,#upcoming_table th#type,#wanted_table th#type,#searchresults_table th#score{min-width:75px;text-align:center}#track_table td#bitrate,#track_table td#format{font-size:12px;text-align:center;vertical-align:middle}#history_table td#status,#history_table td#action{font-size:14px;text-align:center;vertical-align:middle}#upcoming_table th#albumart,#wanted_table th#albumart{min-width:50px;text-align:center}#upcoming_table th#albumname,#wanted_table th#albumname{min-width:200px;text-align:center}#upcoming_table th#reldate,#wanted_table th#reldate{min-width:100px;text-align:center}#upcoming_table td#albumart,#wanted_table td#albumart{min-width:50px;text-align:center;vertical-align:middle}#upcoming_table td#albumname,#wanted_table td#albumname{min-width:200px;text-align:center;vertical-align:middle}#upcoming_table td#artistname,#wanted_table td#artistname{min-width:150px;text-align:center;vertical-align:middle}#upcoming_table td#reldate,#wanted_table td#reldate{min-width:100px;text-align:center;vertical-align:middle}#upcoming_table td#type,#wanted_table td#type,#searchresults_table td#score{min-width:75px;text-align:center;vertical-align:middle}table tr td#status a{color:#4183c4}.ie7 input[type="checkbox"]{vertical-align:baseline}.ie7 img{-ms-interpolation-mode:bicubic}.ie7 legend{margin-left:-7px} \ No newline at end of file diff --git a/data/interfaces/lossless/extras.html b/data/interfaces/lossless/extras.html new file mode 100644 index 00000000..fff485d5 --- /dev/null +++ b/data/interfaces/lossless/extras.html @@ -0,0 +1,15 @@ +<%inherit file="base.html" /> +<%def name="body()"> +
+

extraArtists You Might Like

+
+
+
+ +
+
+ diff --git a/data/interfaces/lossless/history.html b/data/interfaces/lossless/history.html new file mode 100644 index 00000000..7a37f932 --- /dev/null +++ b/data/interfaces/lossless/history.html @@ -0,0 +1,89 @@ +<%inherit file="base.html"/> +<%! + from headphones import helpers +%> + +<%def name="headerIncludes()"> +
+ +
+ + +<%def name="body()"> +
+

HistoryHistory

+
+ + + + + + + + + + + + %for item in history: + <% + if item['Status'] == 'Processed': + grade = 'A' + elif item['Status'] == 'Snatched': + grade = 'C' + elif item['Status'] == 'Unprocessed': + grade = 'X' + else: + grade = 'U' + + fileid = 'unknown' + if item['URL'].find('nzb') != -1: + fileid = 'nzb' + if item['URL'].find('torrent') != -1: + fileid = 'torrent' + %> + + + + + + + + %endfor + +
Date AddedFile NameSizeStatus
${item['DateAdded']}${item['Title']} [${fileid}][album page]${helpers.bytes_to_mb(item['Size'])}${item['Status']}[retry][new]
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/images/NoAlbumArt.png b/data/interfaces/lossless/images/NoAlbumArt.png new file mode 100644 index 0000000000000000000000000000000000000000..146e1ccbe52cceedd4a1a610db69346cac90118c GIT binary patch literal 29433 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 z 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 Qo&W#<07*qoM6N<$g6(rq4*&oF literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/button.png b/data/interfaces/lossless/images/button.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fd783044772a546b3e1de91276077828a82a94 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI}!3HGf{@&OHq|`iJ978y+C;#~We?PM@GxOnk ui-QfPT$TSl6jh%5wO`BaVY$jKcE)0Rqr~Z(e%u1;VDNPHb6Mw<&;$U)(H>|3 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_add.png b/data/interfaces/lossless/images/icon_add.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5ccc471e47fb4a2f0ae10774d10d509666af4e GIT binary patch literal 2845 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_logs.png b/data/interfaces/lossless/images/icon_logs.png new file mode 100644 index 0000000000000000000000000000000000000000..4943de1aa2ed0c8a10796a021506c3515f6d24ed GIT binary patch literal 3761 zcmV;i4o>ljP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00093P)t-sWo2da^Yedyf0>z?OiWC(v$N*r=086_jEsz?rl!BYzgbyXa&mIn+1WBO zGR(}(|Ns9H5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM92^`S9UUGX9v>ec zARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7EiEoCE-x=HFfcGN zF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w-7 zLPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuyP*6}&QBhJ-Qd3h? zR8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?WjVPRroVq;@tWMpJz zWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2Ta&vQYbaZreb#-=j zc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyDgoK2Jg@uNOhKGlT zh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z}m6ev3mY0{8n3$NE znVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5(rl+T;sHmu^si~@} zs;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#pxVX5vxw*Q!y1To( zyu7@dCU$jHda$;ryf%FD~k%*@Qq z&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4?Ck9A?d|UF?(gsK z@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg={r&#_{{R2~aqFC zG+bcgH5gU~u@}DB#t)rX2}HN<;llz%N1s{<{Es(N@67^a03_V#bm9YtifzFf-*@&n)Mv*$R{q2d7tC?H=Zt;Dww*xbBQ(?bS00000NkvXXu0mjf4azX9 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_manage.png b/data/interfaces/lossless/images/icon_manage.png new file mode 100644 index 0000000000000000000000000000000000000000..25c1a7e8d2bf392bdb41a2dbb7f8c7c1b914b242 GIT binary patch literal 3108 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 N002ovPDHLkV1n1E#Gn8G literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_search.gif b/data/interfaces/lossless/images/icon_search.gif new file mode 100644 index 0000000000000000000000000000000000000000..a64534cc8a8ab068d8d5ee14d9cfadb4874e44b4 GIT binary patch literal 345 zcmZ?wbhEHbouV245Zru3j(W5V4zRa03 zXWO=IOP4O)y?giX-@h+jymTmS$7 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_search.png b/data/interfaces/lossless/images/icon_search.png new file mode 100644 index 0000000000000000000000000000000000000000..9845cc95dff02df022adf4648f3824b4eec3f8fb GIT binary patch literal 3342 zcmV+p4e|1cP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0006xNkl>M`u@cV@reH?y^N zyG;QESOPl0S)d6FfgPX+yi--BB5FD0Enp3}5^%;xU{zIjW6A3ou`aL`NQ|x95|Qpv zD_;iQWUTvP6#_Jja4uur4OM+xg}eoPHCns!c<=8K-jd%zvwcgg-Ca1$7~9uSem81fY_ejE4|a)7EH0IObjCARVu zJC3NWoN{8Ds@jWfulK!*nhkaoHTPK z1?TPpmsNE?_AznKhC_p+p)`T4$HY_Ms*TeSe937{E#Om;1oeV(c^PmYTG^FX}c% zlGE{DS1Q;~I7-6ze&TN@+F-xsI6sd%SwK#*O5K|pDRZqEy< zJg0Nd8F@!OxqElm`~U#piM22@u@8B<moyKE%ct`B(jysxK+1m?G)UyIFs1t0}L zemGR&?jGaM1YQblj?v&@0iXS#fi-VbR9zLEnHLP?xQ|=%Ihrc7^yPWR!tW$yH!zrw z#I2}_!JnT^(qk)VgJr`NGdPtT^dmQIZc%=6nTAyJDXk+^3}wUOilJuwq>s=T_!9V) zr1)DT6VQ2~rgd@!Jlrte3}}m~j}juCS`J4(d-5+e-3@EzzTJNCE2z)w(kJ90z*QE) zBtnV@4mM>jTrZZ*$01SnGov0&=A-JrX5Ge%Pce1Vj}=5YQqBD^W@n4KmFxxpFK`uH zP;(xKV+6VJ2|g+?_Lct7`uElL<&jzGS8Gfva2+=8A@#V+xsAj9|Dkg)vL5yhX@~B= zN2KZSAUD%QH`x>H+@Ou(D1~Pyv#0nc&$!1kI?IO01yw3jD0@80qvc?T*Nr8?-%rC8 z@5$|WY?Hqp`ixmEkzeJTz_`_wsSRi1%Zivd`#+T{Aib6-rf$}M8sz6v zb6ERbr-SniO2wbOv!M4)nb}6UVzoVZEh5kQWh_5x4rYy3c!871NeaM(_p=4(kbS6U#x<*k8Wg^KHs2ttCz<+pBxQ$Z zQMv;kVm5_fF_vH`Mzrq$Y&6u?j6~ftIV0Yg)Nw7JysIN_ z-_n*K_v1c&D}-1{NbBwS2h#m1y0a5RiEcYil+58$8IDh49bPnzE7R8In6P%V{2IZU z7#clr=V4yyrRe@oXNqbqo^^LvlLE?%8XaI&N(Np90-psU}7kqmbWk zZ;YBwJNnNs$~d!mx9oMGyT( znaBoj0d}gpQ^aRr?6nW)$4god*`@Uh2e+YpS@0(Mw{|z|6ko3NbTvDiCu3YO+)egL z>uW(^ahKFj>iJ-JF!^KhKQyPTznJa;xyHYwxJgr16&Wid_9)-%*mEwo{B_|M9t@S1 zf@T@q?b2Qgl!~_(Roe;fdK)y|XG0;ls;ZbT)w-aOVttk#daQcY7$cpY496H*`m@+L zeP#$&yRbBjFWv}B)|5-1v=(66M_;V1SWv6MHnO}}1=vby&9l+gaP?|pXwp0AFDe#L z&MRJ^*qX6wgxhA_`*o=LGZ>G_NTX%AKHPz4bO^R72ZYK}ale3lffDgM8H!Wrw{B7A z{?c_|dh2J*y8b04c37OmqUw;#;G<* z@nz@dV`;7&^$)e!B}cd5tl0{g(Q>5_7H^@bEJi7;fQ4B$NGZerH#Ae1#8WDTH`iB&) zC6Et3BYY#mcJxh&)b2C^{aLq~psFN)Q1SucCaBaBUr%5PYX{~-q{KGEh)*;n;?75k z=hq%i^I}rd;z-#YyI`8-OfMpWz5kgJE3I!3ean6=UZi!BxG7i(YBk? z02HM7wS0)Wni{dWbQMRtd-A)_Az!t>F;IwWf~!*)-Az4}yryNkz&9)w>ElA80Oc`6 zHo#9H!Y3*Qx9n@Jn)!w6G^hb;e_n8zpIyXCN`JFkPc)^Q?2MsLNFhMgrcZI-<#1ne zjH;KFf?4eAT9mQZ}ZfHLGA#d%s;SZK4p0FwZT2S^{ zQ2BG1xJsbK6?yrHTjJi|5C0u=!|r!?*4FL%y%3q#(d+e>b_2I9!*iI!30}42Ia0bq zUf`Z?LGSEvtz8s``Tg5o_CP(FbR0X$FlE0yCnB7suDPmI2=yOg^*2#cY9o`X z;NY-3VBHZjnVcGS){GZ98{e+lq~O$u6pEcgd0CrnIsWffN1MbCZDH<7c^hv+Z0Ucf0{w zSzi^qKuUHD9Dgp0EAGg@@$zr32dQx>N=ws`MESEsmzgT2&L;?MSTo&ky&!-JR3g~1 zPGTt515X)wr+Bx(G9lWd;@Y3^Vl}50Wb&6-Tiy;HPS0drF`rC}qYq22K4)G#AoD0X zYw$E+Bz@Zr^50MAwu@$?%f9$r4WHH?*2|67&FXFhXBrVFGmg)6?h3^-1?t;UzH0*I zNVf9wQLNLnG2@q>6CGm>&y|lC`iCFfYd}9i%+xkl^5oBJ?<;aneCfcHqJh7Yl5uLS z9Fx-(kMdcNyZejXh22N{mCw_rX1O!cOE&3>e(ZH81PR95wQC37En4O{w;{3q9n1t&;p)D%&Z%Nw$gSPa!nz8Slh7=ko2am)XARwOWw zpsz0~K!s{(dM$NB=(A=kkp>T(*yU6<_dwIx>cH4+LWl282hXa6-EUq>R3t?G2623< z*RwTN%-fgBmD{fu*ejNn)1@KG?Sg*8z3hYtkQJQjB6 zQ|x>wA=o$=O)+nLmgTXW3_6diA;b4EY{*i*R%6dO2EMg z@6g?M3rpbnfB@hOdUeb96=~I?OIA3@BWAGmTwiQ{x5Cqq<8c10L!P zd@Qk^BseTX%$Q7^s}5n%HB|)gKx}H$d8Sb$bBnq9-AglT2dGR2(+I;_fL|R4p$odJ zllfb0NqI)7=^z~qAm1V{(PkpxXsQ#4*NH9yYZ`Vf@)?#ueGgtCmGGY|9U#v|hRdg- zQ%0#cGIfXCd{Y)JB~qykO;KPvHu|5Ck&(Hn%DF~cct@}j+87xhs2ew;fLm5#2+mb| z8{9e*YI(u|gt|{x1G+U=DA3y)9s2w7@cvQ($ZJIA)x$e~5_3LKFV~ASci8W}jF&VeJoPDUy(BB>ExJpck;%;!`0AAo zAcHgcnT8%OX&UW_n|%{2B|<6Wp2MMGvd5`T2KKv;ltt_~H+w00x6+SlAD`{K4!9zx z*1?EpQ%Lwiik){3n{-+YNrT;fH_niD_Ng9|58@m8RsKFVF!6pk@qxa{BH-&8tsim0 zdAQ(GyC^9ane7_KW*#^vMIoeQdpJqmPp%%px3GIftbwESu#+vPyI*YTuJ6+4`z{s? zpkv~0x4c_PFH`-tqafw5)>4AuQ78SkZ!$8}INLK;Egr;2tS18hEO5=t;QDmZ-qu?I zG+=DN`nR72Xto{{bJp||`k}-2G;5#xg8E~xgz22)^_Z;=K|4@(E&5J)SY2of=olcw z5)@L)_Ntcm!*5nEy0M9v0`S33;pO4TN;>4(Z+19p_0>u#e-vE zXCU(6gAvu~I7Cw(xd%0e59MNLw^U37ZDbsBrj%eDCexw8a3G`nTcXVNL6{B7Hj@i& zbVB{;ApEtHk76q08DJ48dSxd$C(;$K6=FpU<~l9pVoT9arW^Vu{%Bcn4`eIpkOVC| z$)AKYG_`ypM{0@BUb3^9lqi_c?ONH|4UJMJWDowMVjacycX7}9g={O7swOB+{;+?; zjBo!9?+nd)ie#x5IbFW-zBOo0c4q@9wGVt5;pNt`=-~Zgcw#*`m($6ibxtZ`H=e=} zF#GZ~5$%AUn};8U#tRem0J(JTR}d4vR(dgK2ML~lZsPhayJ2h1%sD4FVst| zKF)+@`iNzLRjg4=K8@**0=5cE>%?FDc({I^+g9USk<8$&^qD~@%W0i4b|yMG*p4`N zh}I!ltTRI8Ex$+@V{02Br%xq#O?UlhO{r8WsaZnZCZq0MK9%AXU%MDLT;3=0A9(BV z9VxxxJd7jo$hw3q;3o?yBLmA=azBUrd9>-<_ANs0n3?-Ic*6&ytb@H~?0E(*d>T5n z-HiH2jsDf6uWhID%#n>SzOqrFCPDfUcu5QPd?<(=w6pv1BE#nsxS{n!UnC9qAha1< z;3cpZ9A-e$+Y)%b;w@!!YRA9p%Kf9IHGGg^{+p`mh;q8i7}&e@V3EQaMsItEMS&=X plT@$;k0WcB_jb;cn%_Idz4HO$QU*abf4}+wi?e96N>fbq{{gZk5h?%x literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_sprite_white.png b/data/interfaces/lossless/images/icon_sprite_white.png new file mode 100644 index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/icon_upcoming.png b/data/interfaces/lossless/images/icon_upcoming.png new file mode 100644 index 0000000000000000000000000000000000000000..2a7acbe622195576aade6d6f4007f0958c42d91d GIT binary patch literal 3035 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/loader_black.gif b/data/interfaces/lossless/images/loader_black.gif new file mode 100644 index 0000000000000000000000000000000000000000..e2a116c7280b4d9786ddb960fff4439a542866ec GIT binary patch literal 9427 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 OhM#~I&wK(i`}3bHw&zm- literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/loader_blue.gif b/data/interfaces/lossless/images/loader_blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..956c1cd08b2cc504de5d122b09086a8c9a2c8226 GIT binary patch literal 9427 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/loader_refresh_black.gif b/data/interfaces/lossless/images/loader_refresh_black.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ea146c0253f2e500ca022050f4353be456e6d4d GIT binary patch literal 847 zcmZ?wbhEHb6krfw_`<;O|NsBc(9mDMepOXfty!}sA|fI$FYoc=$48DFNls2)ym;}9 z88hCzd9!QRt{XRQw6wJJ_4P530u=vq`?-b$J39ur8tEA@GXnK0{*!VpN=+BBCMNfRtuR+y^ER&<(X zE7%B&e5#Z^`o7-@nEg_P~LI*N!rA^h{|;%@7gdIe0+9 zL6FPmK*NXRK=)=Qr!7yn1(?oIuvujqni9B8`-RfJ#pzQFR*0=zw6NbXTj0F1BLlZh zfVly?4JS*30beAWg%&SoyRsrS%M*Y;RQ^0c<0TpwHaFY zz6r{%O%_#7fe{VKyK@(naSJIeRCsx4aYAE48*ixFGRdMll6*@GUTc0%``>`o8j#V4 zg9*c-O~)LSJSTE&n6)s0!!ECt)zd(wL!wvC+k6wRhYtI}PTi7bt)^yIDG`AshjlL| qtmsHM!1PnVu#-b#!*qv!K4+}1yrR2vIXQw2G#%tg}#)`c}opMaul^%5>~C9 zA#!Y@lxf2UwwoOd(Y-7-Oqs0#69rlsJ6jj^txP# znr1852#b8Gls)>s-wB%~843zr?w5Kpw4{zcSh2!E#kKapfrHnMGI8`wX-Lfw5#l*` zK*2$f%jZDDhvY!_W+taCPqzh_&QP#fWg40ixJ~Oe;?`>ncX7DG7s;^5z=Kn)RmY&u=?Yh0wt&~O zw>+Wtrsd2mH7eP>F`E25-B>LRf&^=W!W1S$k)sYPnw{m?)`%a=?rxgHsOa=0!JeUU zJJY@i%C1coRZf8s4avK67nN}fDJ@iZd1!G$V?rBmsM|8hqC1j&OAB6Weop(}fYln1 z-+-~V!hy%tP~gx>iQHI;<2xlhdM>ox&|nwnVliP-c&?!%vCK^|(Sso(cm_vfuIZAk zj7csYTi6&@?MzJ4;p$UuC@>aFKBBxq{Ri(GC3X`t^8hui2>k|)o?aEKmc~OZ^#FQ| zW0`{q!=X*b9F;sLa%`BjFoDA^ua(u)K&3;XSI*mf6R(F3`@v4#l4h-@W>+Z@fhC7^ sFD9($NI1asQ^2s3Lt?{phkib1^9&AsLzXnw7|re;HAMz%Q1S!=06B^hng9R* literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/no-cover-art.png b/data/interfaces/lossless/images/no-cover-art.png new file mode 100644 index 0000000000000000000000000000000000000000..40334da48d2d939ce04424855127d3dd6953fe88 GIT binary patch literal 25265 zcmV(|LD9a6P)vUCDopb6e&;9I6RdscB4$Frhewh0_ zEV$05O`GPbs;Y7yeDFc;)mLB5b?)3b_tHx*<@Vcezg&wJEpq$ryKip6f(5z#_uoJN zS(`R(a$B}+$u()xBzMq32jzC}-i`g6;u!XR_lqySm|MAWW$x{_-_DI4J2v;)Yp>(Zr5?uHv~$aU(}DRBhYmSA zr~LZ*>#yg!cI}#5wrp9>&L@BFc#q?b7%?KZ&p!L)NGCW3&UMnHN%>>G_uhN?&v1`$ zudqMw@w|ESaxGi7%pG;qQMr#k`Y3;WSaC0(efHVh!3Q6lJO23N^T)umz%}Fk^S5-t zetyC4Vy(@kD%ZG_w17D9unh#eK}Y}>9;y*D*A})8vxhy{*7h@J&fMD`etRRtjs}ne zY;F1Gn{T!TVZZavJGq;0zPU&^APgKo|6q(*jL0r--n{w6IKI8UW3O);IJVikqitK@ z?d>-J7Ta#Q5$kH(XQi#%a2_CPykY^dHZF|-sr3bfw)ft9=UgESJ9qBvYpT?sb?escyJpRr<4l6|d*qQv@~RZnD@X(Yf$9X+8mbH+Yy||q z$I9=yJy!(_&k5V&`1s#cHI)wg6xQ6-sZ$R&Pz;8O*uQ`O+z)^F!+8S+3|QK`ckkEj zvsnhD9d{mm^wC?7IO2$x4?q0yM-2GWO?7+8uJ^r=?%xQI&jH;RUaLv8 zF{uHSWy6LILrg*(w`tR+F=nU_TCrk9ZuRQbd2S7LsbHWNZ3P@txiE>JMmPT_5i5vP zbyLZ~m0-g5YNRTVcpe0b0*mKLaGA;l+o`1);4SU*t_GHoJ$m%09yDmsvv0li)?`!1 z76LFlpHJVWCe?ewFm41$9Y_Wc3p`cuwg3p^z_2Oo`_{IeF=fh>3zsZea+Iz6nF^IN zkmOY+Ea1vewQwxFC-)}dswALfAfYLT=lSq^?n^MJYUQ`r_x!z(6F~vPYxn1abA*$@ zm_d^{bLI>;DKgxo%KP(d89H?6qqg0j4J_MebJ_OQrefx=m!N9|$Y*1zrW&+u+qN7G zRXlW)2rZ5HM?e4k^C#ba`|am1UAnXdT$^ywf)L1kN$^lv01OZYq=ph*67iB?bvw`T zRg&;He5H3w_u>CBiR8aisigbkK0u{3>5<#9V+R;Qb7K-C%}yEFr%#_B*>z58-@g6h zha7Uq3>f}67pRpna5e&@fi55d5H-9#_S)V!=M~RB`|PNvpMLsS`061kKp>P1F-zz{Bc)TV6ACi%F3%-N1;hATiX+C@Q z?6H6P)1StU9zA-+8E2gFgh`m&>>jS6J=F-125N6WS1u4l6C?cU0!RjK-@g5#sZ*z( zYY+c``Sa)Jb#f(g#toFv2nx@QLqzFSp{(j(X#0>F7TaFWf#C7r^q}E&Kq3$rU?h~9 zd^HIR)wJ&;k37 zSHJu2yM4``_y^OoFP$-CMsq~Gp+?OaoX|5=s-##k~O@Q+<@kJrMLW&-JO^ zh14i|vJ^z#QNZsg3H>=jYVbS!jvj|q7rUf8<%8g1wh()=*CyLA)(VH z&2!eMz5>qMM?4N}73>44f_rMJY73LhCkz}o@Px5r$Nt$=us_=N3qMO9t_A@R)%`^! zX;OHo)djA9fT>ScPM<#g;s+mm@K7Wh!tnOqBXxDEB=CerVj@>1F?qv0q$=t0Rl>v~ z}-aFk#V>l`ed2E7KRXSxZ{LGB`+=>+|E;VT~=G=47ooBEA z+_GiMS3V2Uq}~GrHyLh7WY|(~1|aO=RKuu5Qr?y=TfX$vQ&0Wmfd?Mwfro``Q4*c1 z3RERXaNLH3#VlGHtOSMk8ilxYl98?3cq5y3kaFu#EW@i<-gx)tq8>N}oM$vXh^c{2 z4@iyw@IK))BvZmQe*gXVA80D=X|_CZ)m2yh(j?7Yw&}ZYmY8&|4rSyv0;EC`1P=|- zY&;AA2CuDJwK`zo!iC?v{r20hHgTUr3J63$y)w*+;=|`dRW~j^Q@aD8060|DQeq>q zc+ZxPg~W(fjb~NkLa_^#R-XGSK)g!hC9V>CC=bm4hF7h44{=}BPN7-~rwBcONWr=L z?z=mfB>&~OapTS$KYsj=*RNl{2=?FMhacYHY?KCNgGfrqUiKg^um|zO2@@uCT)K2= z9vBSZaa-CH`p^|5{GKWlfkCOG(j(@n2@!Y9JLQe+ki<}xEaa-?ag-Z-M?sS6$KPW8 zk4jR>94@L=s$S_mQ3=V^8x5es_Pg=M8;>^|Ws<2~f9T!2_l+% zB|o|Cw%fi0ZwkCBFdp@x(h%nZCLr*Cp%5wm9z=o_l12$z)6zp~krG}KaV8OK=oldv zu$KriyFJPsT%^cf|`arzBARg#q-ZU|E_&jpNLVzf_O^i$^4NRsx#vIbyYIe(!J#190S=1)f+wq(V?~Zeu#nT?0cs|$>e#Bn zcp~v?jwjBLeG!YgtNNpa#&h-te#ns!lP)3fC?TtZf>MEY5cdfg@ajm=>rwBUs*Zea zP>Fy3^PeAW_TioX_>cei>tl~S_6Gaz{YHS)03Aq<6IGzY;>C-<{pUab`Km`BeY7cT z5j8&fAXJ}M+XCRhcPcUX00|5d2vsm83L5xosH-Q+8{PuO`E=N(qu%}u3f)l$9}%vtM&D) zCcR0)gH#Q!gZhP?J9iFv;)y4&yW@^K1{z3;gvtj&TY_qn5-*FLuq}dzv@x(h9vW+> z)h((H4lnNx_Z!|padV1So};GP$)?<o7QKLq^@{MnNXmI1Y@ISW$u&@9u)U%cNm~*5LnQEO%5udym;>t139m@>%YF7v_ zp;$-ScQMzqPqz=*H!3;QcJe7RYLgKJWFBhx>oM>@1C3W*b=BIhfBoy1nOeQn_HSzU ze76Gna}5x>tn6kT^4MdK{r={gZytd(YXE{b8Ng`UwrxJ54uT~(C^fJh?F>o*F=>JJ>*#WyI(@NQwoF-(Z}4wA&KRk4_@^ONtBoo zuO2%6oZd&=dpzqgW5&Gt{qKMO%N;s&n2XPG-}&5POy{!<5U_^bAUqJZ8Pk35zWZ(y z9Jlmhq?|_d0S6qAZ*<1O9)f`94x)$4ms|_m02sKz*ar`WpVM3AQ@!!OdaT%{hii=3 zd@ff~bzhQeIAotB9mm@sF^`vzgM@;Xp7#qZQOk9puUk+W~#zVBRn z?X~|pWXO;^Ko^wwbp?=SKmF-Xqav&}B?n$0IdB8FZQFL@?YG~4n=Re8Z{MD;8^_H8 z7eV(u=&9)1M_WPT8YEyoI1o3$0bsyZVeCWg3RM@lze*id(R>+fh|7k!YnqA`Q)Oay zMo3jkvT?k$3whkU*DR#kWs#WPX!oj{N*bS;z?csmFR#4v%HFG1tvab&w{BI39d_7k z+h=!LX2oX;AoAddZO1=EEbD~}Cv+caW|8N@Yt&`BvUN!5?4=ET4o$^nZ- z+I_r5?|qD!cvTMj;aP9mw5e+G;>C!SwCvNT&y$7kn$#&kYSL}5gp+IvTcgk^WcQXW zTfS)a#_t|@;DOfofI%flklwv}=lkF?C4`BEs@Bkj2vH2lgZ))%P;Ckk5x!%`LmKg# z#K+i*f+Uo(5z2;*-J_5#5|T_YH*74T9?KREsdY&WAChv%Vo8`DY!PM{wRwDY0lzca zXks84(ym>*w)^kD|5UR*o7yw24oSXx50I=tfh`UI!2N36e)J#z_(y=F4G0><4Ppf- zOtj{04z-OaB{aVZ?*R-DIE;8m4Nad2rB*OVh<%V@s*-@wcMXWCcS|3#PeloF+j2qT zZGw>P68nv`^GG7BEOC@ju2&Z68Dk(JZy;UB$PAt}Yt}&9_n?j)J3iXJefuDoYIE76 zsU|Qvi~x5T(T_FB@tcPpdT1X2gPqoK1CSC8ZxuK^Be2w6nE*%ejT?yf*q)!$b;}-B z)Nz?&0yPYv!nSY(gouGTT3SG)4IR|g>mOK*$dWu@X|_ZX$YKV1Ijwm@`=~ot^Tx77 z^?mR*be)Vxg}iil_Naw775s{xJ$p7a+W0qnF7NCq=}~bND~S*a#9O^%$Br}27{B3f zfBRc2N&yg~afrNH1&2%e-^LyX{J!N3?{r=`v(*&11jx?-wU(sTCpD`{9K;5-3I;iB57uQcN={!n z-Gv}@s7APP@ND^R6up>2n7T*fpXG5C9zP9gELk#4`nftwgy!D+NKw&{^>c;KA*S z<8sgpZ@gv#)BeylI8e!$2}~~=>>WriN*~%elstMYuWp3uCn_9x%|yf@muwnnlGLiK z=M~HP^{Q&DyjlAR&zUo)&9&EFd(W0FTaIImPf}TQeFR9;0;k<;{`~nrGqq|s8Y7Kw-HA2ho0KRi`fV7${NP%uzk!UE}p72jifmf~vWuT~pkVIu;HcHC_C z>BV^hz&KBU0}E47aGb(mojiDWOy8uXln}HHCN0Jy{IRTpQq(D* zs}*`5>d%Gmao;CSoVcIav%fN?*0nZmk%|MPa3gku@LqV~h5z;2-~RSu6gtrZgbRgH z4#HE_j_z6B3=kq(gkpj5PHCbQxnkb3i`8fx(wrYtD$c za$iUe+9}lau?@E8WL4TH00-4F5G{>t1_ssWQ{pYux#vA3kQyL*0GAo0n&FED=Uupwe`j7sR$v15cf zvcwuv#JpCqI7X=f$&eKD#a5yBuuuQ}-~au4_Dq(ZamE>w?0KW(W_7&+Nbc`#Kz9}N z_`PS(p8cx{6DAynU>=QEaAy!aUADYHEn30~H!i*hm~@O7RWwQtc&NbjW$s6QKUKp> zyyQ5%xc~uxfmcWj*cYrFp)EoO0MCLd`zWh6P-F4TA81JPy zOf;J5UL}`i5RTk{$%@*Tf!ndxoarJ29$WvA>w~y?esmSn2EjREf2dKNI(5o}gQ}Fw zI?vyD92cJhwD>&$UL|5B2{o-TU2TISCTU{1Prm7OjG#l)x6sWl$NWV=3m9 zRIy5tOlhOzlDhy#Wvqd<7bHZeOPaXI{jm)}z(x!J20TqnGoj?5TbDUh8q~w@VOzRw zbtXB-kZ~Vu`}*sz7v~lFbQBG6g=$994AW9vqBZqQl^fZvsbo?DFBOcwRwd*HR;fgW zicrE0H{5W=OE0~2JRLhVwGoS6EZ?v>&F{_}CziUdSh3<~*I$4AaZs&zVIVrXXnhw9 zsx-6*3eBiLF;|>~PZbN>aq1EKU8x7m=S5L^(Dh1ni~v;WfdycI_YA+I&E6} z20Pws)S7A&KBweis~`e_HVdT--ZKdj=co~JN*D$hsn$`Iqy41d;r1RtvBIKK)S9II zLtrdLD#YxCSa2~d#UzQC(;N_fpCl=w3z(m&`Q0Z^p8Rblrq+pyMWVB{#f%v<{&mWf zDa|<$Qf&ae2z*AngZWb6&Hx&Xa&{}>O<=%~AfgIJ4o_8#Y8BH+@Sc)_k#q+281Q3y z3C;sR<+fDU2n42?5SZFBh_M$+HEp|Dj*3yL5gj7lO4uwlDFM!Uy-5{}{+RwghO(*g zOz=F`ty`D7`R1FiHo6(gt~q-eAo#&%AS9C-|Mb8E4-AHFz**u{gOsB&je~(Y#uC`t zhw2i)$M%I;gT>+|CK=M`W;>K0^x0ymEp;c_o%CAj|UGp)uM?>R4Lgou3OyJCvFS<7R*T>tBa0U%vdC zKJ}-RwW?f~r0v}NnP;AXYSltHrth@Q69WNh&XTGkyfEtU*bb5dpTQl=8^LoVCua#R z7I1Oe64;jDBj@LhBlxhuqebAVnC7{&)hX33HQE_b*M@Rr53VsYdE?GD-{RBy=LVHZH{p;50Bq-bE1YY-fqO~{qtprm0O1O-G?vw9Qfb15Z1hMm ze?~o3RMA)*MZnNg#P67AMf*b~hsG!91fVfaDTORzs8#%&&IImpyL&yS4cRK8z@tiL-6qK{@$*Kq=6;oGpJXi)PKuiQ&(gZP_(*$bDljz- zJiqz#=kN9CqmO=z%#P2C!QmuuSBX@}s$T8$^wUrO)1pO-ii8_#VC=^RkYnQ{dE$&Y za3OcrE+rZ%r@F<9V?2d~P2-(523^9~rdzje`F$W(HN~C*~MPv%33NLntU6|=PJc6DYds%ngJf`SDa}b1u3}Fk*h~|r3dYarxuRar z>|ae2VDON?MJd8s3`XdAEN;(;Ier_xeYHsg1CETX;D6jiHp*5a$2LrDp`F3=D|Cn~ z7HKh7q8(YZ34!-;>HAOzN8igfDSwNR+kdh+DSUqi&4dY-n!(TAZa?QGPbQDp*zUI!4U zf`b5|{ld=}AAu@HLMP#H8xS-AhjT;oYf1{v7@^c+^d6D}$AS9AL^l#DJ_k4$Ut#k( zdM&5=6RKNk5c-I9h^Vz^S4ai(pQ$4w6gNnULRZqW6_W&MzZ=TMN(wNB z8bK&SVO$RP@v^kBiJC7APwv_extGC8-{v<`JbD@-#lR5)q^BaJpn zCVH-zicj#cEh--dy=#870;gPs92qfhR~DD3w@p-y3*}PzUQ?AwNh!tCRZ4s#%?+L< zrbOBzJ>q%dnN6BBX~5ZMpFO%umoAfatX|1+5UMvkh!NB|k3IHSHxQNgK&gj?grVG0 zyRoYn)R6_;MoV$&1mHf9T%0yV^^Qd|RK39ESyRI9BpQ&!vU&67eEt<&z8vR96-d<~ zN)DVSY!jx*^O_hZ@uL#x^`ftxj)GYG|B#xb5+JntIE1RK-qV%lTCJ@{(51#jvZ`xo z`}^i|N=HkUEZJ-7)Tx)`3Y~Y7q(>AW0dCfO{`~o0vV#}BQK7ahIyaCJZ-PcSCjkV4 zCMQ;I>p3rDBOo}Y#A9EoKLiH=ME9+h#_|T?_t6X)AV)7?0F8z?RU*bw@Hws(oCmgs zx(L;sO!bOENLC->m8zYNL<>!k@&rV{X+c*pa8*c^QDAy~T+d50lS4$iCmKMP>m5rn z)M2Bw@EZ8407Z5b_sC;`E80{)bHMNEAWPk&N%La66d(rKyW8SpOiKft# zu(XZ@zYnQ|b5pl;D6=3WLDUe}d44{Y;&ZgLX`OeElTrEVPfZ1?L1-1vcm+ksKvgh$Z;hW1=-sMX_@&!~YRS{m&i52Z(&jT}UC5}^CLx2J zIC0`7C!KWCwf219$mGTPw3d~Bh}Cu@TR!#FQ)6C!`Q@Mwnh)1Y40ZSN!BFf`<30U$=v>D8j^nfYJ<1|-JDjT?*7#MgPm0)C;g z&vFRSr&f5i%V!n)`>vXS4!J4Sy;@hmN%LOmeelD7^wk(#v$=EUo^Z(}m)v5E@#C0u zs)`xug#whO3l}aN%@#h|Yf63WDn0Z>bTomg8zf{t9POO00D(%xM%T0{bh0fQOw;vB z+kxFon6=562|=t=Rq>u}OW~!`)N;KZH6_Qpl z>0i^t#oBfe$Cye|A(xjPe&{Qn>zp}rP8dIa{D97#JI|%JGZR2?PPs}6kTnP*19 zEvg19+Y^H761p+-zj~l9x?}q=MSlXZ2=DK$9;ICu`MF) zt5>hi+cCUOZN=}sN@)vz>(E0F%?C2!Fn~vmF&5@~0sI{P1J^Zx2`2;Wz?WWnDG%7x z93qiwyyxm2Q&r7-+Cut#T}qdvPAh3?_nsD6SjAVfMXne#X3P!t{@u_uR%t4U9uzG^ z=gpgUAs&bt#-Snc8Z=Z@!)LSVU`#dIX{=MqP*pjXXC>7pPP#R;(z3Lz4|zN0KEP3qbVm-#^!C!x4($Z8^qNu|_Jy}X@F(badFKM+gYNWGo!GZ+~+L@g_x@XUx z6GIK$ivXbuSGecV^XJd+25uD+RX)waKNvNTG#ghvDe9u69i!u(aS@v6NEM0=9~iS> zLL{UK_NCpSu@=^#P_4r@h@>;uOAEg6Jt`#u4o1>7GZf&^*iMM^V4ERBhU5kf8k8G2 za9}ZozNQPnHGKH+{EBl!KLBH7x#ymHE*Dc1)PD4h@4Vq2vvKOH;T}`3ynW^+BpJnv zFTMyybKYTx9X2s^|AO@(AR1FE&gEPW5+bFDuj=wYtS-q=`x~E*tPhHjcy-%q1t35| zZcjUb`Bv(cA-GtBLSSHD9E%O@cvEQT<1=vO<;#~Bjd$8xI6hP%rniJVK)8=1M~=*| z0|pGJRe}KMMvWSkUl%T1n439sW`2zU#dp#7wg#_L-PN&*#`+GFP>Uc9+%g;h@8#UN zbNiom+G%a=|E>O+R;im-)UB4!KmYu(>({R@s!hsuVijRYK75~U5=zDP0Yi1$(ml)k zDy>P^OklhR;Q$=0KW9}TZU#PQmwA@yYV{&g`5`%=|EpBRHk^n>kD6bG4jr01@x&8z z!-fsp<3s^4VjVnqFzT@3p@|ZY#!*63onpbt`r-yo8jBs0cpAi2#|qVLlfZ|({`%{~ zyLIdKkUsNI07U!R8sQwdWXY1l*g>71A5Y*Rw^}T+8_NF)<;|%3mEBL6zQPJW<%R?a z|L1i8NH`a$UCjF;AlT)dbpd#f&tVKB-;CZdUJtfo7x)l3VCxtM%C8*NR#ywa*{@%} z+~moV^DC!xd64*#5+M~NDaKG2AW3qDq>W(kl9J&9(3uH>=B8@(HGBa~l_*+EpCyuASGikB6d7jHzqx4~@9Xte`5o*>ni`r0&^w}r zsGkS!`wYc8dxr|{6)^gl_t8`R)0yRzG& zQkeljVB&ukQu*bSQ%=d9efHV;!mRqZ0JM;9NVuFbWlGd8@sZ|GpfRnfbwl!WdD;Wb zELyZ^u+d2e1IW4{KzQ*+2yKj$4pGsp9nQV&;=cUSo z2@|3=iBDnC=hRS)^H4fUk{YJ}o88%b_3G7q?LMtjd%UT?S%#v6jGK02{e-3^`1Ify z0KC`A2Nv~sA&#cA3u%9ZE>2Y|mew*Ao`yNo=0PBkEZQR&z(MK=0&pIzJT@cex{Mn) zE;oMs_<9cxRk<#`^wRu!#|(F!#h8>4kk*f@F5@2|2^X`ORU5*yhCo=peEB)FQH#A8 zyiRKR*x~TvsGBy6tIr#7I@dbnf{V3w(bNcS2odt4@w`}e%SO~pFl3OCZAqD8z!(O; zgIYyZO{*H!0pKOaMHgL^tIgTmwXpyI7hZT_{@P=bgiX4=1PKveeUd7%2zycrjT-Fi zZLns|nm$)taYfij=gwx)p8=yKM*K;B=d@W7S#GG>9-2#(bR4>AAw9HiLTg8;W@$T8 zTqnmK#G=pM=D6U33n~tdnv|rL3X=2AJ1;LuLpBL37QHjXN1+>{?GXz_sQtBa<;vD3 zN!l8%Z2c5KxPzgnH=^fBMfOP(O8xP?u9pP3*c759DMVFBCu9LEjF4-Jj23VKOh{eV zq8buO2mtU_0UVs6UWp(U8Gu(;HJ?pqf>(lTL*0U70n8!f-O?JJkR4JReYI-S?$B*Q zBPe+Opb^t1I?bLv`*@?92R;Rm0#WU40BNq%ok9ek_TaNfoDjeiNIp*}CgSOSWgy9a?G-mpR;w0Km zHY?cci;9&csOZ7X`?_)CM$EkFgL_k~_u&pmelsh6gx$0*>b}h~_u6Oj#sY+~!g&9^ z?S!TSh&f2LNF<_z|Xh?q@WzEzc;p;pwNJj`+adNb%NL7oLNJ zI&-8&EkmL%OEflQ5PF-&*IxVj6D(TfL@us_eteLU3%EDH!Mcx99|D7vSl9%jrrcL+ zIyB+1Tzdq$W3k5N+72l;exbe@-=#P?LS6CU$udUP5rujPuofi<9^~fDo4YWMpj^ar zDj(N~d9(bD&EnO{+P%W7Vz1*AgPu!II}o7caF5+(*--ns@EmwN0l^o&Ij4@>t z{PKaOVjbbVI-waAX>%a5_{)=w@3b54Jz{!H%^KEG1vJoEl;vk>grvuqF=NUG2h;R* z_)l#S1FPf8Re1oAm=uY1e5}bpocbhXl-Ypxk&9<`cvl3F5hE*7#S1UIu)lq9sP>!< zwY&^2FJPXbUWjl@F5Fro2azWaM``v(GA%ZSe2Tan~Jrsmk{0!8Jc3`Js%-MC@o+U zOH)Y_p+1HX@`mvm6de9{LZF6jUJj8`a_lK^cu!f{#H84Q%Eu&+R!D0oClFj;B!^e~ znG6dD&Xz4(y0c$%Q@KH{5j-Lww5KaYP)L%*q)TixSXRkU>UOb*r(Pf5IX=|-1`BG) zk2vCpk{$#r8#$P#E{H{|DNFr*1VVA$p(QkICTVj_Q&a{OtIw z3$mYMv7VSaxuL05Neq_;JKmceasgEXgj)qHZL`I@md-u8BrR$CWBY&~+sXQ}WK6JvnovQr;~e|I%|eEL52- zvTr`?f*YAwX{D2$Li(qI#m}`!o2nX%m&D2=O94jG_OZ#bvEM?i2rBVP0VwZVU8z?7 z{;@G%slz7zQ?rs7UPDMdNwQ1m$T2%)FT=wDs7zIW9H4`2JOTMO{UIYgX*6+& zAd`kmmdXW^B$RTun3I7^&z?O?3JlV|sY}%=$zU&KK{Jb(9TMv=>@|V<~W_-VS`hGgkJJiNMiCe@B^>TQ)qYOa(^w~|q5O198!_M`>vP)m6(%8=@-t2fiQXVIKYWv+se zZvQtcKH2x)dv9M)Se_GWTtVH6p-MuJ)}-Xbv|wQ=iIGYmKFFn9B6duSNhsAIE>)F@ z9gAu3OlYj>@iao5^>|3_&q735RF(Q`LQ}-%vXB+|aaORR}z#93P!eN|kaotD#B!2igk4jDD8x{9*}478S!bO!yYTVupSy?;}{!SkD1)7p0(dysWW>eP}Yb0KD<))(6(6c_U&>I!kK&bIy!Kwyx> z(%54M40X*eMe4*;{8KbKPN8DE`Pu0dDs^~H{{_uhNAnLK%NKljz}QjF_LsFzsE zbytTta$SLQY*odln--X7tzhNN#K~fb3<=<`>ha zPrt_gU24~GMpaeS*K49)mFpGr&70Fekfce}m!M%1Er%*)3tCjQefB>9v45&{1Bzzv z{R!25r|IY3Z=QB@vvPV^b`waQ^fu^8hFVV*4s@* z_uLud(6K1BH&l~cYe^5i62wrBz8%`0HRM@2bR~(P(nCPYIS$$(m7}`sY1K9cz^u$R zX^cljOm8r9I>uAA$1HZszKj)ln=iD9x$3-Ri6uAs zX4P4xNV(}LS#EGz(jB_Im-@Rk@ix`gqVpC@Sx|?a)oYh@&$BpuYT|`T%gjhpvwXu3 z)r1No`*yWx(c)dh#79L+u@APh`(T=Jon`cHZMo%YdQ)Q+Wn9oeuaw`c4=L`UrQDub z>~x<+%9ld?rAUQ6K{v4ga>4Bmfb1}!d|U)b>(;He>cdtKh#w>DrAShaQz+>%6i}?B zT9IVD`HWP*U<6yKgjgRNI&;i%DMSbLGHI-|PcaJJ?-;YJB#_d!PcqPbA7bmahjM$u-|_BeblN|tG5A^;+1vi(BWmeH`8+aV@6L}RbgFt zIbt@5j(+p|Vf=MD1X*7?oulAO2Owo#lGICI|DpHNXUbM;oI@#I&#YCAF($4t9RtTM z)2OzgPG1YAcA(rcBtBzaDW9xYm&s{aMLMrT+m8BW+O%n9aqYU6BAoKehIyqdXm^7l zrdd>1Z3UIZ-YF&UnuUI{270qfERNBji?>aiHg6dgu>Mc$(HS#ld|+zU$A}=Z$#bZ~ zVl2f(?UW={rnalkvK})@HJCqte!jz=-KesR;<}QcoPiRW#+$ZaR!A26gPH=>%FqPd zQ0`vV42e?iT~aJ2Ev3mPz4BVnuh>+pO{PWUr`;AQq-W2bZ?$jVeglWisOsPeUxS4n z9IF3@N@bJc9hHiOBykwu0w~1w@mZ--q(0;zq0owhgi5`C^XAPig_P3qd@;AL zS7*~0Ovu?&N{iE2Mn?#+zG)z@5$fpy2OO{twkR687tg3$w{CCQ7i+ZzN|t`FS>1gx zu@@U&UsD%e5+IfHg+{z#x&QwAOIA~K)<|7|gYAb(T^24}n0xNI=TcP>N)F#?GuB9> z5-B)Y8EUCcp_tS%+XH3CYrA&sn!{QINUvVKKIq)J^D5@=&|nFrh$j(WXxv(okrW!u zR!IpG@^@>u#TWxXPSVp)KV9-~>!|8I<%l3S$}!Bb%$zwh?-EXvx;Qop%9s+*K|eef zGStw>j7oqbiFV5MhWfxEqUZ*YHK@(Us?Do$fjc;ZPn*GcRHjA6lf+@x?%-K&YL*U; z{wAvwNh_JX{r1}v)4$U|Qi)piqz8*_W+} zS-_CQSW97sS=Duw{IEL>7#rKRZJV#pFH*+z>C>^%TC?0g*4CUcHLBDO?P((uDs5|o z9-QjAK1(?!MM5K!vn(9Dpu>nNnK6Llf}3+xSUHjd*~3ph`D9djFja+iDYz>D!Zw{c zVAMCN3pMdb;`pKNG-(VlEypS=hecI(`^b8}dW02wuERBptG5z`GI zuaUcI_w=Oh-leKWrS_^S$8{JhsPey|Mtf+v_uhN+##%Wl0@WT|ALkI33lws390O8= z)3P|@y_{w8ru2s6!4pWV3DXwi@T0IiX@GG(S5OFjRMHmbN~nfUI01qc=uphkyuTQ(dwB zuYdjP8pSv`*@}ZXp~jYyUPD!i>J10<)WlYUD;oewyI;I+bUVR$<6NkQlRmuKP4$n- zuRe$z0#(|GjZmM1kmoR#?GZ|y^4bONvEg7<|Ni~o#bhz8#W={Fcix%5Sku4W(HY~^ z!IKK0{AjLN!{}1gh?=@gV>c?6mhY!)alxQV+@JB|$Jgjw5T76+;2x8JsK)4hWUpVH zZK95ank>jze&mryQd8UM5d$Egn=@CBaTc6EfC_cbXAVRC)5=usQ|7e?9Zp&f<4npp zPc!y4EP=pahYlTH!8MVQ76F2mlLayQuwC3R^@_xF_1g0Jm)me4?WU#KK?-GQZWpU}QKUfC}<+;Bsl%hYscdO1X1soM9y{N*pXDO0AT zN;_s!K(&HLN5?|brozA_&UfeMI8Ul#lqg=cQPnY|E@_Q>T07fNNFhX*N!@a&`E=~q zar1xy1LmvKLMsaMVzFJjc5nCY-Fqjvm&QaWE<;hu7-A~{jB;Dqr}@2OH=gQDjKHqB z=9+xgYeQRb?swmPcP6hKqw&zmG3^z`IcS6GA>Ok|AUsiaBPe zYVy6$9#1Pnj`cz-B?N$1oOj>8eYe@Ue}LwBT$_3{+Xn0U^yxDVC#`z1pG&U!^P!^m zv{w09ycU&E;mX;c4cB7C^Wz`?I5DxWzAaF7?zrQQ+hd zY+6xtE~w8R33{fZeqid>^BAJ87nX&)C-tw&nl@j`_vK2Cv@%($5;1VWi2LbJf0`O# zs}IZTufLxA;~)Q+Nph%L|FFXjgHE2;EC2!$B%}%l^bibe`i%eiy{7P}Gl%ydfM6F# z^<+_1i!t69qfJW`)f6f{Hh&A(+p}lSS!9mXB#Jf&Ckx?%d-UkBw0-;bAHMe5YhMT% z&OU<5#5K+M%oV+3xST7saEnBuMpHr4* zkgH1<&k` z??c)MX;Wu7vc(g=@7J&2>jxiv@GJOEog+>C4Z_8>Y13w|iJL7k-*lRh?zd0thLWU; zm0Me##j};xK@vAGDftiE+;h)8xqth&f6G@Q)|Ukm4#2qa#v3z%gVF=U0)rfL(;*F5 zU&7IQbnD_f+N^vwP*Gs3FmS0-L2V1VhgrA6@0b-pXF!sQoi>!ot7)3a;NRo7kf3<< z(MM0WbJ^fEi{e=$?EouOExUkCg9Z&+#f$K|UZ`bC3?QW%-nHF3D<-vKUXnDBkW+v2 zo8Qc*4=6rW*YO9^Kyrj8A0=X(h3`_z;*v*UWj2ha7SUCW|dI$+#PZW5fd1qKbu+ z7KDFnJ4`k;>*V$8*C&n>@ZwJm`BJ!grGkUy##%xWkMH@=laddy&8@fInwvOrV(zlb zF3XJ^IdYGxT`#`)Vs6r;NvWB+o=_OmfXxZXfdN7Q0zQMZATSU=!S+bt!*|rtLC74L z096aX!tXN=4cqd3aQ`5ED0vtQ!ZzpwKtTBH4d1z6>r6sJp3=%QxE~z@M(bNUckcWo z{`ccAs#Gkir^f7%hfOd0Pt&pYqQRxQo=TOF?UB@avYfuLwE>)1J5`?%Kmbs8PBV&O zn}CCl8#fO5ZF!=ojRnsMQU1pte>`8$krfzfFoXNUoH|(s09Gf|k6sfOGki=S6CV9^^aW73e zY}v9U_nY7RCijOw{2@1d`0(5bC!7F3dr1R&V)g}6MNk2Vh;LGvY??t1;zUpw207v# z>S&=64Z;WTpi+^TaSqH6!*AZNapLB0!Kvp^Ke(wOzy=c4JOp%0Mi(p+p{ed;lAO z02Q4DUsG)uhX24{d8w7#T-QD#P8z4waIU1Di5*Q)fjes;rONTT{cbB|}Z?NCl z&hy;&Kdu?GR0yb(SZ4+Dz`?nPfM%%%?%6ui@XZwroZtQRs)-rCa|lLEh2>HdYLSL< z#{?#q{7E7My~saq!xitBTT+`b@%iqj)GnBq+w^&0%E*UmxV|8^)$3Rsf0CisuT00} zo)X$W?B)qijk2aLT?u99oG#FbEzop?=GRHd7;Aeus|a9!Jm$}bV}=&uu{ffZ`}(YZ zv_|CtXQg4{E(M1~>BGTnj7WMukg4>_Wf^|#g@}mpx^0l!1w^%xEw4b>(G{`hsFB0-6 z*7KXWqTO5_K^QVohb~?g|T<-j+zcO@fSpjL%mSTZOZxu3xv=xh<$pff7+ISgpvBVC{lZ~VfU z*_zO43)&MIdf*-g1S#aU*aLy_W$i>Txb-V09&+ZKLP>rX$2 zlsQV3Hs6KSrUMw2t}~fGRt+KS3bX;QWHJoY1{zBt}o%QOKJ>A zHrt4*^qsy3)e)5Idq7;u83ugClQe#_q}UZ$STwN2L?#dXx61mCr63xPXHUjPTI3Fg zAq5p>5{C@AYE#tt#jZ;3VZo7RKErUer49JhebG7@$#ygP?2>eDJDNiMF=ZABL9vUZ zpbQ`EH>en9K|wTvL9dfu#*VM&k_o`3O+7ikCv}C)=Am@`lE zZRfA1&$>V5E~6j}(ijV=psEELuB*M7{SQ<^PRusCB*^`vd%y|q z5_^*=&gfHJ2#OPwI2^3gY)MLX_+GSS@~C!)hT(_WdWM^f@aqv1QN$uj`z)Ae@LgT! z@yb`>NvBM8)4R|(Fck(XFL9_RNSB$4bO5F1*OA2(Zo6Qy-VHXK@i8v9#0r1f+on9^ zS_!Fg9Xz_e(SbtUZuO4z!b}(l@6a|ltPV!ORX{&CK0Xs08sq_t$>YwSp-iIvFG)J@ zk_A`WsFI5+58^aBd8X%q0+-Rwos_J2dG{u`C|hkN0%Cy;j|^X1Tbo}yyP=@~i(9KD z*h1oN*24O{FpxTr=;)_F-|CUMUt8W#&oHjwdRIXBK;#Ze^9O+=$rc}_~*a-CiSf99@~b#m2h+n7tZ=k5%v)yRE+6Hs=8?wyY8Z}=@U+Umpf@Vg0pVc%usqaBu zN-1Xv3tFLP(Va7vh~-0FSFJm`BOcF#dGk#28u7Bj_%}0*jq|ZOxYQyS`YelQCq1~w z@;!rKdYJ=5a1;-zT}r@r9Gg=?C8H+NW1qPPfy2|SeWkRLp)rQ7hjJoDgmx;++zi@+ zh7;Y}6Rhr{=pG`^R!`^>_rT}e2~P0-?)s5v{1L7~Tw7Y*I&6d?)8^LxSiWdv`{6wj%2=l&`QC~2QaZt?e? zzSSZBRw^B2-v);blH5?i{+qJ z>@lN{hOH`#`8DJI7`%KVIlC+E_tKuGs*ag3-q>=7_zdMYH>5oQ_r&@pr>cCj$JHKO zS^QJD^-{yQXwkaPhb37hVJKN?7f~e^)5GNJ%t%ON)Ax!YZtS`$58 zRszljG~{@>W}i7f-dBf|&51R*)ZlUmW13-`?4|No!XzcLFB6U{+UjDL(R}0Y&dr^2 zt`EF(FB5!uiIIY~8nse`A~IoGTmOLZ%}ilD+*XSq(oFtpnasN1=k1i6gfd)lnCe7e zp7Et_U9s;}CsVxk=jve$w{N)=H8E7Bq?of!bL*!I`TAly57}BFtR#U_moMB09@v-y zN-+s7YDIx3iL}BO%whY)UO#Qc)8~oBp&*Gnr06QCU!S7jq&vS{6n~g73 zOVyS=iiymsFnLTwe?j%Y##e8X^#&+HG`KkYcmkWLrf(cP%wE5 zg_FKM4-DW z{Fv5;Ec$XuO2#*Tge)s~3j}uo(8ddWbN|cBW{cJh{&dY@!9D-m^HL63@Z$H_ZfIUjAvpKCb9+Sv%z@8t+>8~3!IAD zBfUc6wlJ7d4msYv+_)`HdX@W@=S2?vVTf4mbiVB7*D>(>B592loa@aNmnQ&eW~sB1 zgKaQHUS5t#Sn&o@%7pyz3-}mUV7||0EOVy~J%-_&%pYB?pj6OO1?fgfDYIUK93$HF zBFm$u{G>n;WKmFhvkK<=gy!CL6844tFC@q~>5uIzMwP!GEk*JC>2-Gr@x42WL^B{k zJ_CA^*jBZ5SmazAy!B27ecu0Wx4E9fYgK*6Zdy)nUluDN$pnX=xVO3gN!I^ozt$Nz zb5S?&_rLJZVYPT35oD7_c>c4g{Gi*zc~5j13>V0SsNG@x{C@LigRIRhx{>+)##S4U}Yad>8K25N7@rGwN%uo~%4a?&+1+kNf50 z%iXDM%?6w1Fu7J6!%V$|;Pt<2%o!P%%888U_1@yMal$2WuNeiTy6Uu;7X!=!B^gM6 z8;Yh@peMaj%vxri*YB7w695vj+WC{eHPs9^llSsx2bAm#7sl zUl|e*TQBi%QB^3l!2O||+N$>E8oHB*Cs7*gs2gaSJ@zcybDVn@bkJp7F{6y`%CB1W zv|Mf#)zmsdYST0C@AgXan1k*JXXERnBgy}aX9K&BM5BM{i#7W^L04Ij7AL)|h#Nm2 zPs=*G#7);Va3Nd`0DP?0w|w%}bu@m{Vyb_Jc<-*yv0f@6>GCMpJMxsNlG>BPHEzX( z-xkgAI)$t#Q2e2wF3RW?lt>bZs^FIW`pfxfc}mle+b`%gmCpS*xUIcG-(;i*_&%ZZjyUb#L#Oz^p2 zU&rXL?(IB=dHk7V5f(-)s-DqHW%YP8FjQLOGEYA8(HmOekm`YkQzI5Zy_8QMvPiy2 z9|lR~djd!C zG^F*Zep_o$K^-PxR2pJG*r-4Pc*V}siyp34dYAFsGq1zz;a$q(ctx{X-6!M|YIM=| zbJBlxC7JSvdJ3eRu!^=ptrni#2k8Gun4%X;=h0v@VK|g$+sc>N)|4Gr4OOOYfaUo=>1n0HaIieBX-<&-r+#nvijUOr`>P zt+n+}^U|*m3x%*(5y_<`x<4p^$=|tnZzdx+n4s4;6V|GA2VPL%69hX}nhvf3Nn6_P z!Lr6YTvf1AB3({Xgpb~vQs|qlt;LZHf}rSG?_=_kZ|-x8IE%PRC&DBVDapYG{z=CB z0`*l~n^YojdD9vlFhZ-spypK-@`m>T^V1=Ka>%yq348oPy}9X{L6m|TS719WU>Stm zK|KH{mX6;`SlCTlFCY?brY-X9v~0U|?4Ub#Bvy{j(vsIkVM?T>Y6*pmlh~%?&C_Dz z>=uH7)}J_>RC~88NB6363(&3*)RF>GHGmEPKaG);)Pg@W$Mmvjt>X!kL6kBk$ok*Dl zO^BjhIzHT-a+$kyq3SPs?hjM*nN@){4$*yAN18{=Jo9YbIkVrAXR=e*g-kG;(g-r>sLBAd+ZqXkFeYq#=P_hK!Uo`!C&JNYej$3^|)FCeZ z3adjtn6D8riy})?!&SCRb?{FQxL)LZ>HGRGKIb+YAwdNBjLputC=wslU|<=lk`9#?fOuf2RFx}qG4y$*Px z73GUPxNQ_dcziA4*yOyQ01J?GX|!V#5l*uw<5jTYN2{PS2FMK8hPVXZ8hkHdDdT@} zm?B|4IHRdn4RmnH{0z+x?~ABc(mV2Y_f(3u-|~p(5r@T*#Zgti1seJmH)A@b4d#z~ z`r~!0D`~Tl?RxD74G62ycg94gs7GgeH3KyF<&o?7o^CIv``rwiKj{SvDE7hZ!+d8& zD4d5w<<_BMk%FviS@^T*bzcxom>$2$nUJGCyxg>m`?Un=5WwA_`u3hwl&co0Hx=-q zaGs}RCeL!xL!r`xcb><)c6#xSD+C^}2dLD0>kThA!1BuxjN!3ZY5Vw9Cr9_IuzT<@ zagAc42W2hGaPTX40E?4Wl~Fvn_@ZBKdVcQl=IthnOJ8lr*FM!K&7C+^as5_*gqCE3 z)e#A{k1&Yy`$4T8HkJOfk)^vXaNf6%3VHwSw<$#r{%j8*yn zVKcuS0BANx4}Dw#AJ(7IWSFG?nf+Ew+%mYIWPiU}Z`N{2j&0a4Ul3hBl@^inRpDNW zVPEHaTItwzmV;uXq%Oj?K(1_zvOo zIE&kp3i1mYo&tA=+X>Yy0QApKo`B(D>cl$7!ia?Pb0Pwi%$%(O6G>$JSz!Xj)FDKd zHnJ%^UM|aK`B%01qOBbw#IZkJQ}x%m=KPggLw!1(_7V~+vplaU>MAY;|7$ORX=f_x zIA3i(@9bAFme#5hxQ_~%ZcwP|2Mz|#A3!Aklkms0Ezc~sB9UUBR-K`c#TSK&kp>@O zlNdW%;FJc;82;oTFPUGSkpI-^k5j%Ob_|djK^s}P592&j;uKYf5xF96lSE=xplN^+ zS#t>(NsqBFsYQN&X5NdVQZaN!i2!3nd%2Kr>d5~)0_KrRr>133#&LCHb5~<$zc9zd z0zJt;cs3LYtm`n&25bM~!h}{IF%79(=LfU85JlQW(~yCpB4wNpx{(Xip);XLayQsl z{Q%hX?S0$%*nNjn6UIQ8gD}6tUpLG+#!mr!A?U@n z=~09AelRJk>wApH%hTLep;Nn0WJUyAbbj++t><)#0Vs(C$j)Z~DGpz^eWT<4 z=zbMf{AR5q;9a^a$CHJ1qe2Q)|Bt)>h}40=pNN{aHR^1s6LogSO>aZf`2@-;=?t9 z#t6`Dod1=lceo$dik0wkDWT1Vo)}JS4(cmpO8xk~YX^j^1Z?X@te@D-!^qJRR;|KjQvAr8#N<6r1X^Z&+#N@|vpi#bhBR zIPnF@eL7qmDoSoV`={+Vd6Lo;D~?yWKgyWCC++z-rm*Ik{U*~tDz6*!u^ma{S*@|I zGyzD@A4Hs_jZ0l|`~qJK-TxO8c`_U$vR7Qktde#TjZWj8OFJacz?b9s?~5Wj(<~mS zw)u;-n|i|MtOUj|mLo<6G3BlW7MhNEN)M+JSXuRIL1-|jV#~)7qRqm1`5^; z8jj!{%1<&3DKNiv*8o44VTO*9gWOm582YMY_0%~T4b)JIb=HzJk-UW;g9r*h1y@R> zYFcRj(U<)bT}|LU%3!t`C@SFb?$2`gNdl2cr0PrHHM_=Pe{%9U1_M^-gMoH?$6M=u z07Ot$z!2$=(?IY=1TDcaLW%saFe*UdPJG%_ZV7yvC2%{TUYz&2FhMHXs}VP-cL#`k zzrWb|RpqyXG?YE3ndxW7jEydj^5NBa;x5j!tn?cY zE}q1eknsKAKs{@znF@LqAS+fhh2=uSEIuVtl!YGNf&L)M5IsESEZ!~^4@Cqbz zEd!^vszOj2K+(1)&U15x*#iB((x3rnBK3I<4(XVK4F(=h;PHOg1f@$H@z$0RR6%wx@@X}F7{ zpy56gMEL4uGDV&i7rpsuEw3n*H}LsjF(3H(jRFtnw&mHU64bV~Ti9OG91mRB^jw}< zA*OA4x(!XtgYjOL;L|l!bF(`4o|TGi>Hj!Ou2SKBFYJDM_J@Vjpn9zwD5GA<1v~An zV&O4)sumUT9AA1zFNQ1WN^`Eogc2;dm_vL0`>lGM6P-C5?4Cjc|bpCO*4`ZYnl6gd*Y@lAo>; zn3TgffI8Htq~KS3loZw#fdZ%r`pF5f9{=ljjW$^(Rr@E#fk1*vPoDqIVYBc};wwo2 znElJ1il(GVbyAH6@GOI`7EHdY8(Vrom?kN*#)r>Zz!3xlKD{IdNpn#cM`FPHaoi3x zd0ra+2zVsbuQ2jRSm2STv=HeAqY0=i=hEK?mWGt_XKW`;%L^4;G4_eI-4zk0`6=sH zkp0KSy7MoN2o$**UUsda`onE@BTIC9 zpuvsBOKL)olPHS547N~jRBWeaJK(WC#s_Zv0T6fM?+L6+4$nuPlZy!1FC^b{#Sv$* zQ#Sqyb_@`T)OQGkVmkf^Y_qgXlCfX$`rr1af7>xYgZSM_)IH&<-}z`TaD7$unERdf zHQJAlldp-`g=SL+1(g~VpUS96;Oa`l`mzPT&UOh?g+*f9ClXWv6#U&jL8rwwo4u`k zTkml`NL!7~aLOD~8n9e)I2%KfyFZ+Ce1M`T>~;GPx#)sB(V6LI$@NX`a#jOQ`$&6o z#fA=27@`Q91TqVAN^BpU4#Bv%uqw+QIA!o!J>DCc2UbNZPUq3UjS-jf!3^0FRwKWR z#rh>sO&fslFMBC^P`xb#9N?#G!MJ9yz0F#dZ0}dje&>EJP9VWg*XNuZ6i8Y~$x*#1 z6J$Ibf*^Lemy@E$ZBxC|)p`taQT9%I%0l2FOS!CNl}UFV$R&5@ft}|FsfxhTaO3ju z)qs%=D}`C+?HyLDAr6Rkv2|%S7AKCDeBfyUR5M)A6aIW%soguaD7Hq&;W3lXE`Bg; zIQQNJr1n)ynAK&0V&d6kT%uz`bvf`525AhjwDJ~b59O+tqTxarN`i#4X56mNQouK~ z7(KKYf2T};r+X5#&;BQ{oCfah_cov%O9~r zNaH|wCl~nE06o=pFs0Ag5*5!y+(e?P-vc0Z*LaOww}e_$&pF9m7-TLO_37XHacKv3 zSR`1+FL0?cwVYTd(j9jI*`g&?;>FM>B#MhDsZ_s5F}>Se_SpVHUgbnN&8233&eKBZ lCWpNVMe5DjCsZ=f1C6bF#fmvQ@E;T)MOihON-2w={{d5P@qqvU literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/no-cover-artist.png b/data/interfaces/lossless/images/no-cover-artist.png new file mode 100644 index 0000000000000000000000000000000000000000..2a716ae2361286f021400ca2321c4800ecdbab17 GIT binary patch literal 6937 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 LHuTr4JJ0?AAZ0G_ literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/toTop.gif b/data/interfaces/lossless/images/toTop.gif new file mode 100644 index 0000000000000000000000000000000000000000..cde291a44056ae03f528c32d69fdacb8d35d0181 GIT binary patch literal 838 zcmZ?wbhEHb6krfw_|Cv!n0)U4C>RZaks1Oz3_t+N3k)3E49pxd9vc=MY~~QwiirRU hwK2+A#aI|Va_*4O4w|wfaDiKof^(OQrhx*3H2|G>3ylB( literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_flat_0_aaaaaa_40x100.png b/data/interfaces/lossless/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_flat_0_eeeeee_40x100.png b/data/interfaces/lossless/images/ui-bg_flat_0_eeeeee_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB} D#5ytf literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_flat_55_c0402a_40x100.png b/data/interfaces/lossless/images/ui-bg_flat_55_c0402a_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..881ea6bf349b796e6500a999366c333215d0bba8 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*Fsaj7L$B>N1x91EQ8x$BA998%< zd-9As4-_=>)pNe9diS+Yes(;&AJ?j;RSUFMP?_RgC&%>BeA51TK!-4Ry85}Sb4q9e E0F4GjBLDyZ literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_flat_55_eeeeee_40x100.png b/data/interfaces/lossless/images/ui-bg_flat_55_eeeeee_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..e44f861be1ccdfec4275eb20d9b056f14992f649 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`Sv zZF_)9$%zYm;;c7~Kd+Iuj%U9o62cnl7#bi-T}u4XA(n|-?{<9$I)lN})z4*}Q$iB} D#5ytf literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_glass_100_f8f8f8_1x400.png b/data/interfaces/lossless/images/ui-bg_glass_100_f8f8f8_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..0102c43d699529c28a0a35305ca6101c5414dccc GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAGVZ#9R3S1w1@m978O6-(E80JK(^M7?&-@N4DCQO89ZJ6T-G@yGywpf4K5`B literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_glass_35_dddddd_1x400.png b/data/interfaces/lossless/images/ui-bg_glass_35_dddddd_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..3550f06cc447d17ae2c4caac20ce49ed4eea2783 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq)a?r978O6lPi9Fcv!E-#>Unb zm^4K~wN3Zq^YijNhHh?dDNKq7j~r=P!_sT&)g!d{$O9FIBu&m!xp}EfK>ZA!u6{1- HoD!M zFlmZ}YMbuI=jY{9^pusA%k+eWh1=pOR)(vGCX<3`Ri0;xE;^{22WQ%mvv4F FO#t-yABX?| literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-bg_inset-hard_75_999999_1x100.png b/data/interfaces/lossless/images/ui-bg_inset-hard_75_999999_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..89b88d8da7b9c849a8c9fa5f9d44d0f89be8002e GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l%=POV~E7myXQA@G8po(9K1a5 zO8uIww=N0d2^Bw55)Ox!>#MwMcWK$6%P?`~FfkN~u>|JpM%M$iFnGH9xvXo literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-icons_3383bb_256x240.png b/data/interfaces/lossless/images/ui-icons_3383bb_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..905274f21d0478fc479d4ccc8267da89772e9662 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-icons_454545_256x240.png b/data/interfaces/lossless/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..59bd45b907c4fd965697774ce8c5fc6b2fd9c105 GIT binary patch literal 4369 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 Wf3}is$mak3GM}jHtJSJF#QYEaKVokH literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/images/ui-icons_999999_256x240.png b/data/interfaces/lossless/images/ui-icons_999999_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..50ff803dceabc920d514d6a41634fe4388b6c128 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/index.html b/data/interfaces/lossless/index.html new file mode 100644 index 00000000..503ccf9c --- /dev/null +++ b/data/interfaces/lossless/index.html @@ -0,0 +1,101 @@ +lossless<%inherit file="base.html"/> +<%! + from headphones import helpers +%> + +<%def name="body()"> + + + + + + + + + + + + %for artist in artists: + <% + totaltracks = artist['TotalTracks'] + havetracks = artist['HaveTracks'] + if not havetracks: + havetracks = 0 + try: + percent = (havetracks*100.0)/totaltracks + if percent > 100: + percent = 100 + except (ZeroDivisionError, TypeError): + percent = 0 + totaltracks = '?' + + if artist['ReleaseDate'] and artist['LatestAlbum']: + releasedate = artist['ReleaseDate'] + albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate']) + if releasedate > helpers.today(): + grade = 'A' + else: + grade = 'Z' + elif artist['LatestAlbum']: + releasedate = '' + grade = 'Z' + albumdisplay = '%s' % artist['LatestAlbum'] + else: + releasedate = '' + grade = 'Z' + albumdisplay = 'None' + + if artist['Status'] == 'Paused': + grade = 'X' + + if artist['Status'] == 'Loading': + grade = 'L' + + %> + + + + + + + + %endfor + +
Artist NameStatusLatest AlbumHave
${artist['ArtistName']}${artist['Status']}${albumdisplay}
${havetracks}/${totaltracks}
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + + \ No newline at end of file diff --git a/data/interfaces/lossless/js/fancybox/blank.gif b/data/interfaces/lossless/js/fancybox/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_close.png b/data/interfaces/lossless/js/fancybox/fancy_close.png new file mode 100644 index 0000000000000000000000000000000000000000..07035307ad435f8f2f8eedf0bce50f7ec8a858c2 GIT binary patch literal 1517 zcmV1To%f)hA(E>uTT$~N#GA0orBqo9-jKM;POccZrXJjTzge4|Sa0ca~7y<+{ z2m7~>41(Jqf9L`mBM6zAjf4;hkjP@@B~d6Xz385|dB5iCM=Ro&JZZmk-uHdZd2i=@ zK0a@Md;u9DFE7t8BO^nxckf<*yC?SckUFGmX^jwM@NV80+eiP zQ*s##s^a3}Ldwd@cHO*r^T5i=%Fj}=Cr_R@78e&C((#usU;YFS>C)2Dw4tG)YO=*P zWt;6ZfL46;=u!R1$jGM-hhvcpVyCa+S}Q!T2ALHx;BHe#M~BsHHos=s2iW})#C?}q ztqvud-gYjKsG$zHm2XhmYPB(Bn>kzw z=gS!w6cG`jJ$?H00VK+=!cMnBDn?IFkCkj7KmNq~hrkZvU@n=EP}|7Gxw*M}1_lPI zNx@_?IS^|%_ok<(o3gXBH^f+@(X7_g)K~%n0$gMM{{Ab=%gZ*hH99)_Eo>!VJd8_C zE)WMoNsBB#u&}W3BMEnPby>y64F-cra9>kX)4DJoA0KZ5fitNn`NTT4wY3%+fA;Lz zZ+K4ucJi+Mg!m%<>Ug8kSg^LX_JD-5va;NEM#+V_H)8UHgaj8UJ?LiZVx92t@KxlB zb1oz#Bo|{kAO!IDVfOII$VfwRad8C+y?XV^;VEu~g@tQka>%(zhlYl1p7P=0!-vj9 zYiMYw3l0uW##jWq+eZ-;6r@4F%{+PXGcz;xx78|Q_F7Eb+}ynGO@4TI*h!27r4#SzfR=K~ zhtpe&%-o-olT$}R&!0cHdm}}wbdd`2lO~)PlarHXnm>2$+(ng2^$EtJ+=vwl#Xg-* zSA%x<9|=lJ3CXuACMEY46&1O~{LGm%7HKm8lhZ|+Pv?nF1LcJswy+L%zshO4HzpR4skij zxq<8a{QPpl!oq4$R(*n7$-q`gsjcF2;NWZ?##l9wBW)lu_Bpk)RJgGO&Ey+2dDr3J z*x2~aJFl#)G^5U)q~qh`_b^ru6q9Xf%arlfse$W(T#z5f?cqE0>k)x`c6QcMUS4jN z#$B996B84z1O(|{7{3S{Bb#j7?T~OCi+pq$fP9eGqJ%Evk~i}B@#8tcAnk_QAg)9f z!qn81MJO5W0n6>}?Q|$y25QL`+uU$0x?KbSI<(UOBavf=wCW!^J3Ie)^yty-8!yk& z($YLG4fjwT{k&5mHL@*_7Xi1c4?x$HT^y5qc2zyPPCG3CUKl!f@Zj&~&!7K?fD>&z zDk^G(=74sN=`q$#Wm{gaK5myi7K~vRQ8s=CoB+NC8j<}iKpXzI(SMmt*2r@wST=`s zW7t-}X4hPqXy3W00000NkvXXu0mjftFGKG literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_loading.png b/data/interfaces/lossless/js/fancybox/fancy_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..2503017960b3972499d3aa92f89953935ae40934 GIT binary patch literal 10195 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 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_nav_left.png b/data/interfaces/lossless/js/fancybox/fancy_nav_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ebaa6a4fd34e51575a01da366312c20618985cbc GIT binary patch literal 1446 zcmV;X1zGxuP)R`@usIzf?P{x4#0gFqr~|(;IJySuwjr=+Ar78e&sHZ(Lu;P)*wKU%|U#jmpg5~Q6= zNl8{#mZGz>Q!_F$qJ8n=#Z9x>Jn_n|ZEtTsSzllOW_Wn`!@Rt_=!l4jAl`tKb-5%L zv7js_CMF<1KR>Fcr{|nbr~AR4Y-MG|y0EZdwI6@^^5yrikSZ}TQ5hH*C?{R4Q{?KT zKD6U2SFWfB2M0g0TCEGD5GUP%Y0a>J0W!M1fVuVU?d@ix(YV91PjUK7@OzY8E)OJ~ z&Q30n%8njA8kC)#t?uvd&xMXHQZzI)WQmTB-n1vQM_gQ-{_*3-7UA?*_bJ9=m|W(F zT+IHE$H&L3T3T8zSS*%BTHM>)YZi;eI#;9uNVch|X-go#ckf=VQmKq2-ORBYaGo52 zejyg&!SS;_ltMX3~N9_#ORsfn&tMTp}T$j*yAd)6-A(_4O6g z0=-^ug|9bVkxorbSsNQ0x9sPG&EF`laq6qgf=!d ztnQGKnVtDqz_Vx1Y=Kr=TU+Vx?;nS;5H`1m#Lv%9fqI)#T3Y%!3C+yRSpE-E!h;77 zwm7Z1{&Y;%TkkIqz&m9sAKBbnCkzsHry#@vbY{a-wI?zu7 zloV4Q9NtQWLUAT7Ev=G-*4EZ6|HZd^F*!MDB>C#<>PDGN_5sGi_Yq4ZlG7@css!ck z9};wyN`LrygSGPaaLVfqXl2Z+Nkm;ygvo12>(Bf+YwDwC`Hbwy5foiCI>(Z2*F z+nZVe;)K}P*aF#9Y8tUS3{lK|w(!NULrkdP#x17leSb zXU`h&IIwaw4`8eqNV6{>BDOh|vjhZ0E{e&QDDu0Pe|>%Zmb;{dg@s0w$z&rPA0K~+ zu^J$UblaCq5g(ljxEe?Y`8AmFYt-vOfqZ&;+Eh?bV07kp3Z#jN34Zfk3!OW_7k zM!Hz%fopN!Lja&lI}y+lIZjBszTeT&@!Ra|?DQ)q4Us*EN5ey8M=zh0NVTlX;X`2G z(+8kuN)-Dfn@v@Ns?$arfE9ks%*_0?uCDGc0&cYN@bK_KngiO{r&oDx0_$@6^x5~= zW5Gx^5k=$2z;)mYpdQiR47B2ZEBzOVMD;v(on_N_Z6xdRarMj=Ped`)=n zv4Dh?$k=SYcJSdjDa(58`F?t%ZzxBbaRs;9zaA#)un(S!5dZ)H07*qoM6N<$g4RXF AD*ylh literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_nav_right.png b/data/interfaces/lossless/js/fancybox/fancy_nav_right.png new file mode 100644 index 0000000000000000000000000000000000000000..873294e969db9160f5ddd4e1ab498ff60b080e3f GIT binary patch literal 1454 zcmV;f1yTBmP)Wa6`&Z+!IVkxf`V#(j>y7#5eg z5*PD+C=wGBwT+F9xi*_^fd=>X_FBba@wz8b0c3ma+OG#c&LYnSBp_4S(*6BG8m#QpsI))yBSw}|WBy?ft)>pk?VIMu|0u-xC@UxO$< zHa9o-0~vR8bXeVyB61x;@W6T@vgyO$TgWvPslhu zJ>BGvFeN3$D2UT9wO!c-2M2E;RvddB6cm(&J}nRg`1!DUaA;_#J})n?kc`&W*6f~w z$XoI8@o`6>)z;Ql1O^7iqc4Qr?IQ^Y2vDQmrd_^#`AagIo}RXO6Tw=o)=2K&OZ?8A zJDVKcH{^2p2j~ms)bf#Ff5Y^8{ZZ7~8Zw%koV0nHJ||9`FbS!%u(0sL`TfAafI}Du zN;}#qfQDkqhr?T=R;!O@W@c89(aOq-SHe5pO)Do4INRL6f8R{+tE;Q)Wir`E=nLN^ zERjf#VBjT`yZ^}0T`IW~brs!I17PDwDHNtJpz(@u7&_Ci&*x`nXGh4eva-_hHlhTo z>wKX6jrLg})!Ef*2q(qH#unh5y~V~`*!#E25W2>+0$@y%jAkE;d^% z7KiBQ=;#CV)c|?K?OZZNymTtyIv@+;=i$b0QLhID@u{gPOF=<_+1^cd)FbceJt|Pr3Z2#UW)pC9hbbpr%#_w3xu>9DucKZSqKjwKC}oa!!=;B zxw)ARh3h~maWUsB$KtMw06>R!GGHKatdM5?eS3TRA2TyEQ!m{-s9LkQG(13d^zuqc z)WBRWF9N%+J^)=)qIgeo*i|*CI?Xfzc;V-hCr|!<<;s9veooizpgD1ug<#0dV!Z literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_e.png b/data/interfaces/lossless/js/fancybox/fancy_shadow_e.png new file mode 100644 index 0000000000000000000000000000000000000000..2eda0893649371f8d92b92976d8542cdd1b601ed GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQbwLGjv*Y^lSRZuwe#}JO|p{EaWGAM`~zK|Yh zF7SQ+m+Ig>B0@o-N8?trihfzZ+Vp1~`{zf0o*#X0$hUAi%N$P)W1wCJ22WQ%mvv4F FO#q)zAp-ya literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_ne.png b/data/interfaces/lossless/js/fancybox/fancy_shadow_ne.png new file mode 100644 index 0000000000000000000000000000000000000000..79f6980a3ba5c43de120d963dbba2516b8f27ac7 GIT binary patch literal 347 zcmV-h0i^zkP)dR9Yb&V8f!h)aDezHAsc|y@|hdQ zYJb}?8~~zFbQ)ku!Ey)KSukutuvdZ@MKMX|x|A3tPyx?YVhN^6z!Mi4Mj2f#%<;nh z2{>?YAzu|{u^;Oq!;f7Z4tPBpJEmZ+^GZ#$=9nz(K+UmK7}|u&EPi%aRt_C3qOFB_ zHc`~N>51%{?ijG?xsHt>MwRChgk=x_z0gh3O2xSL)-6?+2LKZL74~Q>MZjWtwukkA tvjRC=&j+0R$&bLyT7MhBcTXDISHC&xXU0&5CWHV0002ovPDHLkV1fX+la~Mh literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_nw.png b/data/interfaces/lossless/js/fancybox/fancy_shadow_nw.png new file mode 100644 index 0000000000000000000000000000000000000000..7182cd938ae98e7e28c65a0bc55df576042ff9f5 GIT binary patch literal 324 zcmV-K0lWT*P)2-&4CO{qhKP$XKD&mgeXEM77>~`RA}h@U^Z##eQZVtM>a-K?QT4 z&(8BFf(rD5V61)2I__wHYuRwoaDIqw5Vdr_JSDVr){#J@r;{vbDL|tRyCiirf~4OF zX-l=Ecm>@yR)1nSMt~dy90Zb`^`)TQbhf8jR@fA!l6V$musRyB9Y{p$SCW}!$3==V zk)fW)Xo{s^ez$t+XhmZj;ts)!kTokvmM>z)zt70000 literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_se.png b/data/interfaces/lossless/js/fancybox/fancy_shadow_se.png new file mode 100644 index 0000000000000000000000000000000000000000..541e3ffd3e88224b34a4d2097c66a780e6060aeb GIT binary patch literal 352 zcmV-m0iXVfP){pM9=`y8<_IvWD02WY@RZ<9dgjNmAB|sYF}Xw>7Sq@O0000eMf9z;FC21=)67q_`W0*0KnS4AR00W2`RGn3i8UfsEegLO@ zPhds?2e1Tm)FK3=bymIAx?X=YFo3Mdh7W?@I#8s#svp!&PB> zwah@Ngd|l0N4SCfzvjtQnd$dZ0yM)N$X+lqdtN!Pt{Wn*_`0U}m1^#r1 mwpaW{;a?9KKt^WrpTAEd?0j1W(3L*`0000P{ho=rRL|66mGO)=r*Hk83F#~lnc)I$ztaD0e0sy?& B8X5oq literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_title_left.png b/data/interfaces/lossless/js/fancybox/fancy_title_left.png new file mode 100644 index 0000000000000000000000000000000000000000..6049223d1ec6af46e100499c01f6489c9e2c6240 GIT binary patch literal 503 zcmV+)0005LNklqcp9&~$uJw{{rUub~E?-XJ#Upm4Fe%-Gl z!u%tb0N102a|s5;SPlQvJlFCTBbvYaK@wIW6Gjx@?i20AlVDJcHNfh25WRlbF6CIq zv9_ZnqOH`}ppaUR0@%ZcM9zpDt2uQM>f+Z#wIMmyuui3DeoYXWE|hQ{D$te=Yhgkq zIvyj+$t8T|S1wITzUftNOe(E+Qjn$kDotY;I5}1lRgwi=?K26ke)djLR5W2|!7CVH zJ-`tuAq|`lK978y+CnqGNCkUke_%Gig ukvFM-ftpWh!il7Wg7kz7Y?7xB@G*olNlgoj4E_Yv!rmdKI;Vst0Ha3^zyJUM literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancy_title_right.png b/data/interfaces/lossless/js/fancybox/fancy_title_right.png new file mode 100644 index 0000000000000000000000000000000000000000..e36d9db2a7c6e570aec993d3665cbc13620115e2 GIT binary patch literal 506 zcmV+)0005ONklxjQB-g>5=x46nGBwseihc$zfzvTFh(=tCRj6cJ4M&ASrCAq-HbokPnRBAHVa2(-|l wYU(UxfYLN;KDSr z1<%~X^wgl##FWaylc_d9MY*0Xjv*Ddw)7kFH5l+P-xcE$W)3=fYI&uMKVzWNT*W|n zhqlRY)q0r(8Mg&Fu_zpISivgz+b7g)c6G&O{~njE??Y{u-MM!p^=9_W+X-j8mhfK? zj`H2Yy;kp%)!V-M3;EVThyB(Z@o88wpMja-vy^g)SgE!<&|(HpS3j3^P6|6H_V+Po~-c6$N>^IEGZ*^681?Yf#{6Zf~e!I`r4y-J+3m*Ue*gH=cNZ zzpU%p61aCO%jt%FHUKW&bEWLcUAGzK?;SYE)E{9#W9O8@uj{O@89qzNU(dkI YVCW(7-@(*!CeU;SPgg&ebxsLQ07`N|KL7v# literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/fancybox.png b/data/interfaces/lossless/js/fancybox/fancybox.png new file mode 100644 index 0000000000000000000000000000000000000000..65e14f68fd83b87f75c22c0c074e7b20bf20a133 GIT binary patch literal 15287 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 ZMt7F5hocMxav&E)U0Fw|QQ>vO{{ZOG+C=~W literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/js/fancybox/jquery.easing-1.3.pack.js b/data/interfaces/lossless/js/fancybox/jquery.easing-1.3.pack.js new file mode 100644 index 00000000..9028179e --- /dev/null +++ b/data/interfaces/lossless/js/fancybox/jquery.easing-1.3.pack.js @@ -0,0 +1,72 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written 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. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t')[0], { prop: 0 }), + + isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest, + + /* + * Private methods + */ + + _abort = function() { + loading.hide(); + + imgPreloader.onerror = imgPreloader.onload = null; + + if (ajaxLoader) { + ajaxLoader.abort(); + } + + tmp.empty(); + }, + + _error = function() { + if (false === selectedOpts.onError(selectedArray, selectedIndex, selectedOpts)) { + loading.hide(); + busy = false; + return; + } + + selectedOpts.titleShow = false; + + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + + tmp.html( '

The requested content cannot be loaded.
Please try again later.

' ); + + _process_inline(); + }, + + _start = function() { + var obj = selectedArray[ selectedIndex ], + href, + type, + title, + str, + emb, + ret; + + _abort(); + + selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox'))); + + ret = selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts); + + if (ret === false) { + busy = false; + return; + } else if (typeof ret == 'object') { + selectedOpts = $.extend(selectedOpts, ret); + } + + title = selectedOpts.title || (obj.nodeName ? $(obj).attr('title') : obj.title) || ''; + + if (obj.nodeName && !selectedOpts.orig) { + selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj); + } + + if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) { + title = selectedOpts.orig.attr('alt'); + } + + href = selectedOpts.href || (obj.nodeName ? $(obj).attr('href') : obj.href) || null; + + if ((/^(?:javascript)/i).test(href) || href == '#') { + href = null; + } + + if (selectedOpts.type) { + type = selectedOpts.type; + + if (!href) { + href = selectedOpts.content; + } + + } else if (selectedOpts.content) { + type = 'html'; + + } else if (href) { + if (href.match(imgRegExp)) { + type = 'image'; + + } else if (href.match(swfRegExp)) { + type = 'swf'; + + } else if ($(obj).hasClass("iframe")) { + type = 'iframe'; + + } else if (href.indexOf("#") === 0) { + type = 'inline'; + + } else { + type = 'ajax'; + } + } + + if (!type) { + _error(); + return; + } + + if (type == 'inline') { + obj = href.substr(href.indexOf("#")); + type = $(obj).length > 0 ? 'inline' : 'ajax'; + } + + selectedOpts.type = type; + selectedOpts.href = href; + selectedOpts.title = title; + + if (selectedOpts.autoDimensions) { + if (selectedOpts.type == 'html' || selectedOpts.type == 'inline' || selectedOpts.type == 'ajax') { + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + } else { + selectedOpts.autoDimensions = false; + } + } + + if (selectedOpts.modal) { + selectedOpts.overlayShow = true; + selectedOpts.hideOnOverlayClick = false; + selectedOpts.hideOnContentClick = false; + selectedOpts.enableEscapeButton = false; + selectedOpts.showCloseButton = false; + } + + selectedOpts.padding = parseInt(selectedOpts.padding, 10); + selectedOpts.margin = parseInt(selectedOpts.margin, 10); + + tmp.css('padding', (selectedOpts.padding + selectedOpts.margin)); + + $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() { + $(this).replaceWith(content.children()); + }); + + switch (type) { + case 'html' : + tmp.html( selectedOpts.content ); + _process_inline(); + break; + + case 'inline' : + if ( $(obj).parent().is('#fancybox-content') === true) { + busy = false; + return; + } + + $('
").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.fade.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.fold.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.highlight.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.pulsate.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery); \ No newline at end of file diff --git a/data/interfaces/lossless/js/libs/jquery.dataTables.min.js b/data/interfaces/lossless/js/libs/jquery.dataTables.min.js new file mode 100644 index 00000000..d3715ffd --- /dev/null +++ b/data/interfaces/lossless/js/libs/jquery.dataTables.min.js @@ -0,0 +1,648 @@ +/* +* File: jquery.dataTables.min.js +* Version: 1.8.1 +* Author: Allan Jardine (www.sprymedia.co.uk) +* Info: www.datatables.net +* +* Copyright 2008-2011 Allan Jardine, all rights reserved. +* +* This source file is free software, under either the GPL v2 license or a +* BSD style license, as supplied with this software. +* +* This source file is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. +*/ +(function (i, wa, p) { + i.fn.dataTableSettings = []; + var D = i.fn.dataTableSettings; i.fn.dataTableExt = {}; + var o = i.fn.dataTableExt; + o.sVersion = "1.8.1"; + o.sErrMode = "alert"; + o.iApiIndex = 0; o.oApi = {}; + o.afnFiltering = []; + o.aoFeatures = []; + o.ofnSearch = {}; + o.afnSortData = []; + o.oStdClasses = { + sPagePrevEnabled: "paginate_enabled_previous", + sPagePrevDisabled: "paginate_disabled_previous", + sPageNextEnabled: "paginate_enabled_next", + sPageNextDisabled: "paginate_disabled_next", + sPageJUINext: "", sPageJUIPrev: "", + sPageButton: "paginate_button", + sPageButtonActive: "paginate_active", + sPageButtonStaticDisabled: "paginate_button paginate_button_disabled", + sPageFirst: "first", + sPagePrevious: "previous", + sPageNext: "next", + sPageLast: "last", + sStripOdd: "odd", + sStripEven: "even", + sRowEmpty: "dataTables_empty", + sWrapper: "dataTables_wrapper", + sFilter: "dataTables_filter", + sInfo: "dataTables_info", + sPaging: "dataTables_paginate paging_", + sLength: "dataTables_length", + sProcessing: "dataTables_processing", + sSortAsc: "sorting_asc", + sSortDesc: "sorting_desc", + sSortable: "sorting", + sSortableAsc: "sorting_asc_disabled", + sSortableDesc: "sorting_desc_disabled", + sSortableNone: "sorting_disabled", + sSortColumn: "sorting_", + sSortJUIAsc: "", + sSortJUIDesc: "", + sSortJUI: "", + sSortJUIAscAllowed: "", + sSortJUIDescAllowed: "", sSortJUIWrapper: "", sSortIcon: "", sScrollWrapper: "dataTables_scroll", + sScrollHead: "dataTables_scrollHead", + sScrollHeadInner: "dataTables_scrollHeadInner", + sScrollBody: "dataTables_scrollBody", + sScrollFoot: "dataTables_scrollFoot", + sScrollFootInner: "dataTables_scrollFootInner", + sFooterTH: "" + }; o.oJUIClasses = { sPagePrevEnabled: "fg-button ui-button ui-state-default ui-corner-left", + sPagePrevDisabled: "fg-button ui-button ui-state-default ui-corner-left ui-state-disabled", + sPageNextEnabled: "fg-button ui-button ui-state-default ui-corner-right", + sPageNextDisabled: "fg-button ui-button ui-state-default ui-corner-right ui-state-disabled", + sPageJUINext: "ui-icon ui-icon-circle-arrow-e", + sPageJUIPrev: "ui-icon ui-icon-circle-arrow-w", + sPageButton: "fg-button ui-button ui-state-default", + sPageButtonActive: "fg-button ui-button ui-state-default ui-state-disabled", + sPageButtonStaticDisabled: "fg-button ui-button ui-state-default ui-state-disabled", + sPageFirst: "first ui-corner-tl ui-corner-bl", + sPagePrevious: "previous", + sPageNext: "next", + sPageLast: "last ui-corner-tr ui-corner-br", + sStripOdd: "odd", + sStripEven: "even", + sRowEmpty: "dataTables_empty", + sWrapper: "dataTables_wrapper", + sFilter: "dataTables_filter", + sInfo: "dataTables_info", + sPaging: "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_", + sLength: "dataTables_length", + sProcessing: "dataTables_processing", + sSortAsc: "ui-state-default", + sSortDesc: "ui-state-default", + sSortable: "ui-state-default", + sSortableAsc: "ui-state-default", + sSortableDesc: "ui-state-default", + sSortableNone: "ui-state-default", + sSortColumn: "sorting_", + sSortJUIAsc: "css_right ui-icon ui-icon-triangle-1-n", + sSortJUIDesc: "css_right ui-icon ui-icon-triangle-1-s", + sSortJUI: "css_right ui-icon ui-icon-carat-2-n-s", + sSortJUIAscAllowed: "css_right ui-icon ui-icon-carat-1-n", + sSortJUIDescAllowed: "css_right ui-icon ui-icon-carat-1-s", + sSortJUIWrapper: "DataTables_sort_wrapper", + sSortIcon: "DataTables_sort_icon", + sScrollWrapper: "dataTables_scroll", + sScrollHead: "dataTables_scrollHead ui-state-default", + sScrollHeadInner: "dataTables_scrollHeadInner", + sScrollBody: "dataTables_scrollBody", + sScrollFoot: "dataTables_scrollFoot ui-state-default", + sScrollFootInner: "dataTables_scrollFootInner", + sFooterTH: "ui-state-default" + }; o.oPagination = { two_button: { fnInit: function (g, l, r) { + var s, w, y; if (g.bJUI) { + s = p.createElement("a"); w = p.createElement("a"); y = p.createElement("span"); y.className = g.oClasses.sPageJUINext; w.appendChild(y); y = p.createElement("span"); y.className = g.oClasses.sPageJUIPrev; + s.appendChild(y) + } + else { s = p.createElement("div"); w = p.createElement("div") } s.className = g.oClasses.sPagePrevDisabled; w.className = g.oClasses.sPageNextDisabled; s.title = g.oLanguage.oPaginate.sPrevious; w.title = g.oLanguage.oPaginate.sNext; l.appendChild(s); l.appendChild(w); i(s).bind("click.DT", function () { g.oApi._fnPageChange(g, "previous") && r(g) }); i(w).bind("click.DT", function () { g.oApi._fnPageChange(g, "next") && r(g) }); i(s).bind("selectstart.DT", function () { return false }); i(w).bind("selectstart.DT", function () { return false }); + + if (g.sTableId !== "" && typeof g.aanFeatures.p == "undefined") { + l.setAttribute("id", g.sTableId + "_paginate"); + s.setAttribute("id", g.sTableId + "_previous"); + w.setAttribute("id", g.sTableId + "_next") + } + }, fnUpdate: function (g) { + if (g.aanFeatures.p) for (var l = g.aanFeatures.p, r = 0, s = l.length; r < s; r++) + if (l[r].childNodes.length !== 0) { + l[r].childNodes[0].className = g._iDisplayStart === 0 ? g.oClasses.sPagePrevDisabled : g.oClasses.sPagePrevEnabled; l[r].childNodes[1].className = g.fnDisplayEnd() == g.fnRecordsDisplay() ? g.oClasses.sPageNextDisabled : +g.oClasses.sPageNextEnabled + } + } + }, iFullNumbersShowPages: 5, full_numbers: { fnInit: function (g, l, r) { + var s = p.createElement("span"), w = p.createElement("span"), y = p.createElement("span"), G = p.createElement("span"), x = p.createElement("span"); s.innerHTML = g.oLanguage.oPaginate.sFirst; w.innerHTML = g.oLanguage.oPaginate.sPrevious; G.innerHTML = g.oLanguage.oPaginate.sNext; x.innerHTML = g.oLanguage.oPaginate.sLast; var v = g.oClasses; s.className = v.sPageButton + " " + v.sPageFirst; w.className = v.sPageButton + " " + v.sPagePrevious; G.className = +v.sPageButton + " " + v.sPageNext; x.className = v.sPageButton + " " + v.sPageLast; l.appendChild(s); l.appendChild(w); l.appendChild(y); l.appendChild(G); l.appendChild(x); i(s).bind("click.DT", function () { g.oApi._fnPageChange(g, "first") && r(g) }); i(w).bind("click.DT", function () { g.oApi._fnPageChange(g, "previous") && r(g) }); i(G).bind("click.DT", function () { g.oApi._fnPageChange(g, "next") && r(g) }); i(x).bind("click.DT", function () { g.oApi._fnPageChange(g, "last") && r(g) }); i("span", l).bind("mousedown.DT", function () { return false }).bind("selectstart.DT", + +function () { return false }); if (g.sTableId !== "" && typeof g.aanFeatures.p == "undefined") { l.setAttribute("id", g.sTableId + "_paginate"); s.setAttribute("id", g.sTableId + "_first"); w.setAttribute("id", g.sTableId + "_previous"); G.setAttribute("id", g.sTableId + "_next"); x.setAttribute("id", g.sTableId + "_last") } + }, fnUpdate: function (g, l) { + if (g.aanFeatures.p) { + var r = o.oPagination.iFullNumbersShowPages, s = Math.floor(r / 2), w = Math.ceil(g.fnRecordsDisplay() / g._iDisplayLength), y = Math.ceil(g._iDisplayStart / g._iDisplayLength) + 1, G = +"", x, v = g.oClasses; if (w < r) { s = 1; x = w } else if (y <= s) { s = 1; x = r } else if (y >= w - s) { s = w - r + 1; x = w } else { s = y - Math.ceil(r / 2) + 1; x = s + r - 1 } for (r = s; r <= x; r++) G += y != r ? '' + r + "" : '' + r + ""; x = g.aanFeatures.p; var z, Y = function (L) { g._iDisplayStart = (this.innerHTML * 1 - 1) * g._iDisplayLength; l(g); L.preventDefault() }, V = function () { return false }; r = 0; for (s = x.length; r < s; r++) if (x[r].childNodes.length !== 0) { + z = i("span:eq(2)", x[r]); z.html(G); i("span", z).bind("click.DT", +Y).bind("mousedown.DT", V).bind("selectstart.DT", V); z = x[r].getElementsByTagName("span"); z = [z[0], z[1], z[z.length - 2], z[z.length - 1]]; i(z).removeClass(v.sPageButton + " " + v.sPageButtonActive + " " + v.sPageButtonStaticDisabled); if (y == 1) { z[0].className += " " + v.sPageButtonStaticDisabled; z[1].className += " " + v.sPageButtonStaticDisabled } else { z[0].className += " " + v.sPageButton; z[1].className += " " + v.sPageButton } if (w === 0 || y == w || g._iDisplayLength == -1) { + z[2].className += " " + v.sPageButtonStaticDisabled; z[3].className += " " + +v.sPageButtonStaticDisabled + } else { z[2].className += " " + v.sPageButton; z[3].className += " " + v.sPageButton } + } + } + } + } + }; o.oSort = { "string-asc": function (g, l) { if (typeof g != "string") g = ""; if (typeof l != "string") l = ""; g = g.toLowerCase(); l = l.toLowerCase(); return g < l ? -1 : g > l ? 1 : 0 }, "string-desc": function (g, l) { if (typeof g != "string") g = ""; if (typeof l != "string") l = ""; g = g.toLowerCase(); l = l.toLowerCase(); return g < l ? 1 : g > l ? -1 : 0 }, "html-asc": function (g, l) { + g = g.replace(/<.*?>/g, "").toLowerCase(); l = l.replace(/<.*?>/g, "").toLowerCase(); return g < +l ? -1 : g > l ? 1 : 0 + }, "html-desc": function (g, l) { g = g.replace(/<.*?>/g, "").toLowerCase(); l = l.replace(/<.*?>/g, "").toLowerCase(); return g < l ? 1 : g > l ? -1 : 0 }, "date-asc": function (g, l) { g = Date.parse(g); l = Date.parse(l); if (isNaN(g) || g === "") g = Date.parse("01/01/1970 00:00:00"); if (isNaN(l) || l === "") l = Date.parse("01/01/1970 00:00:00"); return g - l }, "date-desc": function (g, l) { + g = Date.parse(g); l = Date.parse(l); if (isNaN(g) || g === "") g = Date.parse("01/01/1970 00:00:00"); if (isNaN(l) || l === "") l = Date.parse("01/01/1970 00:00:00"); return l - +g + }, "numeric-asc": function (g, l) { return (g == "-" || g === "" ? 0 : g * 1) - (l == "-" || l === "" ? 0 : l * 1) }, "numeric-desc": function (g, l) { return (l == "-" || l === "" ? 0 : l * 1) - (g == "-" || g === "" ? 0 : g * 1) } + }; o.aTypes = [function (g) { if (typeof g == "number") return "numeric"; else if (typeof g != "string") return null; var l, r = false; l = g.charAt(0); if ("0123456789-".indexOf(l) == -1) return null; for (var s = 1; s < g.length; s++) { l = g.charAt(s); if ("0123456789.".indexOf(l) == -1) return null; if (l == ".") { if (r) return null; r = true } } return "numeric" }, function (g) { + var l = Date.parse(g); + + if (l !== null && !isNaN(l) || typeof g == "string" && g.length === 0) return "date"; return null + }, function (g) { if (typeof g == "string" && g.indexOf("<") != -1 && g.indexOf(">") != -1) return "html"; return null } ]; o.fnVersionCheck = function (g) { var l = function (x, v) { for (; x.length < v; ) x += "0"; return x }, r = o.sVersion.split("."); g = g.split("."); for (var s = "", w = "", y = 0, G = g.length; y < G; y++) { s += l(r[y], 3); w += l(g[y], 3) } return parseInt(s, 10) >= parseInt(w, 10) }; o._oExternConfig = { iNextUnique: 0 }; i.fn.dataTable = function (g) { + function l() { + this.fnRecordsTotal = +function () { return this.oFeatures.bServerSide ? parseInt(this._iRecordsTotal, 10) : this.aiDisplayMaster.length }; this.fnRecordsDisplay = function () { return this.oFeatures.bServerSide ? parseInt(this._iRecordsDisplay, 10) : this.aiDisplay.length }; this.fnDisplayEnd = function () { return this.oFeatures.bServerSide ? this.oFeatures.bPaginate === false || this._iDisplayLength == -1 ? this._iDisplayStart + this.aiDisplay.length : Math.min(this._iDisplayStart + this._iDisplayLength, this._iRecordsDisplay) : this._iDisplayEnd }; this.sInstance = +this.oInstance = null; this.oFeatures = { bPaginate: true, bLengthChange: true, bFilter: true, bSort: true, bInfo: true, bAutoWidth: true, bProcessing: false, bSortClasses: true, bStateSave: false, bServerSide: false, bDeferRender: false }; this.oScroll = { sX: "", sXInner: "", sY: "", bCollapse: false, bInfinite: false, iLoadGap: 100, iBarWidth: 0, bAutoCss: true }; this.aanFeatures = []; + this.oLanguage = { sProcessing: "Processing...", sLengthMenu: "Show _MENU_ artists per page", sZeroRecords: "No matching records found", sEmptyTable: "", + sLoadingRecords: "Loading...", sInfo: "Showing _START_ to _END_ of _TOTAL_ artists", sInfoEmpty: "Showing 0 to 0 of 0 artists", sInfoFiltered: "(filtered from _MAX_ total artists)", sInfoPostFix: "", sSearch: "Filter:", sUrl: "", oPaginate: { sFirst: "First", sPrevious: "Previous", sNext: "Next", sLast: "Last" }, fnInfoCallback: null + }; this.aoData = []; this.aiDisplay = []; this.aiDisplayMaster = []; this.aoColumns = []; this.aoHeader = []; this.aoFooter = []; this.iNextId = 0; this.asDataSearch = []; this.oPreviousSearch = { sSearch: "", bRegex: false, + bSmart: true + }; this.aoPreSearchCols = []; this.aaSorting = [[0, "asc", 0]]; this.aaSortingFixed = null; this.asStripClasses = []; this.asDestoryStrips = []; this.sDestroyWidth = 0; this.fnFooterCallback = this.fnHeaderCallback = this.fnRowCallback = null; this.aoDrawCallback = []; this.fnInitComplete = this.fnPreDrawCallback = null; this.sTableId = ""; this.nTableWrapper = this.nTBody = this.nTFoot = this.nTHead = this.nTable = null; this.bInitialised = this.bDeferLoading = false; this.aoOpenRows = []; this.sDom = "lfrtip"; this.sPaginationType = "two_button"; + this.iCookieDuration = 7200; this.sCookiePrefix = "SpryMedia_DataTables_"; this.fnCookieCallback = null; this.aoStateSave = []; this.aoStateLoad = []; this.sAjaxSource = this.oLoadedState = null; this.sAjaxDataProp = "aaData"; this.bAjaxDataGet = true; this.jqXHR = null; this.fnServerData = function (a, b, c, d) { d.jqXHR = i.ajax({ url: a, data: b, success: c, dataType: "json", cache: false, error: function (f, e) { e == "parsererror" && alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.") } }) }; + this.fnFormatNumber = function (a) { if (a < 1E3) return a; else { var b = a + ""; a = b.split(""); var c = ""; b = b.length; for (var d = 0; d < b; d++) { if (d % 3 === 0 && d !== 0) c = "," + c; c = a[b - d - 1] + c } } return c }; this.aLengthMenu = [10, 25, 50, 100]; this.bDrawing = this.iDraw = 0; this.iDrawError = -1; this._iDisplayLength = 10; this._iDisplayStart = 0; this._iDisplayEnd = 10; this._iRecordsDisplay = this._iRecordsTotal = 0; this.bJUI = false; this.oClasses = o.oStdClasses; this.bSortCellsTop = this.bSorted = this.bFiltered = false; this.oInit = null + } function r(a) { + return function () { + var b = +[A(this[o.iApiIndex])].concat(Array.prototype.slice.call(arguments)); return o.oApi[a].apply(this, b) + } + } function s(a) { + var b, c, d = a.iInitDisplayStart; if (a.bInitialised === false) setTimeout(function () { s(a) }, 200); else { + xa(a); V(a); L(a, a.aoHeader); a.nTFoot && L(a, a.aoFooter); + K(a, true); a.oFeatures.bAutoWidth && ea(a); + b = 0; for (c = a.aoColumns.length; b < c; b++) + if (a.aoColumns[b].sWidth !== null) a.aoColumns[b].nTh.style.width = u(a.aoColumns[b].sWidth); + if (a.oFeatures.bSort) R(a); + else if (a.oFeatures.bFilter) M(a, a.oPreviousSearch); + else { a.aiDisplay = a.aiDisplayMaster.slice(); E(a); C(a) } if (a.sAjaxSource !== null && !a.oFeatures.bServerSide) a.fnServerData.call(a.oInstance, a.sAjaxSource, [], function (f) { var e = f; if (a.sAjaxDataProp !== "") e = Z(a.sAjaxDataProp)(f); for (b = 0; b < e.length; b++) v(a, e[b]); a.iInitDisplayStart = d; if (a.oFeatures.bSort) R(a); else { a.aiDisplay = a.aiDisplayMaster.slice(); E(a); C(a) } K(a, false); w(a, f) }, a); else if (!a.oFeatures.bServerSide) { K(a, false); w(a) } + } + } function w(a, b) { + a._bInitComplete = true; if (typeof a.fnInitComplete == "function") typeof b != +"undefined" ? a.fnInitComplete.call(a.oInstance, a, b) : a.fnInitComplete.call(a.oInstance, a) + } function y(a, b, c) { + n(a.oLanguage, b, "sProcessing"); n(a.oLanguage, b, "sLengthMenu"); n(a.oLanguage, b, "sEmptyTable"); n(a.oLanguage, b, "sLoadingRecords"); n(a.oLanguage, b, "sZeroRecords"); n(a.oLanguage, b, "sInfo"); n(a.oLanguage, b, "sInfoEmpty"); n(a.oLanguage, b, "sInfoFiltered"); n(a.oLanguage, b, "sInfoPostFix"); n(a.oLanguage, b, "sSearch"); if (typeof b.oPaginate != "undefined") { + n(a.oLanguage.oPaginate, b.oPaginate, "sFirst"); n(a.oLanguage.oPaginate, +b.oPaginate, "sPrevious"); n(a.oLanguage.oPaginate, b.oPaginate, "sNext"); n(a.oLanguage.oPaginate, b.oPaginate, "sLast") + } typeof b.sEmptyTable == "undefined" && typeof b.sZeroRecords != "undefined" && n(a.oLanguage, b, "sZeroRecords", "sEmptyTable"); typeof b.sLoadingRecords == "undefined" && typeof b.sZeroRecords != "undefined" && n(a.oLanguage, b, "sZeroRecords", "sLoadingRecords"); c && s(a) + } function G(a, b) { + var c = a.aoColumns.length; b = { sType: null, _bAutoType: true, bVisible: true, bSearchable: true, bSortable: true, asSorting: ["asc", "desc"], + sSortingClass: a.oClasses.sSortable, sSortingClassJUI: a.oClasses.sSortJUI, sTitle: b ? b.innerHTML : "", sName: "", sWidth: null, sWidthOrig: null, sClass: null, fnRender: null, bUseRendered: true, iDataSort: c, mDataProp: c, fnGetData: null, fnSetData: null, sSortDataType: "std", sDefaultContent: null, sContentPadding: "", nTh: b ? b : p.createElement("th"), nTf: null + }; a.aoColumns.push(b); if (typeof a.aoPreSearchCols[c] == "undefined" || a.aoPreSearchCols[c] === null) a.aoPreSearchCols[c] = { sSearch: "", bRegex: false, bSmart: true }; else { + if (typeof a.aoPreSearchCols[c].bRegex == +"undefined") a.aoPreSearchCols[c].bRegex = true; if (typeof a.aoPreSearchCols[c].bSmart == "undefined") a.aoPreSearchCols[c].bSmart = true + } x(a, c, null) + } function x(a, b, c) { + b = a.aoColumns[b]; if (typeof c != "undefined" && c !== null) { + if (typeof c.sType != "undefined") { b.sType = c.sType; b._bAutoType = false } n(b, c, "bVisible"); n(b, c, "bSearchable"); n(b, c, "bSortable"); n(b, c, "sTitle"); n(b, c, "sName"); n(b, c, "sWidth"); n(b, c, "sWidth", "sWidthOrig"); n(b, c, "sClass"); n(b, c, "fnRender"); n(b, c, "bUseRendered"); n(b, c, "iDataSort"); n(b, c, "mDataProp"); + n(b, c, "asSorting"); n(b, c, "sSortDataType"); n(b, c, "sDefaultContent"); n(b, c, "sContentPadding") + } b.fnGetData = Z(b.mDataProp); b.fnSetData = ya(b.mDataProp); if (!a.oFeatures.bSort) b.bSortable = false; if (!b.bSortable || i.inArray("asc", b.asSorting) == -1 && i.inArray("desc", b.asSorting) == -1) { b.sSortingClass = a.oClasses.sSortableNone; b.sSortingClassJUI = "" } else if (b.bSortable || i.inArray("asc", b.asSorting) == -1 && i.inArray("desc", b.asSorting) == -1) { b.sSortingClass = a.oClasses.sSortable; b.sSortingClassJUI = a.oClasses.sSortJUI } else if (i.inArray("asc", +b.asSorting) != -1 && i.inArray("desc", b.asSorting) == -1) { b.sSortingClass = a.oClasses.sSortableAsc; b.sSortingClassJUI = a.oClasses.sSortJUIAscAllowed } else if (i.inArray("asc", b.asSorting) == -1 && i.inArray("desc", b.asSorting) != -1) { b.sSortingClass = a.oClasses.sSortableDesc; b.sSortingClassJUI = a.oClasses.sSortJUIDescAllowed } + } function v(a, b) { + var c; c = typeof b.length == "number" ? b.slice() : i.extend(true, {}, b); b = a.aoData.length; var d = { nTr: null, _iId: a.iNextId++, _aData: c, _anHidden: [], _sRowStripe: "" }; a.aoData.push(d); for (var f, +e = 0, h = a.aoColumns.length; e < h; e++) { c = a.aoColumns[e]; typeof c.fnRender == "function" && c.bUseRendered && c.mDataProp !== null && N(a, b, e, c.fnRender({ iDataRow: b, iDataColumn: e, aData: d._aData, oSettings: a })); if (c._bAutoType && c.sType != "string") { f = H(a, b, e, "type"); if (f !== null && f !== "") { f = fa(f); if (c.sType === null) c.sType = f; else if (c.sType != f) c.sType = "string" } } } a.aiDisplayMaster.push(b); a.oFeatures.bDeferRender || z(a, b); return b + } function z(a, b) { + var c = a.aoData[b], d; if (c.nTr === null) { + c.nTr = p.createElement("tr"); typeof c._aData.DT_RowId != +"undefined" && c.nTr.setAttribute("id", c._aData.DT_RowId); typeof c._aData.DT_RowClass != "undefined" && i(c.nTr).addClass(c._aData.DT_RowClass); for (var f = 0, e = a.aoColumns.length; f < e; f++) { + var h = a.aoColumns[f]; d = p.createElement("td"); d.innerHTML = typeof h.fnRender == "function" && (!h.bUseRendered || h.mDataProp === null) ? h.fnRender({ iDataRow: b, iDataColumn: f, aData: c._aData, oSettings: a }) : H(a, b, f, "display"); if (h.sClass !== null) d.className = h.sClass; if (h.bVisible) { c.nTr.appendChild(d); c._anHidden[f] = null } else c._anHidden[f] = +d + } + } + } function Y(a) { + var b, c, d, f, e, h, j, k, m; if (a.bDeferLoading || a.sAjaxSource === null) { j = a.nTBody.childNodes; b = 0; for (c = j.length; b < c; b++) if (j[b].nodeName.toUpperCase() == "TR") { k = a.aoData.length; a.aoData.push({ nTr: j[b], _iId: a.iNextId++, _aData: [], _anHidden: [], _sRowStripe: "" }); a.aiDisplayMaster.push(k); h = j[b].childNodes; d = e = 0; for (f = h.length; d < f; d++) { m = h[d].nodeName.toUpperCase(); if (m == "TD" || m == "TH") { N(a, k, e, i.trim(h[d].innerHTML)); e++ } } } } j = $(a); h = []; b = 0; for (c = j.length; b < c; b++) { + d = 0; for (f = j[b].childNodes.length; d < +f; d++) { e = j[b].childNodes[d]; m = e.nodeName.toUpperCase(); if (m == "TD" || m == "TH") h.push(e) } + } h.length != j.length * a.aoColumns.length && J(a, 1, "Unexpected number of TD elements. Expected " + j.length * a.aoColumns.length + " and got " + h.length + ". DataTables does not support rowspan / colspan in the table body, and there must be one cell for each row/column combination."); d = 0; for (f = a.aoColumns.length; d < f; d++) { + if (a.aoColumns[d].sTitle === null) a.aoColumns[d].sTitle = a.aoColumns[d].nTh.innerHTML; j = a.aoColumns[d]._bAutoType; + m = typeof a.aoColumns[d].fnRender == "function"; e = a.aoColumns[d].sClass !== null; k = a.aoColumns[d].bVisible; var t, q; if (j || m || e || !k) { + b = 0; for (c = a.aoData.length; b < c; b++) { + t = h[b * f + d]; if (j && a.aoColumns[d].sType != "string") { q = H(a, b, d, "type"); if (q !== "") { q = fa(q); if (a.aoColumns[d].sType === null) a.aoColumns[d].sType = q; else if (a.aoColumns[d].sType != q) a.aoColumns[d].sType = "string" } } if (m) { + q = a.aoColumns[d].fnRender({ iDataRow: b, iDataColumn: d, aData: a.aoData[b]._aData, oSettings: a }); t.innerHTML = q; a.aoColumns[d].bUseRendered && +N(a, b, d, q) + } if (e) t.className += " " + a.aoColumns[d].sClass; if (k) a.aoData[b]._anHidden[d] = null; else { a.aoData[b]._anHidden[d] = t; t.parentNode.removeChild(t) } + } + } + } + } function V(a) { + var b, c, d; a.nTHead.getElementsByTagName("tr"); if (a.nTHead.getElementsByTagName("th").length !== 0) { b = 0; for (d = a.aoColumns.length; b < d; b++) { c = a.aoColumns[b].nTh; a.aoColumns[b].sClass !== null && i(c).addClass(a.aoColumns[b].sClass); if (a.aoColumns[b].sTitle != c.innerHTML) c.innerHTML = a.aoColumns[b].sTitle } } else { + var f = p.createElement("tr"); b = 0; + for (d = a.aoColumns.length; b < d; b++) { c = a.aoColumns[b].nTh; c.innerHTML = a.aoColumns[b].sTitle; a.aoColumns[b].sClass !== null && i(c).addClass(a.aoColumns[b].sClass); f.appendChild(c) } i(a.nTHead).html("")[0].appendChild(f); W(a.aoHeader, a.nTHead) + } if (a.bJUI) { b = 0; for (d = a.aoColumns.length; b < d; b++) { c = a.aoColumns[b].nTh; f = p.createElement("div"); f.className = a.oClasses.sSortJUIWrapper; i(c).contents().appendTo(f); var e = p.createElement("span"); e.className = a.oClasses.sSortIcon; f.appendChild(e); c.appendChild(f) } } d = function () { + this.onselectstart = +function () { return false }; return false + }; if (a.oFeatures.bSort) for (b = 0; b < a.aoColumns.length; b++) if (a.aoColumns[b].bSortable !== false) { ga(a, a.aoColumns[b].nTh, b); i(a.aoColumns[b].nTh).bind("mousedown.DT", d) } else i(a.aoColumns[b].nTh).addClass(a.oClasses.sSortableNone); a.oClasses.sFooterTH !== "" && i(">tr>th", a.nTFoot).addClass(a.oClasses.sFooterTH); if (a.nTFoot !== null) { c = S(a, null, a.aoFooter); b = 0; for (d = a.aoColumns.length; b < d; b++) if (typeof c[b] != "undefined") a.aoColumns[b].nTf = c[b] } + } function L(a, b, c) { + var d, f, +e, h = [], j = [], k = a.aoColumns.length; if (typeof c == "undefined") c = false; d = 0; for (f = b.length; d < f; d++) { h[d] = b[d].slice(); h[d].nTr = b[d].nTr; for (e = k - 1; e >= 0; e--) !a.aoColumns[e].bVisible && !c && h[d].splice(e, 1); j.push([]) } d = 0; for (f = h.length; d < f; d++) { + if (h[d].nTr) { a = 0; for (e = h[d].nTr.childNodes.length; a < e; a++) h[d].nTr.removeChild(h[d].nTr.childNodes[0]) } e = 0; for (b = h[d].length; e < b; e++) { + k = c = 1; if (typeof j[d][e] == "undefined") { + h[d].nTr.appendChild(h[d][e].cell); for (j[d][e] = 1; typeof h[d + c] != "undefined" && h[d][e].cell == h[d + +c][e].cell; ) { j[d + c][e] = 1; c++ } for (; typeof h[d][e + k] != "undefined" && h[d][e].cell == h[d][e + k].cell; ) { for (a = 0; a < c; a++) j[d + a][e + k] = 1; k++ } h[d][e].cell.setAttribute("rowspan", c); h[d][e].cell.setAttribute("colspan", k) + } + } + } + } function C(a) { + var b, c, d = [], f = 0, e = false; b = a.asStripClasses.length; c = a.aoOpenRows.length; if (!(a.fnPreDrawCallback !== null && a.fnPreDrawCallback.call(a.oInstance, a) === false)) { + a.bDrawing = true; if (typeof a.iInitDisplayStart != "undefined" && a.iInitDisplayStart != -1) { + a._iDisplayStart = a.oFeatures.bServerSide ? +a.iInitDisplayStart : a.iInitDisplayStart >= a.fnRecordsDisplay() ? 0 : a.iInitDisplayStart; a.iInitDisplayStart = -1; E(a) + } if (a.bDeferLoading) { a.bDeferLoading = false; a.iDraw++ } else if (a.oFeatures.bServerSide) { if (!a.bDestroying && !za(a)) return } else a.iDraw++; if (a.aiDisplay.length !== 0) { + var h = a._iDisplayStart, j = a._iDisplayEnd; if (a.oFeatures.bServerSide) { h = 0; j = a.aoData.length } for (h = h; h < j; h++) { + var k = a.aoData[a.aiDisplay[h]]; k.nTr === null && z(a, a.aiDisplay[h]); var m = k.nTr; if (b !== 0) { + var t = a.asStripClasses[f % b]; if (k._sRowStripe != +t) { i(m).removeClass(k._sRowStripe).addClass(t); k._sRowStripe = t } + } if (typeof a.fnRowCallback == "function") { m = a.fnRowCallback.call(a.oInstance, m, a.aoData[a.aiDisplay[h]]._aData, f, h); if (!m && !e) { J(a, 0, "A node was not returned by fnRowCallback"); e = true } } d.push(m); f++; if (c !== 0) for (k = 0; k < c; k++) m == a.aoOpenRows[k].nParent && d.push(a.aoOpenRows[k].nTr) + } + } else { + d[0] = p.createElement("tr"); if (typeof a.asStripClasses[0] != "undefined") d[0].className = a.asStripClasses[0]; e = a.oLanguage.sZeroRecords.replace("_MAX_", a.fnFormatNumber(a.fnRecordsTotal())); + if (a.iDraw == 1 && a.sAjaxSource !== null && !a.oFeatures.bServerSide) e = a.oLanguage.sLoadingRecords; else if (typeof a.oLanguage.sEmptyTable != "undefined" && a.fnRecordsTotal() === 0) e = a.oLanguage.sEmptyTable; b = p.createElement("td"); b.setAttribute("valign", "top"); b.colSpan = X(a); b.className = a.oClasses.sRowEmpty; b.innerHTML = e; d[f].appendChild(b) + } typeof a.fnHeaderCallback == "function" && a.fnHeaderCallback.call(a.oInstance, i(">tr", a.nTHead)[0], aa(a), a._iDisplayStart, a.fnDisplayEnd(), a.aiDisplay); typeof a.fnFooterCallback == +"function" && a.fnFooterCallback.call(a.oInstance, i(">tr", a.nTFoot)[0], aa(a), a._iDisplayStart, a.fnDisplayEnd(), a.aiDisplay); f = p.createDocumentFragment(); b = p.createDocumentFragment(); if (a.nTBody) { e = a.nTBody.parentNode; b.appendChild(a.nTBody); if (!a.oScroll.bInfinite || !a._bInitComplete || a.bSorted || a.bFiltered) { c = a.nTBody.childNodes; for (b = c.length - 1; b >= 0; b--) c[b].parentNode.removeChild(c[b]) } b = 0; for (c = d.length; b < c; b++) f.appendChild(d[b]); a.nTBody.appendChild(f); e !== null && e.appendChild(a.nTBody) } for (b = a.aoDrawCallback.length - +1; b >= 0; b--) a.aoDrawCallback[b].fn.call(a.oInstance, a); a.bSorted = false; a.bFiltered = false; a.bDrawing = false; if (a.oFeatures.bServerSide) { K(a, false); typeof a._bInitComplete == "undefined" && w(a) } + } + } function ba(a) { if (a.oFeatures.bSort) R(a, a.oPreviousSearch); else if (a.oFeatures.bFilter) M(a, a.oPreviousSearch); else { E(a); C(a) } } function za(a) { + if (a.bAjaxDataGet) { + K(a, true); var b = a.aoColumns.length, c = [], d, f; a.iDraw++; c.push({ name: "sEcho", value: a.iDraw }); c.push({ name: "iColumns", value: b }); c.push({ name: "sColumns", value: ha(a) }); + c.push({ name: "iDisplayStart", value: a._iDisplayStart }); c.push({ name: "iDisplayLength", value: a.oFeatures.bPaginate !== false ? a._iDisplayLength : -1 }); for (f = 0; f < b; f++) { d = a.aoColumns[f].mDataProp; c.push({ name: "mDataProp_" + f, value: typeof d == "function" ? "function" : d }) } if (a.oFeatures.bFilter !== false) { + c.push({ name: "sSearch", value: a.oPreviousSearch.sSearch }); c.push({ name: "bRegex", value: a.oPreviousSearch.bRegex }); for (f = 0; f < b; f++) { + c.push({ name: "sSearch_" + f, value: a.aoPreSearchCols[f].sSearch }); c.push({ name: "bRegex_" + +f, value: a.aoPreSearchCols[f].bRegex + }); c.push({ name: "bSearchable_" + f, value: a.aoColumns[f].bSearchable }) + } + } if (a.oFeatures.bSort !== false) { + d = a.aaSortingFixed !== null ? a.aaSortingFixed.length : 0; var e = a.aaSorting.length; c.push({ name: "iSortingCols", value: d + e }); for (f = 0; f < d; f++) { c.push({ name: "iSortCol_" + f, value: a.aaSortingFixed[f][0] }); c.push({ name: "sSortDir_" + f, value: a.aaSortingFixed[f][1] }) } for (f = 0; f < e; f++) { c.push({ name: "iSortCol_" + (f + d), value: a.aaSorting[f][0] }); c.push({ name: "sSortDir_" + (f + d), value: a.aaSorting[f][1] }) } for (f = +0; f < b; f++) c.push({ name: "bSortable_" + f, value: a.aoColumns[f].bSortable }) + } a.fnServerData.call(a.oInstance, a.sAjaxSource, c, function (h) { Aa(a, h) }, a); return false + } else return true + } function Aa(a, b) { + if (typeof b.sEcho != "undefined") if (b.sEcho * 1 < a.iDraw) return; else a.iDraw = b.sEcho * 1; if (!a.oScroll.bInfinite || a.oScroll.bInfinite && (a.bSorted || a.bFiltered)) ia(a); a._iRecordsTotal = b.iTotalRecords; a._iRecordsDisplay = b.iTotalDisplayRecords; var c = ha(a); if (c = typeof b.sColumns != "undefined" && c !== "" && b.sColumns != c) var d = +Ba(a, b.sColumns); b = Z(a.sAjaxDataProp)(b); for (var f = 0, e = b.length; f < e; f++) if (c) { for (var h = [], j = 0, k = a.aoColumns.length; j < k; j++) h.push(b[f][d[j]]); v(a, h) } else v(a, b[f]); a.aiDisplay = a.aiDisplayMaster.slice(); a.bAjaxDataGet = false; C(a); a.bAjaxDataGet = true; K(a, false) + } function xa(a) { + var b = p.createElement("div"); a.nTable.parentNode.insertBefore(b, a.nTable); a.nTableWrapper = p.createElement("div"); a.nTableWrapper.className = a.oClasses.sWrapper; a.sTableId !== "" && a.nTableWrapper.setAttribute("id", a.sTableId + "_wrapper"); + a.nTableReinsertBefore = a.nTable.nextSibling; for (var c = a.nTableWrapper, d = a.sDom.split(""), f, e, h, j, k, m, t, q = 0; q < d.length; q++) { + e = 0; h = d[q]; if (h == "<") { + j = p.createElement("div"); k = d[q + 1]; if (k == "'" || k == '"') { + m = ""; for (t = 2; d[q + t] != k; ) { m += d[q + t]; t++ } if (m == "H") m = "fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"; else if (m == "F") m = "fg-toolbar ui-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"; if (m.indexOf(".") != -1) { + k = m.split("."); j.setAttribute("id", k[0].substr(1, +k[0].length - 1)); j.className = k[1] + } else if (m.charAt(0) == "#") j.setAttribute("id", m.substr(1, m.length - 1)); else j.className = m; q += t + } c.appendChild(j); c = j + } else if (h == ">") c = c.parentNode; else if (h == "l" && a.oFeatures.bPaginate && a.oFeatures.bLengthChange) { f = Ca(a); e = 1 } else if (h == "f" && a.oFeatures.bFilter) { f = Da(a); e = 1 } else if (h == "r" && a.oFeatures.bProcessing) { f = Ea(a); e = 1 } else if (h == "t") { f = Fa(a); e = 1 } else if (h == "i" && a.oFeatures.bInfo) { f = Ga(a); e = 1 } else if (h == "p" && a.oFeatures.bPaginate) { f = Ha(a); e = 1 } else if (o.aoFeatures.length !== +0) { j = o.aoFeatures; t = 0; for (k = j.length; t < k; t++) if (h == j[t].cFeature) { if (f = j[t].fnInit(a)) e = 1; break } } if (e == 1 && f !== null) { if (typeof a.aanFeatures[h] != "object") a.aanFeatures[h] = []; a.aanFeatures[h].push(f); c.appendChild(f) } + } b.parentNode.replaceChild(a.nTableWrapper, b) + } function Fa(a) { + if (a.oScroll.sX === "" && a.oScroll.sY === "") return a.nTable; var b = p.createElement("div"), c = p.createElement("div"), d = p.createElement("div"), f = p.createElement("div"), e = p.createElement("div"), h = p.createElement("div"), j = a.nTable.cloneNode(false), +k = a.nTable.cloneNode(false), m = a.nTable.getElementsByTagName("thead")[0], t = a.nTable.getElementsByTagName("tfoot").length === 0 ? null : a.nTable.getElementsByTagName("tfoot")[0], q = typeof g.bJQueryUI != "undefined" && g.bJQueryUI ? o.oJUIClasses : o.oStdClasses; c.appendChild(d); e.appendChild(h); f.appendChild(a.nTable); b.appendChild(c); b.appendChild(f); d.appendChild(j); j.appendChild(m); if (t !== null) { b.appendChild(e); h.appendChild(k); k.appendChild(t) } b.className = q.sScrollWrapper; c.className = q.sScrollHead; d.className = +q.sScrollHeadInner; f.className = q.sScrollBody; e.className = q.sScrollFoot; h.className = q.sScrollFootInner; if (a.oScroll.bAutoCss) { c.style.overflow = "hidden"; c.style.position = "relative"; e.style.overflow = "hidden"; f.style.overflow = "auto" } c.style.border = "0"; c.style.width = "100%"; e.style.border = "0"; d.style.width = "150%"; j.removeAttribute("id"); j.style.marginLeft = "0"; a.nTable.style.marginLeft = "0"; if (t !== null) { k.removeAttribute("id"); k.style.marginLeft = "0" } d = i(">caption", a.nTable); h = 0; for (k = d.length; h < k; h++) j.appendChild(d[h]); + if (a.oScroll.sX !== "") { c.style.width = u(a.oScroll.sX); f.style.width = u(a.oScroll.sX); if (t !== null) e.style.width = u(a.oScroll.sX); i(f).scroll(function () { c.scrollLeft = this.scrollLeft; if (t !== null) e.scrollLeft = this.scrollLeft }) } if (a.oScroll.sY !== "") f.style.height = u(a.oScroll.sY); a.aoDrawCallback.push({ fn: Ia, sName: "scrolling" }); a.oScroll.bInfinite && i(f).scroll(function () { + if (!a.bDrawing) if (i(this).scrollTop() + i(this).height() > i(a.nTable).height() - a.oScroll.iLoadGap) if (a.fnDisplayEnd() < a.fnRecordsDisplay()) { + ja(a, +"next"); E(a); C(a) + } + }); a.nScrollHead = c; a.nScrollFoot = e; return b + } function Ia(a) { + var b = a.nScrollHead.getElementsByTagName("div")[0], c = b.getElementsByTagName("table")[0], d = a.nTable.parentNode, f, e, h, j, k, m, t, q, I = []; h = a.nTable.getElementsByTagName("thead"); h.length > 0 && a.nTable.removeChild(h[0]); if (a.nTFoot !== null) { k = a.nTable.getElementsByTagName("tfoot"); k.length > 0 && a.nTable.removeChild(k[0]) } h = a.nTHead.cloneNode(true); a.nTable.insertBefore(h, a.nTable.childNodes[0]); if (a.nTFoot !== null) { + k = a.nTFoot.cloneNode(true); + a.nTable.insertBefore(k, a.nTable.childNodes[1]) + } if (a.oScroll.sX === "") { d.style.width = "100%"; b.parentNode.style.width = "100%" } var O = S(a, h); f = 0; for (e = O.length; f < e; f++) { t = Ja(a, f); O[f].style.width = a.aoColumns[t].sWidth } a.nTFoot !== null && P(function (B) { B.style.width = "" }, k.getElementsByTagName("tr")); f = i(a.nTable).outerWidth(); if (a.oScroll.sX === "") { a.nTable.style.width = "100%"; if (i.browser.msie && i.browser.version <= 7) a.nTable.style.width = u(i(a.nTable).outerWidth() - a.oScroll.iBarWidth) } else if (a.oScroll.sXInner !== +"") a.nTable.style.width = u(a.oScroll.sXInner); else if (f == i(d).width() && i(d).height() < i(a.nTable).height()) { a.nTable.style.width = u(f - a.oScroll.iBarWidth); if (i(a.nTable).outerWidth() > f - a.oScroll.iBarWidth) a.nTable.style.width = u(f) } else a.nTable.style.width = u(f); f = i(a.nTable).outerWidth(); if (a.oScroll.sX === "") { d.style.width = u(f + a.oScroll.iBarWidth); b.parentNode.style.width = u(f + a.oScroll.iBarWidth) } e = a.nTHead.getElementsByTagName("tr"); h = h.getElementsByTagName("tr"); P(function (B, F) { + m = B.style; m.paddingTop = +"0"; m.paddingBottom = "0"; m.borderTopWidth = "0"; m.borderBottomWidth = "0"; m.height = 0; q = i(B).width(); F.style.width = u(q); I.push(q) +}, h, e); i(h).height(0); if (a.nTFoot !== null) { j = k.getElementsByTagName("tr"); k = a.nTFoot.getElementsByTagName("tr"); P(function (B, F) { m = B.style; m.paddingTop = "0"; m.paddingBottom = "0"; m.borderTopWidth = "0"; m.borderBottomWidth = "0"; m.height = 0; q = i(B).width(); F.style.width = u(q); I.push(q) }, j, k); i(j).height(0) } P(function (B) { B.innerHTML = ""; B.style.width = u(I.shift()) }, h); a.nTFoot !== null && P(function (B) { + B.innerHTML = +""; B.style.width = u(I.shift()) +}, j); if (i(a.nTable).outerWidth() < f) if (a.oScroll.sX === "") J(a, 1, "The table cannot fit into the current element which will cause column misalignment. It is suggested that you enable x-scrolling or increase the width the table has in which to be drawn"); else a.oScroll.sXInner !== "" && J(a, 1, "The table cannot fit into the current element which will cause column misalignment. It is suggested that you increase the sScrollXInner property to allow it to draw in a larger area, or simply remove that parameter to allow automatic calculation"); + if (a.oScroll.sY === "") if (i.browser.msie && i.browser.version <= 7) d.style.height = u(a.nTable.offsetHeight + a.oScroll.iBarWidth); if (a.oScroll.sY !== "" && a.oScroll.bCollapse) { d.style.height = u(a.oScroll.sY); j = a.oScroll.sX !== "" && a.nTable.offsetWidth > d.offsetWidth ? a.oScroll.iBarWidth : 0; if (a.nTable.offsetHeight < d.offsetHeight) d.style.height = u(i(a.nTable).height() + j) } j = i(a.nTable).outerWidth(); c.style.width = u(j); b.style.width = u(j + a.oScroll.iBarWidth); if (a.nTFoot !== null) { + b = a.nScrollFoot.getElementsByTagName("div")[0]; + c = b.getElementsByTagName("table")[0]; b.style.width = u(a.nTable.offsetWidth + a.oScroll.iBarWidth); c.style.width = u(a.nTable.offsetWidth) + } if (a.bSorted || a.bFiltered) d.scrollTop = 0 + } + // sFilter + function ca(a) { if (a.oFeatures.bAutoWidth === false) return false; ea(a); for (var b = 0, c = a.aoColumns.length; b < c; b++) a.aoColumns[b].nTh.style.width = a.aoColumns[b].sWidth } function Da(a) { + var b = a.oLanguage.sSearch; + b = b.indexOf("_INPUT_") !== -1 ? b.replace("_INPUT_", '') : b === "" ? '' : b + ' '; + var c = p.createElement("div"); + c.className = a.oClasses.sFilter; + c.innerHTML = "
" + b + "
"; + a.sTableId !== "" && typeof a.aanFeatures.f == "undefined" && c.setAttribute("id", a.sTableId + "_filter"); + b = i("input", c); + b.val(a.oPreviousSearch.sSearch.replace('"', """)); + b.bind("keyup.DT", function () { + for (var d = a.aanFeatures.f, f = 0, e = d.length; + f < e; f++) + d[f] != this.parentNode && i("input", d[f]).val(this.value); + this.value != a.oPreviousSearch.sSearch && M(a, { + sSearch: this.value, bRegex: a.oPreviousSearch.bRegex, bSmart: a.oPreviousSearch.bSmart + }) + }); + b.bind("keypress.DT", function (d) { + if (d.keyCode == 13) return false + }); + return c + + } function M(a, b, c) { Ka(a, b.sSearch, c, b.bRegex, b.bSmart); for (b = 0; b < a.aoPreSearchCols.length; b++) La(a, a.aoPreSearchCols[b].sSearch, b, a.aoPreSearchCols[b].bRegex, a.aoPreSearchCols[b].bSmart); o.afnFiltering.length !== 0 && Ma(a); a.bFiltered = true; a._iDisplayStart = 0; E(a); C(a); ka(a, 0) } function Ma(a) { + for (var b = o.afnFiltering, c = 0, d = b.length; c < d; c++) for (var f = 0, e = 0, h = a.aiDisplay.length; e < h; e++) { + var j = a.aiDisplay[e - f]; + if (!b[c](a, da(a, j, "filter"), + j)) { + a.aiDisplay.splice(e - f, 1); f++ + } + } + } function La(a, b, c, d, f) { if (b !== "") { var e = 0; b = la(b, d, f); for (d = a.aiDisplay.length - 1; d >= 0; d--) { f = ma(H(a, a.aiDisplay[d], c, "filter"), a.aoColumns[c].sType); if (!b.test(f)) { a.aiDisplay.splice(d, 1); e++ } } } } function Ka(a, b, c, d, f) { + var e = la(b, d, f); if (typeof c == "undefined" || c === null) c = 0; if (o.afnFiltering.length !== 0) c = 1; if (b.length <= 0) { a.aiDisplay.splice(0, a.aiDisplay.length); a.aiDisplay = a.aiDisplayMaster.slice() } else if (a.aiDisplay.length == a.aiDisplayMaster.length || a.oPreviousSearch.sSearch.length > +b.length || c == 1 || b.indexOf(a.oPreviousSearch.sSearch) !== 0) { a.aiDisplay.splice(0, a.aiDisplay.length); ka(a, 1); for (c = 0; c < a.aiDisplayMaster.length; c++) e.test(a.asDataSearch[c]) && a.aiDisplay.push(a.aiDisplayMaster[c]) } else { var h = 0; for (c = 0; c < a.asDataSearch.length; c++) if (!e.test(a.asDataSearch[c])) { a.aiDisplay.splice(c - h, 1); h++ } } a.oPreviousSearch.sSearch = b; a.oPreviousSearch.bRegex = d; a.oPreviousSearch.bSmart = f + } function ka(a, b) { + a.asDataSearch.splice(0, a.asDataSearch.length); b = typeof b != "undefined" && b == 1 ? a.aiDisplayMaster : +a.aiDisplay; for (var c = 0, d = b.length; c < d; c++) a.asDataSearch[c] = na(a, da(a, b[c], "filter")) + } function na(a, b) { var c = ""; if (typeof a.__nTmpFilter == "undefined") a.__nTmpFilter = p.createElement("div"); for (var d = a.__nTmpFilter, f = 0, e = a.aoColumns.length; f < e; f++) if (a.aoColumns[f].bSearchable) c += ma(b[f], a.aoColumns[f].sType) + " "; if (c.indexOf("&") !== -1) { d.innerHTML = c; c = d.textContent ? d.textContent : d.innerText; c = c.replace(/\n/g, " ").replace(/\r/g, "") } return c } function la(a, b, c) { + if (c) { + a = b ? a.split(" ") : oa(a).split(" "); + a = "^(?=.*?" + a.join(")(?=.*?") + ").*$"; return new RegExp(a, "i") + } else { a = b ? a : oa(a); return new RegExp(a, "i") } + } function ma(a, b) { if (typeof o.ofnSearch[b] == "function") return o.ofnSearch[b](a); else if (b == "html") return a.replace(/\n/g, " ").replace(/<.*?>/g, ""); else if (typeof a == "string") return a.replace(/\n/g, " "); else if (a === null) return ""; return a } function R(a, b) { + var c, d, f, e, h = [], j = [], k = o.oSort; d = a.aoData; var m = a.aoColumns; if (!a.oFeatures.bServerSide && (a.aaSorting.length !== 0 || a.aaSortingFixed !== null)) { + h = a.aaSortingFixed !== +null ? a.aaSortingFixed.concat(a.aaSorting) : a.aaSorting.slice(); for (c = 0; c < h.length; c++) { var t = h[c][0]; f = pa(a, t); e = a.aoColumns[t].sSortDataType; if (typeof o.afnSortData[e] != "undefined") { var q = o.afnSortData[e](a, t, f); f = 0; for (e = d.length; f < e; f++) N(a, f, t, q[f]) } } c = 0; for (d = a.aiDisplayMaster.length; c < d; c++) j[a.aiDisplayMaster[c]] = c; var I = h.length; a.aiDisplayMaster.sort(function (O, B) { + var F, qa; for (c = 0; c < I; c++) { + F = m[h[c][0]].iDataSort; qa = m[F].sType; F = k[(qa ? qa : "string") + "-" + h[c][1]](H(a, O, F, "sort"), H(a, B, F, "sort")); + if (F !== 0) return F + } return k["numeric-asc"](j[O], j[B]) +}) + } if ((typeof b == "undefined" || b) && !a.oFeatures.bDeferRender) T(a); a.bSorted = true; if (a.oFeatures.bFilter) M(a, a.oPreviousSearch, 1); else { a.aiDisplay = a.aiDisplayMaster.slice(); a._iDisplayStart = 0; E(a); C(a) } + } function ga(a, b, c, d) { + i(b).bind("click.DT", function (f) { + if (a.aoColumns[c].bSortable !== false) { + var e = function () { + var h, j; if (f.shiftKey) { + for (var k = false, m = 0; m < a.aaSorting.length; m++) if (a.aaSorting[m][0] == c) { + k = true; h = a.aaSorting[m][0]; j = a.aaSorting[m][2] + +1; if (typeof a.aoColumns[h].asSorting[j] == "undefined") a.aaSorting.splice(m, 1); else { a.aaSorting[m][1] = a.aoColumns[h].asSorting[j]; a.aaSorting[m][2] = j } break + } k === false && a.aaSorting.push([c, a.aoColumns[c].asSorting[0], 0]) + } else if (a.aaSorting.length == 1 && a.aaSorting[0][0] == c) { h = a.aaSorting[0][0]; j = a.aaSorting[0][2] + 1; if (typeof a.aoColumns[h].asSorting[j] == "undefined") j = 0; a.aaSorting[0][1] = a.aoColumns[h].asSorting[j]; a.aaSorting[0][2] = j } else { + a.aaSorting.splice(0, a.aaSorting.length); a.aaSorting.push([c, a.aoColumns[c].asSorting[0], +0]) + } R(a) + }; if (a.oFeatures.bProcessing) { K(a, true); setTimeout(function () { e(); a.oFeatures.bServerSide || K(a, false) }, 0) } else e(); typeof d == "function" && d(a) + } + }) + } function T(a) { + var b, c, d, f, e, h = a.aoColumns.length, j = a.oClasses; for (b = 0; b < h; b++) a.aoColumns[b].bSortable && i(a.aoColumns[b].nTh).removeClass(j.sSortAsc + " " + j.sSortDesc + " " + a.aoColumns[b].sSortingClass); f = a.aaSortingFixed !== null ? a.aaSortingFixed.concat(a.aaSorting) : a.aaSorting.slice(); for (b = 0; b < a.aoColumns.length; b++) if (a.aoColumns[b].bSortable) { + e = a.aoColumns[b].sSortingClass; + d = -1; for (c = 0; c < f.length; c++) if (f[c][0] == b) { e = f[c][1] == "asc" ? j.sSortAsc : j.sSortDesc; d = c; break } i(a.aoColumns[b].nTh).addClass(e); if (a.bJUI) { c = i("span", a.aoColumns[b].nTh); c.removeClass(j.sSortJUIAsc + " " + j.sSortJUIDesc + " " + j.sSortJUI + " " + j.sSortJUIAscAllowed + " " + j.sSortJUIDescAllowed); c.addClass(d == -1 ? a.aoColumns[b].sSortingClassJUI : f[d][1] == "asc" ? j.sSortJUIAsc : j.sSortJUIDesc) } + } else i(a.aoColumns[b].nTh).addClass(a.aoColumns[b].sSortingClass); e = j.sSortColumn; if (a.oFeatures.bSort && a.oFeatures.bSortClasses) { + d = +Q(a); if (a.oFeatures.bDeferRender) i(d).removeClass(e + "1 " + e + "2 " + e + "3"); else if (d.length >= h) for (b = 0; b < h; b++) if (d[b].className.indexOf(e + "1") != -1) { c = 0; for (a = d.length / h; c < a; c++) d[h * c + b].className = i.trim(d[h * c + b].className.replace(e + "1", "")) } else if (d[b].className.indexOf(e + "2") != -1) { c = 0; for (a = d.length / h; c < a; c++) d[h * c + b].className = i.trim(d[h * c + b].className.replace(e + "2", "")) } else if (d[b].className.indexOf(e + "3") != -1) { + c = 0; for (a = d.length / h; c < a; c++) d[h * c + b].className = i.trim(d[h * c + b].className.replace(" " + +e + "3", "")) + } j = 1; var k; for (b = 0; b < f.length; b++) { k = parseInt(f[b][0], 10); c = 0; for (a = d.length / h; c < a; c++) d[h * c + k].className += " " + e + j; j < 3 && j++ } + } + } function Ha(a) { if (a.oScroll.bInfinite) return null; var b = p.createElement("div"); b.className = a.oClasses.sPaging + a.sPaginationType; o.oPagination[a.sPaginationType].fnInit(a, b, function (c) { E(c); C(c) }); typeof a.aanFeatures.p == "undefined" && a.aoDrawCallback.push({ fn: function (c) { o.oPagination[c.sPaginationType].fnUpdate(c, function (d) { E(d); C(d) }) }, sName: "pagination" }); return b } + function ja(a, b) { + var c = a._iDisplayStart; if (b == "first") a._iDisplayStart = 0; else if (b == "previous") { a._iDisplayStart = a._iDisplayLength >= 0 ? a._iDisplayStart - a._iDisplayLength : 0; if (a._iDisplayStart < 0) a._iDisplayStart = 0 } else if (b == "next") if (a._iDisplayLength >= 0) { if (a._iDisplayStart + a._iDisplayLength < a.fnRecordsDisplay()) a._iDisplayStart += a._iDisplayLength } else a._iDisplayStart = 0; else if (b == "last") if (a._iDisplayLength >= 0) { b = parseInt((a.fnRecordsDisplay() - 1) / a._iDisplayLength, 10) + 1; a._iDisplayStart = (b - 1) * a._iDisplayLength } else a._iDisplayStart = +0; else J(a, 0, "Unknown paging action: " + b); return c != a._iDisplayStart + } function Ga(a) { var b = p.createElement("div"); b.className = a.oClasses.sInfo; if (typeof a.aanFeatures.i == "undefined") { a.aoDrawCallback.push({ fn: Na, sName: "information" }); a.sTableId !== "" && b.setAttribute("id", a.sTableId + "_info") } return b } function Na(a) { + if (!(!a.oFeatures.bInfo || a.aanFeatures.i.length === 0)) { + var b = a._iDisplayStart + 1, c = a.fnDisplayEnd(), d = a.fnRecordsTotal(), f = a.fnRecordsDisplay(), e = a.fnFormatNumber(b), h = a.fnFormatNumber(c), j = +a.fnFormatNumber(d), k = a.fnFormatNumber(f); if (a.oScroll.bInfinite) e = a.fnFormatNumber(1); e = a.fnRecordsDisplay() === 0 && a.fnRecordsDisplay() == a.fnRecordsTotal() ? a.oLanguage.sInfoEmpty + a.oLanguage.sInfoPostFix : a.fnRecordsDisplay() === 0 ? a.oLanguage.sInfoEmpty + " " + a.oLanguage.sInfoFiltered.replace("_MAX_", j) + a.oLanguage.sInfoPostFix : a.fnRecordsDisplay() == a.fnRecordsTotal() ? a.oLanguage.sInfo.replace("_START_", e).replace("_END_", h).replace("_TOTAL_", k) + a.oLanguage.sInfoPostFix : a.oLanguage.sInfo.replace("_START_", +e).replace("_END_", h).replace("_TOTAL_", k) + " " + a.oLanguage.sInfoFiltered.replace("_MAX_", a.fnFormatNumber(a.fnRecordsTotal())) + a.oLanguage.sInfoPostFix; if (a.oLanguage.fnInfoCallback !== null) e = a.oLanguage.fnInfoCallback(a, b, c, d, f, e); a = a.aanFeatures.i; b = 0; for (c = a.length; b < c; b++) i(a[b]).html(e) + } + } function Ca(a) { + if (a.oScroll.bInfinite) return null; var b = '"; var f = p.createElement("div"); a.sTableId !== "" && typeof a.aanFeatures.l == "undefined" && f.setAttribute("id", a.sTableId + "_length"); f.className = a.oClasses.sLength; f.innerHTML = ""; i('select option[value="' + +a._iDisplayLength + '"]', f).attr("selected", true); i("select", f).bind("change.DT", function () { var e = i(this).val(), h = a.aanFeatures.l; c = 0; for (d = h.length; c < d; c++) h[c] != this.parentNode && i("select", h[c]).val(e); a._iDisplayLength = parseInt(e, 10); E(a); if (a.fnDisplayEnd() == a.fnRecordsDisplay()) { a._iDisplayStart = a.fnDisplayEnd() - a._iDisplayLength; if (a._iDisplayStart < 0) a._iDisplayStart = 0 } if (a._iDisplayLength == -1) a._iDisplayStart = 0; C(a) }); return f + } function Ea(a) { + var b = p.createElement("div"); a.sTableId !== "" && typeof a.aanFeatures.r == +"undefined" && b.setAttribute("id", a.sTableId + "_processing"); b.innerHTML = a.oLanguage.sProcessing; b.className = a.oClasses.sProcessing; a.nTable.parentNode.insertBefore(b, a.nTable); return b + } function K(a, b) { if (a.oFeatures.bProcessing) { a = a.aanFeatures.r; for (var c = 0, d = a.length; c < d; c++) a[c].style.visibility = b ? "visible" : "hidden" } } function Ja(a, b) { for (var c = -1, d = 0; d < a.aoColumns.length; d++) { a.aoColumns[d].bVisible === true && c++; if (c == b) return d } return null } function pa(a, b) { + for (var c = -1, d = 0; d < a.aoColumns.length; d++) { + a.aoColumns[d].bVisible === +true && c++; if (d == b) return a.aoColumns[d].bVisible === true ? c : null + } return null + } function U(a, b) { var c, d; c = a._iDisplayStart; for (d = a._iDisplayEnd; c < d; c++) if (a.aoData[a.aiDisplay[c]].nTr == b) return a.aiDisplay[c]; c = 0; for (d = a.aoData.length; c < d; c++) if (a.aoData[c].nTr == b) return c; return null } function X(a) { for (var b = 0, c = 0; c < a.aoColumns.length; c++) a.aoColumns[c].bVisible === true && b++; return b } function E(a) { + a._iDisplayEnd = a.oFeatures.bPaginate === false ? a.aiDisplay.length : a._iDisplayStart + a._iDisplayLength > a.aiDisplay.length || +a._iDisplayLength == -1 ? a.aiDisplay.length : a._iDisplayStart + a._iDisplayLength + } function Oa(a, b) { if (!a || a === null || a === "") return 0; if (typeof b == "undefined") b = p.getElementsByTagName("body")[0]; var c = p.createElement("div"); c.style.width = u(a); b.appendChild(c); a = c.offsetWidth; b.removeChild(c); return a } function ea(a) { + var b = 0, c, d = 0, f = a.aoColumns.length, e, h = i("th", a.nTHead); for (e = 0; e < f; e++) if (a.aoColumns[e].bVisible) { + d++; if (a.aoColumns[e].sWidth !== null) { + c = Oa(a.aoColumns[e].sWidthOrig, a.nTable.parentNode); if (c !== +null) a.aoColumns[e].sWidth = u(c); b++ + } + } if (f == h.length && b === 0 && d == f && a.oScroll.sX === "" && a.oScroll.sY === "") for (e = 0; e < a.aoColumns.length; e++) { c = i(h[e]).width(); if (c !== null) a.aoColumns[e].sWidth = u(c) } else { + b = a.nTable.cloneNode(false); e = a.nTHead.cloneNode(true); d = p.createElement("tbody"); c = p.createElement("tr"); b.removeAttribute("id"); b.appendChild(e); if (a.nTFoot !== null) { b.appendChild(a.nTFoot.cloneNode(true)); P(function (k) { k.style.width = "" }, b.getElementsByTagName("tr")) } b.appendChild(d); d.appendChild(c); + d = i("thead th", b); if (d.length === 0) d = i("tbody tr:eq(0)>td", b); h = S(a, e); for (e = d = 0; e < f; e++) { var j = a.aoColumns[e]; if (j.bVisible && j.sWidthOrig !== null && j.sWidthOrig !== "") h[e - d].style.width = u(j.sWidthOrig); else if (j.bVisible) h[e - d].style.width = ""; else d++ } for (e = 0; e < f; e++) if (a.aoColumns[e].bVisible) { d = Pa(a, e); if (d !== null) { d = d.cloneNode(true); if (a.aoColumns[e].sContentPadding !== "") d.innerHTML += a.aoColumns[e].sContentPadding; c.appendChild(d) } } f = a.nTable.parentNode; f.appendChild(b); if (a.oScroll.sX !== "" && a.oScroll.sXInner !== +"") b.style.width = u(a.oScroll.sXInner); else if (a.oScroll.sX !== "") { b.style.width = ""; if (i(b).width() < f.offsetWidth) b.style.width = u(f.offsetWidth) } else if (a.oScroll.sY !== "") b.style.width = u(f.offsetWidth); b.style.visibility = "hidden"; Qa(a, b); f = i("tbody tr:eq(0)", b).children(); if (f.length === 0) f = S(a, i("thead", b)[0]); if (a.oScroll.sX !== "") { + for (e = d = c = 0; e < a.aoColumns.length; e++) if (a.aoColumns[e].bVisible) { + c += a.aoColumns[e].sWidthOrig === null ? i(f[d]).outerWidth() : parseInt(a.aoColumns[e].sWidth.replace("px", ""), +10) + (i(f[d]).outerWidth() - i(f[d]).width()); d++ + } b.style.width = u(c); a.nTable.style.width = u(c) + } for (e = d = 0; e < a.aoColumns.length; e++) if (a.aoColumns[e].bVisible) { c = i(f[d]).width(); if (c !== null && c > 0) a.aoColumns[e].sWidth = u(c); d++ } a.nTable.style.width = u(i(b).outerWidth()); b.parentNode.removeChild(b) + } + } function Qa(a, b) { if (a.oScroll.sX === "" && a.oScroll.sY !== "") { i(b).width(); b.style.width = u(i(b).outerWidth() - a.oScroll.iBarWidth) } else if (a.oScroll.sX !== "") b.style.width = u(i(b).outerWidth()) } function Pa(a, b) { + var c = +Ra(a, b); if (c < 0) return null; if (a.aoData[c].nTr === null) { var d = p.createElement("td"); d.innerHTML = H(a, c, b, ""); return d } return Q(a, c)[b] + } function Ra(a, b) { for (var c = -1, d = -1, f = 0; f < a.aoData.length; f++) { var e = H(a, f, b, "display") + ""; e = e.replace(/<.*?>/g, ""); if (e.length > c) { c = e.length; d = f } } return d } function u(a) { if (a === null) return "0px"; if (typeof a == "number") { if (a < 0) return "0px"; return a + "px" } var b = a.charCodeAt(a.length - 1); if (b < 48 || b > 57) return a; return a + "px" } function Va(a, b) { + if (a.length != b.length) return 1; for (var c = +0; c < a.length; c++) if (a[c] != b[c]) return 2; return 0 + } function fa(a) { for (var b = o.aTypes, c = b.length, d = 0; d < c; d++) { var f = b[d](a); if (f !== null) return f } return "string" } function A(a) { for (var b = 0; b < D.length; b++) if (D[b].nTable == a) return D[b]; return null } function aa(a) { for (var b = [], c = a.aoData.length, d = 0; d < c; d++) b.push(a.aoData[d]._aData); return b } function $(a) { for (var b = [], c = 0, d = a.aoData.length; c < d; c++) a.aoData[c].nTr !== null && b.push(a.aoData[c].nTr); return b } function Q(a, b) { + var c = [], d, f, e, h, j; f = 0; var k = a.aoData.length; + if (typeof b != "undefined") { f = b; k = b + 1 } for (f = f; f < k; f++) { j = a.aoData[f]; if (j.nTr !== null) { b = []; e = 0; for (h = j.nTr.childNodes.length; e < h; e++) { d = j.nTr.childNodes[e].nodeName.toLowerCase(); if (d == "td" || d == "th") b.push(j.nTr.childNodes[e]) } e = d = 0; for (h = a.aoColumns.length; e < h; e++) if (a.aoColumns[e].bVisible) c.push(b[e - d]); else { c.push(j._anHidden[e]); d++ } } } return c + } function oa(a) { return a.replace(new RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^)", "g"), "\\$1") } function ra(a, b) { + for (var c = -1, d = +0, f = a.length; d < f; d++) if (a[d] == b) c = d; else a[d] > b && a[d]--; c != -1 && a.splice(c, 1) + } function Ba(a, b) { b = b.split(","); for (var c = [], d = 0, f = a.aoColumns.length; d < f; d++) for (var e = 0; e < f; e++) if (a.aoColumns[d].sName == b[e]) { c.push(e); break } return c } function ha(a) { for (var b = "", c = 0, d = a.aoColumns.length; c < d; c++) b += a.aoColumns[c].sName + ","; if (b.length == d) return ""; return b.slice(0, -1) } function J(a, b, c) { + a = a.sTableId === "" ? "DataTables warning: " + c : "DataTables warning (table id = '" + a.sTableId + "'): " + c; if (b === 0) if (o.sErrMode == +"alert") alert(a); else throw a; else typeof console != "undefined" && typeof console.log != "undefined" && console.log(a) + } function ia(a) { a.aoData.splice(0, a.aoData.length); a.aiDisplayMaster.splice(0, a.aiDisplayMaster.length); a.aiDisplay.splice(0, a.aiDisplay.length); E(a) } function sa(a) { + if (!(!a.oFeatures.bStateSave || typeof a.bDestroying != "undefined")) { + var b, c, d, f = "{"; f += '"iCreate":' + (new Date).getTime() + ","; f += '"iStart":' + (a.oScroll.bInfinite ? 0 : a._iDisplayStart) + ","; f += '"iEnd":' + (a.oScroll.bInfinite ? a._iDisplayLength : +a._iDisplayEnd) + ","; f += '"iLength":' + a._iDisplayLength + ","; f += '"sFilter":"' + encodeURIComponent(a.oPreviousSearch.sSearch) + '",'; f += '"sFilterEsc":' + !a.oPreviousSearch.bRegex + ","; f += '"aaSorting":[ '; for (b = 0; b < a.aaSorting.length; b++) f += "[" + a.aaSorting[b][0] + ',"' + a.aaSorting[b][1] + '"],'; f = f.substring(0, f.length - 1); f += "],"; f += '"aaSearchCols":[ '; for (b = 0; b < a.aoPreSearchCols.length; b++) f += '["' + encodeURIComponent(a.aoPreSearchCols[b].sSearch) + '",' + !a.aoPreSearchCols[b].bRegex + "],"; f = f.substring(0, f.length - +1); f += "],"; f += '"abVisCols":[ '; for (b = 0; b < a.aoColumns.length; b++) f += a.aoColumns[b].bVisible + ","; f = f.substring(0, f.length - 1); f += "]"; b = 0; for (c = a.aoStateSave.length; b < c; b++) { d = a.aoStateSave[b].fn(a, f); if (d !== "") f = d } f += "}"; Sa(a.sCookiePrefix + a.sInstance, f, a.iCookieDuration, a.sCookiePrefix, a.fnCookieCallback) + } + } function Ta(a, b) { + if (a.oFeatures.bStateSave) { + var c, d, f; d = ta(a.sCookiePrefix + a.sInstance); if (d !== null && d !== "") { + try { c = typeof i.parseJSON == "function" ? i.parseJSON(d.replace(/'/g, '"')) : eval("(" + d + ")") } catch (e) { return } d = +0; for (f = a.aoStateLoad.length; d < f; d++) if (!a.aoStateLoad[d].fn(a, c)) return; a.oLoadedState = i.extend(true, {}, c); a._iDisplayStart = c.iStart; a.iInitDisplayStart = c.iStart; a._iDisplayEnd = c.iEnd; a._iDisplayLength = c.iLength; a.oPreviousSearch.sSearch = decodeURIComponent(c.sFilter); a.aaSorting = c.aaSorting.slice(); a.saved_aaSorting = c.aaSorting.slice(); if (typeof c.sFilterEsc != "undefined") a.oPreviousSearch.bRegex = !c.sFilterEsc; if (typeof c.aaSearchCols != "undefined") for (d = 0; d < c.aaSearchCols.length; d++) a.aoPreSearchCols[d] = +{ sSearch: decodeURIComponent(c.aaSearchCols[d][0]), bRegex: !c.aaSearchCols[d][1] }; if (typeof c.abVisCols != "undefined") { b.saved_aoColumns = []; for (d = 0; d < c.abVisCols.length; d++) { b.saved_aoColumns[d] = {}; b.saved_aoColumns[d].bVisible = c.abVisCols[d] } } + } + } + } function Sa(a, b, c, d, f) { + var e = new Date; e.setTime(e.getTime() + c * 1E3); c = wa.location.pathname.split("/"); a = a + "_" + c.pop().replace(/[\/:]/g, "").toLowerCase(); var h; if (f !== null) { + h = typeof i.parseJSON == "function" ? i.parseJSON(b) : eval("(" + b + ")"); b = f(a, h, e.toGMTString(), +c.join("/") + "/") + } else b = a + "=" + encodeURIComponent(b) + "; expires=" + e.toGMTString() + "; path=" + c.join("/") + "/"; f = ""; e = 9999999999999; if ((ta(a) !== null ? p.cookie.length : b.length + p.cookie.length) + 10 > 4096) { + a = p.cookie.split(";"); for (var j = 0, k = a.length; j < k; j++) if (a[j].indexOf(d) != -1) { var m = a[j].split("="); try { h = eval("(" + decodeURIComponent(m[1]) + ")") } catch (t) { continue } if (typeof h.iCreate != "undefined" && h.iCreate < e) { f = m[0]; e = h.iCreate } } if (f !== "") p.cookie = f + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=" + c.join("/") + +"/" + } p.cookie = b + } function ta(a) { var b = wa.location.pathname.split("/"); a = a + "_" + b[b.length - 1].replace(/[\/:]/g, "").toLowerCase() + "="; b = p.cookie.split(";"); for (var c = 0; c < b.length; c++) { for (var d = b[c]; d.charAt(0) == " "; ) d = d.substring(1, d.length); if (d.indexOf(a) === 0) return decodeURIComponent(d.substring(a.length, d.length)) } return null } function W(a, b) { + b = b.getElementsByTagName("tr"); var c, d, f, e, h, j, k, m, t = function (O, B, F) { for (; typeof O[B][F] != "undefined"; ) F++; return F }; a.splice(0, a.length); d = 0; for (j = b.length; d < +j; d++) a.push([]); d = 0; for (j = b.length; d < j; d++) { f = 0; for (k = b[d].childNodes.length; f < k; f++) { c = b[d].childNodes[f]; if (c.nodeName.toUpperCase() == "TD" || c.nodeName.toUpperCase() == "TH") { var q = c.getAttribute("colspan") * 1, I = c.getAttribute("rowspan") * 1; q = !q || q === 0 || q === 1 ? 1 : q; I = !I || I === 0 || I === 1 ? 1 : I; m = t(a, d, 0); for (h = 0; h < q; h++) for (e = 0; e < I; e++) { a[d + e][m + h] = { cell: c, unique: q == 1 ? true : false }; a[d + e].nTr = b[d] } } } } + } function S(a, b, c) { + var d = []; if (typeof c == "undefined") { c = a.aoHeader; if (typeof b != "undefined") { c = []; W(c, b) } } b = 0; + for (var f = c.length; b < f; b++) for (var e = 0, h = c[b].length; e < h; e++) if (c[b][e].unique && (typeof d[e] == "undefined" || !a.bSortCellsTop)) d[e] = c[b][e].cell; return d + } function Ua() { + var a = p.createElement("p"), b = a.style; b.width = "100%"; b.height = "200px"; var c = p.createElement("div"); b = c.style; b.position = "absolute"; b.top = "0px"; b.left = "0px"; b.visibility = "hidden"; b.width = "200px"; b.height = "150px"; b.overflow = "hidden"; c.appendChild(a); p.body.appendChild(c); b = a.offsetWidth; c.style.overflow = "scroll"; a = a.offsetWidth; if (b == a) a = +c.clientWidth; p.body.removeChild(c); return b - a + } function P(a, b, c) { for (var d = 0, f = b.length; d < f; d++) for (var e = 0, h = b[d].childNodes.length; e < h; e++) if (b[d].childNodes[e].nodeType == 1) typeof c != "undefined" ? a(b[d].childNodes[e], c[d].childNodes[e]) : a(b[d].childNodes[e]) } function n(a, b, c, d) { if (typeof d == "undefined") d = c; if (typeof b[c] != "undefined") a[d] = b[c] } function da(a, b, c) { for (var d = [], f = 0, e = a.aoColumns.length; f < e; f++) d.push(H(a, b, f, c)); return d } function H(a, b, c, d) { + var f = a.aoColumns[c]; if ((c = f.fnGetData(a.aoData[b]._aData)) === +undefined) { if (a.iDrawError != a.iDraw && f.sDefaultContent === null) { J(a, 0, "Requested unknown parameter '" + f.mDataProp + "' from the data source for row " + b); a.iDrawError = a.iDraw } return f.sDefaultContent } if (c === null && f.sDefaultContent !== null) c = f.sDefaultContent; if (d == "display" && c === null) return ""; return c + } function N(a, b, c, d) { a.aoColumns[c].fnSetData(a.aoData[b]._aData, d) } function Z(a) { + if (a === null) return function () { return null }; else if (typeof a == "function") return function (c) { return a(c) }; else if (typeof a == +"string" && a.indexOf(".") != -1) { var b = a.split("."); return b.length == 2 ? function (c) { return c[b[0]][b[1]] } : b.length == 3 ? function (c) { return c[b[0]][b[1]][b[2]] } : function (c) { for (var d = 0, f = b.length; d < f; d++) c = c[b[d]]; return c } } else return function (c) { return c[a] } + } function ya(a) { + if (a === null) return function () { }; else if (typeof a == "function") return function (c, d) { return a(c, d) }; else if (typeof a == "string" && a.indexOf(".") != -1) { + var b = a.split("."); return b.length == 2 ? function (c, d) { c[b[0]][b[1]] = d } : b.length == 3 ? function (c, +d) { c[b[0]][b[1]][b[2]] = d } : function (c, d) { for (var f = 0, e = b.length - 1; f < e; f++) c = c[b[f]]; c[b[b.length - 1]] = d } + } else return function (c, d) { c[a] = d } + } this.oApi = {}; this.fnDraw = function (a) { var b = A(this[o.iApiIndex]); if (typeof a != "undefined" && a === false) { E(b); C(b) } else ba(b) }; this.fnFilter = function (a, b, c, d, f) { + var e = A(this[o.iApiIndex]); if (e.oFeatures.bFilter) { + if (typeof c == "undefined") c = false; if (typeof d == "undefined") d = true; if (typeof f == "undefined") f = true; if (typeof b == "undefined" || b === null) { + M(e, { sSearch: a, bRegex: c, + bSmart: d + }, 1); if (f && typeof e.aanFeatures.f != "undefined") { b = e.aanFeatures.f; c = 0; for (d = b.length; c < d; c++) i("input", b[c]).val(a) } + } else { e.aoPreSearchCols[b].sSearch = a; e.aoPreSearchCols[b].bRegex = c; e.aoPreSearchCols[b].bSmart = d; M(e, e.oPreviousSearch, 1) } + } + }; this.fnSettings = function () { return A(this[o.iApiIndex]) }; this.fnVersionCheck = o.fnVersionCheck; this.fnSort = function (a) { var b = A(this[o.iApiIndex]); b.aaSorting = a; R(b) }; this.fnSortListener = function (a, b, c) { ga(A(this[o.iApiIndex]), a, b, c) }; this.fnAddData = function (a, +b) { if (a.length === 0) return []; var c = [], d, f = A(this[o.iApiIndex]); if (typeof a[0] == "object") for (var e = 0; e < a.length; e++) { d = v(f, a[e]); if (d == -1) return c; c.push(d) } else { d = v(f, a); if (d == -1) return c; c.push(d) } f.aiDisplay = f.aiDisplayMaster.slice(); if (typeof b == "undefined" || b) ba(f); return c }; this.fnDeleteRow = function (a, b, c) { + var d = A(this[o.iApiIndex]); a = typeof a == "object" ? U(d, a) : a; var f = d.aoData.splice(a, 1), e = i.inArray(a, d.aiDisplay); d.asDataSearch.splice(e, 1); ra(d.aiDisplayMaster, a); ra(d.aiDisplay, a); typeof b == +"function" && b.call(this, d, f); if (d._iDisplayStart >= d.aiDisplay.length) { d._iDisplayStart -= d._iDisplayLength; if (d._iDisplayStart < 0) d._iDisplayStart = 0 } if (typeof c == "undefined" || c) { E(d); C(d) } return f +}; this.fnClearTable = function (a) { var b = A(this[o.iApiIndex]); ia(b); if (typeof a == "undefined" || a) C(b) }; this.fnOpen = function (a, b, c) { + var d = A(this[o.iApiIndex]); this.fnClose(a); var f = p.createElement("tr"), e = p.createElement("td"); f.appendChild(e); e.className = c; e.colSpan = X(d); if (typeof b.jquery != "undefined" || typeof b == +"object") e.appendChild(b); else e.innerHTML = b; b = i("tr", d.nTBody); i.inArray(a, b) != -1 && i(f).insertAfter(a); d.aoOpenRows.push({ nTr: f, nParent: a }); return f +}; this.fnClose = function (a) { for (var b = A(this[o.iApiIndex]), c = 0; c < b.aoOpenRows.length; c++) if (b.aoOpenRows[c].nParent == a) { (a = b.aoOpenRows[c].nTr.parentNode) && a.removeChild(b.aoOpenRows[c].nTr); b.aoOpenRows.splice(c, 1); return 0 } return 1 }; this.fnGetData = function (a, b) { + var c = A(this[o.iApiIndex]); if (typeof a != "undefined") { + a = typeof a == "object" ? U(c, a) : a; if (typeof b != +"undefined") return H(c, a, b, ""); return typeof c.aoData[a] != "undefined" ? c.aoData[a]._aData : null + } return aa(c) +}; this.fnGetNodes = function (a) { var b = A(this[o.iApiIndex]); if (typeof a != "undefined") return typeof b.aoData[a] != "undefined" ? b.aoData[a].nTr : null; return $(b) }; this.fnGetPosition = function (a) { var b = A(this[o.iApiIndex]), c = a.nodeName.toUpperCase(); if (c == "TR") return U(b, a); else if (c == "TD" || c == "TH") { c = U(b, a.parentNode); for (var d = Q(b, c), f = 0; f < b.aoColumns.length; f++) if (d[f] == a) return [c, pa(b, f), f] } return null }; + this.fnUpdate = function (a, b, c, d, f) { + var e = A(this[o.iApiIndex]); b = typeof b == "object" ? U(e, b) : b; if (i.isArray(a) && typeof a == "object") { e.aoData[b]._aData = a.slice(); for (c = 0; c < e.aoColumns.length; c++) this.fnUpdate(H(e, b, c), b, c, false, false) } else if (typeof a == "object") { e.aoData[b]._aData = i.extend(true, {}, a); for (c = 0; c < e.aoColumns.length; c++) this.fnUpdate(H(e, b, c), b, c, false, false) } else { + a = a; N(e, b, c, a); if (e.aoColumns[c].fnRender !== null) { + a = e.aoColumns[c].fnRender({ iDataRow: b, iDataColumn: c, aData: e.aoData[b]._aData, + oSettings: e + }); e.aoColumns[c].bUseRendered && N(e, b, c, a) + } if (e.aoData[b].nTr !== null) Q(e, b)[c].innerHTML = a + } c = i.inArray(b, e.aiDisplay); e.asDataSearch[c] = na(e, da(e, b, "filter")); if (typeof f == "undefined" || f) ca(e); if (typeof d == "undefined" || d) ba(e); return 0 + }; this.fnSetColumnVis = function (a, b, c) { + var d = A(this[o.iApiIndex]), f, e; e = d.aoColumns.length; var h, j; if (d.aoColumns[a].bVisible != b) { + if (b) { + for (f = j = 0; f < a; f++) d.aoColumns[f].bVisible && j++; j = j >= X(d); if (!j) for (f = a; f < e; f++) if (d.aoColumns[f].bVisible) { h = f; break } f = 0; + for (e = d.aoData.length; f < e; f++) if (d.aoData[f].nTr !== null) j ? d.aoData[f].nTr.appendChild(d.aoData[f]._anHidden[a]) : d.aoData[f].nTr.insertBefore(d.aoData[f]._anHidden[a], Q(d, f)[h]) + } else { f = 0; for (e = d.aoData.length; f < e; f++) if (d.aoData[f].nTr !== null) { h = Q(d, f)[a]; d.aoData[f]._anHidden[a] = h; h.parentNode.removeChild(h) } } d.aoColumns[a].bVisible = b; L(d, d.aoHeader); d.nTFoot && L(d, d.aoFooter); f = 0; for (e = d.aoOpenRows.length; f < e; f++) d.aoOpenRows[f].nTr.colSpan = X(d); if (typeof c == "undefined" || c) { ca(d); C(d) } sa(d) + } + }; this.fnPageChange = +function (a, b) { var c = A(this[o.iApiIndex]); ja(c, a); E(c); if (typeof b == "undefined" || b) C(c) }; this.fnDestroy = function () { + var a = A(this[o.iApiIndex]), b = a.nTableWrapper.parentNode, c = a.nTBody, d, f; a.bDestroying = true; d = 0; for (f = a.aoColumns.length; d < f; d++) a.aoColumns[d].bVisible === false && this.fnSetColumnVis(d, true); i(a.nTableWrapper).find("*").andSelf().unbind(".DT"); i("tbody>tr>td." + a.oClasses.sRowEmpty, a.nTable).parent().remove(); if (a.nTable != a.nTHead.parentNode) { i(">thead", a.nTable).remove(); a.nTable.appendChild(a.nTHead) } if (a.nTFoot && +a.nTable != a.nTFoot.parentNode) { i(">tfoot", a.nTable).remove(); a.nTable.appendChild(a.nTFoot) } a.nTable.parentNode.removeChild(a.nTable); i(a.nTableWrapper).remove(); a.aaSorting = []; a.aaSortingFixed = []; T(a); i($(a)).removeClass(a.asStripClasses.join(" ")); if (a.bJUI) { + i("th", a.nTHead).removeClass([o.oStdClasses.sSortable, o.oJUIClasses.sSortableAsc, o.oJUIClasses.sSortableDesc, o.oJUIClasses.sSortableNone].join(" ")); i("th span." + o.oJUIClasses.sSortIcon, a.nTHead).remove(); i("th", a.nTHead).each(function () { + var e = +i("div." + o.oJUIClasses.sSortJUIWrapper, this), h = e.contents(); i(this).append(h); e.remove() + }) + } else i("th", a.nTHead).removeClass([o.oStdClasses.sSortable, o.oStdClasses.sSortableAsc, o.oStdClasses.sSortableDesc, o.oStdClasses.sSortableNone].join(" ")); a.nTableReinsertBefore ? b.insertBefore(a.nTable, a.nTableReinsertBefore) : b.appendChild(a.nTable); d = 0; for (f = a.aoData.length; d < f; d++) a.aoData[d].nTr !== null && c.appendChild(a.aoData[d].nTr); if (a.oFeatures.bAutoWidth === true) a.nTable.style.width = u(a.sDestroyWidth); + i(">tr:even", c).addClass(a.asDestoryStrips[0]); i(">tr:odd", c).addClass(a.asDestoryStrips[1]); d = 0; for (f = D.length; d < f; d++) D[d] == a && D.splice(d, 1); a = null +}; + this.fnAdjustColumnSizing = function (a) { var b = A(this[o.iApiIndex]); ca(b); if (typeof a == "undefined" || a) this.fnDraw(false); else if (b.oScroll.sX !== "" || b.oScroll.sY !== "") this.oApi._fnScrollDraw(b) }; for (var ua in o.oApi) if (ua) this[ua] = r(ua); this.oApi._fnExternApiFunc = r; this.oApi._fnInitalise = s; this.oApi._fnInitComplete = w; this.oApi._fnLanguageProcess = y; this.oApi._fnAddColumn = +G; + this.oApi._fnColumnOptions = x; this.oApi._fnAddData = v; this.oApi._fnCreateTr = z; this.oApi._fnGatherData = Y; this.oApi._fnBuildHead = V; this.oApi._fnDrawHead = L; this.oApi._fnDraw = C; this.oApi._fnReDraw = ba; this.oApi._fnAjaxUpdate = za; this.oApi._fnAjaxUpdateDraw = Aa; this.oApi._fnAddOptionsHtml = xa; this.oApi._fnFeatureHtmlTable = Fa; this.oApi._fnScrollDraw = Ia; this.oApi._fnAjustColumnSizing = ca; this.oApi._fnFeatureHtmlFilter = Da; this.oApi._fnFilterComplete = M; this.oApi._fnFilterCustom = Ma; this.oApi._fnFilterColumn = La; + this.oApi._fnFilter = Ka; this.oApi._fnBuildSearchArray = ka; this.oApi._fnBuildSearchRow = na; this.oApi._fnFilterCreateSearch = la; this.oApi._fnDataToSearch = ma; this.oApi._fnSort = R; this.oApi._fnSortAttachListener = ga; this.oApi._fnSortingClasses = T; this.oApi._fnFeatureHtmlPaginate = Ha; this.oApi._fnPageChange = ja; this.oApi._fnFeatureHtmlInfo = Ga; this.oApi._fnUpdateInfo = Na; this.oApi._fnFeatureHtmlLength = Ca; this.oApi._fnFeatureHtmlProcessing = Ea; this.oApi._fnProcessingDisplay = K; this.oApi._fnVisibleToColumnIndex = Ja; this.oApi._fnColumnIndexToVisible = +pa; + this.oApi._fnNodeToDataIndex = U; + this.oApi._fnVisbleColumns = X; this.oApi._fnCalculateEnd = E; this.oApi._fnConvertToWidth = Oa; this.oApi._fnCalculateColumnWidths = ea; this.oApi._fnScrollingWidthAdjust = Qa; this.oApi._fnGetWidestNode = Pa; this.oApi._fnGetMaxLenString = Ra; this.oApi._fnStringToCss = u; this.oApi._fnArrayCmp = Va; this.oApi._fnDetectType = fa; this.oApi._fnSettingsFromNode = A; this.oApi._fnGetDataMaster = aa; this.oApi._fnGetTrNodes = $; this.oApi._fnGetTdNodes = Q; this.oApi._fnEscapeRegex = oa; this.oApi._fnDeleteIndex = +ra; + this.oApi._fnReOrderIndex = Ba; + this.oApi._fnColumnOrdering = ha; + this.oApi._fnLog = J; + this.oApi._fnClearTable = ia; + this.oApi._fnSaveState = sa; + this.oApi._fnLoadState = Ta; + this.oApi._fnCreateCookie = Sa; + this.oApi._fnReadCookie = ta; + this.oApi._fnDetectHeader = W; this.oApi._fnGetUniqueThs = S; this.oApi._fnScrollBarWidth = Ua; this.oApi._fnApplyToChildren = P; this.oApi._fnMap = n; this.oApi._fnGetRowData = da; this.oApi._fnGetCellData = H; this.oApi._fnSetCellData = N; this.oApi._fnGetObjectDataFn = Z; this.oApi._fnSetObjectDataFn = ya; var va = +this; + return this.each(function () { + var a = 0, b, c, d, f; a = 0; for (b = D.length; a < b; a++) { + if (D[a].nTable == this) if (typeof g == "undefined" || typeof g.bRetrieve != "undefined" && g.bRetrieve === true) return D[a].oInstance; else if (typeof g.bDestroy != "undefined" && g.bDestroy === true) { D[a].oInstance.fnDestroy(); break } else { + J(D[a], 0, "Cannot reinitialise DataTable.\n\nTo retrieve the DataTables object for this table, please pass either no arguments to the dataTable() function, or set bRetrieve to true. Alternatively, to destory the old table and create a new one, set bDestroy to true (note that a lot of changes to the configuration can be made through the API which is usually much faster)."); + return + } if (D[a].sTableId !== "" && D[a].sTableId == this.getAttribute("id")) { D.splice(a, 1); break } + } var e = new l; D.push(e); var h = false, j = false; a = this.getAttribute("id"); if (a !== null) { e.sTableId = a; e.sInstance = a } else e.sInstance = o._oExternConfig.iNextUnique++; if (this.nodeName.toLowerCase() != "table") J(e, 0, "Attempted to initialise DataTables on a node which is not a table: " + this.nodeName); else { + e.nTable = this; e.oInstance = va.length == 1 ? va : i(this).dataTable(); e.oApi = va.oApi; e.sDestroyWidth = i(this).width(); if (typeof g != +"undefined" && g !== null) { + e.oInit = g; n(e.oFeatures, g, "bPaginate"); + n(e.oFeatures, g, "bLengthChange"); + n(e.oFeatures, g, "bFilter"); + n(e.oFeatures, g, "bSort"); + n(e.oFeatures, g, "bInfo"); + n(e.oFeatures, g, "bProcessing"); + n(e.oFeatures, g, "bAutoWidth"); + n(e.oFeatures, g, "bSortClasses"); + n(e.oFeatures, g, "bServerSide"); + n(e.oFeatures, g, "bDeferRender"); + n(e.oScroll, g, "sScrollX", "sX"); + n(e.oScroll, g, "sScrollXInner", "sXInner"); + n(e.oScroll, g, "sScrollY", "sY"); + n(e.oScroll, g, "bScrollCollapse", "bCollapse"); + n(e.oScroll, g, "bScrollInfinite", "bInfinite"); + n(e.oScroll, g, "iScrollLoadGap", "iLoadGap"); + n(e.oScroll, g, "bScrollAutoCss", "bAutoCss"); + n(e, g, "asStripClasses"); + n(e, g, "fnPreDrawCallback"); + n(e, g, "fnRowCallback"); n(e, g, "fnHeaderCallback"); n(e, g, "fnFooterCallback"); n(e, g, "fnCookieCallback"); n(e, g, "fnInitComplete"); n(e, g, "fnServerData"); n(e, g, "fnFormatNumber"); n(e, g, "aaSorting"); n(e, g, "aaSortingFixed"); n(e, g, "aLengthMenu"); n(e, g, "sPaginationType"); n(e, g, "sAjaxSource"); n(e, g, "sAjaxDataProp"); n(e, g, "iCookieDuration"); n(e, g, "sCookiePrefix"); + n(e, g, "sDom"); + n(e, g, "bSortCellsTop"); + n(e, g, "oSearch", "oPreviousSearch"); + n(e, g, "aoSearchCols", "aoPreSearchCols"); + n(e, g, "iDisplayLength", "_iDisplayLength"); + n(e, g, "bJQueryUI", "bJUI"); + n(e.oLanguage, g, "fnInfoCallback"); + typeof g.fnDrawCallback == "function" && e.aoDrawCallback.push({ + fn: g.fnDrawCallback, sName: "user" + }); + typeof g.fnStateSaveCallback == "function" && e.aoStateSave.push({ + fn: g.fnStateSaveCallback, sName: "user" + }); + typeof g.fnStateLoadCallback == "function" && e.aoStateLoad.push({ + fn: g.fnStateLoadCallback, sName: "user" + }); + if (e.oFeatures.bServerSide && e.oFeatures.bSort && e.oFeatures.bSortClasses) e.aoDrawCallback.push({ fn: T, sName: "server_side_sort_classes" }); else e.oFeatures.bDeferRender && e.aoDrawCallback.push({ fn: T, sName: "defer_sort_classes" }); if (typeof g.bJQueryUI != "undefined" && g.bJQueryUI) { e.oClasses = o.oJUIClasses; if (typeof g.sDom == "undefined") e.sDom = '<"H"lfr>t<"F"ip>' } if (e.oScroll.sX !== "" || e.oScroll.sY !== "") e.oScroll.iBarWidth = Ua(); if (typeof g.iDisplayStart != "undefined" && typeof e.iInitDisplayStart == "undefined") { + e.iInitDisplayStart = g.iDisplayStart; e._iDisplayStart = g.iDisplayStart + } if (typeof g.bStateSave != "undefined") { e.oFeatures.bStateSave = g.bStateSave; Ta(e, g); e.aoDrawCallback.push({ fn: sa, sName: "state_save" }) } if (typeof g.iDeferLoading != "undefined") { e.bDeferLoading = true; e._iRecordsTotal = g.iDeferLoading; e._iRecordsDisplay = g.iDeferLoading } if (typeof g.aaData != "undefined") j = true; if (typeof g != "undefined" && typeof g.aoData != "undefined") g.aoColumns = g.aoData; if (typeof g.oLanguage != "undefined") if (typeof g.oLanguage.sUrl != "undefined" && g.oLanguage.sUrl !== +"") { e.oLanguage.sUrl = g.oLanguage.sUrl; i.getJSON(e.oLanguage.sUrl, null, function (t) { y(e, t, true) }); h = true } else y(e, g.oLanguage, false) + } else g = {}; if (typeof g.asStripClasses == "undefined") { e.asStripClasses.push(e.oClasses.sStripOdd); e.asStripClasses.push(e.oClasses.sStripEven) } c = false; d = i(">tbody>tr", this); a = 0; for (b = e.asStripClasses.length; a < b; a++) if (d.filter(":lt(2)").hasClass(e.asStripClasses[a])) { c = true; break } if (c) { + e.asDestoryStrips = ["", ""]; if (i(d[0]).hasClass(e.oClasses.sStripOdd)) e.asDestoryStrips[0] += +e.oClasses.sStripOdd + " "; if (i(d[0]).hasClass(e.oClasses.sStripEven)) e.asDestoryStrips[0] += e.oClasses.sStripEven; if (i(d[1]).hasClass(e.oClasses.sStripOdd)) e.asDestoryStrips[1] += e.oClasses.sStripOdd + " "; if (i(d[1]).hasClass(e.oClasses.sStripEven)) e.asDestoryStrips[1] += e.oClasses.sStripEven; d.removeClass(e.asStripClasses.join(" ")) + } c = []; var k; a = this.getElementsByTagName("thead"); if (a.length !== 0) { W(e.aoHeader, a[0]); c = S(e) } if (typeof g.aoColumns == "undefined") { k = []; a = 0; for (b = c.length; a < b; a++) k.push(null) } else k = +g.aoColumns; a = 0; for (b = k.length; a < b; a++) { if (typeof g.saved_aoColumns != "undefined" && g.saved_aoColumns.length == b) { if (k[a] === null) k[a] = {}; k[a].bVisible = g.saved_aoColumns[a].bVisible } G(e, c ? c[a] : null) } if (typeof g.aoColumnDefs != "undefined") for (a = g.aoColumnDefs.length - 1; a >= 0; a--) { + var m = g.aoColumnDefs[a].aTargets; i.isArray(m) || J(e, 1, "aTargets must be an array of targets, not a " + typeof m); c = 0; for (d = m.length; c < d; c++) if (typeof m[c] == "number" && m[c] >= 0) { for (; e.aoColumns.length <= m[c]; ) G(e); x(e, m[c], g.aoColumnDefs[a]) } else if (typeof m[c] == +"number" && m[c] < 0) x(e, e.aoColumns.length + m[c], g.aoColumnDefs[a]); else if (typeof m[c] == "string") { b = 0; for (f = e.aoColumns.length; b < f; b++) if (m[c] == "_all" || i(e.aoColumns[b].nTh).hasClass(m[c])) x(e, b, g.aoColumnDefs[a]) } + } if (typeof k != "undefined") { a = 0; for (b = k.length; a < b; a++) x(e, a, k[a]) } a = 0; for (b = e.aaSorting.length; a < b; a++) { + if (e.aaSorting[a][0] >= e.aoColumns.length) + e.aaSorting[a][0] = 0; k = e.aoColumns[e.aaSorting[a][0]]; + if (typeof e.aaSorting[a][2] == "undefined") e.aaSorting[a][2] = 0; + if (typeof g.aaSorting == "undefined" && typeof e.saved_aaSorting == "undefined") + e.aaSorting[a][1] = k.asSorting[0]; + c = 0; for (d = k.asSorting.length; + c < d; c++) if (e.aaSorting[a][1] == k.asSorting[c]) { + e.aaSorting[a][2] = c; break + } + } T(e); a = i(">thead", this); if (a.length === 0) { + a = [p.createElement("thead")]; this.appendChild(a[0]) + } e.nTHead = a[0]; a = i(">tbody", this); + if (a.length === 0) { + a = [p.createElement("tbody")]; + this.appendChild(a[0]) + } e.nTBody = a[0]; a = i(">tfoot", this); + if (a.length > 0) { e.nTFoot = a[0]; W(e.aoFooter, e.nTFoot) } + if (j) + for (a = 0; a < g.aaData.length; a++) v(e, g.aaData[a]); + else Y(e); e.aiDisplay = e.aiDisplayMaster.slice(); e.bInitialised = true; h === false && s(e) + } + }) + } +})(jQuery, window, document); diff --git a/data/interfaces/lossless/js/libs/modernizr-1.7.min.js b/data/interfaces/lossless/js/libs/modernizr-1.7.min.js new file mode 100644 index 00000000..6f54850c --- /dev/null +++ b/data/interfaces/lossless/js/libs/modernizr-1.7.min.js @@ -0,0 +1,2 @@ +// Modernizr v1.7 www.modernizr.com +window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c y) ? 1 : 0)); +}; + +jQuery.fn.dataTableExt.oSort['title-string-desc'] = function(a,b) { + var x = a.match(/title="(.*?)"/)[1].toLowerCase(); + var y = b.match(/title="(.*?)"/)[1].toLowerCase(); + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); +}; + +jQuery.fn.dataTableExt.oSort['title-numeric-asc'] = function(a,b) { + var x = a.match(/title="*(-?[0-9]+)/)[1]; + var y = b.match(/title="*(-?[0-9]+)/)[1]; + x = parseFloat( x ); + y = parseFloat( y ); + return ((x < y) ? -1 : ((x > y) ? 1 : 0)); +}; + +jQuery.fn.dataTableExt.oSort['title-numeric-desc'] = function(a,b) { + var x = a.match(/title="*(-?[0-9]+)/)[1]; + var y = b.match(/title="*(-?[0-9]+)/)[1]; + x = parseFloat( x ); + y = parseFloat( y ); + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); +}; + +function toggle(source) { + checkboxes = document.getElementsByClassName('checkbox'); + for(var i in checkboxes) + checkboxes[i].checked = source.checked; +} \ No newline at end of file diff --git a/data/interfaces/lossless/js/script.js b/data/interfaces/lossless/js/script.js new file mode 100644 index 00000000..73641e89 --- /dev/null +++ b/data/interfaces/lossless/js/script.js @@ -0,0 +1,294 @@ +function getArtistInfo(name,imgElem,size) { + var apikey = "690e1ed3bc00bc91804cd8f7fe5ed6d4"; + var url = "http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&artist="+ name +"&api_key="+ apikey+"&format=json&callback=?"; + // Get Data + $.getJSON(url, function(data) { + var artist = data.artist.name; + var artistBio = data.artist.bio.summary; + var artistBio = artistBio; + var imageUrl = data.artist.image[size]['#text']; + if (data.artist === undefined || imageUrl == "") { + imageUrl = "interfaces/lossless/images/no-cover-artist.png"; + } else { + imageUrl = data.artist.image[size]['#text']; + // If Last.fm don't provide a cover then use standard + } + var imageLarge = data.artist.image[4]['#text']; + var image = imgElem; + var bio = $('#artistBio'); + $(image).attr("src",imageUrl).removeAttr("width").removeAttr("height"); + if ( bio.length > 0 ) $(bio).append(artistBio); + $(image).wrap(''); + }); +} + +function getAlbumInfo(name, album, elem) { + var apikey = "690e1ed3bc00bc91804cd8f7fe5ed6d4"; + var url = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=" + apikey + "&artist="+ name +"&album="+ album +"&format=json&callback=?"; + var dimensions = getOriginalWidthOfImg(this); + var cover = $(elem); + if ( dimensions <= 1) { + // Get Data + $.getJSON(url, function(data) { + if (data.album === undefined) { + imageUrl = "interfaces/lossless/images/no-cover-art.png"; + } else { + imageUrl = data.album.image[3]['#text']; + // If Last.fm don't provide a cover then use standard + } + $(cover).error(function(){ + imageUrl = "interfaces/lossless/images/no-cover-art.png"; + $('#albumImg img').css("background", "url("+ imageUrl+") center top no-repeat"); + }); + if ( imageUrl == "") { + imageUrl = "interfaces/lossless/images/no-cover-art.png"; + $('#albumImg img').css("background", "url("+ imageUrl+") center top no-repeat"); + } + $('#albumImg img').css("background", "url("+ imageUrl+") center top no-repeat"); + }); + } +} + +function getOriginalWidthOfImg(img_element) { + var t = new Image(); + t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src; + return t.width; +} + +function replaceEmptyAlbum(elem,name) { + var album = $(elem); + var artist = name; + var albumname; + var apikey = "690e1ed3bc00bc91804cd8f7fe5ed6d4"; + // Loop through every album art and get the albums with no cover + $(album).each(function(e){ + var dimensions = getOriginalWidthOfImg(this); + var cover = $(this); + var url; + albumname = cover.closest("tr").find("#albumname a").text(); + if ( dimensions <= 1) { + url = "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=" + apikey + "&artist="+ artist +"&album="+ albumname +"&format=json&callback=?"; + var imageUrl; + $.getJSON(url, function(data, response) { + if (data.album === undefined) { + imageUrl = "interfaces/lossless/images/no-cover-art.png"; + } else { + imageUrl = data.album.image[3]['#text']; + imageLarge = data.album.image[4]['#text']; + // If Last.fm don't provide a cover then use standard + } + $(cover).error(function(){ + imageUrl = "interfaces/lossless/images/no-cover-art.png"; + $(this).hide().attr("src", imageUrl).show(); + }) + if ( imageUrl == "") { + imageUrl = "interfaces/lossless/images/no-cover-art.png"; + $(this).hide().attr("src", imageUrl).show(); + } + $(cover).hide().attr("src", imageUrl).show(); + $(cover).wrap(''); + }); + } + }); +} + +function initHeader() { + //settings + var header = $("#container header"); + var fadeSpeed = 100, fadeTo = 0.5, topDistance = 20; + var topbarME = function() { $(header).fadeTo(fadeSpeed,1); }, topbarML = function() { $(header).fadeTo(fadeSpeed,fadeTo); }; + var inside = false; + //do + $(window).scroll(function() { + position = $(window).scrollTop(); + if(position > topDistance && !inside) { + //add events + topbarML(); + $(header).bind('mouseenter',topbarME); + $(header).bind('mouseleave',topbarML); + $("#toTop").fadeIn(); + inside = true; + } + else if (position < topDistance){ + topbarME(); + $(header).unbind('mouseenter',topbarME); + $(header).unbind('mouseleave',topbarML); + $("#toTop").fadeOut(); + inside = false; + } + }); + +} + +function initConfigCheckbox(elem) { + var config = $(elem).parent().next(); + if ( $(elem).is(":checked") ) { + config.show(); + } else { + config.hide(); + } + $(elem).click(function(){ + var config = $(this).parent().next(); + if ( $(this).is(":checked") ) { + config.slideDown(); + } else { + config.slideUp(); + } + }); +} +function initActions() { + $("#subhead_menu #menu_link_refresh").button({ icons: { primary: "ui-icon-refresh" } }); + $("#subhead_menu #menu_link_edit").button({ icons: { primary: "ui-icon-pencil" } }); + $("#subhead_menu #menu_link_delete" ).button({ icons: { primary: "ui-icon-trash" } }); + $("#subhead_menu #menu_link_pauze").button({ icons: { primary: "ui-icon-pause"} }); + $("#subhead_menu #menu_link_resume").button({ icons: { primary: "ui-icon-play"} }); + $("#subhead_menu #menu_link_getextra").button({ icons: { primary: "ui-icon-plus"} }); + $("#subhead_menu #menu_link_removeextra").button({ icons: { primary: "ui-icon-minus" } }); + $("#subhead_menu #menu_link_wanted" ).button({ icons: { primary: "ui-icon-heart" } }); + $("#subhead_menu #menu_link_check").button({ icons: { primary: "ui-icon-arrowrefresh-1-w"} }); + $("#subhead_menu #menu_link_skipped").button({ icons: { primary: "ui-icon-seek-end"} }); + $("#subhead_menu #menu_link_retry").button({ icons: { primary: "ui-icon-arrowrefresh-1-e"} }); + $("#subhead_menu #menu_link_new").button({ icons: { primary: "ui-icon-arrowreturnthick-1-s" } }); + $("#subhead_menu #menu_link_shutdown").button({ icons: { primary: "ui-icon-power"} }); + $("#subhead_menu #menu_link_scan").button({ icons: { primary: "ui-icon-search"} }); +} + +function refreshSubmenu(url) { + $("#subhead_container").load(url + " #subhead_menu",function(){ + initActions(); + }); +} +function refreshTable() { + var url = $(location).attr('href'); + $("table.display").load(url + " table.display tbody, table.display thead", function() { + initThisPage(); + }); +} +function refreshTab() { + var url = $(location).attr('href'); + var tabId = $('.ui-tabs-panel:visible').attr("id"); + $('.ui-tabs-panel:visible').load(url + " #"+ tabId, function() { + initThisPage(); + }); +} + +function doAjaxCall(url,elem,reload,form) { + // Set Message + feedback = $("#ajaxMsg"); + feedback.fadeIn(); + // Get Form data + var formID = "#"+url; + if ( form == true ) { + var dataString = $(formID).serialize(); + } + // Loader Image + var loader = $("loading"); + // Data Success Message + var dataSucces = $(elem).data('success'); + if (typeof dataSucces === "undefined") { + // Standard Message when variable is not set + var dataSucces = "Success!"; + } + // Data Errror Message + var dataError = $(elem).data('error'); + if (typeof dataError === "undefined") { + // Standard Message when variable is not set + var dataError = "There was a error"; + } + // Get Success & Error message from inline data, else use standard message + var succesMsg = $("
" + dataSucces + "
"); + var errorMsg = $("
" + dataError + "
"); + + // Check if checkbox is selected + if ( form ) { + if ( $('td#select input[type=checkbox]').length > 0 && !$('td#select input[type=checkbox]').is(':checked') || $('#importLastFM #username').length > 0 && $("#importLastFM #username" ).val().length === 0 ) { + feedback.addClass('error') + $(feedback).prepend(errorMsg); + setTimeout(function(){ + errorMsg.fadeOut(function(){ + $(this).remove(); + feedback.fadeOut(function(){ + feedback.removeClass('error'); + }); + }) + $(formID + " select").children('option[disabled=disabled]').attr('selected','selected'); + },2000); + return false; + } + } + + // Ajax Call + $.ajax({ + url: url, + data: dataString, + beforeSend: function(jqXHR, settings) { + // Start loader etc. + feedback.prepend(loader); + }, + error: function(jqXHR, textStatus, errorThrown) { + feedback.addClass('error') + feedback.prepend(errorMsg); + setTimeout(function(){ + errorMsg.fadeOut(function(){ + $(this).remove(); + feedback.fadeOut(function(){ + feedback.removeClass('error') + }); + }) + },2000); + }, + success: function(data,jqXHR) { + feedback.prepend(succesMsg); + feedback.addClass('success') + setTimeout(function(e){ + succesMsg.fadeOut(function(){ + $(this).remove(); + feedback.fadeOut(function(){ + feedback.removeClass('success'); + }); + if ( reload == true ) refreshSubmenu(url); + if ( reload == "table") refreshTable(); + if ( reload == "tabs") refreshTab(); + if ( form ) { + // Change the option to 'choose...' + $(formID + " select").children('option[disabled=disabled]').attr('selected','selected'); + } + }) + },2000); + }, + complete: function(jqXHR, textStatus) { + // Remove loaders and stuff, ajax request is complete! + loader.remove(); + } + }); +} + +function resetFilters(text){ + if ( $(".dataTables_filter").length > 0 ) { + $(".dataTables_filter input").attr("placeholder","filter " + text + ""); + } +} + +function preventDefault(){ + $("a[href='#']").live('click', function(){ + return false; + }); +} + +function initFancybox() { + if ( $("a[rel=dialog]").length > 0 ) { + $.getScript('interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.js', function() { + $("head").append(""); + $("a[rel=dialog]").fancybox(); + }); + } +} + +function init() { + initHeader(); + preventDefault(); +} + +$(document).ready(function(){ + init(); +}); diff --git a/data/interfaces/lossless/logs.html b/data/interfaces/lossless/logs.html new file mode 100644 index 00000000..58c8cfeb --- /dev/null +++ b/data/interfaces/lossless/logs.html @@ -0,0 +1,63 @@ +lossless<%inherit file="base.html"/> +<%! + from headphones import helpers +%> + +<%def name="body()"> +
+

LogsLogs

+
+ + + + + + + + + + %for line in lineList: + <% + timestamp, message, level, threadname = line + + if level == 'WARNING' or level == 'ERROR': + grade = 'X' + else: + grade = 'Z' + %> + + + + + + %endfor + +
TimestampLevelMessage
${timestamp}${level}${message}
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/manage.html b/data/interfaces/lossless/manage.html new file mode 100644 index 00000000..cf8d2471 --- /dev/null +++ b/data/interfaces/lossless/manage.html @@ -0,0 +1,104 @@ +lossless<%inherit file="base.html" /> +<%! + import headphones + from headphones.helpers import checked +%> +<%def name="headerIncludes()"> +
+
+ Manage Artists + %if not headphones.ADD_ARTISTS: + Manage New Artists + %endif +
+
+ + +<%def name="body()"> +
+

manageManage

+
+
+ +
+
+
+ Scan Music Library +

Where do you keep your music?

+

You can put in any directory, and it will scan for audio files in that folder + (including all subdirectories).
For example: '/Users/name/Music'

+

+ It may take a while depending on how many files you have. You can navigate away from the page
+ as soon as you click 'Save changes' +

+
+
+ + %if headphones.MUSIC_DIR: + + %else: + + %endif +
+
+ +
+ +
+ + +
+ +
+
+
+ Import Last.FM Artists +

Enter the username whose artists you want to import:

+
+
+ + <% + if headphones.LASTFM_USERNAME: + lastfmvalue = headphones.LASTFM_USERNAME + else: + lastfmvalue = '' + %> + + Reset username +
+
+ +
+
+ + +
+ +<%def name="javascriptIncludes()"> + + \ No newline at end of file diff --git a/data/interfaces/lossless/manageartists.html b/data/interfaces/lossless/manageartists.html new file mode 100644 index 00000000..41fda9e0 --- /dev/null +++ b/data/interfaces/lossless/manageartists.html @@ -0,0 +1,111 @@ +lossless<%inherit file="base.html" /> + + + +<%def name="headerIncludes()"> +
+   +
+ « Back to manage overview + + + +<%def name="body()"> +
+
+

manageManage Artists

+
+
+
+ + selected artists + +
+ + + + + + + + + + + + %for artist in artists: + <% + if artist['Status'] == 'Paused': + grade = 'X' + elif artist['Status'] == 'Loading': + grade = 'C' + else: + grade = 'Z' + + if artist['ReleaseDate'] and artist['LatestAlbum']: + releasedate = artist['ReleaseDate'] + albumdisplay = '%s (%s)' % (artist['LatestAlbum'], artist['ReleaseDate']) + elif artist['LatestAlbum']: + releasedate = '' + albumdisplay = '%s' % artist['LatestAlbum'] + else: + releasedate = '' + albumdisplay = 'None' + %> + + + + + + + + %endfor + +
Artist NameStatusLatest Album
${artist['ArtistName']}${artist['Status']}${albumdisplay}
+
+
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/managenew.html b/data/interfaces/lossless/managenew.html new file mode 100644 index 00000000..cd141268 --- /dev/null +++ b/data/interfaces/lossless/managenew.html @@ -0,0 +1,67 @@ +lossless<%inherit file="base.html" /> +<%! + import headphones +%> + +<%def name="headerIncludes()"> + + « Back to manage overview + + + +<%def name="body()"> +
+
+

manageManage New Artists

+
+
+
+ Add selected artists + +
+ + + + + + + + + %for artist in headphones.NEW_ARTISTS: + + + + + %endfor + +
Artist Name
${artist}
+
+
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/searchresults.html b/data/interfaces/lossless/searchresults.html new file mode 100644 index 00000000..f04e0849 --- /dev/null +++ b/data/interfaces/lossless/searchresults.html @@ -0,0 +1,81 @@ +lossless<%inherit file="base.html" /> + +<%def name="body()"> +
+
+

Search resultsSearch Result

+
+ + + + %if type == 'album': + + %endif + + + + + + + + %if searchresults: + %for result in searchresults: + <% + if result['score'] == 100: + grade = 'A' + else: + grade = 'Z' + %> + + %if type == 'album': + + %endif + + + + %if type == 'album': + + %else: + + %endif + + %endfor + %endif + +
Album NameArtist NameScore
${result['title']}
${result['uniquename']}
${result['score']}
Add this album Add this artist
+
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/shutdown.html b/data/interfaces/lossless/shutdown.html new file mode 100644 index 00000000..e28b34f3 --- /dev/null +++ b/data/interfaces/lossless/shutdown.html @@ -0,0 +1,13 @@ +lossless<%inherit file="base.html"/> + +<%def name="headIncludes()"> + + + +<%def name="body()"> +
+
+

Headphones is ${message}

+
+
+ \ No newline at end of file diff --git a/data/interfaces/lossless/upcoming.html b/data/interfaces/lossless/upcoming.html new file mode 100644 index 00000000..6fba69f1 --- /dev/null +++ b/data/interfaces/lossless/upcoming.html @@ -0,0 +1,99 @@ +lossless<%inherit file="base.html" /> +<%def name="body()"> + +
+

Wanted AlbumsWanted Albums

+
+
+
+ Mark selected albums as + + +
+
+ + + + + + + + + + + + + %for album in wanted: + + + + + + + + %endfor + +
ArtistAlbum NameRelease DateType
+ ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
+ + +
+
+

Upcoming AlbumsUpcoming Albums

+
+
+ + + + + + + + + + + + + %for album in upcoming: + + + + + + + + + %endfor + +
ArtistAlbum NameRelease DateTypeStatus
${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']}
+
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file From 64aba8bb5f56df136f87933d155bb28ce3aea6b4 Mon Sep 17 00:00:00 2001 From: Elmar Kouwenhoven Date: Tue, 8 May 2012 13:06:03 +0200 Subject: [PATCH 2/9] Fixed some minor issues - Fixed toTop button when scrolling down - Fixed Updatebar. Shown like other feedback messages --- data/interfaces/lossless/base.html | 12 ++-- data/interfaces/lossless/css/style.css | 84 ++++++++++++++++++++----- data/interfaces/lossless/css/style.less | 16 ++--- 3 files changed, 80 insertions(+), 32 deletions(-) diff --git a/data/interfaces/lossless/base.html b/data/interfaces/lossless/base.html index 02a3e297..e958dca2 100644 --- a/data/interfaces/lossless/base.html +++ b/data/interfaces/lossless/base.html @@ -29,16 +29,18 @@
-
- % if not headphones.CURRENT_VERSION: + % if not headphones.CURRENT_VERSION:
- You're running an unknown version of Headphones. Click here to update + You're running an unknown version of Headphones. Update or + Close
% elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win':
- A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Click here to update + A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Update or Close
% endif + +
diff --git a/data/interfaces/lossless/css/style.css b/data/interfaces/lossless/css/style.css index 9927b171..d046c750 100644 --- a/data/interfaces/lossless/css/style.css +++ b/data/interfaces/lossless/css/style.css @@ -481,7 +481,11 @@ footer { -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; - background-color: #fff6a9; + background-image: -moz-linear-gradient(#fcf5c2, #fff6a9) !important; + background-image: linear-gradient(#fcf5c2, #fff6a9) !important; + background-image: -webkit-linear-gradient(#fcf5c2, #fff6a9) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; display: inline-block; padding: 5px 10px; margin-top: 10px; @@ -555,22 +559,72 @@ footer { margin-right: 3px; } #updatebar { - -moz-border-radius-bottomleft: 10px; - -moz-border-radius-bottomright: 10px; - -webkit-border-bottom-right-radius: 10px; - -webkit-border-bottom-left-radius: 10px; - border-bottom-left-radius: 10px; - border-bottom-right-radius: 10px; - background-color: #fff6a9; border: 1px solid #cccccc; - font-size: 11px; - left: 35%; - margin: 0 auto; - padding: 1px 10px; - position: absolute; + background-image: -moz-linear-gradient(#ffffff, #eeeeee) !important; + background-image: linear-gradient(#ffffff, #eeeeee) !important; + background-image: -webkit-linear-gradient(#ffffff, #eeeeee) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + border-radius: 7px; + display: none; + font-size: 14px; + right: 10px; + -moz-box-shadow: 0px 0px 2px #aaaaaa; + -webkit-box-shadow: 0px 0px 2px #aaaaaa; + box-shadow: 0px 0px 2px #aaaaaa; + padding: 7px 10px; + position: fixed; text-align: center; - text-transform: lowercase; - top: 0; + bottom: 10px; + min-height: 22px; + width: 250px; + z-index: 9999; + filter: alpha(opacity=85); + -moz-opacity: 0.8 !important; + -khtml-opacity: 0.8 !important; + opacity: 0.8 !important; + display: block; + background-image: -moz-linear-gradient(#fcf5c2, #fff6a9) !important; + background-image: linear-gradient(#fcf5c2, #fff6a9) !important; + background-image: -webkit-linear-gradient(#fcf5c2, #fff6a9) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; +} +#updatebar .msg { + font-family: "Trebuchet MS", Helvetica, Arial, sans-serif; + line-height: normal; + padding-left: 20px; +} +#updatebar .loader { + position: relative; + top: 2px; +} +#updatebar.success { + background-image: -moz-linear-gradient(#d3ffd7, #c2edc6) !important; + background-image: linear-gradient(#d3ffd7, #c2edc6) !important; + background-image: -webkit-linear-gradient(#d3ffd7, #c2edc6) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + padding: 15px 10px; + text-align: left; +} +#updatebar.error { + background-image: -moz-linear-gradient(#ffd3d3, #edc4c4) !important; + background-image: linear-gradient(#ffd3d3, #edc4c4) !important; + background-image: -webkit-linear-gradient(#ffd3d3, #edc4c4) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + padding: 15px 10px; + text-align: left; +} +#updatebar .ui-icon { + display: inline-block; + margin-left: -20px; + top: 2px; + position: relative; + margin-right: 3px; } #subhead .back { float: left; diff --git a/data/interfaces/lossless/css/style.less b/data/interfaces/lossless/css/style.less index 031a9f23..bf2a5e62 100644 --- a/data/interfaces/lossless/css/style.less +++ b/data/interfaces/lossless/css/style.less @@ -345,7 +345,7 @@ footer { // Messages .message { .rounded(10px); - background-color: @msg-bg; + .gradient(#FCF5C2,@msg-bg); display: inline-block; padding: 5px 10px; margin-top: 10px; @@ -401,17 +401,9 @@ footer { } #updatebar { - .roundedBottom(10px); - background-color: @msg-bg; - border: 1px solid @border-color; - font-size: 11px; - left: 35%; - margin: 0 auto; - padding: 1px 10px; - position: absolute; - text-align: center; - text-transform: lowercase; - top: 0; + #ajaxMsg; + display: block; + .gradient(#FCF5C2,@msg-bg); } // Subheader From fa87875637dece8eda2fed87becf40e5231a2b27 Mon Sep 17 00:00:00 2001 From: Elmar Kouwenhoven Date: Wed, 9 May 2012 00:10:43 +0200 Subject: [PATCH 3/9] Fall back for searching for artist/album art. Minor layout changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fallback: Search for Artist ID, if can not find search by name in LastFM API. Good to go for a merge… Need to change to default template? :) --- data/interfaces/lossless/album.html | 20 +-- data/interfaces/lossless/artist.html | 2 +- data/interfaces/lossless/base.html | 13 +- data/interfaces/lossless/css/data_table.css | 8 +- data/interfaces/lossless/css/style.css | 52 +++++-- data/interfaces/lossless/css/style.less | 40 ++++-- data/interfaces/lossless/images/icon_like.png | Bin 0 -> 1095 bytes data/interfaces/lossless/index.html | 11 +- data/interfaces/lossless/js/script.js | 132 +++++++++++++----- data/interfaces/lossless/searchresults.html | 33 +++-- 10 files changed, 231 insertions(+), 80 deletions(-) create mode 100644 data/interfaces/lossless/images/icon_like.png diff --git a/data/interfaces/lossless/album.html b/data/interfaces/lossless/album.html index fc6643e5..6dac1ad8 100644 --- a/data/interfaces/lossless/album.html +++ b/data/interfaces/lossless/album.html @@ -26,7 +26,7 @@
- albumart + albumart

${album['AlbumTitle']}

@@ -129,16 +129,18 @@ diff --git a/data/interfaces/lossless/artist.html b/data/interfaces/lossless/artist.html index ce1b4aa8..bf1e689d 100644 --- a/data/interfaces/lossless/artist.html +++ b/data/interfaces/lossless/artist.html @@ -176,7 +176,7 @@ } $(document).ready(function() { - getArtistInfo("${artist['ArtistName']}","#artistImg img",3); + getArtistInfo("${artist['ArtistName']}","#artistImg img",3,"${artist['ArtistID']}"); initActions(); initThisPage(); }); diff --git a/data/interfaces/lossless/base.html b/data/interfaces/lossless/base.html index e958dca2..a1742071 100644 --- a/data/interfaces/lossless/base.html +++ b/data/interfaces/lossless/base.html @@ -76,13 +76,22 @@
Back to top
diff --git a/data/interfaces/lossless/css/data_table.css b/data/interfaces/lossless/css/data_table.css index a2642d13..c05488be 100644 --- a/data/interfaces/lossless/css/data_table.css +++ b/data/interfaces/lossless/css/data_table.css @@ -108,8 +108,6 @@ table.display thead th { background-color: white; font-weight: bold; font-size: 16px; - cursor: pointer; - * cursor: hand; } table.display tfoot th { @@ -139,14 +137,20 @@ table.display td.center { .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; + cursor: pointer; + * cursor: hand; } .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; + cursor: pointer; + * cursor: hand; } .sorting { background: url('../images/sort_both.png') no-repeat center right; + cursor: pointer; + * cursor: hand; } .sorting_asc_disabled { diff --git a/data/interfaces/lossless/css/style.css b/data/interfaces/lossless/css/style.css index d046c750..86caec5b 100644 --- a/data/interfaces/lossless/css/style.css +++ b/data/interfaces/lossless/css/style.css @@ -178,11 +178,30 @@ table th { background-image: -webkit-linear-gradient(#fafafa, #eaeaea) !important; filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + border-left: 1px solid #E0E0E0; + -moz-box-shadow: 1px 0 0 #fafafa; + -webkit-box-shadow: 1px 0 0 #fafafa; + box-shadow: 1px 0 0 #fafafa; text-shadow: 1px 1px 0 #FFFFFF ; } table th input[type="checkbox"] { vertical-align: middle; } +table th:first-child { + border-left: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} +table th.sorting_desc, +table th.sorting_asc { + background-image: -moz-linear-gradient(#fafbfd, #dce6ef) !important; + background-image: linear-gradient(#fafbfd, #dce6ef) !important; + background-image: -webkit-linear-gradient(#fafbfd, #dce6ef) !important; + filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + -ms-filter: progid:dximagetransform.microsoft.gradient(startColorstr=#fafafa, endColorstr=#eaeaea) !important; + color: #4183c4; +} table td { vertical-align: top; } @@ -468,8 +487,10 @@ header #logo { } footer { display: table; - margin: 20px auto; + margin: 60px auto 20px auto; width: 960px; + padding-top: 10px; + border-top: 1px solid #EEE; } #main { line-height: 24px; @@ -1017,7 +1038,7 @@ div#artistheader h2 a { } #searchresults_table th#artistname { min-width: 325px; - text-align: center; + text-align: left; } #searchresults_table #artistImg { background: url("../images/loader_black.gif") no-repeat scroll center center #ffffff; @@ -1039,6 +1060,9 @@ div#artistheader h2 a { text-align: left; vertical-align: middle; } +#searchresults_table td#add { + vertical-align: middle; +} #searchresults_table td#score .bar { width: 100px; margin: 0 auto; @@ -1088,13 +1112,25 @@ div#artistheader h2 a { font-size: 10px; position: relative; z-index: 999; - margin: 20px auto; + margin: 0px auto; text-align: center; - width: 390px; + width: 400px; } #donate { - margin: 20px auto; - text-align: center; + float: left; + text-align: left; +} +#actions { + float: right; + text-align: right; + margin-right: 10px; + margin-top: -5px; + color: #cccccc; +} +#actions .ui-icon { + position: relative; + top: 4px; + background-image: url("../images/ui-icons_70b2e1_256x240.png"); } #toTop { background: url("../images/toTop.gif") no-repeat scroll 10px center #f7f7f7; @@ -1115,7 +1151,6 @@ div#artistheader h2 a { } .cloudtag { font-size: 16px; - padding-top: 30px; } .cloudtag #cloud { line-height: 1.5em; @@ -1167,7 +1202,8 @@ div#artistheader h2 a { font-weight: 900; } .cloudtag #cloud li { - display: inline; + display: inline-block; + margin: 5px 10px; } .floatright { float: right; diff --git a/data/interfaces/lossless/css/style.less b/data/interfaces/lossless/css/style.less index bf2a5e62..4649e0c3 100644 --- a/data/interfaces/lossless/css/style.less +++ b/data/interfaces/lossless/css/style.less @@ -104,8 +104,15 @@ table { border-spacing: 0; th { .gradient(#FAFAFA, #EAEAEA); + border-left: 1px solid #E0E0E0; + .shadow(1px 0 0 #FAFAFA); text-shadow:1px 1px 0 #FFFFFF ; input[type="checkbox"]{ vertical-align: middle;} + &:first-child { border-left:0;.shadow(none)} + &.sorting_desc,&.sorting_asc { + .gradient(#FAFBFD, #DCE6EF); + color: @link-color; + } } td { vertical-align: top; @@ -332,8 +339,10 @@ header { } footer { display: table; - margin: 20px auto; + margin: 60px auto 20px auto; width: 960px; + padding-top: 10px; + border-top: 1px solid #EEE; } #main { line-height: 24px; @@ -819,7 +828,7 @@ div#artistheader { } th#artistname { min-width: 325px; - text-align: center; + text-align: left; } #artistImg { background: url("../images/loader_black.gif") no-repeat scroll center center #FFFFFF; @@ -841,6 +850,7 @@ div#artistheader { text-align: left; vertical-align: middle; } + td#add {vertical-align: middle;} td#score { .bar { width: 100px; @@ -887,13 +897,25 @@ div#artistheader { font-size: 10px; position: relative; z-index: 999; - margin: 20px auto; + margin: 0px auto; text-align: center; - width: 390px; + width: 400px; } #donate { - margin: 20px auto; - text-align: center; + float: left; + text-align: left; +} +#actions { + float: right; + text-align: right; + margin-right: 10px; + margin-top: -5px; + color: @border-color; + .ui-icon { + position: relative; + top: 4px; + background-image: url("../images/ui-icons_70b2e1_256x240.png"); + } } #toTop { background: url("../images/toTop.gif") no-repeat scroll 10px center #f7f7f7; @@ -916,7 +938,6 @@ div#artistheader { } .cloudtag { font-size: 16px; - padding-top: 30px; #cloud { line-height: 1.5em; margin: 0; @@ -965,7 +986,10 @@ div#artistheader { font-weight: 900; } } - li { display: inline; } + li { + display: inline-block; + margin: 5px 10px; + } } } diff --git a/data/interfaces/lossless/images/icon_like.png b/data/interfaces/lossless/images/icon_like.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f638d17ed4bc8228020aeda4780a73e35e19f8 GIT binary patch literal 1095 zcmaJ=O=#0l98aytm>oOl|QJUBu0CR5a*4u5` zDtA>91W}c07t_v;m#1P2{y%yUp2piwlP^6{`)WHUcmCOX_*V>0I z&^6qVQHJwMM5UrFWOI?n0y;o4S=0v%n=cB~iY|}O&NV}kD-e_ysMVl)q)svcEkHKV ztWRM>EE(cxE)Wcd!+S_S%drgWXE?u)3-bX#&$8s&M`3T4n&Z=A>zXfY2~XlV5@TqF{4H2i)aM)>R@1Ib07VS7soBCr)pGm!=j(ovMNa1aR;j&wBz-CUP7 z?6orCf-yzeWH_32QYrx@>Hkn&Uq{<04L0Kar?8zFG69nYHXO7R+_;?Aab@xe3&;ps z83+eTRqX7C2-^M7Bokc?q$Dev;n*v9N#aw6jbuXsDN&%X0f}nwyjDJz zKv}&tu3A2pU|BAMgJGP;{?+Kx6`mgFxIVVnSRZ^~;Ayw;SdT6}tj14bG9|_`#kbk{ z<>jc`Q`f=&h)&GSA6L17%VVypTX*jE)?X>iMBOzb*Jl<#zVH3@^&Iqw`B7J(J9fIe z?b?U?<2UVhua@hK$8FngdAj>52AZa-bKVn&wzs=q?0&Pb<@H(l>fOyd+*?~7JoC7x zKjmv(IoL9{=}E0R`+af$f-6>W;pSMf^`tv7`}0e|bCiCZYaIM79FWdWs27_)KV7ba s$0nX%I(54G#Eska-XOW;JyWxH#6<{W+3|ZLQ-0@Zr;;7w?Rf9#A98qWYXATM literal 0 HcmV?d00001 diff --git a/data/interfaces/lossless/index.html b/data/interfaces/lossless/index.html index 503ccf9c..bf437622 100644 --- a/data/interfaces/lossless/index.html +++ b/data/interfaces/lossless/index.html @@ -1,4 +1,4 @@ -lossless<%inherit file="base.html"/> +<%inherit file="base.html"/> <%! from headphones import helpers %> @@ -54,7 +54,7 @@ lossless<%inherit file="base.html"/> %>
- ${artist['ArtistName']} + ${artist['ArtistName']} ${artist['Status']} ${albumdisplay}
${havetracks}/${totaltracks}
@@ -73,12 +73,16 @@ lossless<%inherit file="base.html"/> + diff --git a/data/interfaces/classic/artist.html b/data/interfaces/classic/artist.html new file mode 100644 index 00000000..98b539ad --- /dev/null +++ b/data/interfaces/classic/artist.html @@ -0,0 +1,165 @@ +<%inherit file="base.html"/> +<%! + from headphones import db + import headphones +%> + +<%def name="headerIncludes()"> +
+ +
+ + +<%def name="body()"> +
+

${artist['ArtistName']}

+ %if artist['Status'] == 'Loading': +

(Album information for this artist is currently being loaded)

+ %endif +
+
+

Mark selected albums as + + +

+ + + + + + + + + + + + + + + + %for album in albums: + <% + if album['Status'] == 'Skipped': + grade = 'Z' + elif album['Status'] == 'Wanted': + grade = 'X' + elif album['Status'] == 'Snatched': + grade = 'C' + else: + grade = 'A' + + myDB = db.DBConnection() + totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=?', [album['AlbumID']])) + havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])) + + try: + percent = (havetracks*100.0)/totaltracks + if percent > 100: + percent = 100 + except (ZeroDivisionError, TypeError): + percent = 0 + totaltracks = '?' + + avgbitrate = myDB.action("SELECT AVG(BitRate) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + if avgbitrate: + bitrate = str(int(avgbitrate)/1000) + ' kbps' + else: + bitrate = '' + + albumformatcount = myDB.action("SELECT COUNT(DISTINCT Format) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + if albumformatcount == 1: + albumformat = myDB.action("SELECT DISTINCT Format FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] + elif albumformatcount > 1: + albumformat = 'Mixed' + else: + albumformat = '' + + lossy_formats = [str.upper(fmt) for fmt in headphones.LOSSY_MEDIA_FORMATS] + + %> + + + + + + + + + + + + %endfor + +
NameDateTypeStatusHaveBitrateFormat
${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']} + %if album['Status'] == 'Skipped': + [want] + %elif (album['Status'] == 'Wanted' or album['Status'] == 'Wanted Lossless'): + [skip] + %else: + [retry][new] + %endif + %if albumformat in lossy_formats and album['Status'] == 'Skipped': + [want lossless] + %elif albumformat in lossy_formats and (album['Status'] == 'Snatched' or album['Status'] == 'Downloaded'): + [retry lossless] + %endif +
${havetracks}/${totaltracks}
${bitrate}${albumformat}
+
+ + +<%def name="headIncludes()"> + + %if artist['Status'] == 'Loading': + + %endif + + +<%def name="javascriptIncludes()"> + + + diff --git a/data/interfaces/classic/base.html b/data/interfaces/classic/base.html new file mode 100644 index 00000000..7053f803 --- /dev/null +++ b/data/interfaces/classic/base.html @@ -0,0 +1,107 @@ +<% + import headphones + from headphones import version +%> + + + + + + + + + + + Headphones - ${title} + + + + + + + + + ${next.headIncludes()} + + + + +
+
+ % if not headphones.CURRENT_VERSION: +
+ You're running an unknown version of Headphones. Click here to update +
+ % elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win': +
+ A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Click here to update +
+ % endif + + + +
+ ${next.headerIncludes()} +
+
+ +
+ ${next.body()} +
+ +
+
+ Version: ${headphones.CURRENT_VERSION} + %if version.HEADPHONES_VERSION != 'master': + (${version.HEADPHONES_VERSION}) + %endif +
+ +
+
+ + + + ${next.javascriptIncludes()} + + + + + + + + +<%def name="javascriptIncludes()"> +<%def name="headIncludes()"> +<%def name="headerIncludes()"> diff --git a/data/interfaces/classic/config.html b/data/interfaces/classic/config.html new file mode 100644 index 00000000..f75b5c50 --- /dev/null +++ b/data/interfaces/classic/config.html @@ -0,0 +1,669 @@ +<%inherit file="base.html"/> +<%! + import headphones +%> + +<%def name="headerIncludes()"> +
+ +
+ +<%def name="body()"> +
+

+

+
+
+

Web Interface

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

HTTP Host:

+
+ e.g. localhost or 0.0.0.0 +
+

HTTP Username:

+ +
+

HTTP Port:

+ +
+

HTTP Password:

+ +
+

Launch Browser on Startup:

+
+

Enable API:

+
+
+

API key:



+
+
+

NZB Search Interval:

+ mins +
+

Download Scan Interval:

+ mins +
+

Library Scan Interval:

+ mins +
+
+
+

Download Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

SABnzbd:

+
+

SABnzbd Host:


+ + usually http://localhost:8080 +
+

SABnzbd Username:

+
+

SABnzbd API:

+
+

SABnzbd Password:

+
+

SABnzbd Category:

+
+

Music Download Directory:


+ + Full path to the directory where SAB downloads your music
+ e.g. /Users/name/Downloads/music
+
+

Use Black Hole:

+
+

Black Hole Directory:


+ + Folder your Download program watches for NZBs +
+

Usenet Retention:

+
+



Torrent:

+
+

Black Hole Directory:


+ + Folder your Download program watches for Torrents +
+

Minimum seeders:


+ + Number of minimum seeders a torrent must have to be accepted +
+

Music Download Directory:


+ + Full path to the directory where your torrent client downloads your music
+ e.g. /Users/name/Downloads/music
+
+
+
+

Search Providers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

SABnzbd:

+
+

NZBMatrix:

+
+

NZBMatrix Username:

+ +
+

NZBMatrix API:

+ +
+

Newznab:

+
+

Newznab Host:

+
+ e.g. http://nzb.su +
+

Newznab API:

+ +
+

NZBs.org:

+
+ +

NZBs.org API Key:

+ + +
+

Newzbin:

+
+

Newzbin UID:

+ + +
+

Newzbin Password:

+ +
+

Torrent:


+
+

Isohunt:


+
+

Mininova:


+
+

Kick Ass Torrents:

+
+
+
+

Quality & Post Processing

+ + + + + + + + + + +
+

Album Quality:


+

Highest Quality excluding Lossless

+

Highest Quality including Lossless

+

Lossless Only

+

Preferred Bitrate: + kbps

+ Auto-Detect Preferred Bitrate +
+

Post-Processing:

+

Move downloads to Destination Folder

+

Rename files

+

Correct metadata

+

Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)

+

Add album art as 'folder.jpg' to album folder

+

Embed album art in each file

+

Embed lyrics

+
+
+ +

Path to Destination folder:

+
+ e.g. /Users/name/Music/iTunes or /Volumes/share/music +
+
+
+

Advanced Settings

+ + + + + + + + + + + + + +
+

Renaming Options:

+
+

Folder Format:


+ Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name)
+ E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010]
+

+

File Format:

+
+ Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year +
+

Miscellaneous:

+
+

Automatically Include Extras When Adding an Artist

+ (EPs, Compilations, Live Albums, Remix Albums and Singles) +

Automatically Mark Upcoming Albums as Wanted

+

Automatically Mark All Albums as Wanted

+
+

Interface: +

+

Log Directory:

+
+

Re-Encoding Options:

+ Note: this option requires the lame or ffmpeg encoder +

+

Re-encode downloads during postprocessing

+
+
+

Only re-encode lossless files (.flac)

+
+ <% + if config['encoder'] == 'lame': + lameselect = 'selected="selected"' + ffmpegselect = '' + else: + lameselect = '' + ffmpegselect = 'selected="selected"' + %> +

Encoder: + + Format:

+
+ +

Audio Properties:

+
+

VBR/CBR: + + Quality:

+ +
+

Bitrate: + + <% + if config["samplingfrequency"] == 44100: + freq44100 = 'selected="selected"' + freq48000 = '' + else: + freq44100 = '' + freq48000 = 'selected="selected"' + %> + Sampling:

+
+
+

Advanced Encoding Options:

+

+ (ignores audio properties) +

+ +
+

Path to Encoder:

+
+
+

Notifications:


+

Enable Prowl Notifications


+
+

API key:



+

Notify on snatch?


+

Priority (-2,-1,0,1 or 2):



+
+

Enable XBMC Updates


+
+

XBMC Host:Port:


+ e.g. http://localhost:8080. Separate hosts with commas
+

XBMC Username:



+

XBMC Password:



+

Update XBMC Library


+

Send Notification to XBMC


+
+

Enable NotifyMyAndroid


+
+

NotifyMyAndroid API Key:


+ Separate multiple api keys with commas
+

Priority: +

+

+
+

Muscbrainz Mirror: + +
+

Host:

+

Port:

+

Sleep Interval:

+
+ +
+

Username:

+

Password:

+ Get an Account

+
+

+
+ +


+ (Web Interface changes require a restart to take effect) + + + +<%def name="javascriptIncludes()"> + + diff --git a/data/interfaces/classic/css/navbar.css b/data/interfaces/classic/css/navbar.css new file mode 100644 index 00000000..cb72e3a0 --- /dev/null +++ b/data/interfaces/classic/css/navbar.css @@ -0,0 +1,111 @@ +#nav { + margin: 0; + padding: 0px 0px 0; + border: solid 1px #6d6d6d; +} +#nav li { + margin: 0 10px; + padding: 5px; + float: left; + position: relative; + list-style: none; +} +/* main level link */ +#nav a { + font-weight: bold; + color: #e7e5e5; + text-decoration: none; + display: block; + padding: 8px 20px; + margin: 0; + text-shadow: 0 1px 1px rgba(0, 0, 0, .3); +} +/* main level link hover */ +#nav .current a, #nav li:hover > a { + background: #d1d1d1; /* for non-css3 browsers */ + color: #444; + border-top: solid 1px #f8f8f8; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + box-shadow: 0 1px 1px rgba(0, 0, 0, .2); + text-shadow: 0 1px 0 rgba(255, 255, 255, .8); +} +/* sub levels link hover */ +#nav ul li:hover a, #nav li:hover li a { + background: none; + border: none; + color: #666; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +#nav ul a:hover { + background: #0399d4 !important; /* for non-css3 browsers */ + color: #fff !important; + -webkit-border-radius: 0; + -moz-border-radius: 0; + text-shadow: 0 1px 1px rgba(0, 0, 0, .1); +} +/* level 2 list */ +#nav ul { + background: #ddd; /* for non-css3 browsers */ + display: none; + margin: 0; + padding: 0; + width: 185px; + position: absolute; + top: 35px; + left: 0; + border: solid 1px #b4b4b4; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); + box-shadow: 0 1px 3px rgba(0, 0, 0, .3); +} +/* dropdown */ +#nav li:hover > ul { + display: block; +} +#nav ul li { + float: none; + margin: 0; + padding: 0; +} +#nav ul a { + font-weight: normal; + text-shadow: 0 1px 1px rgba(255, 255, 255, .9); +} +/* level 3+ list */ +#nav ul ul { + left: 181px; + top: -3px; +} +/* rounded corners for first and last child */ +#nav ul li:first-child > a { + -webkit-border-top-left-radius: 9px; + -moz-border-radius-topleft: 9px; + -webkit-border-top-right-radius: 9px; + -moz-border-radius-topright: 9px; +} +#nav ul li:last-child > a { + -webkit-border-bottom-left-radius: 9px; + -moz-border-radius-bottomleft: 9px; + -webkit-border-bottom-right-radius: 9px; + -moz-border-radius-bottomright: 9px; +} +/* clearfix */ +#nav:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} +#nav { + display: inline-block; +} +html[xmlns] #nav { + display: block; +} +* html #nav { + height: 1%; +} \ No newline at end of file diff --git a/data/interfaces/lossless/extras.html b/data/interfaces/classic/extras.html similarity index 68% rename from data/interfaces/lossless/extras.html rename to data/interfaces/classic/extras.html index fff485d5..d9dbbe2f 100644 --- a/data/interfaces/lossless/extras.html +++ b/data/interfaces/classic/extras.html @@ -1,9 +1,7 @@ <%inherit file="base.html" /> <%def name="body()"> -

-

extraArtists You Might Like

-
+

Artists You Might Like

    %for artist in cloudlist: diff --git a/data/interfaces/classic/history.html b/data/interfaces/classic/history.html new file mode 100644 index 00000000..ac7c4f6d --- /dev/null +++ b/data/interfaces/classic/history.html @@ -0,0 +1,85 @@ +<%inherit file="base.html"/> +<%! + from headphones import helpers +%> + +<%def name="headerIncludes()"> + + + +<%def name="body()"> +
    + History +
    + + + + + + + + + + + + %for item in history: + <% + if item['Status'] == 'Processed': + grade = 'A' + elif item['Status'] == 'Snatched': + grade = 'C' + elif item['Status'] == 'Unprocessed': + grade = 'X' + else: + grade = 'U' + + fileid = 'unknown' + if item['URL'].find('nzb') != -1: + fileid = 'nzb' + if item['URL'].find('torrent') != -1: + fileid = 'torrent' + %> + + + + + + + + %endfor + +
    Date AddedFile NameSizeStatus
    ${item['DateAdded']}${item['Title']} [${fileid}][album page]${helpers.bytes_to_mb(item['Size'])}${item['Status']}[retry][new]
    + + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/index.html b/data/interfaces/classic/index.html similarity index 60% rename from data/interfaces/lossless/index.html rename to data/interfaces/classic/index.html index bf437622..83a594b6 100644 --- a/data/interfaces/lossless/index.html +++ b/data/interfaces/classic/index.html @@ -7,7 +7,6 @@ - @@ -47,14 +46,10 @@ if artist['Status'] == 'Paused': grade = 'X' - - if artist['Status'] == 'Loading': - grade = 'L' %> - - + @@ -65,42 +60,27 @@ <%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> - \ No newline at end of file diff --git a/data/interfaces/lossless/logs.html b/data/interfaces/classic/logs.html similarity index 83% rename from data/interfaces/lossless/logs.html rename to data/interfaces/classic/logs.html index 58c8cfeb..98004034 100644 --- a/data/interfaces/lossless/logs.html +++ b/data/interfaces/classic/logs.html @@ -1,12 +1,9 @@ -lossless<%inherit file="base.html"/> +<%inherit file="base.html"/> <%! from headphones import helpers %> <%def name="body()"> -
    -

    LogsLogs

    -
    Artist Name Status Latest Album
    ${artist['ArtistName']}${artist['ArtistName']} ${artist['Status']} ${albumdisplay}
    ${havetracks}/${totaltracks}
    @@ -36,7 +33,7 @@ lossless<%inherit file="base.html"/> <%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> diff --git a/data/interfaces/classic/manage.html b/data/interfaces/classic/manage.html new file mode 100644 index 00000000..cf5a476a --- /dev/null +++ b/data/interfaces/classic/manage.html @@ -0,0 +1,74 @@ +<%inherit file="base.html" /> +<%! + import headphones + from headphones.helpers import checked +%> +<%def name="headerIncludes()"> +
    + +
    + + +<%def name="body()"> +
    +

    +

    +
    +

    Scan Music Library


    + Where do you keep your music?

    + You can put in any directory, and it will scan for audio files in that folder + (including all subdirectories)

    For example: '/Users/name/Music' +

    + It may take a while depending on how many files you have. You can navigate away from the page
    + as soon as you click 'Submit' +

    +
    + %if headphones.MUSIC_DIR: + + %else: + + %endif +
    +

    Automatically add new artists

    +

    + +
    + +
    +

    Import Last.FM Artists


    + Enter the username whose artists you want to import:

    +
    + <% + if headphones.LASTFM_USERNAME: + lastfmvalue = headphones.LASTFM_USERNAME + else: + lastfmvalue = 'Last.fm Username' + %> + +

    +
    + +
    +

    Placeholder :-)


    +

    +
    + +

    +
    + + + \ No newline at end of file diff --git a/data/interfaces/lossless/manageartists.html b/data/interfaces/classic/manageartists.html similarity index 51% rename from data/interfaces/lossless/manageartists.html rename to data/interfaces/classic/manageartists.html index 41fda9e0..368d653c 100644 --- a/data/interfaces/lossless/manageartists.html +++ b/data/interfaces/classic/manageartists.html @@ -1,37 +1,24 @@ -lossless<%inherit file="base.html" /> - - - -<%def name="headerIncludes()"> -
    -   -
    - « Back to manage overview - - +<%inherit file="base.html" /> <%def name="body()"> -
    -
    -

    manageManage Artists

    +
    +

    Manage Artists

    -
    -
    - selected artists - -
    + +

    - @@ -59,7 +46,6 @@ lossless<%inherit file="base.html" /> %> - @@ -68,44 +54,29 @@ lossless<%inherit file="base.html" />
    Artist Name Status Latest Album
    ${artist['ArtistName']} ${artist['Status']} ${albumdisplay}
    -
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> \ No newline at end of file diff --git a/data/interfaces/lossless/managenew.html b/data/interfaces/classic/managenew.html similarity index 53% rename from data/interfaces/lossless/managenew.html rename to data/interfaces/classic/managenew.html index cd141268..bea493b2 100644 --- a/data/interfaces/lossless/managenew.html +++ b/data/interfaces/classic/managenew.html @@ -1,28 +1,17 @@ -lossless<%inherit file="base.html" /> +<%inherit file="base.html" /> <%! import headphones %> - -<%def name="headerIncludes()"> - - « Back to manage overview - - - <%def name="body()"> -
-
-

manageManage New Artists

+
+

Manage New Artists

+

Scan Music Library

-
+

Add selected artists -

+

@@ -40,11 +29,10 @@ lossless<%inherit file="base.html" />
-
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> @@ -56,12 +44,9 @@ lossless<%inherit file="base.html" /> { "aaSorting": [[1, 'asc']], "bStateSave": false, - "bPaginate": false, - "oLanguage": { - "sSearch" : ""}, + "bPaginate": false }); -initActions(); }); \ No newline at end of file diff --git a/data/interfaces/classic/searchresults.html b/data/interfaces/classic/searchresults.html new file mode 100644 index 00000000..b02fedd6 --- /dev/null +++ b/data/interfaces/classic/searchresults.html @@ -0,0 +1,70 @@ +<%inherit file="base.html" /> + +<%def name="body()"> + +
+

Search Results

+

+ + + + %if type == 'album': + + %endif + + + + + + + %if searchresults: + %for result in searchresults: + <% + if result['score'] == 100: + grade = 'A' + else: + grade = 'Z' + %> + + %if type == 'album': + + %endif + + + %if type == 'album': + + %else: + + %endif + + %endfor + %endif + +
Album NameArtist NameScore
${result['title']}${result['uniquename']}${result['score']}Add this albumAdd this artist
+ + +<%def name="headIncludes()"> + + + +<%def name="javascriptIncludes()"> + + + \ No newline at end of file diff --git a/data/interfaces/lossless/shutdown.html b/data/interfaces/classic/shutdown.html similarity index 57% rename from data/interfaces/lossless/shutdown.html rename to data/interfaces/classic/shutdown.html index e28b34f3..be7ca21d 100644 --- a/data/interfaces/lossless/shutdown.html +++ b/data/interfaces/classic/shutdown.html @@ -1,4 +1,4 @@ -lossless<%inherit file="base.html"/> +<%inherit file="base.html"/> <%def name="headIncludes()"> @@ -7,7 +7,7 @@ lossless<%inherit file="base.html"/> <%def name="body()">
-

Headphones is ${message}

+

Headphones is ${message}

\ No newline at end of file diff --git a/data/interfaces/lossless/upcoming.html b/data/interfaces/classic/upcoming.html similarity index 60% rename from data/interfaces/lossless/upcoming.html rename to data/interfaces/classic/upcoming.html index 6fba69f1..5c209056 100644 --- a/data/interfaces/lossless/upcoming.html +++ b/data/interfaces/classic/upcoming.html @@ -1,51 +1,7 @@ -lossless<%inherit file="base.html" /> +<%inherit file="base.html" /> <%def name="body()"> - -
-

Wanted AlbumsWanted Albums

-
-
-
- Mark selected albums as - - -
-
- - - - - - - - - - - - - %for album in wanted: - - - - - - - - %endfor - -
ArtistAlbum NameRelease DateType
- ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
- - -
-
-

Upcoming AlbumsUpcoming Albums

-
+

Upcoming Albums

@@ -71,29 +27,60 @@ lossless<%inherit file="base.html" />
+ +
+

Mark selected albums as + + +

+
+

Wanted Albums

+ + + + + + + + + + + + + %for album in wanted: + + + + + + + + %endfor + +
ArtistAlbum NameRelease DateType
+ ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
+ +
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> \ No newline at end of file diff --git a/data/interfaces/default/album.html b/data/interfaces/default/album.html index 16c1a4ef..7f7028e0 100644 --- a/data/interfaces/default/album.html +++ b/data/interfaces/default/album.html @@ -6,29 +6,31 @@ <%def name="headerIncludes()">
- +
+ « Back to ${album['ArtistName']} <%def name="body()">
-

<- Back to ${album['ArtistName']}

-
- albumart +
+
+ albumart +
+

${album['AlbumTitle']}

${album['ArtistName']}

-
<% totalduration = myDB.action("SELECT SUM(TrackDuration) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] totaltracks = len(myDB.select("SELECT TrackTitle from tracks WHERE AlbumID=?", [album['AlbumID']])) @@ -38,12 +40,16 @@ albumduration = 'n/a' %> -

Tracks: ${totaltracks}

-

Duration: ${albumduration}

- %if description: -

Description:

- ${description['Summary']} - %endif +
+ %if description: +

${description['Summary']}

+ %endif +
    +
  • Tracks: ${totaltracks}
  • +
  • Duration: ${albumduration}
  • +
+
+
@@ -116,21 +122,25 @@ <%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> diff --git a/data/interfaces/default/artist.html b/data/interfaces/default/artist.html index 98b539ad..4b418732 100644 --- a/data/interfaces/default/artist.html +++ b/data/interfaces/default/artist.html @@ -6,40 +6,47 @@ <%def name="headerIncludes()">
- +
+ « Back to overview <%def name="body()"> -
-

${artist['ArtistName']}

+
+
+ ${artist['ArtistName']} +
+

${artist['ArtistName']}

+
%if artist['Status'] == 'Loading':

(Album information for this artist is currently being loaded)

%endif
- -

Mark selected albums as - +

Mark selected albums as + - -

+ +

@@ -103,22 +110,22 @@ - + %endfor
${album['Type']} ${album['Status']} %if album['Status'] == 'Skipped': - [want] + [want] %elif (album['Status'] == 'Wanted' or album['Status'] == 'Wanted Lossless'): - [skip] + [skip] %else: - [retry][new] + [retry][new] %endif %if albumformat in lossy_formats and album['Status'] == 'Skipped': - [want lossless] + [want lossless] %elif albumformat in lossy_formats and (album['Status'] == 'Snatched' or album['Status'] == 'Downloaded'): - [retry lossless] + [retry lossless] %endif
${havetracks}/${totaltracks}
${bitrate} ${albumformat}
@@ -126,7 +133,8 @@ <%def name="headIncludes()"> - + + + diff --git a/data/interfaces/default/base.html b/data/interfaces/default/base.html old mode 100755 new mode 100644 index 7053f803..73f58392 --- a/data/interfaces/default/base.html +++ b/data/interfaces/default/base.html @@ -13,45 +13,50 @@ Headphones - ${title} - - + + - + + ${next.headIncludes()}
-
- % if not headphones.CURRENT_VERSION: +
+ % if not headphones.CURRENT_VERSION:
- You're running an unknown version of Headphones. Click here to update + You're running an unknown version of Headphones. Update or + Close
% elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win':
- A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Click here to update + A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Update or Close
% endif + +
+
-
- ${next.headerIncludes()} +
+
+ ${next.headerIncludes()} +
${next.body()}
+ Back to top
- - + + + + ${next.javascriptIncludes()} - - + + diff --git a/data/interfaces/default/config.html b/data/interfaces/default/config.html index f75b5c50..7bf380a8 100644 --- a/data/interfaces/default/config.html +++ b/data/interfaces/default/config.html @@ -5,531 +5,625 @@ <%def name="headerIncludes()"> <%def name="body()"> -
-

-

-
-
-

Web Interface

+ + +
+

settingsSettings

+
+ + +
+ +
+ + - - - - - - - - - - - - - - - - - - - - - - - - +
-

HTTP Host:

-
- e.g. localhost or 0.0.0.0 -
-

HTTP Username:

- -
-

HTTP Port:

- -
-

HTTP Password:

- -
-

Launch Browser on Startup:

-
-

Enable API:

-
-
-

API key:



-
-
-

NZB Search Interval:

- mins -
-

Download Scan Interval:

- mins -
-

Library Scan Interval:

- mins +
+
+ Basic +
+ + + e.g. localhost or 0.0.0.0 +
+
+ + +
+
+ + +
+ +
+ + +
+
+ +
+
+
+
+ API +
+ +
+
+ + + + Current API key: ${config['api_key']} +
+
+ +
+ Interval +
+ + mins +
+ +
+ + mins +
+ +
+ + mins +
+
-
-

Download Settings

+ +
- - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

SABnzbd:

+
+ SABnzbd +
+ + + usually http://localhost:8080 +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ Downloads +
+ + + Full path where SAB downloads your music. e.g. /Users/name/Downloads/music +
+
-

SABnzbd Host:


- - usually http://localhost:8080 +
+ Torrents +
+ + + Folder your Download program watches for Torrents +
+
+ + + Number of minimum seeders a torrent must have to be accepted +
+
+ + + Full path where your torrent client downloads your music e.g. /Users/name/Downloads/music +
+
+
+ Blackhole +
+ +
+
+
+ + + Folder your Download program watches for NZBs +
+
+
+ +
+
-

SABnzbd Username:

-
-

SABnzbd API:

-
-

SABnzbd Password:

-
-

SABnzbd Category:

-
-

Music Download Directory:


- - Full path to the directory where SAB downloads your music
- e.g. /Users/name/Downloads/music
-
-

Use Black Hole:

-
-

Black Hole Directory:


- - Folder your Download program watches for NZBs -
-

Usenet Retention:

-
-



Torrent:

-
-

Black Hole Directory:


- - Folder your Download program watches for Torrents -
-

Minimum seeders:


- - Number of minimum seeders a torrent must have to be accepted -
-

Music Download Directory:


- - Full path to the directory where your torrent client downloads your music
- e.g. /Users/name/Downloads/music
-
+ + +
-
-

Search Providers

+
- - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

SABnzbd:

+
+ NZBMatrix +
+ +
+
+
+ + +
+
+ + +
+
+
+ +
+ Newsnab +
+ +
+
+
+ + + e.g. http://nzb.su +
+
+ + +
+
+
-

NZBMatrix:

-
-

NZBMatrix Username:

- +
+ NZBs.org +
+ +
+
+
+ + +
+
+
+
+ Newsbin +
+ +
+
+
+ + +
+
+ + +
+
+
+
+ Torrents +
+ +
+
+ +
+
+
+
+
-

NZBMatrix API:

- -
-

Newznab:

-
-

Newznab Host:

-
- e.g. http://nzb.su -
-

Newznab API:

- -
-

NZBs.org:

-
- -

NZBs.org API Key:

- - -
-

Newzbin:

-
-

Newzbin UID:

- - -
-

Newzbin Password:

- -
-

Torrent:


-
-

Isohunt:


-
-

Mininova:


-
-

Kick Ass Torrents:

-
-
-

Quality & Post Processing

- +
+
+ Quality +
+ + + + +
+
+ + +
+ +
+ - - - - +
+ Post-Processing +
+ + + + + + + + +
+
+ + + e.g. /Users/name/Music/iTunes or /Volumes/share/music +
+
+
-

Album Quality:


-

Highest Quality excluding Lossless

-

Highest Quality including Lossless

-

Lossless Only

-

Preferred Bitrate: - kbps

- Auto-Detect Preferred Bitrate -
-

Post-Processing:

-

Move downloads to Destination Folder

-

Rename files

-

Correct metadata

-

Delete leftover files (.m3u, .nfo, .sfv, .nzb, etc.)

-

Add album art as 'folder.jpg' to album folder

-

Embed album art in each file

-

Embed lyrics

-
-
- -

Path to Destination folder:

-
- e.g. /Users/name/Music/iTunes or /Volumes/share/music -
-
-

Advanced Settings

- +
- - - - - - - + +
+ Renaming options +
+ + + Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name) + E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010] + +
+
+ + + Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year +
+
+ +
+ Re-Encoding Options + Note: this option requires the lame or ffmpeg encoder +
+ +
+
+ +
+ <% + if config['encoder'] == 'lame': + lameselect = 'selected="selected"' + ffmpegselect = '' + else: + lameselect = '' + ffmpegselect = 'selected="selected"' + %> +
+ + +
+
+ + +
+
+ +
+ Audio Properties +
+ + +
+
+ + +
+
+ + +
+ + + <% + if config["samplingfrequency"] == 44100: + freq44100 = 'selected="selected"' + freq48000 = '' + else: + freq44100 = '' + freq48000 = 'selected="selected"' + %> +
+ + +
+
+ +
+ Advanced Encoding Options +
+ + +
+
+ + +
+ +
+ +
-

Renaming Options:

-
-

Folder Format:


- Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name)
- E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010]
-

-

File Format:

-
- Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year -
-

Miscellaneous:

-
-

Automatically Include Extras When Adding an Artist

- (EPs, Compilations, Live Albums, Remix Albums and Singles) -

Automatically Mark Upcoming Albums as Wanted

-

Automatically Mark All Albums as Wanted

-
-

Interface: -

-

Log Directory:

-
-

Re-Encoding Options:

- Note: this option requires the lame or ffmpeg encoder -

-

Re-encode downloads during postprocessing

-
-
-

Only re-encode lossless files (.flac)

-
- <% - if config['encoder'] == 'lame': - lameselect = 'selected="selected"' - ffmpegselect = '' - else: - lameselect = '' - ffmpegselect = 'selected="selected"' - %> -

Encoder: - - Format:

-
- -

Audio Properties:

-
-

VBR/CBR: - - Quality:

- -
-

Bitrate: - - <% - if config["samplingfrequency"] == 44100: - freq44100 = 'selected="selected"' - freq48000 = '' - else: - freq44100 = '' - freq48000 = 'selected="selected"' - %> - Sampling:

-
-
-

Advanced Encoding Options:

-

- (ignores audio properties) -

- -
-

Path to Encoder:

-
-
-

Notifications:


-

Enable Prowl Notifications


-
-

API key:



-

Notify on snatch?


-

Priority (-2,-1,0,1 or 2):



-
-

Enable XBMC Updates


-
-

XBMC Host:Port:


- e.g. http://localhost:8080. Separate hosts with commas
-

XBMC Username:



-

XBMC Password:



-

Update XBMC Library


-

Send Notification to XBMC


-
-

Enable NotifyMyAndroid


-
-

NotifyMyAndroid API Key:


- Separate multiple api keys with commas
-

Priority: -

-

-
-

Muscbrainz Mirror: -
-

Host:

-

Port:

-

Sleep Interval:

-
+
+ Miscellaneous +
+ + +
+
+ +
+ +
+
+
+
+ Interface +
+ + + +
+
+ + +
+
+ + + +

Notifications

+
+

Prowl

+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
-
-

Username:

-

Password:

- Get an Account

-
+ +
+

XBMC

+
+ +
+
+
+ + + e.g. http://localhost:8080. Separate hosts with commas +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+

NotifyMyAndroid

+
+ +
+
+
+ + + Separate multiple api keys with commas +
+
+ + +
+
+
+ +
+ Musicbrainz +
+ + +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + Get an Account +
+
+
+
-
+
+ +
+

Web Interface changes require a restart to take effect

+
-


- (Web Interface changes require a restart to take effect)

+
<%def name="javascriptIncludes()"> diff --git a/data/interfaces/lossless/css/config.less b/data/interfaces/default/css/config.less similarity index 100% rename from data/interfaces/lossless/css/config.less rename to data/interfaces/default/css/config.less diff --git a/data/interfaces/lossless/css/data_table.css b/data/interfaces/default/css/data_table.css similarity index 98% rename from data/interfaces/lossless/css/data_table.css rename to data/interfaces/default/css/data_table.css index c05488be..820d947e 100644 --- a/data/interfaces/lossless/css/data_table.css +++ b/data/interfaces/default/css/data_table.css @@ -177,17 +177,17 @@ table.display tr.even.gradeA { } table.display tr.odd.gradeC { - background-color: #ddddff; + background-color: #ebf5ff; } table.display tr.even.gradeC { - background-color: #ddddff; + background-color: #ebf5ff; } table.display tr.even.gradeL { - background-color: #ddddff; + background-color: #ebf5ff; } table.display tr.odd.gradeL { - background-color: #ddddff; + background-color: #ebf5ff; } table.display tr.odd.gradeX { diff --git a/data/interfaces/lossless/css/jquery-ui.css b/data/interfaces/default/css/jquery-ui.css similarity index 100% rename from data/interfaces/lossless/css/jquery-ui.css rename to data/interfaces/default/css/jquery-ui.css diff --git a/data/interfaces/lossless/css/style.css b/data/interfaces/default/css/style.css similarity index 100% rename from data/interfaces/lossless/css/style.css rename to data/interfaces/default/css/style.css diff --git a/data/interfaces/lossless/css/style.less b/data/interfaces/default/css/style.less similarity index 100% rename from data/interfaces/lossless/css/style.less rename to data/interfaces/default/css/style.less diff --git a/data/interfaces/lossless/css/style_bu.css b/data/interfaces/default/css/style_bu.css similarity index 100% rename from data/interfaces/lossless/css/style_bu.css rename to data/interfaces/default/css/style_bu.css diff --git a/data/interfaces/default/extras.html b/data/interfaces/default/extras.html index d9dbbe2f..2c25d357 100644 --- a/data/interfaces/default/extras.html +++ b/data/interfaces/default/extras.html @@ -1,7 +1,9 @@ <%inherit file="base.html" /> <%def name="body()"> +
+

extraArtists You Might Like

+
-

Artists You Might Like

    %for artist in cloudlist: diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html index ac7c4f6d..2b7d705d 100644 --- a/data/interfaces/default/history.html +++ b/data/interfaces/default/history.html @@ -5,18 +5,18 @@ <%def name="headerIncludes()"> <%def name="body()">
    - History +

    HistoryHistory

    @@ -51,7 +51,7 @@ - + %endfor @@ -59,27 +59,31 @@ <%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> \ No newline at end of file diff --git a/data/interfaces/lossless/images/NoAlbumArt.png b/data/interfaces/default/images/NoAlbumArt.png similarity index 100% rename from data/interfaces/lossless/images/NoAlbumArt.png rename to data/interfaces/default/images/NoAlbumArt.png diff --git a/data/interfaces/lossless/images/button.png b/data/interfaces/default/images/button.png similarity index 100% rename from data/interfaces/lossless/images/button.png rename to data/interfaces/default/images/button.png diff --git a/data/interfaces/lossless/images/icon_add.png b/data/interfaces/default/images/icon_add.png similarity index 100% rename from data/interfaces/lossless/images/icon_add.png rename to data/interfaces/default/images/icon_add.png diff --git a/data/interfaces/lossless/images/icon_delete.png b/data/interfaces/default/images/icon_delete.png similarity index 100% rename from data/interfaces/lossless/images/icon_delete.png rename to data/interfaces/default/images/icon_delete.png diff --git a/data/interfaces/lossless/images/icon_extra.gif b/data/interfaces/default/images/icon_extra.gif similarity index 100% rename from data/interfaces/lossless/images/icon_extra.gif rename to data/interfaces/default/images/icon_extra.gif diff --git a/data/interfaces/lossless/images/icon_gear.png b/data/interfaces/default/images/icon_gear.png similarity index 100% rename from data/interfaces/lossless/images/icon_gear.png rename to data/interfaces/default/images/icon_gear.png diff --git a/data/interfaces/lossless/images/icon_getextra.png b/data/interfaces/default/images/icon_getextra.png similarity index 100% rename from data/interfaces/lossless/images/icon_getextra.png rename to data/interfaces/default/images/icon_getextra.png diff --git a/data/interfaces/lossless/images/icon_history.png b/data/interfaces/default/images/icon_history.png similarity index 100% rename from data/interfaces/lossless/images/icon_history.png rename to data/interfaces/default/images/icon_history.png diff --git a/data/interfaces/lossless/images/icon_like.png b/data/interfaces/default/images/icon_like.png similarity index 100% rename from data/interfaces/lossless/images/icon_like.png rename to data/interfaces/default/images/icon_like.png diff --git a/data/interfaces/lossless/images/icon_logs.png b/data/interfaces/default/images/icon_logs.png similarity index 100% rename from data/interfaces/lossless/images/icon_logs.png rename to data/interfaces/default/images/icon_logs.png diff --git a/data/interfaces/lossless/images/icon_manage.png b/data/interfaces/default/images/icon_manage.png similarity index 100% rename from data/interfaces/lossless/images/icon_manage.png rename to data/interfaces/default/images/icon_manage.png diff --git a/data/interfaces/lossless/images/icon_pause.png b/data/interfaces/default/images/icon_pause.png similarity index 100% rename from data/interfaces/lossless/images/icon_pause.png rename to data/interfaces/default/images/icon_pause.png diff --git a/data/interfaces/lossless/images/icon_refresh.png b/data/interfaces/default/images/icon_refresh.png similarity index 100% rename from data/interfaces/lossless/images/icon_refresh.png rename to data/interfaces/default/images/icon_refresh.png diff --git a/data/interfaces/lossless/images/icon_removeextra.png b/data/interfaces/default/images/icon_removeextra.png similarity index 100% rename from data/interfaces/lossless/images/icon_removeextra.png rename to data/interfaces/default/images/icon_removeextra.png diff --git a/data/interfaces/lossless/images/icon_search.gif b/data/interfaces/default/images/icon_search.gif similarity index 100% rename from data/interfaces/lossless/images/icon_search.gif rename to data/interfaces/default/images/icon_search.gif diff --git a/data/interfaces/lossless/images/icon_search.png b/data/interfaces/default/images/icon_search.png similarity index 100% rename from data/interfaces/lossless/images/icon_search.png rename to data/interfaces/default/images/icon_search.png diff --git a/data/interfaces/lossless/images/icon_sprite_black.png b/data/interfaces/default/images/icon_sprite_black.png similarity index 100% rename from data/interfaces/lossless/images/icon_sprite_black.png rename to data/interfaces/default/images/icon_sprite_black.png diff --git a/data/interfaces/lossless/images/icon_sprite_white.png b/data/interfaces/default/images/icon_sprite_white.png similarity index 100% rename from data/interfaces/lossless/images/icon_sprite_white.png rename to data/interfaces/default/images/icon_sprite_white.png diff --git a/data/interfaces/lossless/images/icon_upcoming.png b/data/interfaces/default/images/icon_upcoming.png similarity index 100% rename from data/interfaces/lossless/images/icon_upcoming.png rename to data/interfaces/default/images/icon_upcoming.png diff --git a/data/interfaces/lossless/images/icon_wanted.png b/data/interfaces/default/images/icon_wanted.png similarity index 100% rename from data/interfaces/lossless/images/icon_wanted.png rename to data/interfaces/default/images/icon_wanted.png diff --git a/data/interfaces/lossless/images/loader_black.gif b/data/interfaces/default/images/loader_black.gif similarity index 100% rename from data/interfaces/lossless/images/loader_black.gif rename to data/interfaces/default/images/loader_black.gif diff --git a/data/interfaces/lossless/images/loader_blue.gif b/data/interfaces/default/images/loader_blue.gif similarity index 100% rename from data/interfaces/lossless/images/loader_blue.gif rename to data/interfaces/default/images/loader_blue.gif diff --git a/data/interfaces/lossless/images/loader_refresh_black.gif b/data/interfaces/default/images/loader_refresh_black.gif similarity index 100% rename from data/interfaces/lossless/images/loader_refresh_black.gif rename to data/interfaces/default/images/loader_refresh_black.gif diff --git a/data/interfaces/lossless/images/loader_refresh_blue.gif b/data/interfaces/default/images/loader_refresh_blue.gif similarity index 100% rename from data/interfaces/lossless/images/loader_refresh_blue.gif rename to data/interfaces/default/images/loader_refresh_blue.gif diff --git a/data/interfaces/lossless/images/no-cover-art.png b/data/interfaces/default/images/no-cover-art.png similarity index 100% rename from data/interfaces/lossless/images/no-cover-art.png rename to data/interfaces/default/images/no-cover-art.png diff --git a/data/interfaces/lossless/images/no-cover-artist.png b/data/interfaces/default/images/no-cover-artist.png similarity index 100% rename from data/interfaces/lossless/images/no-cover-artist.png rename to data/interfaces/default/images/no-cover-artist.png diff --git a/data/interfaces/lossless/images/sort_asc.png b/data/interfaces/default/images/sort_asc.png similarity index 100% rename from data/interfaces/lossless/images/sort_asc.png rename to data/interfaces/default/images/sort_asc.png diff --git a/data/interfaces/lossless/images/sort_both.png b/data/interfaces/default/images/sort_both.png similarity index 100% rename from data/interfaces/lossless/images/sort_both.png rename to data/interfaces/default/images/sort_both.png diff --git a/data/interfaces/lossless/images/sort_desc.png b/data/interfaces/default/images/sort_desc.png similarity index 100% rename from data/interfaces/lossless/images/sort_desc.png rename to data/interfaces/default/images/sort_desc.png diff --git a/data/interfaces/lossless/images/toTop.gif b/data/interfaces/default/images/toTop.gif similarity index 100% rename from data/interfaces/lossless/images/toTop.gif rename to data/interfaces/default/images/toTop.gif diff --git a/data/interfaces/lossless/images/ui-bg_flat_0_aaaaaa_40x100.png b/data/interfaces/default/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_flat_0_aaaaaa_40x100.png rename to data/interfaces/default/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/data/interfaces/lossless/images/ui-bg_flat_0_eeeeee_40x100.png b/data/interfaces/default/images/ui-bg_flat_0_eeeeee_40x100.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_flat_0_eeeeee_40x100.png rename to data/interfaces/default/images/ui-bg_flat_0_eeeeee_40x100.png diff --git a/data/interfaces/lossless/images/ui-bg_flat_55_c0402a_40x100.png b/data/interfaces/default/images/ui-bg_flat_55_c0402a_40x100.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_flat_55_c0402a_40x100.png rename to data/interfaces/default/images/ui-bg_flat_55_c0402a_40x100.png diff --git a/data/interfaces/lossless/images/ui-bg_flat_55_eeeeee_40x100.png b/data/interfaces/default/images/ui-bg_flat_55_eeeeee_40x100.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_flat_55_eeeeee_40x100.png rename to data/interfaces/default/images/ui-bg_flat_55_eeeeee_40x100.png diff --git a/data/interfaces/lossless/images/ui-bg_glass_100_f8f8f8_1x400.png b/data/interfaces/default/images/ui-bg_glass_100_f8f8f8_1x400.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_glass_100_f8f8f8_1x400.png rename to data/interfaces/default/images/ui-bg_glass_100_f8f8f8_1x400.png diff --git a/data/interfaces/lossless/images/ui-bg_glass_35_dddddd_1x400.png b/data/interfaces/default/images/ui-bg_glass_35_dddddd_1x400.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_glass_35_dddddd_1x400.png rename to data/interfaces/default/images/ui-bg_glass_35_dddddd_1x400.png diff --git a/data/interfaces/lossless/images/ui-bg_glass_60_eeeeee_1x400.png b/data/interfaces/default/images/ui-bg_glass_60_eeeeee_1x400.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_glass_60_eeeeee_1x400.png rename to data/interfaces/default/images/ui-bg_glass_60_eeeeee_1x400.png diff --git a/data/interfaces/lossless/images/ui-bg_inset-hard_75_999999_1x100.png b/data/interfaces/default/images/ui-bg_inset-hard_75_999999_1x100.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_inset-hard_75_999999_1x100.png rename to data/interfaces/default/images/ui-bg_inset-hard_75_999999_1x100.png diff --git a/data/interfaces/lossless/images/ui-bg_inset-soft_50_c9c9c9_1x100.png b/data/interfaces/default/images/ui-bg_inset-soft_50_c9c9c9_1x100.png similarity index 100% rename from data/interfaces/lossless/images/ui-bg_inset-soft_50_c9c9c9_1x100.png rename to data/interfaces/default/images/ui-bg_inset-soft_50_c9c9c9_1x100.png diff --git a/data/interfaces/lossless/images/ui-icons_3383bb_256x240.png b/data/interfaces/default/images/ui-icons_3383bb_256x240.png similarity index 100% rename from data/interfaces/lossless/images/ui-icons_3383bb_256x240.png rename to data/interfaces/default/images/ui-icons_3383bb_256x240.png diff --git a/data/interfaces/lossless/images/ui-icons_454545_256x240.png b/data/interfaces/default/images/ui-icons_454545_256x240.png similarity index 100% rename from data/interfaces/lossless/images/ui-icons_454545_256x240.png rename to data/interfaces/default/images/ui-icons_454545_256x240.png diff --git a/data/interfaces/lossless/images/ui-icons_70b2e1_256x240.png b/data/interfaces/default/images/ui-icons_70b2e1_256x240.png similarity index 100% rename from data/interfaces/lossless/images/ui-icons_70b2e1_256x240.png rename to data/interfaces/default/images/ui-icons_70b2e1_256x240.png diff --git a/data/interfaces/lossless/images/ui-icons_999999_256x240.png b/data/interfaces/default/images/ui-icons_999999_256x240.png similarity index 100% rename from data/interfaces/lossless/images/ui-icons_999999_256x240.png rename to data/interfaces/default/images/ui-icons_999999_256x240.png diff --git a/data/interfaces/lossless/images/ui-icons_fbc856_256x240.png b/data/interfaces/default/images/ui-icons_fbc856_256x240.png similarity index 100% rename from data/interfaces/lossless/images/ui-icons_fbc856_256x240.png rename to data/interfaces/default/images/ui-icons_fbc856_256x240.png diff --git a/data/interfaces/default/index.html b/data/interfaces/default/index.html index 83a594b6..d85497a6 100644 --- a/data/interfaces/default/index.html +++ b/data/interfaces/default/index.html @@ -7,6 +7,7 @@
    ${item['Title']} [${fileid}][album page] ${helpers.bytes_to_mb(item['Size'])} ${item['Status']}[retry][new][retry][new]
    + @@ -46,10 +47,14 @@ if artist['Status'] == 'Paused': grade = 'X' + + if artist['Status'] == 'Loading': + grade = 'L' %> - + + @@ -60,27 +65,42 @@ <%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> + \ No newline at end of file diff --git a/data/interfaces/lossless/js/fancybox/blank.gif b/data/interfaces/default/js/fancybox/blank.gif similarity index 100% rename from data/interfaces/lossless/js/fancybox/blank.gif rename to data/interfaces/default/js/fancybox/blank.gif diff --git a/data/interfaces/lossless/js/fancybox/fancy_close.png b/data/interfaces/default/js/fancybox/fancy_close.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_close.png rename to data/interfaces/default/js/fancybox/fancy_close.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_loading.png b/data/interfaces/default/js/fancybox/fancy_loading.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_loading.png rename to data/interfaces/default/js/fancybox/fancy_loading.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_nav_left.png b/data/interfaces/default/js/fancybox/fancy_nav_left.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_nav_left.png rename to data/interfaces/default/js/fancybox/fancy_nav_left.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_nav_right.png b/data/interfaces/default/js/fancybox/fancy_nav_right.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_nav_right.png rename to data/interfaces/default/js/fancybox/fancy_nav_right.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_e.png b/data/interfaces/default/js/fancybox/fancy_shadow_e.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_e.png rename to data/interfaces/default/js/fancybox/fancy_shadow_e.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_n.png b/data/interfaces/default/js/fancybox/fancy_shadow_n.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_n.png rename to data/interfaces/default/js/fancybox/fancy_shadow_n.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_ne.png b/data/interfaces/default/js/fancybox/fancy_shadow_ne.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_ne.png rename to data/interfaces/default/js/fancybox/fancy_shadow_ne.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_nw.png b/data/interfaces/default/js/fancybox/fancy_shadow_nw.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_nw.png rename to data/interfaces/default/js/fancybox/fancy_shadow_nw.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_s.png b/data/interfaces/default/js/fancybox/fancy_shadow_s.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_s.png rename to data/interfaces/default/js/fancybox/fancy_shadow_s.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_se.png b/data/interfaces/default/js/fancybox/fancy_shadow_se.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_se.png rename to data/interfaces/default/js/fancybox/fancy_shadow_se.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_sw.png b/data/interfaces/default/js/fancybox/fancy_shadow_sw.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_sw.png rename to data/interfaces/default/js/fancybox/fancy_shadow_sw.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_shadow_w.png b/data/interfaces/default/js/fancybox/fancy_shadow_w.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_shadow_w.png rename to data/interfaces/default/js/fancybox/fancy_shadow_w.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_title_left.png b/data/interfaces/default/js/fancybox/fancy_title_left.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_title_left.png rename to data/interfaces/default/js/fancybox/fancy_title_left.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_title_main.png b/data/interfaces/default/js/fancybox/fancy_title_main.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_title_main.png rename to data/interfaces/default/js/fancybox/fancy_title_main.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_title_over.png b/data/interfaces/default/js/fancybox/fancy_title_over.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_title_over.png rename to data/interfaces/default/js/fancybox/fancy_title_over.png diff --git a/data/interfaces/lossless/js/fancybox/fancy_title_right.png b/data/interfaces/default/js/fancybox/fancy_title_right.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancy_title_right.png rename to data/interfaces/default/js/fancybox/fancy_title_right.png diff --git a/data/interfaces/lossless/js/fancybox/fancybox-x.png b/data/interfaces/default/js/fancybox/fancybox-x.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancybox-x.png rename to data/interfaces/default/js/fancybox/fancybox-x.png diff --git a/data/interfaces/lossless/js/fancybox/fancybox-y.png b/data/interfaces/default/js/fancybox/fancybox-y.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancybox-y.png rename to data/interfaces/default/js/fancybox/fancybox-y.png diff --git a/data/interfaces/lossless/js/fancybox/fancybox.png b/data/interfaces/default/js/fancybox/fancybox.png similarity index 100% rename from data/interfaces/lossless/js/fancybox/fancybox.png rename to data/interfaces/default/js/fancybox/fancybox.png diff --git a/data/interfaces/lossless/js/fancybox/jquery.easing-1.3.pack.js b/data/interfaces/default/js/fancybox/jquery.easing-1.3.pack.js similarity index 100% rename from data/interfaces/lossless/js/fancybox/jquery.easing-1.3.pack.js rename to data/interfaces/default/js/fancybox/jquery.easing-1.3.pack.js diff --git a/data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.css b/data/interfaces/default/js/fancybox/jquery.fancybox-1.3.4.css similarity index 100% rename from data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.css rename to data/interfaces/default/js/fancybox/jquery.fancybox-1.3.4.css diff --git a/data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.js b/data/interfaces/default/js/fancybox/jquery.fancybox-1.3.4.js similarity index 100% rename from data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.js rename to data/interfaces/default/js/fancybox/jquery.fancybox-1.3.4.js diff --git a/data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.pack.js b/data/interfaces/default/js/fancybox/jquery.fancybox-1.3.4.pack.js similarity index 100% rename from data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.pack.js rename to data/interfaces/default/js/fancybox/jquery.fancybox-1.3.4.pack.js diff --git a/data/interfaces/lossless/js/fancybox/jquery.mousewheel-3.0.4.pack.js b/data/interfaces/default/js/fancybox/jquery.mousewheel-3.0.4.pack.js similarity index 100% rename from data/interfaces/lossless/js/fancybox/jquery.mousewheel-3.0.4.pack.js rename to data/interfaces/default/js/fancybox/jquery.mousewheel-3.0.4.pack.js diff --git a/data/interfaces/lossless/js/libs/dd_belatedpng.js b/data/interfaces/default/js/libs/dd_belatedpng.js similarity index 100% rename from data/interfaces/lossless/js/libs/dd_belatedpng.js rename to data/interfaces/default/js/libs/dd_belatedpng.js diff --git a/data/interfaces/lossless/js/libs/jquery-1.7.2.min.js b/data/interfaces/default/js/libs/jquery-1.7.2.min.js similarity index 100% rename from data/interfaces/lossless/js/libs/jquery-1.7.2.min.js rename to data/interfaces/default/js/libs/jquery-1.7.2.min.js diff --git a/data/interfaces/lossless/js/libs/jquery-ui.min.js b/data/interfaces/default/js/libs/jquery-ui.min.js similarity index 100% rename from data/interfaces/lossless/js/libs/jquery-ui.min.js rename to data/interfaces/default/js/libs/jquery-ui.min.js diff --git a/data/interfaces/lossless/js/libs/jquery.dataTables.min.js b/data/interfaces/default/js/libs/jquery.dataTables.min.js similarity index 100% rename from data/interfaces/lossless/js/libs/jquery.dataTables.min.js rename to data/interfaces/default/js/libs/jquery.dataTables.min.js diff --git a/data/interfaces/lossless/js/libs/modernizr-1.7.min.js b/data/interfaces/default/js/libs/modernizr-1.7.min.js similarity index 100% rename from data/interfaces/lossless/js/libs/modernizr-1.7.min.js rename to data/interfaces/default/js/libs/modernizr-1.7.min.js diff --git a/data/interfaces/lossless/js/plugins.js b/data/interfaces/default/js/plugins.js similarity index 100% rename from data/interfaces/lossless/js/plugins.js rename to data/interfaces/default/js/plugins.js diff --git a/data/interfaces/lossless/js/script.js b/data/interfaces/default/js/script.js similarity index 91% rename from data/interfaces/lossless/js/script.js rename to data/interfaces/default/js/script.js index ee823afa..7f1cc3fd 100644 --- a/data/interfaces/lossless/js/script.js +++ b/data/interfaces/default/js/script.js @@ -15,7 +15,7 @@ function getArtistInfo(name,imgElem,size,artistID) { } else { if ( data.artist === undefined || imageUrl == "" || imageUrl == undefined ) { var imageLarge = "#"; - var imageUrl = "interfaces/lossless/images/no-cover-artist.png"; + var imageUrl = "interfaces/default/images/no-cover-artist.png"; } else { var artist = data.artist.mbid; var artistBio = data.artist.bio.summary; @@ -42,7 +42,7 @@ function getArtistInfo(name,imgElem,size,artistID) { } if ( data.artist === undefined || imageUrl == "" ) { var imageLarge = "#"; - var imageUrl = "interfaces/lossless/images/no-cover-artist.png"; + var imageUrl = "interfaces/default/images/no-cover-artist.png"; } else { var artist = data.artist.name; var artistBio = data.artist.bio.summary; @@ -76,9 +76,9 @@ function getAlbumInfo(name, album, elem,size) { } if (data.album === undefined || imageUrl == "") { if ( elem.width() == 50 ) { - var imageUrl = "interfaces/lossless/images/no-cover-artist.png"; + var imageUrl = "interfaces/default/images/no-cover-artist.png"; } else { - var imageUrl = "interfaces/lossless/images/no-cover-art.png"; + var imageUrl = "interfaces/default/images/no-cover-art.png"; } } else { var imageUrl = data.album.image[size]['#text']; @@ -86,17 +86,17 @@ function getAlbumInfo(name, album, elem,size) { } $(cover).error(function(){ if ( elem.width() == 50 ) { - var imageUrl = "interfaces/lossless/images/no-cover-artist.png"; + var imageUrl = "interfaces/default/images/no-cover-artist.png"; } else { - var imageUrl = "interfaces/lossless/images/no-cover-art.png"; + var imageUrl = "interfaces/default/images/no-cover-art.png"; } $(elem).css("background", "url("+ imageUrl+") center top no-repeat"); }); if ( imageUrl == "") { if ( elem.width() == 50 ) { - var imageUrl = "interfaces/lossless/images/no-cover-artist.png"; + var imageUrl = "interfaces/default/images/no-cover-artist.png"; } else { - var imageUrl = "interfaces/lossless/images/no-cover-art.png"; + var imageUrl = "interfaces/default/images/no-cover-art.png"; } $(elem).css("background", "url("+ imageUrl+") center top no-repeat"); } @@ -129,18 +129,18 @@ function replaceEmptyAlbum(elem,name) { var imageUrl; $.getJSON(url, function(data, response) { if (data.album === undefined) { - imageUrl = "interfaces/lossless/images/no-cover-art.png"; + imageUrl = "interfaces/default/images/no-cover-art.png"; } else { imageUrl = data.album.image[3]['#text']; imageLarge = data.album.image[4]['#text']; // If Last.fm don't provide a cover then use standard } $(cover).error(function(){ - imageUrl = "interfaces/lossless/images/no-cover-art.png"; + imageUrl = "interfaces/default/images/no-cover-art.png"; $(this).hide().attr("src", imageUrl).show(); }) if ( imageUrl == "") { - imageUrl = "interfaces/lossless/images/no-cover-art.png"; + imageUrl = "interfaces/default/images/no-cover-art.png"; $(this).hide().attr("src", imageUrl).show(); } $(cover).hide().attr("src", imageUrl).show(); @@ -240,7 +240,7 @@ function doAjaxCall(url,elem,reload,form) { var dataString = $(formID).serialize(); } // Loader Image - var loader = $("loading"); + var loader = $("loading"); // Data Success Message var dataSucces = $(elem).data('success'); if (typeof dataSucces === "undefined") { @@ -335,8 +335,8 @@ function preventDefault(){ function initFancybox() { if ( $("a[rel=dialog]").length > 0 ) { - $.getScript('interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.js', function() { - $("head").append(""); + $.getScript('interfaces/default/js/fancybox/jquery.fancybox-1.3.4.js', function() { + $("head").append(""); $("a[rel=dialog]").fancybox(); }); } diff --git a/data/interfaces/default/logs.html b/data/interfaces/default/logs.html index 98004034..022be43e 100644 --- a/data/interfaces/default/logs.html +++ b/data/interfaces/default/logs.html @@ -1,9 +1,12 @@ -<%inherit file="base.html"/> +lossless<%inherit file="base.html"/> <%! from headphones import helpers %> <%def name="body()"> +
    +

    LogsLogs

    +
    Artist Name Status Latest Album
    ${artist['ArtistName']}
    ${artist['ArtistName']} ${artist['Status']} ${albumdisplay}
    ${havetracks}/${totaltracks}
    @@ -33,7 +36,7 @@ <%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> diff --git a/data/interfaces/default/manage.html b/data/interfaces/default/manage.html index cf5a476a..d0a29417 100644 --- a/data/interfaces/default/manage.html +++ b/data/interfaces/default/manage.html @@ -1,74 +1,104 @@ -<%inherit file="base.html" /> +lossless<%inherit file="base.html" /> <%! import headphones from headphones.helpers import checked %> <%def name="headerIncludes()">
    - +
    <%def name="body()">
    -

    -

    -
    -

    Scan Music Library


    - Where do you keep your music?

    - You can put in any directory, and it will scan for audio files in that folder - (including all subdirectories)

    For example: '/Users/name/Music' -

    - It may take a while depending on how many files you have. You can navigate away from the page
    - as soon as you click 'Submit' -

    -
    - %if headphones.MUSIC_DIR: - - %else: - - %endif -
    -

    Automatically add new artists

    -

    - +

    manageManage

    +
    + +
    +
    +
    + Scan Music Library +

    Where do you keep your music?

    +

    You can put in any directory, and it will scan for audio files in that folder + (including all subdirectories).
    For example: '/Users/name/Music'

    +

    + It may take a while depending on how many files you have. You can navigate away from the page
    + as soon as you click 'Save changes' +

    +
    +
    + + %if headphones.MUSIC_DIR: + + %else: + + %endif +
    +
    + +
    + +
    + + +
    -
    -

    Import Last.FM Artists


    - Enter the username whose artists you want to import:

    -
    - <% - if headphones.LASTFM_USERNAME: - lastfmvalue = headphones.LASTFM_USERNAME - else: - lastfmvalue = 'Last.fm Username' - %> - -

    +
    +
    +
    + Import Last.FM Artists +

    Enter the username whose artists you want to import:

    +
    +
    + + <% + if headphones.LASTFM_USERNAME: + lastfmvalue = headphones.LASTFM_USERNAME + else: + lastfmvalue = '' + %> + + Reset username +
    +
    + +
    -
    -

    Placeholder :-)


    -

    -
    - -

    -
    - - + +<%def name="javascriptIncludes()"> + \ No newline at end of file diff --git a/data/interfaces/default/manageartists.html b/data/interfaces/default/manageartists.html index 368d653c..5a1d433d 100644 --- a/data/interfaces/default/manageartists.html +++ b/data/interfaces/default/manageartists.html @@ -1,24 +1,37 @@ -<%inherit file="base.html" /> +lossless<%inherit file="base.html" /> + + + +<%def name="headerIncludes()"> +
    +   +
    + « Back to manage overview + + <%def name="body()"> -
    -

    Manage Artists

    +
    +
    +

    manageManage Artists

    -
    -

    - + selected artists - -

    + +

    + @@ -46,6 +59,7 @@ %> + @@ -54,29 +68,44 @@
    Artist Name Status Latest Album
    ${artist['ArtistName']} ${artist['Status']} ${albumdisplay}
    +
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> \ No newline at end of file diff --git a/data/interfaces/default/managenew.html b/data/interfaces/default/managenew.html index bea493b2..c58b549b 100644 --- a/data/interfaces/default/managenew.html +++ b/data/interfaces/default/managenew.html @@ -1,17 +1,28 @@ -<%inherit file="base.html" /> +lossless<%inherit file="base.html" /> <%! import headphones %> + +<%def name="headerIncludes()"> + + « Back to manage overview + + + <%def name="body()"> -
-

Manage New Artists

-

Scan Music Library

+
+
+

manageManage New Artists

-

+

Add selected artists -

+
@@ -29,10 +40,11 @@
+
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> @@ -44,9 +56,12 @@ { "aaSorting": [[1, 'asc']], "bStateSave": false, - "bPaginate": false + "bPaginate": false, + "oLanguage": { + "sSearch" : ""}, }); +initActions(); }); \ No newline at end of file diff --git a/data/interfaces/default/searchresults.html b/data/interfaces/default/searchresults.html index b02fedd6..785b2513 100644 --- a/data/interfaces/default/searchresults.html +++ b/data/interfaces/default/searchresults.html @@ -1,16 +1,17 @@ <%inherit file="base.html" /> <%def name="body()"> - +
-

Search Results

+

Search resultsSearch Result

- %if type == 'album': - - %endif + + %if type == 'album': + + %endif @@ -25,46 +26,69 @@ else: grade = 'Z' %> - + + %if type == 'album': %endif - - + + %if type == 'album': - + %else: - + %endif %endfor %endif
Album NameAlbum NameArtist Name Score
${result['title']}${result['uniquename']}${result['score']}${result['uniquename']}
${result['score']}
Add this album Add this albumAdd this artist Add this artist
+
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> + + \ No newline at end of file diff --git a/data/interfaces/default/shutdown.html b/data/interfaces/default/shutdown.html index be7ca21d..e0e5b6dd 100644 --- a/data/interfaces/default/shutdown.html +++ b/data/interfaces/default/shutdown.html @@ -1,4 +1,4 @@ -<%inherit file="base.html"/> +lossless<%inherit file="base.html"/> <%def name="headIncludes()"> @@ -7,7 +7,7 @@ <%def name="body()">
-

Headphones is ${message}

+

Headphones is ${message}

\ No newline at end of file diff --git a/data/interfaces/default/upcoming.html b/data/interfaces/default/upcoming.html index 5c209056..b9f7d0fe 100644 --- a/data/interfaces/default/upcoming.html +++ b/data/interfaces/default/upcoming.html @@ -1,7 +1,51 @@ -<%inherit file="base.html" /> +lossless<%inherit file="base.html" /> <%def name="body()"> + +
+

Wanted AlbumsWanted Albums

+
+
+
+ Mark selected albums as + + +
+
+ + + + + + + + + + + + + %for album in wanted: + + + + + + + + %endfor + +
ArtistAlbum NameRelease DateType
+ ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
+ + +
+
+

Upcoming AlbumsUpcoming Albums

+
-

Upcoming Albums

@@ -27,60 +71,29 @@
- -
-

Mark selected albums as - - -

-
-

Wanted Albums

- - - - - - - - - - - - - %for album in wanted: - - - - - - - - %endfor - -
ArtistAlbum NameRelease DateType
- ${album['ArtistName']}${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}
- -
<%def name="headIncludes()"> - + <%def name="javascriptIncludes()"> \ No newline at end of file diff --git a/data/interfaces/lossless/artist.html b/data/interfaces/lossless/artist.html deleted file mode 100644 index bf1e689d..00000000 --- a/data/interfaces/lossless/artist.html +++ /dev/null @@ -1,190 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import db - import headphones -%> - -<%def name="headerIncludes()"> -
-
- Refresh Artist - Delete Artist - %if artist['Status'] == 'Paused': - Resume Artist - %else: - Pause Artist - %endif - %if artist['IncludeExtras']: - Remove Extras - %else: - Get Extras - %endif -
-
- « Back to overview - - -<%def name="body()"> -
-
- ${artist['ArtistName']} -
-

${artist['ArtistName']}

-
- %if artist['Status'] == 'Loading': -

(Album information for this artist is currently being loaded)

- %endif -
- - -
Mark selected albums as - - -
- - - - - - - - - - - - - - - - %for album in albums: - <% - if album['Status'] == 'Skipped': - grade = 'Z' - elif album['Status'] == 'Wanted': - grade = 'X' - elif album['Status'] == 'Snatched': - grade = 'C' - else: - grade = 'A' - - myDB = db.DBConnection() - totaltracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=?', [album['AlbumID']])) - havetracks = len(myDB.select('SELECT TrackTitle from tracks WHERE AlbumID=? AND Location IS NOT NULL', [album['AlbumID']])) + len(myDB.select('SELECT TrackTitle from have WHERE ArtistName like ? AND AlbumTitle LIKE ?', [album['ArtistName'], album['AlbumTitle']])) - - try: - percent = (havetracks*100.0)/totaltracks - if percent > 100: - percent = 100 - except (ZeroDivisionError, TypeError): - percent = 0 - totaltracks = '?' - - avgbitrate = myDB.action("SELECT AVG(BitRate) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - if avgbitrate: - bitrate = str(int(avgbitrate)/1000) + ' kbps' - else: - bitrate = '' - - albumformatcount = myDB.action("SELECT COUNT(DISTINCT Format) FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - if albumformatcount == 1: - albumformat = myDB.action("SELECT DISTINCT Format FROM tracks WHERE AlbumID=?", [album['AlbumID']]).fetchone()[0] - elif albumformatcount > 1: - albumformat = 'Mixed' - else: - albumformat = '' - - lossy_formats = [str.upper(fmt) for fmt in headphones.LOSSY_MEDIA_FORMATS] - - %> - - - - - - - - - - - - %endfor - -
NameDateTypeStatusHaveBitrateFormat
${album['AlbumTitle']}${album['ReleaseDate']}${album['Type']}${album['Status']} - %if album['Status'] == 'Skipped': - [want] - %elif (album['Status'] == 'Wanted' or album['Status'] == 'Wanted Lossless'): - [skip] - %else: - [retry][new] - %endif - %if albumformat in lossy_formats and album['Status'] == 'Skipped': - [want lossless] - %elif albumformat in lossy_formats and (album['Status'] == 'Snatched' or album['Status'] == 'Downloaded'): - [retry lossless] - %endif -
${havetracks}/${totaltracks}
${bitrate}${albumformat}
-
- - -<%def name="headIncludes()"> - - - - - diff --git a/data/interfaces/lossless/base.html b/data/interfaces/lossless/base.html deleted file mode 100644 index a1742071..00000000 --- a/data/interfaces/lossless/base.html +++ /dev/null @@ -1,117 +0,0 @@ -<% - import headphones - from headphones import version -%> - - - - - - - - - - - Headphones - ${title} - - - - - - - - - - ${next.headIncludes()} - - - - -
-
- % if not headphones.CURRENT_VERSION: -
- You're running an unknown version of Headphones. Update or - Close -
- % elif headphones.CURRENT_VERSION != headphones.LATEST_VERSION and headphones.INSTALL_TYPE != 'win': -
- A newer version is available. You're ${headphones.COMMITS_BEHIND} commits behind. Update or Close -
- % endif - -
-
- - - - -
-
- -
-
- ${next.headerIncludes()} -
- ${next.body()} -
- - - Back to top -
- - - - - - ${next.javascriptIncludes()} - - - - - - - - -<%def name="javascriptIncludes()"> -<%def name="headIncludes()"> -<%def name="headerIncludes()"> diff --git a/data/interfaces/lossless/config.html b/data/interfaces/lossless/config.html deleted file mode 100644 index 60d866ad..00000000 --- a/data/interfaces/lossless/config.html +++ /dev/null @@ -1,775 +0,0 @@ -<%inherit file="base.html"/> -<%! - import headphones -%> - -<%def name="headerIncludes()"> -
- -
- -<%def name="body()"> - - - -
-

settingsSettings

-
-
- -
- -
- - - - - - - -
-
- Basic -
- - - e.g. localhost or 0.0.0.0 -
-
- - -
-
- - -
- -
- - -
-
- -
-
-
-
- API -
- -
-
- - - - Current API key: ${config['api_key']} -
-
- -
- Interval -
- - mins -
- -
- - mins -
- -
- - mins -
-
-
-
- -
- - - - - - - -
-
- SABnzbd -
- - - usually http://localhost:8080 -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
- Downloads -
- - - Full path where SAB downloads your music. e.g. /Users/name/Downloads/music -
-
-
-
- Torrents -
- - - Folder your Download program watches for Torrents -
-
- - - Number of minimum seeders a torrent must have to be accepted -
-
- - - Full path where your torrent client downloads your music e.g. /Users/name/Downloads/music -
-
-
- Blackhole -
- -
-
-
- - - Folder your Download program watches for NZBs -
-
-
- -
-
-
-
-
- - - - - - - -
-
- NZBMatrix -
- -
-
-
- - -
-
- - -
-
-
- -
- Newsnab -
- -
-
-
- - - e.g. http://nzb.su -
-
- - -
-
-
-
-
- NZBs.org -
- -
-
-
- - -
-
-
-
- Newsbin -
- -
-
-
- - -
-
- - -
-
-
-
- Torrents -
- -
-
- -
-
-
-
- -
-
-
- - - - - -
-
- Quality -
- - - - -
-
- - -
- -
-
-
- Post-Processing -
- - - - - - - - -
-
- - - e.g. /Users/name/Music/iTunes or /Volumes/share/music -
-
-
-
-
- - - - - -
- -
- Renaming options -
- - - Use: $Artist/$artist, $Album/$album, $Year/$year, $Type/$type (release type) and $First/$first (first letter in artist name) - E.g.: $Type/$First/$artist/$album [$year] = Album/G/girl talk/all day [2010] - -
-
- - - Use: $Track/$track (track #), $Title/$title, $Artist/$artist, $Album/$album and $Year/$year -
-
- -
- Re-Encoding Options - Note: this option requires the lame or ffmpeg encoder -
- -
-
- -
- <% - if config['encoder'] == 'lame': - lameselect = 'selected="selected"' - ffmpegselect = '' - else: - lameselect = '' - ffmpegselect = 'selected="selected"' - %> -
- - -
-
- - -
-
- -
- Audio Properties -
- - -
-
- - -
-
- - -
- - - <% - if config["samplingfrequency"] == 44100: - freq44100 = 'selected="selected"' - freq48000 = '' - else: - freq44100 = '' - freq48000 = 'selected="selected"' - %> -
- - -
-
- -
- Advanced Encoding Options -
- - -
-
- - -
- -
- -
- -
- Miscellaneous -
- - -
-
- -
- -
-
-
-
- Interface -
- - - -
-
- - -
-
- - - -

Notifications

-
-

Prowl

-
- -
-
-
- -
-
- -
-
- - -
-
-
- - -
-

XBMC

-
- -
-
-
- - - e.g. http://localhost:8080. Separate hosts with commas -
-
- -
-
- -
-
- -
-
- -
-
-
- -
-

NotifyMyAndroid

-
- -
-
-
- - - Separate multiple api keys with commas -
-
- - -
-
-
- -
- Musicbrainz -
- - -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - Get an Account -
-
-
- -
-
- -
-

Web Interface changes require a restart to take effect

-
- - -
- - -<%def name="javascriptIncludes()"> - - diff --git a/data/interfaces/lossless/history.html b/data/interfaces/lossless/history.html deleted file mode 100644 index 7a37f932..00000000 --- a/data/interfaces/lossless/history.html +++ /dev/null @@ -1,89 +0,0 @@ -<%inherit file="base.html"/> -<%! - from headphones import helpers -%> - -<%def name="headerIncludes()"> - - - -<%def name="body()"> -
-

HistoryHistory

-
- - - - - - - - - - - - %for item in history: - <% - if item['Status'] == 'Processed': - grade = 'A' - elif item['Status'] == 'Snatched': - grade = 'C' - elif item['Status'] == 'Unprocessed': - grade = 'X' - else: - grade = 'U' - - fileid = 'unknown' - if item['URL'].find('nzb') != -1: - fileid = 'nzb' - if item['URL'].find('torrent') != -1: - fileid = 'torrent' - %> - - - - - - - - %endfor - -
Date AddedFile NameSizeStatus
${item['DateAdded']}${item['Title']} [${fileid}][album page]${helpers.bytes_to_mb(item['Size'])}${item['Status']}[retry][new]
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - \ No newline at end of file diff --git a/data/interfaces/lossless/manage.html b/data/interfaces/lossless/manage.html deleted file mode 100644 index cf8d2471..00000000 --- a/data/interfaces/lossless/manage.html +++ /dev/null @@ -1,104 +0,0 @@ -lossless<%inherit file="base.html" /> -<%! - import headphones - from headphones.helpers import checked -%> -<%def name="headerIncludes()"> -
-
- Manage Artists - %if not headphones.ADD_ARTISTS: - Manage New Artists - %endif -
-
- - -<%def name="body()"> -
-

manageManage

-
-
- -
-
-
- Scan Music Library -

Where do you keep your music?

-

You can put in any directory, and it will scan for audio files in that folder - (including all subdirectories).
For example: '/Users/name/Music'

-

- It may take a while depending on how many files you have. You can navigate away from the page
- as soon as you click 'Save changes' -

-
-
- - %if headphones.MUSIC_DIR: - - %else: - - %endif -
-
- -
- -
- - -
- -
-
-
- Import Last.FM Artists -

Enter the username whose artists you want to import:

-
-
- - <% - if headphones.LASTFM_USERNAME: - lastfmvalue = headphones.LASTFM_USERNAME - else: - lastfmvalue = '' - %> - - Reset username -
-
- -
-
- - -
- -<%def name="javascriptIncludes()"> - - \ No newline at end of file diff --git a/data/interfaces/lossless/searchresults.html b/data/interfaces/lossless/searchresults.html deleted file mode 100644 index b3e0c99c..00000000 --- a/data/interfaces/lossless/searchresults.html +++ /dev/null @@ -1,94 +0,0 @@ -<%inherit file="base.html" /> - -<%def name="body()"> -
-
-

Search resultsSearch Result

-
- - - - - %if type == 'album': - - %endif - - - - - - - %if searchresults: - %for result in searchresults: - <% - if result['score'] == 100: - grade = 'A' - else: - grade = 'Z' - %> - - - %if type == 'album': - - %endif - - - %if type == 'album': - - %else: - - %endif - - %endfor - %endif - -
Album NameArtist NameScore
${result['title']}${result['uniquename']}
${result['score']}
Add this album Add this artist
-
- - -<%def name="headIncludes()"> - - - -<%def name="javascriptIncludes()"> - - - - - \ No newline at end of file From 45cb777b0de3f2efc7f7d2524ac15137df353fc5 Mon Sep 17 00:00:00 2001 From: Elmar Kouwenhoven Date: Wed, 9 May 2012 14:09:38 +0200 Subject: [PATCH 5/9] Reloading table row with ajax after adding artist --- data/interfaces/default/index.html | 17 ++++++++++++++--- data/interfaces/default/js/script.js | 23 +++++++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/data/interfaces/default/index.html b/data/interfaces/default/index.html index d85497a6..64b32ff9 100644 --- a/data/interfaces/default/index.html +++ b/data/interfaces/default/index.html @@ -71,15 +71,21 @@ <%def name="javascriptIncludes()"> diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js index 7f1cc3fd..b4de2851 100644 --- a/data/interfaces/default/js/script.js +++ b/data/interfaces/default/js/script.js @@ -222,6 +222,29 @@ function refreshTable() { initThisPage(); }); } +function refreshLoadArtist() { + if ( $(".gradeL").length > 0 ) { + var url = $(location).attr('href'); + var loadingRow = $("table.display tr.gradeL") + loadingRow.each(function(){ + var row = $(this).index() + 1; + var rowLoad = $("table.display tbody tr:nth-child("+row+")"); + $(rowLoad).load(url + " table.display tbody tr:nth-child("+ row +") td", function() { + if ( $(rowLoad).children("#status").text() == 'Active' ) { + // Active + $(rowLoad).removeClass('gradeL').addClass('gradeZ'); + initThisPage(); + } else { + // Still loading + setTimeout(function(){ + refreshLoadArtist(); + },3000); + } + }); + }); + } +} + function refreshTab() { var url = $(location).attr('href'); var tabId = $('.ui-tabs-panel:visible').attr("id"); From 8a3dcc53f7e9242bc0e7171ca0769af47dd9ed28 Mon Sep 17 00:00:00 2001 From: Elmar Kouwenhoven Date: Wed, 9 May 2012 16:51:33 +0200 Subject: [PATCH 6/9] fixed the meta refresh, made some nice ajax loaders while getting artist information, Also fixed clicking on 'refresh artist' after the ajaxcall was success the table with albums will be refreshed. --- data/interfaces/default/artist.html | 18 +++++++++++++++--- data/interfaces/default/js/script.js | 21 ++++++++++++++++++++- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/data/interfaces/default/artist.html b/data/interfaces/default/artist.html index 4b418732..2232df6e 100644 --- a/data/interfaces/default/artist.html +++ b/data/interfaces/default/artist.html @@ -7,7 +7,7 @@ <%def name="headerIncludes()">
- Refresh Artist + Refresh Artist Delete Artist %if artist['Status'] == 'Paused': Resume Artist @@ -29,7 +29,12 @@
${artist['ArtistName']}
-

${artist['ArtistName']}

+

+ %if artist['Status'] == 'Loading': + loading + %endif + ${artist['ArtistName']} +

%if artist['Status'] == 'Loading':

(Album information for this artist is currently being loaded)

@@ -134,7 +139,6 @@ <%def name="headIncludes()"> -
') + .hide() + .insertBefore( $(obj) ) + .bind('fancybox-cleanup', function() { + $(this).replaceWith(content.children()); + }).bind('fancybox-cancel', function() { + $(this).replaceWith(tmp.children()); + }); + + $(obj).appendTo(tmp); + + _process_inline(); + break; + + case 'image': + busy = false; + + $.fancybox.showActivity(); + + imgPreloader = new Image(); + + imgPreloader.onerror = function() { + _error(); + }; + + imgPreloader.onload = function() { + busy = true; + + imgPreloader.onerror = imgPreloader.onload = null; + + _process_image(); + }; + + imgPreloader.src = href; + break; + + case 'swf': + selectedOpts.scrolling = 'no'; + + str = ''; + emb = ''; + + $.each(selectedOpts.swf, function(name, val) { + str += ''; + emb += ' ' + name + '="' + val + '"'; + }); + + str += ''; + + tmp.html(str); + + _process_inline(); + break; + + case 'ajax': + busy = false; + + $.fancybox.showActivity(); + + selectedOpts.ajax.win = selectedOpts.ajax.success; + + ajaxLoader = $.ajax($.extend({}, selectedOpts.ajax, { + url : href, + data : selectedOpts.ajax.data || {}, + error : function(XMLHttpRequest, textStatus, errorThrown) { + if ( XMLHttpRequest.status > 0 ) { + _error(); + } + }, + success : function(data, textStatus, XMLHttpRequest) { + var o = typeof XMLHttpRequest == 'object' ? XMLHttpRequest : ajaxLoader; + if (o.status == 200) { + if ( typeof selectedOpts.ajax.win == 'function' ) { + ret = selectedOpts.ajax.win(href, data, textStatus, XMLHttpRequest); + + if (ret === false) { + loading.hide(); + return; + } else if (typeof ret == 'string' || typeof ret == 'object') { + data = ret; + } + } + + tmp.html( data ); + _process_inline(); + } + } + })); + + break; + + case 'iframe': + _show(); + break; + } + }, + + _process_inline = function() { + var + w = selectedOpts.width, + h = selectedOpts.height; + + if (w.toString().indexOf('%') > -1) { + w = parseInt( ($(window).width() - (selectedOpts.margin * 2)) * parseFloat(w) / 100, 10) + 'px'; + + } else { + w = w == 'auto' ? 'auto' : w + 'px'; + } + + if (h.toString().indexOf('%') > -1) { + h = parseInt( ($(window).height() - (selectedOpts.margin * 2)) * parseFloat(h) / 100, 10) + 'px'; + + } else { + h = h == 'auto' ? 'auto' : h + 'px'; + } + + tmp.wrapInner('
'); + + selectedOpts.width = tmp.width(); + selectedOpts.height = tmp.height(); + + _show(); + }, + + _process_image = function() { + selectedOpts.width = imgPreloader.width; + selectedOpts.height = imgPreloader.height; + + $("").attr({ + 'id' : 'fancybox-img', + 'src' : imgPreloader.src, + 'alt' : selectedOpts.title + }).appendTo( tmp ); + + _show(); + }, + + _show = function() { + var pos, equal; + + loading.hide(); + + if (wrap.is(":visible") && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + $.event.trigger('fancybox-cancel'); + + busy = false; + return; + } + + busy = true; + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + if (wrap.is(":visible") && currentOpts.titlePosition !== 'outside') { + wrap.css('height', wrap.height()); + } + + currentArray = selectedArray; + currentIndex = selectedIndex; + currentOpts = selectedOpts; + + if (currentOpts.overlayShow) { + overlay.css({ + 'background-color' : currentOpts.overlayColor, + 'opacity' : currentOpts.overlayOpacity, + 'cursor' : currentOpts.hideOnOverlayClick ? 'pointer' : 'auto', + 'height' : $(document).height() + }); + + if (!overlay.is(':visible')) { + if (isIE6) { + $('select:not(#fancybox-tmp select)').filter(function() { + return this.style.visibility !== 'hidden'; + }).css({'visibility' : 'hidden'}).one('fancybox-cleanup', function() { + this.style.visibility = 'inherit'; + }); + } + + overlay.show(); + } + } else { + overlay.hide(); + } + + final_pos = _get_zoom_to(); + + _process_title(); + + if (wrap.is(":visible")) { + $( close.add( nav_left ).add( nav_right ) ).hide(); + + pos = wrap.position(), + + start_pos = { + top : pos.top, + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height); + + content.fadeTo(currentOpts.changeFade, 0.3, function() { + var finish_resizing = function() { + content.html( tmp.contents() ).fadeTo(currentOpts.changeFade, 1, _finish); + }; + + $.event.trigger('fancybox-change'); + + content + .empty() + .removeAttr('filter') + .css({ + 'border-width' : currentOpts.padding, + 'width' : final_pos.width - currentOpts.padding * 2, + 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 + }); + + if (equal) { + finish_resizing(); + + } else { + fx.prop = 0; + + $(fx).animate({prop: 1}, { + duration : currentOpts.changeSpeed, + easing : currentOpts.easingChange, + step : _draw, + complete : finish_resizing + }); + } + }); + + return; + } + + wrap.removeAttr("style"); + + content.css('border-width', currentOpts.padding); + + if (currentOpts.transitionIn == 'elastic') { + start_pos = _get_zoom_from(); + + content.html( tmp.contents() ); + + wrap.show(); + + if (currentOpts.opacity) { + final_pos.opacity = 0; + } + + fx.prop = 0; + + $(fx).animate({prop: 1}, { + duration : currentOpts.speedIn, + easing : currentOpts.easingIn, + step : _draw, + complete : _finish + }); + + return; + } + + if (currentOpts.titlePosition == 'inside' && titleHeight > 0) { + title.show(); + } + + content + .css({ + 'width' : final_pos.width - currentOpts.padding * 2, + 'height' : selectedOpts.autoDimensions ? 'auto' : final_pos.height - titleHeight - currentOpts.padding * 2 + }) + .html( tmp.contents() ); + + wrap + .css(final_pos) + .fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish ); + }, + + _format_title = function(title) { + if (title && title.length) { + if (currentOpts.titlePosition == 'float') { + return '
' + title + '
'; + } + + return '
' + title + '
'; + } + + return false; + }, + + _process_title = function() { + titleStr = currentOpts.title || ''; + titleHeight = 0; + + title + .empty() + .removeAttr('style') + .removeClass(); + + if (currentOpts.titleShow === false) { + title.hide(); + return; + } + + titleStr = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(titleStr, currentArray, currentIndex, currentOpts) : _format_title(titleStr); + + if (!titleStr || titleStr === '') { + title.hide(); + return; + } + + title + .addClass('fancybox-title-' + currentOpts.titlePosition) + .html( titleStr ) + .appendTo( 'body' ) + .show(); + + switch (currentOpts.titlePosition) { + case 'inside': + title + .css({ + 'width' : final_pos.width - (currentOpts.padding * 2), + 'marginLeft' : currentOpts.padding, + 'marginRight' : currentOpts.padding + }); + + titleHeight = title.outerHeight(true); + + title.appendTo( outer ); + + final_pos.height += titleHeight; + break; + + case 'over': + title + .css({ + 'marginLeft' : currentOpts.padding, + 'width' : final_pos.width - (currentOpts.padding * 2), + 'bottom' : currentOpts.padding + }) + .appendTo( outer ); + break; + + case 'float': + title + .css('left', parseInt((title.width() - final_pos.width - 40)/ 2, 10) * -1) + .appendTo( wrap ); + break; + + default: + title + .css({ + 'width' : final_pos.width - (currentOpts.padding * 2), + 'paddingLeft' : currentOpts.padding, + 'paddingRight' : currentOpts.padding + }) + .appendTo( wrap ); + break; + } + + title.hide(); + }, + + _set_navigation = function() { + if (currentOpts.enableEscapeButton || currentOpts.enableKeyboardNav) { + $(document).bind('keydown.fb', function(e) { + if (e.keyCode == 27 && currentOpts.enableEscapeButton) { + e.preventDefault(); + $.fancybox.close(); + + } else if ((e.keyCode == 37 || e.keyCode == 39) && currentOpts.enableKeyboardNav && e.target.tagName !== 'INPUT' && e.target.tagName !== 'TEXTAREA' && e.target.tagName !== 'SELECT') { + e.preventDefault(); + $.fancybox[ e.keyCode == 37 ? 'prev' : 'next'](); + } + }); + } + + if (!currentOpts.showNavArrows) { + nav_left.hide(); + nav_right.hide(); + return; + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) { + nav_left.show(); + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) { + nav_right.show(); + } + }, + + _finish = function () { + if (!$.support.opacity) { + content.get(0).style.removeAttribute('filter'); + wrap.get(0).style.removeAttribute('filter'); + } + + if (selectedOpts.autoDimensions) { + content.css('height', 'auto'); + } + + wrap.css('height', 'auto'); + + if (titleStr && titleStr.length) { + title.show(); + } + + if (currentOpts.showCloseButton) { + close.show(); + } + + _set_navigation(); + + if (currentOpts.hideOnContentClick) { + content.bind('click', $.fancybox.close); + } + + if (currentOpts.hideOnOverlayClick) { + overlay.bind('click', $.fancybox.close); + } + + $(window).bind("resize.fb", $.fancybox.resize); + + if (currentOpts.centerOnScroll) { + $(window).bind("scroll.fb", $.fancybox.center); + } + + if (currentOpts.type == 'iframe') { + $('').appendTo(content); + } + + wrap.show(); + + busy = false; + + $.fancybox.center(); + + currentOpts.onComplete(currentArray, currentIndex, currentOpts); + + _preload_images(); + }, + + _preload_images = function() { + var href, + objNext; + + if ((currentArray.length -1) > currentIndex) { + href = currentArray[ currentIndex + 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + + if (currentIndex > 0) { + href = currentArray[ currentIndex - 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + }, + + _draw = function(pos) { + var dim = { + width : parseInt(start_pos.width + (final_pos.width - start_pos.width) * pos, 10), + height : parseInt(start_pos.height + (final_pos.height - start_pos.height) * pos, 10), + + top : parseInt(start_pos.top + (final_pos.top - start_pos.top) * pos, 10), + left : parseInt(start_pos.left + (final_pos.left - start_pos.left) * pos, 10) + }; + + if (typeof final_pos.opacity !== 'undefined') { + dim.opacity = pos < 0.5 ? 0.5 : pos; + } + + wrap.css(dim); + + content.css({ + 'width' : dim.width - currentOpts.padding * 2, + 'height' : dim.height - (titleHeight * pos) - currentOpts.padding * 2 + }); + }, + + _get_viewport = function() { + return [ + $(window).width() - (currentOpts.margin * 2), + $(window).height() - (currentOpts.margin * 2), + $(document).scrollLeft() + currentOpts.margin, + $(document).scrollTop() + currentOpts.margin + ]; + }, + + _get_zoom_to = function () { + var view = _get_viewport(), + to = {}, + resize = currentOpts.autoScale, + double_padding = currentOpts.padding * 2, + ratio; + + if (currentOpts.width.toString().indexOf('%') > -1) { + to.width = parseInt((view[0] * parseFloat(currentOpts.width)) / 100, 10); + } else { + to.width = currentOpts.width + double_padding; + } + + if (currentOpts.height.toString().indexOf('%') > -1) { + to.height = parseInt((view[1] * parseFloat(currentOpts.height)) / 100, 10); + } else { + to.height = currentOpts.height + double_padding; + } + + if (resize && (to.width > view[0] || to.height > view[1])) { + if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { + ratio = (currentOpts.width ) / (currentOpts.height ); + + if ((to.width ) > view[0]) { + to.width = view[0]; + to.height = parseInt(((to.width - double_padding) / ratio) + double_padding, 10); + } + + if ((to.height) > view[1]) { + to.height = view[1]; + to.width = parseInt(((to.height - double_padding) * ratio) + double_padding, 10); + } + + } else { + to.width = Math.min(to.width, view[0]); + to.height = Math.min(to.height, view[1]); + } + } + + to.top = parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - to.height - 40) * 0.5)), 10); + to.left = parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - to.width - 40) * 0.5)), 10); + + return to; + }, + + _get_obj_pos = function(obj) { + var pos = obj.offset(); + + pos.top += parseInt( obj.css('paddingTop'), 10 ) || 0; + pos.left += parseInt( obj.css('paddingLeft'), 10 ) || 0; + + pos.top += parseInt( obj.css('border-top-width'), 10 ) || 0; + pos.left += parseInt( obj.css('border-left-width'), 10 ) || 0; + + pos.width = obj.width(); + pos.height = obj.height(); + + return pos; + }, + + _get_zoom_from = function() { + var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, + from = {}, + pos, + view; + + if (orig && orig.length) { + pos = _get_obj_pos(orig); + + from = { + width : pos.width + (currentOpts.padding * 2), + height : pos.height + (currentOpts.padding * 2), + top : pos.top - currentOpts.padding - 20, + left : pos.left - currentOpts.padding - 20 + }; + + } else { + view = _get_viewport(); + + from = { + width : currentOpts.padding * 2, + height : currentOpts.padding * 2, + top : parseInt(view[3] + view[1] * 0.5, 10), + left : parseInt(view[2] + view[0] * 0.5, 10) + }; + } + + return from; + }, + + _animate_loading = function() { + if (!loading.is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $('div', loading).css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }; + + /* + * Public methods + */ + + $.fn.fancybox = function(options) { + if (!$(this).length) { + return this; + } + + $(this) + .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))) + .unbind('click.fb') + .bind('click.fb', function(e) { + e.preventDefault(); + + if (busy) { + return; + } + + busy = true; + + $(this).blur(); + + selectedArray = []; + selectedIndex = 0; + + var rel = $(this).attr('rel') || ''; + + if (!rel || rel == '' || rel === 'nofollow') { + selectedArray.push(this); + + } else { + selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); + selectedIndex = selectedArray.index( this ); + } + + _start(); + + return; + }); + + return this; + }; + + $.fancybox = function(obj) { + var opts; + + if (busy) { + return; + } + + busy = true; + opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; + + selectedArray = []; + selectedIndex = parseInt(opts.index, 10) || 0; + + if ($.isArray(obj)) { + for (var i = 0, j = obj.length; i < j; i++) { + if (typeof obj[i] == 'object') { + $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); + } else { + obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts)); + } + } + + selectedArray = jQuery.merge(selectedArray, obj); + + } else { + if (typeof obj == 'object') { + $(obj).data('fancybox', $.extend({}, opts, obj)); + } else { + obj = $({}).data('fancybox', $.extend({content : obj}, opts)); + } + + selectedArray.push(obj); + } + + if (selectedIndex > selectedArray.length || selectedIndex < 0) { + selectedIndex = 0; + } + + _start(); + }; + + $.fancybox.showActivity = function() { + clearInterval(loadingTimer); + + loading.show(); + loadingTimer = setInterval(_animate_loading, 66); + }; + + $.fancybox.hideActivity = function() { + loading.hide(); + }; + + $.fancybox.next = function() { + return $.fancybox.pos( currentIndex + 1); + }; + + $.fancybox.prev = function() { + return $.fancybox.pos( currentIndex - 1); + }; + + $.fancybox.pos = function(pos) { + if (busy) { + return; + } + + pos = parseInt(pos); + + selectedArray = currentArray; + + if (pos > -1 && pos < currentArray.length) { + selectedIndex = pos; + _start(); + + } else if (currentOpts.cyclic && currentArray.length > 1) { + selectedIndex = pos >= currentArray.length ? 0 : currentArray.length - 1; + _start(); + } + + return; + }; + + $.fancybox.cancel = function() { + if (busy) { + return; + } + + busy = true; + + $.event.trigger('fancybox-cancel'); + + _abort(); + + selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); + + busy = false; + }; + + // Note: within an iframe use - parent.$.fancybox.close(); + $.fancybox.close = function() { + if (busy || wrap.is(':hidden')) { + return; + } + + busy = true; + + if (currentOpts && false === currentOpts.onCleanup(currentArray, currentIndex, currentOpts)) { + busy = false; + return; + } + + _abort(); + + $(close.add( nav_left ).add( nav_right )).hide(); + + $(content.add( overlay )).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank'); + + if (currentOpts.titlePosition !== 'inside') { + title.empty(); + } + + wrap.stop(); + + function _cleanup() { + overlay.fadeOut('fast'); + + title.empty().hide(); + wrap.hide(); + + $.event.trigger('fancybox-cleanup'); + + content.empty(); + + currentOpts.onClosed(currentArray, currentIndex, currentOpts); + + currentArray = selectedOpts = []; + currentIndex = selectedIndex = 0; + currentOpts = selectedOpts = {}; + + busy = false; + } + + if (currentOpts.transitionOut == 'elastic') { + start_pos = _get_zoom_from(); + + var pos = wrap.position(); + + final_pos = { + top : pos.top , + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + if (currentOpts.opacity) { + final_pos.opacity = 1; + } + + title.empty().hide(); + + fx.prop = 1; + + $(fx).animate({ prop: 0 }, { + duration : currentOpts.speedOut, + easing : currentOpts.easingOut, + step : _draw, + complete : _cleanup + }); + + } else { + wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); + } + }; + + $.fancybox.resize = function() { + if (overlay.is(':visible')) { + overlay.css('height', $(document).height()); + } + + $.fancybox.center(true); + }; + + $.fancybox.center = function() { + var view, align; + + if (busy) { + return; + } + + align = arguments[0] === true ? 1 : 0; + view = _get_viewport(); + + if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) { + return; + } + + wrap + .stop() + .animate({ + 'top' : parseInt(Math.max(view[3] - 20, view[3] + ((view[1] - content.height() - 40) * 0.5) - currentOpts.padding)), + 'left' : parseInt(Math.max(view[2] - 20, view[2] + ((view[0] - content.width() - 40) * 0.5) - currentOpts.padding)) + }, typeof arguments[0] == 'number' ? arguments[0] : 200); + }; + + $.fancybox.init = function() { + if ($("#fancybox-wrap").length) { + return; + } + + $('body').append( + tmp = $('
'), + loading = $('
'), + overlay = $('
'), + wrap = $('
') + ); + + outer = $('
') + .append('
') + .appendTo( wrap ); + + outer.append( + content = $('
'), + close = $('
'), + title = $('
'), + + nav_left = $(''), + nav_right = $('') + ); + + close.click($.fancybox.close); + loading.click($.fancybox.cancel); + + nav_left.click(function(e) { + e.preventDefault(); + $.fancybox.prev(); + }); + + nav_right.click(function(e) { + e.preventDefault(); + $.fancybox.next(); + }); + + if ($.fn.mousewheel) { + wrap.bind('mousewheel.fb', function(e, delta) { + if (busy) { + e.preventDefault(); + + } else if ($(e.target).get(0).clientHeight == 0 || $(e.target).get(0).scrollHeight === $(e.target).get(0).clientHeight) { + e.preventDefault(); + $.fancybox[ delta > 0 ? 'prev' : 'next'](); + } + }); + } + + if (!$.support.opacity) { + wrap.addClass('fancybox-ie'); + } + + if (isIE6) { + loading.addClass('fancybox-ie6'); + wrap.addClass('fancybox-ie6'); + + $('').prependTo(outer); + } + }; + + $.fn.fancybox.defaults = { + padding : 10, + margin : 40, + opacity : false, + modal : false, + cyclic : false, + scrolling : 'auto', // 'auto', 'yes' or 'no' + + width : 560, + height : 340, + + autoScale : true, + autoDimensions : true, + centerOnScroll : false, + + ajax : {}, + swf : { wmode: 'transparent' }, + + hideOnOverlayClick : true, + hideOnContentClick : false, + + overlayShow : true, + overlayOpacity : 0.7, + overlayColor : '#777', + + titleShow : true, + titlePosition : 'float', // 'float', 'outside', 'inside' or 'over' + titleFormat : null, + titleFromAlt : false, + + transitionIn : 'fade', // 'elastic', 'fade' or 'none' + transitionOut : 'fade', // 'elastic', 'fade' or 'none' + + speedIn : 300, + speedOut : 300, + + changeSpeed : 300, + changeFade : 'fast', + + easingIn : 'swing', + easingOut : 'swing', + + showCloseButton : true, + showNavArrows : true, + enableEscapeButton : true, + enableKeyboardNav : true, + + onStart : function(){}, + onCancel : function(){}, + onComplete : function(){}, + onCleanup : function(){}, + onClosed : function(){}, + onError : function(){} + }; + + $(document).ready(function() { + $.fancybox.init(); + }); + +})(jQuery); \ No newline at end of file diff --git a/data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.pack.js b/data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.pack.js new file mode 100644 index 00000000..1373ed08 --- /dev/null +++ b/data/interfaces/lossless/js/fancybox/jquery.fancybox-1.3.4.pack.js @@ -0,0 +1,46 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +;(function(b){var m,t,u,f,D,j,E,n,z,A,q=0,e={},o=[],p=0,d={},l=[],G=null,v=new Image,J=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,W=/[^\.]\.(swf)\s*$/i,K,L=1,y=0,s="",r,i,h=false,B=b.extend(b("
")[0],{prop:0}),M=b.browser.msie&&b.browser.version<7&&!window.XMLHttpRequest,N=function(){t.hide();v.onerror=v.onload=null;G&&G.abort();m.empty()},O=function(){if(false===e.onError(o,q,e)){t.hide();h=false}else{e.titleShow=false;e.width="auto";e.height="auto";m.html('

The requested content cannot be loaded.
Please try again later.

'); +F()}},I=function(){var a=o[q],c,g,k,C,P,w;N();e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));w=e.onStart(o,q,e);if(w===false)h=false;else{if(typeof w=="object")e=b.extend(e,w);k=e.title||(a.nodeName?b(a).attr("title"):a.title)||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(k===""&&e.orig&&e.titleFromAlt)k=e.orig.attr("alt");c=e.href||(a.nodeName?b(a).attr("href"):a.href)||null;if(/^(?:javascript)/i.test(c)|| +c=="#")c=null;if(e.type){g=e.type;if(!c)c=e.content}else if(e.content)g="html";else if(c)g=c.match(J)?"image":c.match(W)?"swf":b(a).hasClass("iframe")?"iframe":c.indexOf("#")===0?"inline":"ajax";if(g){if(g=="inline"){a=c.substr(c.indexOf("#"));g=b(a).length>0?"inline":"ajax"}e.type=g;e.href=c;e.title=k;if(e.autoDimensions)if(e.type=="html"||e.type=="inline"||e.type=="ajax"){e.width="auto";e.height="auto"}else e.autoDimensions=false;if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick= +false;e.enableEscapeButton=false;e.showCloseButton=false}e.padding=parseInt(e.padding,10);e.margin=parseInt(e.margin,10);m.css("padding",e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(j.children())});switch(g){case "html":m.html(e.content);F();break;case "inline":if(b(a).parent().is("#fancybox-content")===true){h=false;break}b('
').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(j.children())}).bind("fancybox-cancel", +function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity();v=new Image;v.onerror=function(){O()};v.onload=function(){h=true;v.onerror=v.onload=null;e.width=v.width;e.height=v.height;b("").attr({id:"fancybox-img",src:v.src,alt:e.title}).appendTo(m);Q()};v.src=c;break;case "swf":e.scrolling="no";C='';P="";b.each(e.swf,function(x,H){C+='';P+=" "+x+'="'+H+'"'});C+='";m.html(C);F();break;case "ajax":h=false;b.fancybox.showActivity();e.ajax.win=e.ajax.success;G=b.ajax(b.extend({},e.ajax,{url:c,data:e.ajax.data||{},error:function(x){x.status>0&&O()},success:function(x,H,R){if((typeof R=="object"?R:G).status==200){if(typeof e.ajax.win== +"function"){w=e.ajax.win(c,x,H,R);if(w===false){t.hide();return}else if(typeof w=="string"||typeof w=="object")x=w}m.html(x);F()}}}));break;case "iframe":Q()}}else O()}},F=function(){var a=e.width,c=e.height;a=a.toString().indexOf("%")>-1?parseInt((b(window).width()-e.margin*2)*parseFloat(a)/100,10)+"px":a=="auto"?"auto":a+"px";c=c.toString().indexOf("%")>-1?parseInt((b(window).height()-e.margin*2)*parseFloat(c)/100,10)+"px":c=="auto"?"auto":c+"px";m.wrapInner('
');e.width=m.width();e.height=m.height();Q()},Q=function(){var a,c;t.hide();if(f.is(":visible")&&false===d.onCleanup(l,p,d)){b.event.trigger("fancybox-cancel");h=false}else{h=true;b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");f.is(":visible")&&d.titlePosition!=="outside"&&f.css("height",f.height());l=o;p=q;d=e;if(d.overlayShow){u.css({"background-color":d.overlayColor, +opacity:d.overlayOpacity,cursor:d.hideOnOverlayClick?"pointer":"auto",height:b(document).height()});if(!u.is(":visible")){M&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"});u.show()}}else u.hide();i=X();s=d.title||"";y=0;n.empty().removeAttr("style").removeClass();if(d.titleShow!==false){if(b.isFunction(d.titleFormat))a=d.titleFormat(s,l,p,d);else a=s&&s.length? +d.titlePosition=="float"?'
'+s+'
':'
'+s+"
":false;s=a;if(!(!s||s==="")){n.addClass("fancybox-title-"+d.titlePosition).html(s).appendTo("body").show();switch(d.titlePosition){case "inside":n.css({width:i.width-d.padding*2,marginLeft:d.padding,marginRight:d.padding}); +y=n.outerHeight(true);n.appendTo(D);i.height+=y;break;case "over":n.css({marginLeft:d.padding,width:i.width-d.padding*2,bottom:d.padding}).appendTo(D);break;case "float":n.css("left",parseInt((n.width()-i.width-40)/2,10)*-1).appendTo(f);break;default:n.css({width:i.width-d.padding*2,paddingLeft:d.padding,paddingRight:d.padding}).appendTo(f)}}}n.hide();if(f.is(":visible")){b(E.add(z).add(A)).hide();a=f.position();r={top:a.top,left:a.left,width:f.width(),height:f.height()};c=r.width==i.width&&r.height== +i.height;j.fadeTo(d.changeFade,0.3,function(){var g=function(){j.html(m.contents()).fadeTo(d.changeFade,1,S)};b.event.trigger("fancybox-change");j.empty().removeAttr("filter").css({"border-width":d.padding,width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2});if(c)g();else{B.prop=0;b(B).animate({prop:1},{duration:d.changeSpeed,easing:d.easingChange,step:T,complete:g})}})}else{f.removeAttr("style");j.css("border-width",d.padding);if(d.transitionIn=="elastic"){r=V();j.html(m.contents()); +f.show();if(d.opacity)i.opacity=0;B.prop=0;b(B).animate({prop:1},{duration:d.speedIn,easing:d.easingIn,step:T,complete:S})}else{d.titlePosition=="inside"&&y>0&&n.show();j.css({width:i.width-d.padding*2,height:e.autoDimensions?"auto":i.height-y-d.padding*2}).html(m.contents());f.css(i).fadeIn(d.transitionIn=="none"?0:d.speedIn,S)}}}},Y=function(){if(d.enableEscapeButton||d.enableKeyboardNav)b(document).bind("keydown.fb",function(a){if(a.keyCode==27&&d.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if((a.keyCode== +37||a.keyCode==39)&&d.enableKeyboardNav&&a.target.tagName!=="INPUT"&&a.target.tagName!=="TEXTAREA"&&a.target.tagName!=="SELECT"){a.preventDefault();b.fancybox[a.keyCode==37?"prev":"next"]()}});if(d.showNavArrows){if(d.cyclic&&l.length>1||p!==0)z.show();if(d.cyclic&&l.length>1||p!=l.length-1)A.show()}else{z.hide();A.hide()}},S=function(){if(!b.support.opacity){j.get(0).style.removeAttribute("filter");f.get(0).style.removeAttribute("filter")}e.autoDimensions&&j.css("height","auto");f.css("height","auto"); +s&&s.length&&n.show();d.showCloseButton&&E.show();Y();d.hideOnContentClick&&j.bind("click",b.fancybox.close);d.hideOnOverlayClick&&u.bind("click",b.fancybox.close);b(window).bind("resize.fb",b.fancybox.resize);d.centerOnScroll&&b(window).bind("scroll.fb",b.fancybox.center);if(d.type=="iframe")b('').appendTo(j); +f.show();h=false;b.fancybox.center();d.onComplete(l,p,d);var a,c;if(l.length-1>p){a=l[p+1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}if(p>0){a=l[p-1].href;if(typeof a!=="undefined"&&a.match(J)){c=new Image;c.src=a}}},T=function(a){var c={width:parseInt(r.width+(i.width-r.width)*a,10),height:parseInt(r.height+(i.height-r.height)*a,10),top:parseInt(r.top+(i.top-r.top)*a,10),left:parseInt(r.left+(i.left-r.left)*a,10)};if(typeof i.opacity!=="undefined")c.opacity=a<0.5?0.5:a;f.css(c); +j.css({width:c.width-d.padding*2,height:c.height-y*a-d.padding*2})},U=function(){return[b(window).width()-d.margin*2,b(window).height()-d.margin*2,b(document).scrollLeft()+d.margin,b(document).scrollTop()+d.margin]},X=function(){var a=U(),c={},g=d.autoScale,k=d.padding*2;c.width=d.width.toString().indexOf("%")>-1?parseInt(a[0]*parseFloat(d.width)/100,10):d.width+k;c.height=d.height.toString().indexOf("%")>-1?parseInt(a[1]*parseFloat(d.height)/100,10):d.height+k;if(g&&(c.width>a[0]||c.height>a[1]))if(e.type== +"image"||e.type=="swf"){g=d.width/d.height;if(c.width>a[0]){c.width=a[0];c.height=parseInt((c.width-k)/g+k,10)}if(c.height>a[1]){c.height=a[1];c.width=parseInt((c.height-k)*g+k,10)}}else{c.width=Math.min(c.width,a[0]);c.height=Math.min(c.height,a[1])}c.top=parseInt(Math.max(a[3]-20,a[3]+(a[1]-c.height-40)*0.5),10);c.left=parseInt(Math.max(a[2]-20,a[2]+(a[0]-c.width-40)*0.5),10);return c},V=function(){var a=e.orig?b(e.orig):false,c={};if(a&&a.length){c=a.offset();c.top+=parseInt(a.css("paddingTop"), +10)||0;c.left+=parseInt(a.css("paddingLeft"),10)||0;c.top+=parseInt(a.css("border-top-width"),10)||0;c.left+=parseInt(a.css("border-left-width"),10)||0;c.width=a.width();c.height=a.height();c={width:c.width+d.padding*2,height:c.height+d.padding*2,top:c.top-d.padding-20,left:c.left-d.padding-20}}else{a=U();c={width:d.padding*2,height:d.padding*2,top:parseInt(a[3]+a[1]*0.5,10),left:parseInt(a[2]+a[0]*0.5,10)}}return c},Z=function(){if(t.is(":visible")){b("div",t).css("top",L*-40+"px");L=(L+1)%12}else clearInterval(K)}; +b.fn.fancybox=function(a){if(!b(this).length)return this;b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(c){c.preventDefault();if(!h){h=true;b(this).blur();o=[];q=0;c=b(this).attr("rel")||"";if(!c||c==""||c==="nofollow")o.push(this);else{o=b("a[rel="+c+"], area[rel="+c+"]");q=o.index(this)}I()}});return this};b.fancybox=function(a,c){var g;if(!h){h=true;g=typeof c!=="undefined"?c:{};o=[];q=parseInt(g.index,10)||0;if(b.isArray(a)){for(var k= +0,C=a.length;ko.length||q<0)q=0;I()}};b.fancybox.showActivity=function(){clearInterval(K);t.show();K=setInterval(Z,66)};b.fancybox.hideActivity=function(){t.hide()};b.fancybox.next=function(){return b.fancybox.pos(p+ +1)};b.fancybox.prev=function(){return b.fancybox.pos(p-1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a);o=l;if(a>-1&&a1){q=a>=l.length?0:l.length-1;I()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");N();e.onCancel(o,q,e);h=false}};b.fancybox.close=function(){function a(){u.fadeOut("fast");n.empty().hide();f.hide();b.event.trigger("fancybox-cleanup");j.empty();d.onClosed(l,p,d);l=e=[];p=q=0;d=e={};h=false}if(!(h||f.is(":hidden"))){h= +true;if(d&&false===d.onCleanup(l,p,d))h=false;else{N();b(E.add(z).add(A)).hide();b(j.add(u)).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");j.find("iframe").attr("src",M&&/^https/i.test(window.location.href||"")?"javascript:void(false)":"about:blank");d.titlePosition!=="inside"&&n.empty();f.stop();if(d.transitionOut=="elastic"){r=V();var c=f.position();i={top:c.top,left:c.left,width:f.width(),height:f.height()};if(d.opacity)i.opacity=1;n.empty().hide();B.prop=1; +b(B).animate({prop:0},{duration:d.speedOut,easing:d.easingOut,step:T,complete:a})}else f.fadeOut(d.transitionOut=="none"?0:d.speedOut,a)}}};b.fancybox.resize=function(){u.is(":visible")&&u.css("height",b(document).height());b.fancybox.center(true)};b.fancybox.center=function(a){var c,g;if(!h){g=a===true?1:0;c=U();!g&&(f.width()>c[0]||f.height()>c[1])||f.stop().animate({top:parseInt(Math.max(c[3]-20,c[3]+(c[1]-j.height()-40)*0.5-d.padding)),left:parseInt(Math.max(c[2]-20,c[2]+(c[0]-j.width()-40)*0.5- +d.padding))},typeof a=="number"?a:200)}};b.fancybox.init=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('
'),t=b('
'),u=b('
'),f=b('
'));D=b('
').append('
').appendTo(f); +D.append(j=b('
'),E=b(''),n=b('
'),z=b(''),A=b(''));E.click(b.fancybox.close);t.click(b.fancybox.cancel);z.click(function(a){a.preventDefault();b.fancybox.prev()});A.click(function(a){a.preventDefault();b.fancybox.next()}); +b.fn.mousewheel&&f.bind("mousewheel.fb",function(a,c){if(h)a.preventDefault();else if(b(a.target).get(0).clientHeight==0||b(a.target).get(0).scrollHeight===b(a.target).get(0).clientHeight){a.preventDefault();b.fancybox[c>0?"prev":"next"]()}});b.support.opacity||f.addClass("fancybox-ie");if(M){t.addClass("fancybox-ie6");f.addClass("fancybox-ie6");b('').prependTo(D)}}}; +b.fn.fancybox.defaults={padding:10,margin:40,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.7,overlayColor:"#777",titleShow:true,titlePosition:"float",titleFormat:null,titleFromAlt:false,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing", +easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,enableKeyboardNav:true,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}};b(document).ready(function(){b.fancybox.init()})})(jQuery); \ No newline at end of file diff --git a/data/interfaces/lossless/js/fancybox/jquery.mousewheel-3.0.4.pack.js b/data/interfaces/lossless/js/fancybox/jquery.mousewheel-3.0.4.pack.js new file mode 100644 index 00000000..cb66588e --- /dev/null +++ b/data/interfaces/lossless/js/fancybox/jquery.mousewheel-3.0.4.pack.js @@ -0,0 +1,14 @@ +/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net) +* Licensed under the MIT License (LICENSE.txt). +* +* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. +* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. +* Thanks to: Seamus Leahy for adding deltaX and deltaY +* +* Version: 3.0.4 +* +* Requires: 1.2.2+ +*/ + +(function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a= +f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git a/data/interfaces/lossless/js/libs/dd_belatedpng.js b/data/interfaces/lossless/js/libs/dd_belatedpng.js new file mode 100644 index 00000000..6062fb3c --- /dev/null +++ b/data/interfaces/lossless/js/libs/dd_belatedpng.js @@ -0,0 +1,13 @@ +/** +* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML . +* Author: Drew Diller +* Email: drew.diller@gmail.com +* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/ +* Version: 0.0.8a +* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license +* +* Example usage: +* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector +* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement +**/ +var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;bn.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet(); \ No newline at end of file diff --git a/data/interfaces/lossless/js/libs/jquery-1.7.2.min.js b/data/interfaces/lossless/js/libs/jquery-1.7.2.min.js new file mode 100644 index 00000000..16ad06c5 --- /dev/null +++ b/data/interfaces/lossless/js/libs/jquery-1.7.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/data/interfaces/lossless/js/libs/jquery-ui.min.js b/data/interfaces/lossless/js/libs/jquery-ui.min.js new file mode 100644 index 00000000..886976df --- /dev/null +++ b/data/interfaces/lossless/js/libs/jquery-ui.min.js @@ -0,0 +1,121 @@ +/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.19",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.position.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.draggable.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.19"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.selectable.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper").html(" ")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.19",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.autocomplete.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("
    ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length").data("item.autocomplete",c).append(a("").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend(""),d.secondary&&b.append(""),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.dialog.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
    ")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("
    ").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){if(a==="click")return;a in f?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.19",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.19"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.19"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
    ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
    '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
    ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
    '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
    '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
    "+(j?"
    "+(g[0]>0&&N==g[1]-1?'
    ':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
    ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
    ",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="@VERSION",window["DP_jQuery_"+dpuuid]=$})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.ui.progressbar.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("
    ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.19"})})(jQuery);/*! jQuery UI - v1.8.19 - 2012-04-16 +* https://github.com/jquery/jquery-ui +* Includes: jquery.effects.core.js +* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ +jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=a.curCSS(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.19",save:function(a,b){for(var c=0;c
    ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}}),a.easing.jswing=a.easing.swing,a.extend(a.easing,{def:"easeOutQuad",swing:function(b,c,d,e,f){return a.easing[a.easing.def](b,c,d,e,f)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return b==0?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h