(function(){ var groups = { 'family_relations': { 'name': 'Family relations', 'problems': [ {'id': 'ancestor_2', 'name': 'ancestor/2'}, {'id': 'aunt_2', 'name': 'aunt/2'}, {'id': 'brother_2', 'name': 'brother/2'}, {'id': 'connected_3', 'name': 'connected/3'}, {'id': 'cousin_2', 'name': 'cousin/2'} ] }, 'lists': { 'name': 'Lists', 'problems': [ {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''} ] }, 'sorting': { 'name': 'Sorting', 'problems': [ {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''} ] }, 'other': { 'name': 'Other', 'problems': [ {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''} ] }, 'sets': { 'name': 'Sets', 'problems': [ {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''} ] }, 'trees': { 'name': 'Trees', 'problems': [ {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''} ] }, 'license_plates': { 'name': 'License plates', }, 'clp_fd': { 'name': 'CLP(FD', 'problems': [ {'id': 'gcd_3', 'name': 'gcd/3'}, {'id': 'magic_1', 'name': 'magic/1'}, {'id': 'puzzle_abc_3', 'name': 'puzzle_abc/3'}, {'id': 'puzzle_beth_1', 'name': 'puzzle_beth/1'}, {'id': 'puzzle_momson_2', 'name': 'puzzle_momson/2'}, {'id': 'puzzle_ratio_2', 'name': 'puzzle_ratio/2'}, {'id': 'tobase_3', 'name': 'tobase/3'} ] }, 'clp_r': { 'name': 'CLP(R)', 'problems': [ {'id': 'bounding_box_3', 'name': 'bounding_box/3'}, {'id': 'center_3', 'name': 'center/3'}, {'id': 'linear_opts_3', 'name': 'linear_opts/3'}, {'id': 'max_sum_2', 'name': 'max_sum/2'}, {'id': 'megabytes_2', 'name': 'megabytes/2'}, {'id': 'turkey_3', 'name': 'turkey/3'} ] }, 'dcg': { 'name': 'DCG', 'problems': [ {'id': 'ab_2', 'name': 'ab/2'}, {'id': 'digit_2', 'name': 'digit/2'}, {'id': 'expr_2', 'name': 'expr/2'}, {'id': 'expr_3', 'name': 'expr/3'}, {'id': 'flower_2', 'name': 'flower/2'} ] }, 'denotational_semantics': { 'name': 'Denotational semantics', 'problems': [ {'id': 'algol_3', 'name': 'algol/3'}, {'id': 'algol_for_3', 'name': 'algol_for/3'}, {'id': 'algol_if_3', 'name': 'algol_if/3'}, {'id': 'prog_8puzzle_2', 'name': 'prog_8puzzle/2'}, {'id': 'prog_8puzzle_3', 'name': 'prog_8puzzle/3'} ] }, 'old_exams': { 'name': 'Old exams', 'problems': [ {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''}, {'id': '', 'name': ''} ] } }; $("#submit").on('click', function () { var group = $('#problem_group').val(), problem = $('#problems').val(); if (!group) alert('Choose a problem group'); else if (!problem) alert('Choose a problem'); else { $.ajax({ 'type': 'POST', 'url': '/codeq/login', 'accepts': 'application/json', 'contentType': 'application/json; charset=UTF-8', 'data': JSON.stringify({ 'username': $('#username').val(), 'password': $('#password').val() }), 'processData': false, 'dataType': 'json', 'error': function loginErrorHandler(jqXHR, textStatus, errorThrown) { alert('Request for login failed: ' + (errorThrown || textStatus)); }, 'success': function loginSuccessHandler(data, textStatus, jqXHR) { if (data && (data.code === 0)) { window.location = 'prolog.html#sid=' + data.sid + '/grp=' + group + '/prb=' + problem; } else { alert('Login failed: code=' + data.code + ', reason=' + data.message); } } }); } }); $(document).ready(function () { var jqGroup = $('#problem_group'), jqProblems = $('#problems'), id, g, first_group, html = []; for (id in groups) { g = groups[id]; html.push('\n'); } jqGroup.html(html.join('')); first_group = html[1]; html = null; jqGroup.on('click', function () { var g = groups[jqGroup.val()], html = [], problems, i, p; if (g) { problems = g.problems; for (i = 0; i < problems.length; i++) { p = problems[i]; if (!p.id) continue; html.push('\n') } } jqProblems.html(html.join('')); }); jqGroup.val(first_group); }); })();