var LibraryBrowser = (function (window, $) {
return {
getDetaultPageSize: function () {
if (window.location.toString().toLowerCase().indexOf('localhost') != -1) {
return 100;
}
return 20;
},
getPosterDetailViewHtml: function (options) {
var items = options.items;
var primaryImageAspectRatio = options.useAverageAspectRatio ? LibraryBrowser.getAveragePrimaryImageAspectRatio(items) : null;
var html = '';
for (var i = 0, length = items.length; i < length; i++) {
var item = items[i];
html += '';
if (options.preferBackdrop && item.BackdropImageTags && item.BackdropImageTags.length) {
html += " ' + LibraryBrowser.getFiveStarRatingHtml(item) + ' ' + childText + ' ' + childText + ' ' + LibraryBrowser.getMiscInfoHtml(item, false) + ' ' + LibraryBrowser.getUserDataIconsHtml(item) + ' ' + LibraryBrowser.getProgressBarHtml(item) + '";
}
else if (options.preferBackdrop && item.ImageTags && item.ImageTags.Thumb) {
html += "
";
}
else if (item.ImageTags && item.ImageTags.Primary) {
var height = 300;
var width = primaryImageAspectRatio ? parseInt(height * primaryImageAspectRatio) : null;
html += "
";
}
else if (item.BackdropImageTags && item.BackdropImageTags.length) {
html += "
";
}
else if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist") {
html += "
";
}
else if (item.MediaType == "Video" || item.Type == "Season" || item.Type == "Series") {
html += "
";
}
else if (item.Type == "Person") {
html += "
";
}
else if (item.MediaType == "Game") {
html += "
";
}
else {
html += "
";
}
html += '
';
} else {
html += '
';
}
}
if (typeof userData.Likes == "undefined") {
html += '
';
} else {
html += '
';
}
return html;
},
markPlayed: function (link) {
var id = link.getAttribute('data-itemid');
var $link = $(link);
var markAsPlayed = $link.hasClass('imgPlayedOff');
ApiClient.updatePlayedStatus(Dashboard.getCurrentUserId(), id, markAsPlayed);
if (markAsPlayed) {
link.src = "css/images/userdata/played.png";
$link.addClass('imgPlayed').removeClass('imgPlayedOff');
} else {
link.src = "css/images/userdata/unplayed.png";
$link.addClass('imgPlayedOff').removeClass('imgPlayed');
}
},
markFavorite: function (link) {
var id = link.getAttribute('data-itemid');
var type = link.getAttribute('data-type');
var $link = $(link);
var markAsFavorite = $link.hasClass('imgFavoriteOff');
if (type == "Person" || type == "Studio" || type == "Genre") {
ApiClient.updateItemByNameFavoriteStatus(Dashboard.getCurrentUserId(), id, markAsFavorite);
}
else {
ApiClient.updateFavoriteStatus(Dashboard.getCurrentUserId(), id, markAsFavorite);
}
if (markAsFavorite) {
link.src = "css/images/userdata/heart_on.png";
$link.addClass('imgFavorite').removeClass('imgFavoriteOff');
} else {
link.src = "css/images/userdata/heart_off.png";
$link.addClass('imgFavoriteOff').removeClass('imgFavorite');
}
},
markLike: function (link) {
var id = link.getAttribute('data-itemid');
var type = link.getAttribute('data-type');
var $link = $(link);
if ($link.hasClass('imgLikeOff')) {
if (type == "Person" || type == "Studio" || type == "Genre") {
ApiClient.updateItemByNameRating(Dashboard.getCurrentUserId(), id, true);
}
else {
ApiClient.updateUserItemRating(Dashboard.getCurrentUserId(), id, true);
}
link.src = "css/images/userdata/thumbs_up_on.png";
$link.addClass('imgLike').removeClass('imgLikeOff');
} else {
if (type == "Person" || type == "Studio" || type == "Genre") {
ApiClient.clearItemByNameRating(Dashboard.getCurrentUserId(), id);
}
else {
ApiClient.clearUserItemRating(Dashboard.getCurrentUserId(), id);
}
link.src = "css/images/userdata/thumbs_up_off.png";
$link.addClass('imgLikeOff').removeClass('imgLike');
}
$link.prev().removeClass('imgDislike').addClass('imgDislikeOff').each(function () {
this.src = "css/images/userdata/thumbs_down_off.png";
});
},
markDislike: function (link) {
var id = link.getAttribute('data-itemid');
var type = link.getAttribute('data-type');
var $link = $(link);
if ($link.hasClass('imgDislikeOff')) {
if (type == "Person" || type == "Studio" || type == "Genre") {
ApiClient.updateItemByNameRating(Dashboard.getCurrentUserId(), id, false);
}
else {
ApiClient.updateUserItemRating(Dashboard.getCurrentUserId(), id, false);
}
link.src = "css/images/userdata/thumbs_down_on.png";
$link.addClass('imgDislike').removeClass('imgDislikeOff');
} else {
if (type == "Person" || type == "Studio" || type == "Genre") {
ApiClient.clearItemByNameRating(Dashboard.getCurrentUserId(), id);
}
else {
ApiClient.clearUserItemRating(Dashboard.getCurrentUserId(), id);
}
link.src = "css/images/userdata/thumbs_down_off.png";
$link.addClass('imgDislikeOff').removeClass('imgDislike');
}
$link.next().removeClass('imgLike').addClass('imgLikeOff').each(function () {
this.src = "css/images/userdata/thumbs_up_off.png";
});
},
getDetailImageHtml: function (item) {
var imageTags = item.ImageTags || {};
var html = '';
var url;
var useBackgroundColor;
if (imageTags.Primary) {
if (item.Type == "Person") {
url = ApiClient.getPersonImageUrl(item.Name, {
maxwidth: 800,
tag: imageTags.Primary,
type: "primary"
});
}
else if (item.Type == "Genre") {
url = ApiClient.getGenreImageUrl(item.Name, {
maxwidth: 800,
tag: imageTags.Primary,
type: "primary"
});
}
else if (item.Type == "Studio") {
url = ApiClient.getStudioImageUrl(item.Name, {
maxwidth: 800,
tag: imageTags.Primary,
type: "primary"
});
}
else {
url = ApiClient.getImageUrl(item.Id, {
type: "Primary",
maxwidth: 800,
tag: item.ImageTags.Primary
});
}
}
else if (item.BackdropImageTags && item.BackdropImageTags.length) {
url = ApiClient.getImageUrl(item.Id, {
type: "Backdrop",
maxwidth: 800,
tag: item.BackdropImageTags[0]
});
}
else if (imageTags.Thumb) {
url = ApiClient.getImageUrl(item.Id, {
type: "Thumb",
maxwidth: 800,
tag: item.ImageTags.Thumb
});
}
else if (imageTags.Disc) {
url = ApiClient.getImageUrl(item.Id, {
type: "Disc",
maxwidth: 800,
tag: item.ImageTags.Disc
});
}
else if (item.MediaType == "Audio") {
url = "css/images/items/detail/audio.png";
useBackgroundColor = true;
}
else if (item.MediaType == "Game") {
url = "css/images/items/detail/game.png";
useBackgroundColor = true;
}
else if (item.Type == "Person") {
url = "css/images/items/detail/person.png";
useBackgroundColor = true;
}
else {
url = "css/images/items/detail/video.png";
useBackgroundColor = true;
}
if (url) {
var style = useBackgroundColor ? "background-color:" + LibraryBrowser.getMetroColor(item.Id) + ";" : "";
html += "
';
}
html += '