function getGenres() {
var genres = 'Acid Rock,Acoustic,Alt Country,Alt/Indie,Alternative & Punk,Alternative Metal,Alternative,AlternRock,Awesome,Bluegrass,Blues,Blues-Rock,Classic Hard Rock,Classic Rock,Comedy,Country,Country-Rock,Dance,Dance-Rock,Deep Funk,Easy Listening,Electronic,Electronica,Electronica/Dance,Folk,Folk/Rock,Funk,Grunge,Hard Rock,Heavy Metal,Holiday,House,Improg,Indie Rock,Indie,International,Irish,Jam Band,Jam,Jazz Fusion,Jazz,Latin,Live Albums,Metal,Music,Oldies,Other,Pop,Pop/Rock,Post Rock,Progressive Rock,Psychedelic Rock,Psychedelic,Punk,R&B,Rap & Hip-Hop,Reggae,Rock & Roll,Rock,Rock/Pop,Roots,Ska,Soft Rock,Soul,Southern Rock,Thrash Metal,Unknown,Vocal,World';
var genresArr = genres.split(',');
var options = [];
options.push('');
$.each(genresArr, function (i, genre) {
options.push('');
});
$('#Genres').html(options.join(''));
}
function loadAutoPlaylists(refresh) {
if (debug) { console.log("LOAD AUTO PLAYLISTS"); }
if (refresh) {
$('#AutoPlaylistContainer').empty();
}
var content = $('#AutoPlaylistContainer').html();
if (content == "") {
var genres = getValue('AutoPlaylists');
var genresArr = [];
if (genres) {
genresArr = genres.split(',');
genresArr.unshift('Random');
genresArr.unshift('Starred');
} else {
genresArr.push('Starred');
genresArr.push('Random');
}
$.each(genresArr, function (i, genre) {
genre = genre.trim();
if (genre != '') {
var html = "";
html += '
';
html += '' + genre + '';
html += '';
html += '';
html += '';
$(html).appendTo("#AutoPlaylistContainer");
}
});
}
}
function previewStarredCoverArt() {
$.ajax({
url: baseURL + '/getStarred.view?' + baseParams + '&size=25',
method: 'GET',
dataType: protocol,
timeout: 10000,
success: function (data) {
var coverarts = [];
if (data["subsonic-response"].starred !== undefined) {
var items = [];
if (data["subsonic-response"].starred.album !== undefined) {
if (data["subsonic-response"].starred.album.length > 0) {
items = data["subsonic-response"].starred.album;
} else {
items[0] = data["subsonic-response"].starred.album;
}
}
var html = "";
$.each(items, function (i, item) {
if (typeof item.coverArt !== "undefined") {
var coverSrc = baseURL + '/getCoverArt.view?' + baseParams + '&id=' + item.coverArt;
var title = item.artist + ' - ' + item.album;
html += '
';
}
});
$('#preview').html(html);
$('#preview a').shuffle();
//var pick = Math.floor(Math.random() * coverarts.length) + 1;
//var href = baseURL + '/getCoverArt.view?' + baseParams + '&id=' + coverarts[pick];
$('a.fancyboxcoverart').fancybox({
autoPlay: true,
playSpeed: 10000,
preload: 5,
hideOnContentClick: true,
type: 'image',
openEffect: 'none',
closeEffect: 'none',
openSpeed: 'normal',
closeSpeed: 'slow',
afterLoad: function () {
$('div.fancybox-inner').click(function () {
//alert("test");
});
}
}).trigger('click');
//setInterval($('#preview a').fancybox.next(), 2000);
}
}
});
}
function previewCurrentCoverArt() {
var href = $('#coverartimage').attr('href');
var title = $('#songdetails_artist').html();
$("a#preview").fancybox({
hideOnContentClick: true,
type: 'image',
openEffect: 'none',
closeEffect: 'none',
href: href,
title: title
}).trigger('click');
}
var updaterNowPlaying;
var updaterNowPlayingIdList = [];
function updateNowPlaying(showPopup) {
updaterNowPlaying = $.periodic({ period: 4000, decay: 1.5, max_period: 30000 }, function () {
$.ajax({
periodic: this,
url: baseURL + '/getNowPlaying.view?' + baseParams,
method: 'GET',
dataType: protocol,
timeout: 10000,
success: function (data) {
if (data["subsonic-response"].nowPlaying.entry === undefined) {
this.periodic.increment();
$("#NowPlayingList").empty();
var chathtml = '';
chathtml += 'Nothing :(';
chathtml += '
';
$(chathtml).appendTo("#NowPlayingList");
} else {
this.periodic.increment();
if (debug) { console.log('NowPlaying Delay: ' + this.periodic.cur_period); }
$("#NowPlayingList").empty();
var msgs = [];
if (data["subsonic-response"].nowPlaying.entry.length > 0) {
msgs = data["subsonic-response"].nowPlaying.entry;
} else {
msgs[0] = data["subsonic-response"].nowPlaying.entry;
}
var sorted = msgs.sort(function (a, b) {
return a.minutesAgo - b.minutesAgo;
});
$.each(sorted, function (i, msg) {
if (!showPopup) {
var chathtml = '';
chathtml += '' + msg.username + '';
chathtml += '' + msg.artist + ' - ' + msg.title + '';
chathtml += '
';
$(chathtml).appendTo("#NowPlayingList");
}
var coverartSrc;
if (msg.coverArt === undefined) {
coverartSrc = 'images/albumdefault_50.jpg';
} else {
coverartSrc = baseURL + '/getCoverArt.view?' + baseParams + '&size=50&id=' + msg.coverArt;
}
if (getValue('Notification_NowPlaying')) {
var sid = msg.username + '-' + msg.id;
if (jQuery.inArray(sid, updaterNowPlayingIdList) === -1 && username != msg.username) {
showNotification(coverartSrc, toHTML.un(msg.username + ':' + msg.playerName), toHTML.un(msg.artist + ' - ' + msg.title), 'text', '');
updaterNowPlayingIdList.push(sid);
}
}
});
}
}
});
});
}
function stopUpdateNowPlaying() {
updaterNowPlaying.cancel();
}
function saveAutoFilter() {
if (browserStorageCheck) {
var item = localStorage.getItem('AutoFilter');
try {
localStorage.setItem('AutoFilter', item);
if (debug) { console.log('Saving Auto Filter: ' + item); }
} catch (e) {
if (e == QUOTA_EXCEEDED_ERR) {
alert('Quota exceeded!');
}
}
} else {
if (debug) { console.log('HTML5::loadStorage not supported on your browser' + html.length + ' characters'); }
}
}
function deleteAutoFilter() {
if (browserStorageCheck) {
localStorage.removeItem('AutoFilter');
if (debug) { console.log('Removing Auto Filter'); }
} else {
if (debug) { console.log('HTML5::loadStorage not supported on your browser' + html.length + ' characters'); }
}
}
function loadAutoFilter() {
if (browserStorageCheck) {
var item = localStorage.getItem('AutoFilter');
if (item != '' && item !== undefined && item !== null) {
var el = '#AutoFilter';
$(el).val(item);
if (debug) { console.log('Load Play Queue From localStorage: ' + item); }
}
} else {
if (debug) { console.log('HTML5::loadStorage not supported on your browser' + html.length + ' characters'); }
}
}
function downloadItem(id, type) {
var url;
if (type == 'item' && id) {
reqDownload = 'id=' + id;
}
if (type == 'playlist' && id) {
reqDownload = 'playlistUtf8Hex=' + id;
}
if (reqDownload) {
url = baseURL + '/download.view?' + baseParams + '&' + reqDownload;
window.location = url;
}
}
function loadVideos(refresh) {
if (debug) { console.log("LOAD VIDEOS"); }
if (refresh) {
$('#VideosContainer').empty();
}
var content = $('#VideosContainer').html();
if (content == "") {
// Load Videos
$.ajax({
url: baseURL + '/getVideos.view?' + baseParams,
method: 'GET',
dataType: protocol,
timeout: 10000,
success: function (data) {
if (data["subsonic-response"].videos != '') {
var videos = [];
if (data["subsonic-response"].videos.video.length > 0) {
videos = data["subsonic-response"].videos.video;
} else {
videos[0] = data["subsonic-response"].videos.video;
}
var rowcolor;
$.each(videos, function (i, video) {
var html;
if (i % 2 === 0) {
rowcolor = 'even';
} else {
rowcolor = 'odd';
}
var videoURL = baseURL + '/stream.view?' + baseParams + '&id=' + video.id;
html = '';
html += '';
//html += '';
//html += '';
html += '';
//html += '';
html += ' | ';
html += ' | ';
html += '' + video.title + ' | ';
html += ' | ';
var coverartSrc;
if (video.coverArt === undefined) {
coverartSrc = 'images/albumdefault_25.jpg';
} else {
coverartSrc = baseURL + '/getCoverArt.view?' + baseParams + '&size=25&id=' + video.coverArt;
}
var time = secondsToTime(video.duration);
html += ' ' + video.album + ' | ';
html += '' + time + ' | ';
html += '
';
$(html).appendTo("#VideosContainer");
});
}
}
});
}
}