/** @namespace $.SickGear.Root */
/** @namespace config.sortArticle */
/** @namespace config.resultsSortby */
/** @namespace config.searchTests */
/** @namespace config.folder */
$(document).ready(function () {
function htmlFlag(lang) {
return ' class="flag" style="background-image:url(' + $.SickGear.Root + '/images/flags/' + lang + '.png)"'
}
function populateLangSelect() {
if (!$('#nameToSearch').length)
return;
if (1 >= $('#infosrc-lang-select').find('option').length) {
$.getJSON(sbRoot + '/add-shows/get-infosrc-languages', {}, function (data) {
var resultStr = '', flag,
selected = ' selected="selected"',
elInfosrcLang = $('#infosrc-lang-select');
if (0 === data.results.length) {
resultStr = '';
} else {
$.each(data.results, function (index, obj) {
flag = htmlFlag(obj);
resultStr += '';
});
}
elInfosrcLang.html(resultStr);
elInfosrcLang.change(function () {
searchIndexers();
});
});
}
}
function cleanseText(text, toDisplay) {
return (!0 == toDisplay
? text
.replace(/["]/g, '"')
: text
.replace(/(?:["]|")/g, '')
);
}
var searchRequestXhr = null;
function searchIndexers() {
var elNameToSearch = $('#nameToSearch');
if (!elNameToSearch.val().length)
return;
$('#more-results').hide();
if (searchRequestXhr)
searchRequestXhr.abort();
var elTvDatabase = $('#provided-tvid'),
elInfosrcLang = $('#infosrc-lang-select'),
tvsrcName = elTvDatabase.find('option:selected').text(),
tvSearchSrc = 0 < tvsrcName.length ? ' on ' + elTvDatabase.find('option:selected').attr('data-name') + '' : '';
$('#search-results').empty().html('
'
+ ' searching ' + cleanseText(elNameToSearch.val(), !0) + ''
+ tvSearchSrc + ' in ' + elInfosrcLang.val()
+ '...');
searchRequestXhr = $.ajax({
url: sbRoot + '/add-shows/search-tvinfo-for-showname',
data: {
'search_term': cleanseText(elNameToSearch.val(), !1),
'lang': elInfosrcLang.val(),
'search_tvid': elTvDatabase.val()
},
timeout: parseInt($('#indexer_timeout').val(), 10) * parseInt($('#indexer_count').val(), 2) * 1000 + 15000,
dataType: 'json',
error: function () {
$('#search-results').empty().html('search timed out, try again in a few mins.');
},
success: function (data) {
var resultStr = '', attrs = '', checked = !1, rowType, row = 0, srcState = '',
resultItem, resultStrBuffer = '', nBufferSize = 9999, nBuffer = 0, nAll = 0;
if (null === data.results || 0 === data.results.length) {
resultStr += 'Sorry, no results found. Try a different search.';
} else {
var n = 0, result = {
SrcName: n, isInDB: ++n, SrcId: ++n, SrcDBId: ++n, SrcSlug: ++n, SrcUrl: ++n, ShowID: ++n,
Title: ++n, TitleHtml: ++n, Aired: ++n, Network: ++n, Genre: ++n, Overview: ++n, ImgUrl: ++n,
RelSort: ++n, RelCombined : ++n, NewestAired: ++n, NewestCombined: ++n,
OldestAired: ++n, OldestCombined: ++n, AzSort: ++n, AzCombined : ++n, ZaSort: ++n, ZaCombined: ++n,
DirectIdMatch: ++n, RenameSuggest: ++n
};
$.each(data.results, function (index, item) {
attrs = (!1 !== item[result.isInDB] ? ' disabled="disabled"' : (!0 === checked ? '' : ' checked'))
+ ' data-rename-suggest="' + item[result.RenameSuggest] + '"';
checked = (-1 === attrs.indexOf('checked')) ? checked : !0;
rowType = (0 === row % 2 ? '' : ' alt');
row++;
var displayShowName = cleanseText(item[result.Title], !0), showstartdate = '';
if (null !== item[result.Aired]) {
var startDate = new Date(item[result.Aired]);
var today = new Date();
showstartdate = ' ('
+ (startDate > today ? 'will debut' : 'started')
+ ': ' + item[result.Aired] + ')';
}
srcState = [
null === item[result.SrcName] ? '' : item[result.SrcName],
!1 === item[result.isInDB] ? '' : 'exists in db']
.join(' - ').replace(/(^[\s-]+|[\s-]+$)/, '');
resultItem = '
' + "\n";
if (nBuffer < nBufferSize || item[result.isInDB]) {
resultStr += resultItem;
if (!1 === item[result.isInDB])
nBuffer++;
} else {
resultStrBuffer += resultItem;
}
nAll++;
});
}
var selAttr = 'selected="selected" ',
selClass = 'selected-text',
classAttrSel = 'class="' + selClass + '" ',
useBuffer = nBufferSize < nAll,
defSortby = /^az/.test(config.resultsSortby) || /^za/.test(config.resultsSortby) || /^newest/.test(config.resultsSortby) || /^oldest/.test(config.resultsSortby) ? '': classAttrSel + selAttr;
$('#search-results').html(
''
);
if (useBuffer) {
$('#search-results-buffer').html(resultStrBuffer);
$('#more-results').show();
$('#more-results a').on('click', function(e, d) {
e.preventDefault();
$('#more-results').hide();
$('#search-results #count').text(nAll + ' search result' + (1 === nAll ? '' : 's') + '...');
$('#search-results-buffer .results-item').appendTo('#holder');
container$.isotope( 'reloadItems' ).isotope(
{sortBy: $('#results-sortby').find('option:not([value$="top"],[value$="group"]).selected-text').val()});
myform.loadsection(0);
});
$('#search-results #count').text((nBuffer + ' / ' + nAll)
+ ' search result' + (1 === nBuffer ? '' : 's') + '...');
} else {
$('#search-results #count').text((0 < nBuffer ? nBuffer + (useBuffer ? ' / ' + nAll : '') : 'No')
+ ' search result' + (1 === nAll ? '' : 's') + '...');
}
var container$ = $('#holder'),
sortbySelect$ = $('#results-sortby'),
reOrder = (function(value){
return ($('#results-sortby').find('option[value$="notop"]').hasClass(selClass)
? (1000 > value ? value + 1000 : value)
: (1000 > value ? value : value - 1000))}),
getData = (function(itemElem, sortby){
var position = parseInt($(itemElem).attr('data-sort-' + sortby +
($('#results-sortby').find('option[value$="ingroup"]').hasClass(selClass) ? '' : '-combined')));
return (!$(itemElem).attr('data-indb')) ? position : reOrder(position);
});
sortbySelect$.find('.' + selClass).each(function(){
$(this).html('> ' + $(this).html());
});
container$.isotope({
itemSelector: '.results-item',
sortBy: sortbySelect$.find('option:not([value$="top"],[value$="group"]).' + selClass).val(),
layoutMode: 'masonry',
getSortData: {
az: function(itemElem){ return getData(itemElem, 'az'); },
za: function(itemElem){ return getData(itemElem, 'za'); },
newest: function(itemElem){ return getData(itemElem, 'newest'); },
oldest: function(itemElem){ return getData(itemElem, 'oldest'); },
rel: function(itemElem){ return getData(itemElem, 'rel'); }
}
}).on('arrangeComplete', function(event, items){
$(items).each(function(i, item){
if (1 === i % 2){
$(item.element).addClass('alt');
}
});
});
sortbySelect$.on('change', function(){
var selectedSort = String($(this).val()), sortby = selectedSort, curSortby$, curSel$, newSel$;
curSortby$ = $(this).find('option:not([value$="top"],[value$="group"])');
if (/(top|group)$/.test(selectedSort)){
sortby = curSortby$.filter('.' + selClass).val();
curSortby$ = $(this).find('option[value$="'
+ (-1 !== selectedSort.indexOf('top') ? 'top' : 'group') + '"]');
}
curSel$ = curSortby$.filter('.' + selClass);
curSel$.html(curSel$.html().replace(/(?:>|>)\s/ , '')).removeClass(selClass);
newSel$ = $(this).find('option[value$="' + selectedSort + '"]');
newSel$.html('> ' + newSel$.html()).addClass(selClass);
$('.results-item[data-indb="1"]').each(function(){
$(this).attr(sortby, reOrder(parseInt($(this).attr(sortby), 10)));
});
$('.results-item').removeClass('alt');
container$.isotope('updateSortData').isotope({sortBy: sortby});
config.resultsSortby = sortby +
($(this).find('option[value$="notop"]').hasClass(selClass) ? ' notop' : '') +
($(this).find('option[value$="nogroup"]').hasClass(selClass) ? ' nogroup' : '');
$.get(sbRoot + '/config/general/save-result-prefs', {ui_results_sortby: selectedSort});
});
updateSampleText();
myform.loadsection(0);
$('.stepone-result-radio, .stepone-result-title').each(addQTip);
}
});
}
function submitSearch(searchFor){
$('#nameToSearch').val(searchFor);
!!searchFor && $('#searchName').click();
return !1;
}
$('#try-0').on('click', function(){return submitSearch('');});
$('#try-1').on('click', function(){return submitSearch(config.searchTests[1]);});
$('span[id^="try-"]').each(function(i, el){
var match = $(el).attr('id').match(/try-(\d+)(-.*)$/i);
if (!!match){
$('#' + match[0]).on('click', function(){
var match = $(this).attr('id').match(/try-(\d+)(-.*)$/i),
num = parseInt(match[1], 10),
kind = match[2],
nextEl$ = $('span[id$="'+ (num + 1) + kind + '"]');
$(this).closest('span[id^="try-"]').addClass('hide');
(nextEl$.length ? nextEl$ : $('span[id$="'+ kind + '"]:first')).removeClass('hide');
return submitSearch(config.searchTests[num]);
});
}
});
var elNameToSearch = $('#nameToSearch'),
elSearchName = $('#searchName');
elSearchName.click(function () { searchIndexers(); });
if (elNameToSearch.length && elNameToSearch.val().length) {
elSearchName.click();
}
$('#addShowButton, #cancelShowButton').click(function () {
if (/cancel/.test(this.id)){
$('input[name=cancel_form]').val('1');
} else {
// if they haven't picked a show don't let them submit
if (!$('input:radio[name="which_series"]:checked').val()
&& !$('input:hidden[name="which_series"]').val().length) {
alert('You must choose a show to continue');
return !1;
}
generateAniGroupList();
}
$('#addShowForm').submit();
});
$('#skipShowButton').click(function () {
$('#skipShow').val('1');
$('#addShowForm').submit();
});
$('#quality-preset').change(function () {
myform.loadsection(2);
});
/***********************************************
* jQuery Form to Form Wizard- (c) Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
var myform = $.SickGear.myform = new FormToWizard({
fieldsetborderwidth: 0,
formid: 'addShowForm',
revealfx: ['slide', 500],
oninit: function () {
populateLangSelect();
updateSampleText();
if ($('input:hidden[name="which_series"]').length && $('#fullShowPath').length) {
goToStep(3);
}
}
});
function goToStep(num) {
$('.step').each(function () {
if ($.data(this, 'section') + 1 == num) {
$(this).click();
}
});
}
elNameToSearch.focus();
function updateSampleText() {
if (0 === $('#displayText').length) {
$('#cancelShowButton').attr('disabled', !1);
$('#addShowButton').attr('disabled', 0 === $('#holder').find('.results-item').length);
return;
}
// if something's selected then we have some behavior to figure out
var showName = '',
sep_char,
elRadio = $('input:radio[name="which_series"]:checked'),
elInput = $('input:hidden[name="which_series"]'),
elScene = $('#scene'),
elRootDirs = $('#rootDirs'),
elFullShowPath = $('#fullShowPath'),
idxWhichShowID = 2, idxWhichTitle = 3;
if (!!elRadio.length) {
$('#rename-suggest').val(elRadio.attr('data-rename-suggest'));
}
if (!!config.folder.length) {
showName = config.folder;
}
// if they've picked a radio button then use that
else if (elRadio.length) {
showName = elRadio.val().split('|')[idxWhichTitle];
elScene[0].checked = 0 <= showSceneMaps.indexOf(parseInt(elRadio.val().split('|')[idxWhichShowID], 10));
$('#scene-maps-found').css('display', elScene.is(':checked') ? 'block' : 'None');
}
// if we provided a show in the hidden field, use that
else if (elInput.length && elInput.val().length) {
showName = $('#provided-show-name').val();
}
updateAniGrouplist(showName);
var sample_text = 'Adding show ' + cleanseText(showName, !0) + ''
+ (!showName.length ? 'into
' : '
into' + (!config.folder.length ? '' : ' user location'))
+ ' ';
// if we have a root dir selected, figure out the path
if (elRootDirs.find('option:selected').length) {
var root_dir_text = elRootDirs.find('option:selected').val();
if (root_dir_text.indexOf('/') >= 0) {
sep_char = '/';
} else if (root_dir_text.indexOf('\\') >= 0) {
sep_char = '\\';
} else {
sep_char = '';
}
if (root_dir_text.substr(sample_text.length - 1) != sep_char) {
root_dir_text += sep_char;
}
root_dir_text += '||' + sep_char;
sample_text += root_dir_text;
} else if (elFullShowPath.length && elFullShowPath.val().length) {
sample_text += elFullShowPath.val();
} else {
sample_text += 'unknown dir.';
}
sample_text += '
';
// if we have a show name then sanitize and use it for the dir name
if (showName.length) {
$.get(sbRoot + '/add-shows/generate-show-dir-name', {show_name: cleanseText(showName, !1)}, function (data) {
$('#displayText').html(sample_text.replace('||', data));
});
// if not then it's unknown
} else {
$('#displayText').html(sample_text.replace('||', '??'));
}
// also toggle the add show button
if ((elRootDirs.find('option:selected').length || (elFullShowPath.length && elFullShowPath.val().length)) &&
(elRadio.length) || (elInput.length && elInput.val().length)) {
$('#addShowButton').attr('disabled', !1);
} else {
$('#addShowButton').attr('disabled', !0);
}
}
$('#rootDirText').change(updateSampleText);
$('#search-results').on('click', '.stepone-result-radio', updateSampleText);
elNameToSearch.keydown(function (event) {
if (event.keyCode == 13) {
event.preventDefault();
elSearchName.click();
}
});
var addQTip = (function() {
$(this).css('cursor', 'help');
$(this).qtip({
show: {
solo: !0
},
position: {
viewport: $(window),
my: 'left center',
adjust: {
y: -10,
x: 2
}
},
style: {
tip: {
corner: !0,
method: 'polygon'
},
classes: 'qtip-rounded qtip-bootstrap qtip-shadow ui-tooltip-sb'
}
});
});
$('#anime').change (function () {
updateSampleText();
myform.loadsection(2);
});
function add_option_to_pool (text) {
var groupvalue = '', groupview = text,
option = $('