'use strict';
define(
[
'handlebars',
'underscore'
], function (Handlebars, _) {
Handlebars.registerHelper('poster', function () {
var poster = _.where(this.images, {coverType: 'poster'});
if (poster[0]) {
return poster[0].url;
}
return undefined;
});
Handlebars.registerHelper('traktUrl', function () {
return 'http://trakt.tv/show/' + this.titleSlug;
});
Handlebars.registerHelper('imdbUrl', function () {
return 'http://imdb.com/title/' + this.imdbId;
});
Handlebars.registerHelper('tvdbUrl', function () {
return 'http://www.thetvdb.com/?tab=series&id=' + this.tvdbId;
});
Handlebars.registerHelper('tvRageUrl', function () {
return 'http://www.tvrage.com/shows/id-' + this.tvRageId;
});
Handlebars.registerHelper('route', function () {
return '/series/' + this.titleSlug;
});
Handlebars.registerHelper('percentOfEpisodes', function () {
var episodeCount = this.episodeCount;
var episodeFileCount = this.episodeFileCount;
var percent = 100;
if (episodeCount > 0) {
percent = episodeFileCount / episodeCount * 100;
}
return percent;
});
Handlebars.registerHelper('seasonCountHelper', function () {
var seasonCount = this.seasonCount;
var continuing = this.status === 'continuing';
if (continuing) {
return new Handlebars.SafeString('Season {0}'.format(seasonCount));
}
if (seasonCount === 1) {
return new Handlebars.SafeString('{0} Season'.format(seasonCount))
}
return new Handlebars.SafeString('{0} Seasons'.format(seasonCount))
});
Handlebars.registerHelper('titleWithYear', function () {
if (this.title.match(/\s\(\d{4}\)$/)) {
return this.title;
}
return '{0} ({1})'.format(this.title, this.year);
});
});