var mas = mas || new Object(); mas.calendar = new Object(); mas.calendar.private = new Object(); mas.calendar.private.curriculum_groups_file = new Array(); mas.calendar.private.curriculum_classes_file = new Array(); mas.calendar.private.groups_url_sources = null; mas.calendar.curriculums = null; mas.calendar.groups = null; mas.calendar.classes = null; mas.calendar.output_url = null; mas.calendar.qrcode = null; mas.calendar.url_sources = null; mas.calendar.private.add_curriculum = function (id, fullname, groups, classes) { var entry; if (fullname == "") { return; } entry = ""; mas.calendar.curriculums.innerHTML = entry + mas.calendar.curriculums.innerHTML; mas.calendar.private.curriculum_groups_file[id] = groups; mas.calendar.private.curriculum_classes_file[id] = classes; }; mas.calendar.private.add_group = function (data) { var entry, i, url_sources; if (data[0] == "") { return; } url_sources = new Array(); for (i = 3; i < data.length; i += 2) { url_sources.push(data[i]); } mas.calendar.private.groups_url_sources[data[1]] = url_sources; entry = ""; mas.calendar.groups.innerHTML = entry + mas.calendar.groups.innerHTML; }; mas.calendar.private.add_class = function (fullname, id) { var entry; if (fullname == "") { return; } entry = ( "" + id + "" + fullname + "" ); mas.calendar.classes.innerHTML = entry + mas.calendar.classes.innerHTML; }; mas.calendar.private.load_curriculums = function () { var lines, i, val; lines = this.responseText.split('\n'); for (i = lines.length; i --> 0;) { val = lines[i].split("::"); mas.calendar.private.add_curriculum(i, val[0], val[1], val[2]); } mas.calendar.select_curriculum(); }; mas.calendar.private.load_groups = function () { var lines, i, j, val; mas.calendar.groups.innerHTML = ""; mas.calendar.private.groups_url_sources = new Array(); lines = this.responseText.split('\n'); for (i = lines.length; i --> 0;) { val = lines[i].split("::"); mas.calendar.private.add_group(val); } mas.calendar.select_group(); }; mas.calendar.private.load_classes = function () { var lines, i, val; mas.calendar.classes.innerHTML = ""; lines = this.responseText.split('\n'); for (i = lines.length; i --> 0;) { val = lines[i].split("::"); mas.calendar.private.add_class(val[0], val[2]); } mas.calendar.generate_url(); }; mas.calendar.private.get_file = function (file, fun) { var req req = new XMLHttpRequest(); req.onload = fun; req.open("get", file, true); req.send(); }; mas.calendar.select_curriculum = function () { var fullname; fullname = mas.calendar.curriculums.value; mas.calendar.private.get_file ( ("data/" + mas.calendar.private.curriculum_groups_file[fullname]), mas.calendar.private.load_groups ); mas.calendar.private.get_file ( ("data/" + mas.calendar.private.curriculum_classes_file[fullname]), mas.calendar.private.load_classes ); }; mas.calendar.select_group = function () { var data, i, result; mas.calendar.url_sources.innerHTML = ""; data = mas.calendar.private.groups_url_sources[mas.calendar.groups.value]; result = ""; for (i = 0; i < data.length; ++i) { result += "
  • " + data[i] + "
  • "; } mas.calendar.url_sources.innerHTML = result; }; mas.calendar.populate = function () { mas.calendar.curriculums = document.getElementById("curriculums"); mas.calendar.groups = document.getElementById("groups"); mas.calendar.classes = document.getElementById("classes"); mas.calendar.output_url = document.getElementById("output_url"); mas.calendar.qrcode = document.getElementById("qrcode"); mas.calendar.url_sources = document.getElementById("url_sources"); mas.calendar.private.get_file ( "data/CURRICULUMS", mas.calendar.private.load_curriculums ); }; mas.calendar.generate_url = function () { var url, loc, i, classes; url = document.location.href.toString(); loc = url.substring(0, (url.lastIndexOf("/") + 1)); loc = loc + "get.php?g=" + mas.calendar.groups.value + "&m=unknown,"; classes = document.getElementsByName("classes"); for (i = classes.length; i --> 0;) { if (classes[i].checked) { loc = loc + classes[i].value + ","; } } loc = loc.substring(0, (loc.length - 1)); mas.calendar.qrcode.innerHTML= ""; mas.calendar.output_url.setAttribute("value", loc); jQuery('#qrcode').qrcode(loc); };