var crazyRadioManager = function() { var crazySettings = new Array(); return { loadSavedCrazies: function() { $('.crazyradio').remove(); $.get('radios/crazymanager.php?action=get', function(data) { debug.log("CRAZY RADIO","Saved Data",data); crazySettings = data; for (var i in crazySettings) { var crazy = playlist.radioManager.standardBox('spotiCrazyRadio', i, 'icon-spotify-circled', crazySettings[i].playlistname).appendTo("#pluginplaylists_spotify"); crazy.append( '
'+ ''+ '
' ); } layoutProcessor.adjustLayout(); uiHelper.setupPersonalRadioAdditions(); $('.clickremcrazy').on('click', function(evt) { removeCrazy($(evt.delegateTarget).attr('name')); }); }, 'json'); }, refreshCrazyList: function() { $('.crazyradio').each(function() { if ($(this).parent().hasClass('collectionitem')) { $(this).parent().remove(); } else { $(this).remove(); } }); crazyRadioManager.loadSavedCrazies(); }, go: function() { // Dummy param Date.now() to make sure radioManager stops the previous // one if we've changed genres. playlist.radioManager.load('spotiCrazyRadio', Date.now()); }, load: function(i) { if (crazySettings.hasOwnProperty(i)) { debug.log("LOAD CRAZY","Loading",crazySettings[i]); $('[name="spotigenres"]').val(crazySettings[i].genres); $('.spotiradioslider').each(function() { var attribute = $(this).attr('name'); $(this).rangechooser("setRange",crazySettings[i][attribute]); }); } }, handleClick: function(event, clickedElement) { if (clickedElement.hasClass('clickremcrazy')) { var i = clickedElement.attr('name'); debug.log("CRAZY BUGGER","Removing",i); if ($('.crazyradio[name="'+i+'"]').parent().hasClass('collectionitem')) { $('.crazyradio[name="'+i+'"]').parent().remove(); } else { $('.crazyradio[name="'+i+'"]').remove(); } $.get('radios/crazymanager.php?action=remove&index='+i, crazyRadioManager.refreshCrazyList); } }, actuallySaveCrazyRadioSettings: function() { var settings = { playlistname: $('#scplname').val(), genres: $('[name="spotigenres"]').val() } $('.spotiradioslider').each(function() { var attribute = $(this).attr('name'); var range = $(this).rangechooser("getRange"); settings[attribute] = {min: range.min, max: range.max}; }); $.ajax({ type: 'POST', url: 'radios/crazymanager.php?action=save', data: JSON.stringify(settings) }) .done(crazyRadioManager.refreshCrazyList) .fail(function() { infobar.error(language.gettext('label_general_error')); }); return true; }, saveCrazyRadioSettings: function(e) { var fnarkle = new popup({ css: { width: 400, height: 300 }, title: language.gettext("button_createplaylist"), atmousepos: true, mousevent: e }); var mywin = fnarkle.create(); var d = $('
',{class: 'containerbox'}).appendTo(mywin); var e = $('
',{class: 'expand'}).appendTo(d); var i = $('',{class: 'enter', id: 'scplname', type: 'text', size: '200'}).appendTo(e); var b = $('