var set = new NameGeneratorSet(); var categories = {}; var backgrounds = {}; var previous = null; var generator = null; var big = true; var gender = null; var format = null; function selectGenerator(id) { var gen = set.getGenerator(id); var element = $('div.item:hover'); var index = element.index(); var parent = element.parent(); element.detach(); element = element.clone(); if(index > 0) { element.insertAfter(parent.children().eq(index - 1)); } else { parent.prepend(element); } if(gen != null) { setGenerator(id, gen); } else { setMode(0); $.get('/d/' + id, {}, function(data) { var fullId = data.catId + '/' + data.id; setGenerator(fullId, set.addGenerator(fullId, data, true)); }); } } function setMode(mode) { $('#loading-screen').hide(); $('#generator-screen').hide(); switch(mode) { case 0: $('#loading-screen').show(); break; case 1: $('#generator-screen').show(); break; } } function setGenerator(id, gen) { setCookie('last_generator', id, 14); $('#gi-header').html(gen.name); $('#gi-genders').html(''); $('#gi-formats').html(''); if(gen.genders.length > 1) { for(var i = 0; i < gen.genders.length; ++i) { var className = ''; if(i == 0) { className = "selected"; } $('#gi-genders').append($(''+gen.genders[i]+'')); } } var prev = null; var keys = Object.keys(gen.formats); if(keys.length > 1) { for(var i = 0; i < keys.length; ++i) { var className = ''; if(i == 0) { className = "selected"; } $('#gi-formats').append($(''+gen.formats[keys[i]].name+'')); } } setMode(1); selectBackground(id); gender = gen.genders[0]; format = keys[i]; generator = gen; $('#gi-button').focus(); if(previous != id) { generate(); } previous = id; } function selectBackground(id) { if(backgrounds.hasOwnProperty(id)) { setBackground(backgrounds[id]); } else { $.get('/b/' + id, {}, function(data) { backgrounds[id] = data; setBackground(backgrounds[id]); }); } } function setBackground(fileName) { $('#generator-style').html('body { background-image: url(' + fileName + '); }'); } function hideFooter() { $('.ngn4-footer').hide(); setCookie('hide_footer', 'yes', 60); } function generate() { if(generator != null) { $('#gi-name').html(generator.generate(format, gender)); } } function updateLists() { $('#menu-items').html("Loading..."); $.get('/l/generators', function(data, err) { if(!err) { setList(data); } }); } function setList(data) { // 1. Categories var keys = Object.keys(data.categories); var items = {}; $('#menu-items').html(''); for(var i = 0; i < keys.length; ++i) { var key = keys[i]; var item = $('