var CardHTML = ""; var show=1; var studentGetFirst = new Array(); var studentGetID = new Array(); var studentGetPreviousTeacher = new Array(); var teacherGetFirst = new Array(); var teacherGetID = new Array(); var teacherGetCode = new Array(); var quickCodes = []; var dataEntryTeachIDs=[]; var lockDataEntry=false; var lockDataBlur=false; var updateFade; var studlock = false; var startR = parseInt("00",16); var startG = parseInt("00",16); var startB = parseInt("FF",16); var endR = parseInt("FF",16); var endG = parseInt("AA",16); var endB = parseInt("AA",16); var curr; var updateInfo; var url = "https://" + window.location.host; var pathArray = window.location.pathname.split( '/' ); for ( i = 0; i < pathArray.length-1; i++ ){ url += pathArray[i]; url += "/"; } url += "cgi-bin/fetchInf.pl"; function row_highlight(row,check){ var myrow = getEle(row); var mycheck = getEle(check); if( mycheck.checked == true ){ myrow.bgColor = "#FFAAAA"; } else{ myrow.bgColor = "#FFFFFF"; } } function setUrl(address){ url = address; } function del_check(ele,num){ var anyDeleted=false; for( var x=0; x < num; x++ ){ var element = ele+x; if(getEle(element).checked==true){ anyDeleted=true; } } if( anyDeleted ){ return confirm("You have selected some data for deletion. Proceed?"); } } function timeAdd(prefix){ var reqplaymin = parseInt(getEle(prefix+"_ReqPlaymin").value,10); var reqplaysec = parseInt(getEle(prefix+"_ReqPlaysec").value,10); var chcplaymin = parseInt(getEle(prefix+"_ChcPlaymin").value,10); var chcplaysec = parseInt(getEle(prefix+"_ChcPlaysec").value,10); var totalMin = 0; var totalSec = 0; if( !isNaN(reqplaymin)) totalMin += reqplaymin; if( !isNaN(chcplaymin)) totalMin += chcplaymin; if( !isNaN(reqplaysec)) totalSec += reqplaysec; if( !isNaN(chcplaysec)) totalSec += chcplaysec; totalMin += parseInt(totalSec/60); totalSec = totalSec%60; getEle('totaltime').innerHTML = totalMin+"m "+totalSec+"s"; } function evaluateTeacherRegistration(){ document['DoRegister'].submit(); return false; var num = getEle('teachernum').value; var email = getEle('email').value; var password1 = getEle('password1').value; var password2 = getEle('password2').value; var last = getEle('lastname').value; if (!num.length || !email.length || !password1.length || !password2.length || !last.length){ alert("Please fill out all fields of the form!"); } if( password1 != password2 ){ alert("Passwords do not match!"); return; } document['DoRegister'].submit(); return false; } function changeCheck(checker,storeVal){ if( getEle(checker).checked == "true" || getEle(checker).checked == "on" ||getEle(checker).checked == 1){ getEle(storeVal).value = 1; } else{ getEle(storeVal).value = 0; } } function init(){ showCard(0); var studentListbox = getEle('addstudid'); var eventListbox = getEle('addevent'); if( studentListbox != null && eventListbox != null){ selStudNumEvt('addstudid','addevent'); } updateInfo = getEle('updateTable'); if( updateInfo != null ){ updateFade = 1000; window.setInterval("colorFade();",updateFade); } } function colorFade( ){ currR = parseInt(((endR-startR)/updateFade)+startR,10); currG = parseInt(((endG-startG)/updateFade)+startG,10); currB = parseInt(((endB-startB)/updateFade)+startB,10); curr = "#"; if( currR > 15 ){ curr = curr+currR.toString(16); } else { curr = curr+"0"+currR.toString(16); } if( currG > 15 ){ curr = curr+currG.toString(16); } else { curr = curr+"0"+currG.toString(16); } if( currB > 15 ){ curr = curr+currB.toString(16); } else { curr = curr+"0"+currB.toString(16); } updateInfo.style.backgroundColor=curr; updateFade--; } function showCard(bShow){ var card = getEle('cardspan'); if( ((bShow==1 && show==0) || (bShow==0 && show==1)) && getEle('cardspan')!=null){ var tmp = card.innerHTML; card.innerHTML = CardHTML; CardHTML = tmp; show = bShow; } } function changeRow(rowname, modifiedname,rowcolor){ row = document.getElementById(rowname); row.bgColor = rowcolor; document.getElementById(modifiedname).value='1'; } function deSelectStudentList(){ var box = getEle('addstudents'); for(i=0; i < box.options.length; i++){ if(box.options[i].selected == true){ box.options[i].selected = false; } } } function clearStudID(){ getEle('studidadding').value = ""; } function addEvents(element){ var box = getEle(element); for(i=0; i < box.options.length; i++){ box.options[i].selected=true; } return true; } function delEvents(element){ var check = confirm("You are removing this event for ALL students who are participating, if this is a group event. Are you sure you want to delete this card?"); if( check ){ var box = getEle(element); for(i=(box.options.length-1); i >=0; i--){ box.options[i].selected=false; box.options[i] = null; } return true; } return false; } function reselect(element, oldvalue){ var i=0; var box = getEle(element); for(i=(box.options.length-1);i>=0;i--){ if (box.options[i].value == oldvalue) { box.options[i].selected = true; } } } function addBlank(element){ var box = getEle(element); if(box != null && box.options[0].value !=""){ var optn = document.createElement("OPTION"); optn.text = ""; optn.value= ""; box.options.add(optn,0); } } //COMBINING POINTS function combining_loadPoints(studid,row,type){ var eventsel = "event"+type+"LIST_"+row; var levelinput = "class"+type+"LIST_"+row; var yearsel = "year"+type+"_"+row; var year = getEle(yearsel).options[getEle(yearsel).selectedIndex].value; var points = "points"+type+"_"+row; var arg = studid+'|'+year+"|"+ getEle(eventsel).options[getEle(eventsel).selectedIndex].value; loadXMLDocSync(url,'combiningPoints',arg, function(){ if(req.readyState == 4){ if(req.status == 200){ try{ var response = req.responseXML.documentElement; var i=0; clearList(getEle(levelinput)); while(response.getElementsByTagName('Event')[i] != null){ var optn = document.createElement("OPTION"); var node = response.getElementsByTagName('Event')[i]; var code = node.getElementsByTagName('Code')[0].firstChild.nodeValue; var level= node.getElementsByTagName('Level')[0].firstChild.nodeValue; var currPts = node.getElementsByTagName('Points')[0].firstChild.nodeValue; optn.text = code; optn.value = code; var j=0; while (node.getElementsByTagName('Level')[j] != null) { var optn = document.createElement("OPTION"); var level= node.getElementsByTagName('Level')[0].firstChild.nodeValue; optn.text = level; optn.value= level; getEle(levelinput).options.add(optn); j++; } // getEle(eventsel).options.add(optn); // getEle(levelinput).value=level; if(type=='SOLO'){ // getEle(points).value="5"; } getEle(points).value = currPts; i++; } } catch(err){ alert(err); } } } }); } function combining_loadEvents(studid,row,type){ var eventsel = "event"+type+"LIST_"+row; var levelinput = "class"+type+"LIST_"+row; var yearsel = "year"+type+"_"+row; if(getEle(yearsel).length==0) return; var year = getEle(yearsel).options[getEle(yearsel).selectedIndex].value; var arg = studid+'|'+year+'|'+type; loadXMLDocSync(url,'combiningEvents',arg, function(){ if(req.readyState == 4){ if(req.status == 200){ try{ clearList(getEle(eventsel)); clearList(getEle(levelinput)); var response = req.responseXML.documentElement; var i=0; while(response.getElementsByTagName('Event')[i] != null){ var optn = document.createElement("OPTION"); var node = response.getElementsByTagName('Event')[i]; var code = node.getElementsByTagName('Code')[0].firstChild.nodeValue; // var level= node.getElementsByTagName('Level')[0].firstChild.nodeValue; optn.text = code; optn.value = code; // var leveloptn = document.createElement("OPTION"); // leveloptn.text = level; // leveloptn.value= level; getEle(eventsel).options.add(optn); combining_loadPoints(studid,row,type); // getEle(levelinput).options.add(leveloptn); i++; } } catch(err){ alert(err); } } } }); } function timesForDayRoom(dayList,roomList,timeList){ //var //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var days = getEle(dayList); var rooms= getEle(roomList); var times= getEle(timeList); var arg = days.options[days.selectedIndex].value+'|'+rooms.options[rooms.selectedIndex].value; loadXMLDoc(url,'timesForDayRoom',arg, function () { if (req.readyState == 4) { if (req.status == 200) { try { clearList(times); response = req.responseXML.documentElement; var i=0; while (response.getElementsByTagName('Room')[i] != null) { var optn = document.createElement("OPTION"); var node = response.getElementsByTagName('Room')[i]; var id = node.getElementsByTagName('ID')[0].firstChild.nodeValue; var time = node.getElementsByTagName('TIME')[0].firstChild.nodeValue; optn.text = time; optn.value = id; times.options.add(optn); i++; } addBlank(timeList); // reselect("eventFilter",eventSelected); //eventFilterChange(); } catch(err){ alert(Error); } } } } ); } function roomsForDay(dayList,roomList){ //var //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var days = getEle(dayList); var rooms= getEle(roomList); var arg = days.options[days.selectedIndex].value; loadXMLDoc(url,'RoomsByDay',arg, function () { if (req.readyState == 4) { if (req.status == 200) { try { clearList(rooms); response = req.responseXML.documentElement; var i=0; while (response.getElementsByTagName('NumberNode')[i] != null) { var optn = document.createElement("OPTION"); var node = response.getElementsByTagName('NumberNode')[i]; var short = node.getElementsByTagName('NUM')[0].firstChild.nodeValue; optn.text = short; optn.value = short; rooms.options.add(optn); i++; } addBlank(roomList); // reselect("eventFilter",eventSelected); //eventFilterChange(); } catch(err){ alert(Error); } } } } ); } function dayFilterChange(){ //var //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var levelList = getEle("levelFilter"); var eventList = getEle("eventFilter"); var dayList = getEle("dayFilter"); var arg; var eventSelected; if(dayList !=null){ arg = dayList.options[dayList.selectedIndex].value; } if(eventList != null){ eventSelected = eventList.options[eventList.selectedIndex].value; } loadXMLDoc(url,'EventsByDay',arg, function () { if (req.readyState == 4) { if (req.status == 200) { try { clearList(eventList); response = req.responseXML.documentElement; var i=0; while (response.getElementsByTagName('EventNode')[i] != null) { var optn = document.createElement("OPTION"); var node = response.getElementsByTagName('EventNode')[i]; var short = node.getElementsByTagName('LONG')[0].firstChild.nodeValue; optn.text = short; optn.value = short; eventList.options.add(optn); i++; } addBlank("eventFilter"); reselect("eventFilter",eventSelected); eventFilterChange(); } catch(err){ alert(Error); } } } } ); } function eventFilterChange(){ //var //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var levelList = getEle("levelFilter"); var eventList = getEle("eventFilter"); var dayList = getEle("dayFilter"); var arg; var levelSelected; if(dayList !=null && eventList !=null){ arg = dayList.options[dayList.selectedIndex].value + '|' + eventList.options[eventList.selectedIndex].value; } if(levelList !=null){ levelSelected=levelList.options[levelList.selectedIndex].value; } loadXMLDoc(url,'LevelsByEventDay',arg, function () { if (req.readyState == 4) { if (req.status == 200) { try { clearList(levelList); response = req.responseXML.documentElement; var i=0; while (response.getElementsByTagName('LevelNode')[i] != null) { var optn = document.createElement("OPTION"); var node = response.getElementsByTagName('LevelNode')[i]; var short = node.getElementsByTagName('LEVEL')[0].firstChild.nodeValue; optn.text = short; optn.value = short; levelList.options.add(optn); i++; } addBlank("levelFilter"); levelSelected = document.getElementById('oldLevel').value; reselect("levelFilter",levelSelected); } catch(err){ alert(Error); } } } } ); } function addStudent(prefix){ var group = getEle(prefix+'_isgroup'); var box = getEle('addstudents'); var added = getEle('addedstudents'); var i=0; var cardlist = getEle(prefix+'_studid'); for(i=cardlist.options.length-1;i>=0;i--){ cardlist.options[i].selected=false; cardlist.options[i]=null; } for(i=0; i < box.options.length; i++){ if(box.options[i].selected == true){ var optn = document.createElement("OPTION"); optn.text=box.options[i].text; optn.value=box.options[i].value; added.options.add( optn ); } } for(i=0; i < added.options.length; i++){ var optn = document.createElement("OPTION"); optn.text=added.options[i].text; optn.value=added.options[i].value; cardlist.options.add(optn); } if( getEle('studidadding').value.length > 0 ){ ////url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = getEle('studidadding').value; arg = id + '|'+prefix; loadXMLDoc(url,'stdntByID',arg,processStudentInfo2); } else{ selectLast(prefix+'_studid'); eventCheck(prefix+'_events',prefix+'_studid'); } for(i=box.options.length-1;i>=0;i--){ if( box.options[i].selected == true ){ box.options[i].selected=false; box.options[i]=null; } } if( cardlist.options.length > 1 ){ getEle(prefix+'_isgroup').checked= true; getEle('event_warning').innerHTML="WARNING! This is now a GROUP event, because you have added MULTIPLE STUDENTS to this event card!"; } else { getEle(prefix+'_isgroup').checked= false; } modStudNum('addstudnum','addevt_studid'); } //Scheduler stuff function getActiveLevels(roomID,eventListID,levelListID,dayID){ //var //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var event = (getEle(eventListID))[getEle(eventListID).selectedIndex].value; var levelBox = getEle(levelListID); for(i=(levelBox.options.length-1); i >=0; i--){ levelBox.options[i].selected=false; levelBox.options[i] = null; } clearList(levelBox); var arg = roomID+'|'+event+'|'+levelListID+'|'+dayID; loadXMLDoc(url,'Scheduler_ActiveLevels',arg,setActiveLevels); } function setActiveLevels(){ if (req.readyState == 4) { if (req.status == 200) { try { var i=0; response = req.responseXML.documentElement; var length = response.getElementsByTagName('Length')[0].firstChild.data; var element = response.getElementsByTagName('Element')[0].firstChild.data; var box = getEle(element); while(response.getElementsByTagName('LevelNode')[i] !=null){ var item = response.getElementsByTagName('LevelNode')[i]; var optn = document.createElement("OPTION"); var ID = item.getElementsByTagName('ID')[0].firstChild.nodeValue; var Level = item.getElementsByTagName('LEVEL')[0].firstChild.nodeValue; var Long = item.getElementsByTagName('LONG')[0].firstChild.nodeValue; optn.text = Level; optn.value = Level; box.options.add(optn); i++; } } catch(err){ alert(Error); } } } } function addRoomEvent(event,level,teacher,roomID){ var eventVal = getEle(event); var levelVal = getEle(level); var teachVal = getEle(teacher); var arg = roomID+'|'+eventVal+'|'+levelVal+'|'+teachVal; loadXMLDoc(url,'Scheduler_AddRoomEvt',arg,testScheduler_AddRoomEvt); } function delRoomEvent(delType,rmEvtID,roomNum,roomDay){ loadXMLDoc(url,'Scheduler_DelRoomEvt',arg,testScheduler_DelRoomEvt); } function testScheduler_AddRoomEvt(){ } function testScheduler_DelRoomEvt(){ } //------------------------------------------- function addStudID( id, dest ){ var studid = getEle(id); if( studid.value.length > 0 ){ ////url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = studid.value; arg = id + '|'+dest; loadXMLDoc(url,'stdntByID',arg,updateDestination); } } function addStudIDSync( id, dest ){ var studid = getEle(id); if( studid.value.length > 0 ){ //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = studid.value; arg = id + '|'+dest; loadXMLDocSync(url,'stdntByID',arg,updateDestination); } } function delStudent(prefix){ studlock = true; var added = getEle('addedstudents'); var box = getEle('addstudents'); var i=0; var cardlist = getEle(prefix+'_studid'); for(i=cardlist.options.length-1;i>=0;i--){ cardlist.options[i].selected=false; cardlist.options[i]=null; } for(i=0; i < added.options.length; i++){ if(added.options[i].selected == true){ var optn = document.createElement("OPTION"); optn.text=added.options[i].text; optn.value=added.options[i].value; box.options.add( optn ); } } for(i=added.options.length-1;i>=0;i--){ if( added.options[i].selected == true ){ added.options[i].selected=false; added.options[i]=null; } } for(i=0; i < added.options.length; i++){ var optn = document.createElement("OPTION"); optn.text=added.options[i].text; optn.value=added.options[i].value; cardlist.options.add( optn ); } if( cardlist.options.length > 1 ){ getEle(prefix+'_isgroup').checked= true; } else { getEle(prefix+'_isgroup').checked= false; getEle('event_warning').innerHTML=""; } } function makeGroup(student, group){ var box = document.getElementById(student); var test = document.getElementById(group).checked; if(test){ box.size=box.length; box.multiple="yes"; } else { var tmp = box.selectedIndex; var i=0; for(i=0; i < box.size;i++){ box.options[i].selected="false"; } box.selectedIndex=tmp; box.options[tmp].selected="true"; box.size="1"; box.multiple=null; } } function modStudNum(studnum,studlist) { var list = document.getElementById(studlist); var spanname = document.getElementById(studnum); spanname.innerHTML = list.value; spanname.value = list.value; } function getXML(resp,element){ return resp.getElementsByTagName(element); } function loadXMLDocSync(url, func,argument, processFunc ) { if( window.XMLHttpRequest ) { req = new XMLHttpRequest(); req.open("POST",url,false); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send('func='+func+'&arg='+argument); processFunc(); } else if (window.ActiveXObject ) { req = new ActiveXObject("Microsoft.XMLHTTP"); if( req ) { // req.onreadystatechange = processFunc; req.open("POST",url,false); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send('func='+func+'&arg='+argument); processFunc(); } } } function loadXMLDoc(url, func,argument, processFunc ) { if( window.XMLHttpRequest ) { req = new XMLHttpRequest(); req.onreadystatechange = processFunc; req.open("POST",url,true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send('func='+func+'&arg='+argument); } else if (window.ActiveXObject ) { req = new ActiveXObject("Microsoft.XMLHTTP"); if( req ) { req.onreadystatechange = processFunc; req.open("POST",url,true); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send('func='+func+'&arg='+argument); } } } function getJudgingInfoByStudID( element ){ //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = element+"_id"; var arg = document.getElementById(id).value + '|' + element; if(lockDataEntry==true) return; lockDataBlur=true; loadXMLDoc(url,'registeredEvents',arg,processJudgingInfo); } function unlockDataEntry(){ if(lockDataBlur==true) return; lockDataEntry=false; } function getJudgingInfoByQuickCode( element ){ //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = element+"_id"; var arg = document.getElementById(id).value + '|' + "student"; if(lockDataEntry==true) return; lockDataBlur=true; loadXMLDoc(url,'registeredEventQuickCode',arg,processJudgingInfo); } function getTeacherInfoByID( element ){ //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = 'addid_'+element; var code = 'addcode_'+element; var lastName= 'last_'+element; var last = getEle('addidLst_'+element).value; if( last == "id") { arg = document.getElementById(id).value + '|' + last + '|' + element; loadXMLDoc(url,'teacherByID',arg,processTeacherInfo); } if( last == "code"){ arg = document.getElementById(code).value + '|' + last + '|' + element; loadXMLDoc(url,'teacherByID',arg,processTeacherInfo); } if( last == "last" ){ arg = document.getElementById(lastName).value + '|' + last + '|' + element; loadXMLDoc(url,'teacherByLastname',arg,processTeacherInfo); } } function getStudentInfoByID( element ){ //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = 'addid_'+element; var lastName= 'last_'+element; var last = getEle('addidLst_'+element).value; if( last == "id" ) { arg = document.getElementById(id).value + '|' + element; loadXMLDoc(url,'stdntByID',arg,processStudentInfo); } if( last == "last" ){ arg = document.getElementById(lastName).value + '|' + element; loadXMLDoc(url,'stdntByLastname',arg,processStudentInfo); } } function promoteTeachers(num){ var i=0; for(i=0; i < num; i++){ getTeacherInfoByID(i); } } function changeFoundStudent(element){ var num = getEle('first_'+element).selectedIndex; getEle('addid_'+element).value = studentGetID[element][num]; var TeachCode = studentGetFirst[element][num]; getEle('prevteach').innerHTML=studentGetPreviousTeacher[element][num]; var Element = element; if( TeachCode == "0" ){ getEle('first_'+Element).style.backgroundColor = "#FF5555"; getEle('last_'+Element).style.backgroundColor = "#FF5555"; } if( TeachCode == "1" ){ getEle('first_'+Element).style.backgroundColor = "#55FF55"; getEle('last_'+Element).style.backgroundColor = "#55FF55"; } if( TeachCode == "2"){ getEle('first_'+Element).style.backgroundColor = "#FFFF11"; getEle('last_'+Element).style.backgroundColor = "#FFFF11"; } } function changeFoundTeacher(element){ var num = getEle('first_'+element).selectedIndex; getEle('addid_'+element).value = teacherGetID[element][num]; // getEle('addcode_'+element).value = teacherGetCode[element][num]; var TeachCode = teacherGetFirst[element][num]; var Element = element; } function processStudentInfo() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var Element = response.getElementsByTagName('Element')[0].firstChild.data; var Last = response.getElementsByTagName('LastName')[0].firstChild.data; var ReqType = response.getElementsByTagName('Selected')[0].firstChild.data; var i; for(i=getEle('first_'+Element).options.length-1;i>=0;i--){ getEle('first_'+Element).options[i].selected=false; getEle('first_'+Element).options[i]=null; } i=0; studentGetFirst[Element] = new Array(); studentGetID[Element] = new Array(); studentGetPreviousTeacher[Element] = new Array(); while( response.getElementsByTagName('FirstName')[i] != null ){ var First = response.getElementsByTagName('FirstName')[i].firstChild.data; var TeachCode = response.getElementsByTagName('TeachCode')[i].firstChild.data; var ID = response.getElementsByTagName('ID')[i].firstChild.data; var prevTeach = response.getElementsByTagName('PreviousTeacher')[i].firstChild.data; studentGetFirst[Element][i]=TeachCode; studentGetID[Element][i]=ID; studentGetPreviousTeacher[Element][i]=prevTeach; var optn = document.createElement("OPTION"); optn.text=First; optn.value=First; getEle('first_'+Element).options.add(optn); i++; } getEle('addid_'+Element).value = response.getElementsByTagName('ID')[0].firstChild.data; getEle('last_'+Element).value = Last; getEle('prevteach').innerHTML=response.getElementsByTagName('PreviousTeacher')[0].firstChild.data; if( TeachCode == "0" ){ getEle('first_'+Element).style.backgroundColor = "#FF5555"; getEle('last_'+Element).style.backgroundColor = "#FF5555"; } if( TeachCode == "1" ){ getEle('first_'+Element).style.backgroundColor = "#55FF55"; getEle('last_'+Element).style.backgroundColor = "#55FF55"; } if( TeachCode == "2"){ getEle('first_'+Element).style.backgroundColor = "#FFFF11"; getEle('last_'+Element).style.backgroundColor = "#FFFF11"; } } } } function ratingCheck(){ var rating1Str = getEle('student_rating1').value; var rating2Str = getEle('student_rating2').value; var rating1 = parseFloat(rating1Str); var rating2 = parseFloat(rating2Str); if(rating1Str == "" || rating2Str == ""){ //do nothing. } else if( Math.abs(rating1-rating2)>1){ getEle('student_submit').disabled=true; } else { getEle('student_Total').innerHTML = Math.round((rating1+rating2)/2.0); getEle('student_submit').disabled=false; } } function quickCodeUpdate(){ var list = getEle("student_events"); var i=0; while (quickCodes[i][0]!=null){ if(quickCodes[i][1] == list.value){ getEle("quickcode_id").value=quickCodes[i][0]; getEle("teachid").innerHTML=quickCodes[i][2]; return; } i++; } } function processJudgingInfo(){ if( req.readyState == 4) { if( req.status == 200 ){ var subBtn = getEle('student_submit'); subBtn.disabled=true; response = req.responseXML.documentElement; var Element = response.getElementsByTagName('Element')[0].firstChild.data; var Last = response.getElementsByTagName('Last')[0].firstChild.data; var First = response.getElementsByTagName('First')[0].firstChild.data; var StudID = response.getElementsByTagName('StudID')[0].firstChild.data; getEle(Element+"_last").value=Last; getEle(Element+"_first").value=First; getEle(Element+"_id").value=StudID; var i=0; clearList(getEle(Element+"_events")); var test = response.getElementsByTagName('Events')[i]; quickCodes = []; dataEntryTeachIDs = []; while(response.getElementsByTagName('Events')[i] !=null){ var item = response.getElementsByTagName('Events')[i]; var optn = document.createElement("OPTION"); var event = item.childNodes[0].firstChild.nodeValue; var level = item.childNodes[1].firstChild.nodeValue; var card = item.childNodes[2].firstChild.nodeValue; var code = item.childNodes[3].firstChild.nodeValue; var teachid = item.childNodes[4].firstChild.nodeValue; optn.text=event+" --- "+level; optn.value=card; getEle(Element+'_events').options.add(optn); var x = [code,card,teachid]; quickCodes[i] = x; i++; } quickCodeUpdate(); lockDataEntry=true; lockDataBlur=false; } } } function processTeacherInfo() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var Element = response.getElementsByTagName('Element')[0].firstChild.data; var Last = response.getElementsByTagName('LastName')[0].firstChild.data; var ReqType = response.getElementsByTagName('Selected')[0].firstChild.data; var i; for(i=getEle('first_'+Element).options.length-1;i>=0;i--){ getEle('first_'+Element).options[i].selected=false; getEle('first_'+Element).options[i]=null; } i=0; teacherGetFirst[Element] = new Array(); teacherGetID[Element] = new Array(); teacherGetCode[Element] = new Array(); while( response.getElementsByTagName('FirstName')[i] != null ){ var First = response.getElementsByTagName('FirstName')[i].firstChild.data; var Code = response.getElementsByTagName('Code')[i].firstChild.data; var ID = response.getElementsByTagName('ID')[i].firstChild.data; teacherGetFirst[Element][i]=First; teacherGetID[Element][i]=ID; teacherGetCode[Element][i] = Code; var optn = document.createElement("OPTION"); optn.text=First; optn.value=First; getEle('first_'+Element).options.add(optn); i++; } getEle('addid_'+Element).value = response.getElementsByTagName('ID')[0].firstChild.data;; if (getEle('addcode_' + Element) != null) { getEle('addcode_' + Element).value = response.getElementsByTagName('Code')[0].firstChild.data; } getEle('last_'+Element).value = Last; } } } function processStudentInfo2() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var Last = response.getElementsByTagName('LastName')[0].firstChild.data; var First = response.getElementsByTagName('FirstName')[0].firstChild.data; var ID = response.getElementsByTagName('ID')[0].firstChild.data; var prefix = response.getElementsByTagName('Element')[0].firstChild.data; var box = getEle('addedstudents'); var added = getEle('addstudents'); var cardlist = getEle(prefix+'_studid'); var optn = document.createElement("OPTION"); var optn2 = document.createElement("OPTION"); optn.text= Last+", "+First; optn.value=ID; optn2.text= Last+", "+First; optn2.value=ID; var x; var found=0; for(x=0; x 1 ){ getEle(prefix+'_isgroup').checked= true; } else { getEle(prefix+'_isgroup').checked= false; } selectLast(prefix+'_studid'); eventCheck(prefix+'_events',prefix+'_studid'); } } } function updateDestination() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var Last = response.getElementsByTagName('LastName')[0].firstChild.data; var First = response.getElementsByTagName('FirstName')[0].firstChild.data; var ID = response.getElementsByTagName('ID')[0].firstChild.data; var element = response.getElementsByTagName('Element')[0].firstChild.data; var box = getEle(element); var optn = document.createElement("OPTION"); optn.text= Last+", "+First; optn.value=ID; box.options.add( optn ); } } } function selStudNumEvt(studid,event){ var studid = document.getElementById(studid).value; //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; arg = studid+'|'+event; showCard(0); var i; for(i=getEle(event).options.length-1;i>=0;i--){ getEle(event).options[i].selected=false; getEle(event).options[i]=null; } getEle(event).options.length=0; loadXMLDoc(url,'EventByStudID',arg,setStudNumEvt); } function siblingSelect(element){ var studid = document.getElementById('student').value; //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; arg = studid; if( studid == -1){ getEle('addbtn').disabled=true; getEle('addstudent').disabled=true; getEle('modbtn').disabled=true; } else{ getEle('addbtn').disabled=false; getEle('addstudent').disabled=false; getEle('modbtn').disabled=false; } loadXMLDoc(url,'SiblingsByStudID',arg,setSiblingList); } function clearList(element){ var i=0; for(i = element.options.length-1;i>=0;i--){ element.options[i].selected = false; element.options[i]=null; } } function clearSelectedList(element){ var i=0; for(i = element.options.length-1;i>=0;i--){ if(element.options[i].selected == true){ element.options[i].selected = false; element.options[i]=null; } } } function resetStudentBoxes(list1, list2){ var adding = getEle(list1); var added = getEle(list2); //move everything back into the "Adding" column to start fresh //later we will go back and factor this out so the backend supplies //an array of values and which box each goes in. var i; for(i=0; i < added.options.length;i++){ var optn = document.createElement("OPTION"); optn.text = added.options[i].text; optn.value = added.options[i].value; adding.options.add(optn); } clearList(added); for( i=0; i < adding.options.length; i++){ adding.options[i].selected=false; } } function deSelectList( element ){ var box = getEle(element); var i=0; for(i=0; i < box.options.length; i++){ box.options.selected=false; } } function setSiblingList(){ if( req.readyState == 4 ){ if(req.status == 200){ var student = getEle('addstudent'); response = req.responseXML.documentElement; resetStudentBoxes('addstudent','siblings'); var i=0; var x=0; var found; while( response.getElementsByTagName('ID')[i] != null){ found = 0; for(x=0; x < student.options.length; x++){ var test = response.getElementsByTagName('ID')[i].firstChild.data; if( test == student.options[x].value ){ student.options[x].selected = true; found = 1; } } if( found == 0 ){ studid.value=response.getElementsByTagName('ID')[i].firstChild.data; addStudIDSync('studid','siblings'); } i++; } addSibling('addstudent','siblings'); } } } function submitSiblings( element ){ var box = getEle(element); var i=0; for(i=0; i < box.options.length; i++){ box.options[i].selected = true; } return true; } function addSibling(from, to){ var boxFrom = getEle(from); var boxTo = getEle(to); var x=0; for(x=boxFrom.options.length-1; x>=0; x--){ if( boxFrom.options[x].selected == true ){ var optn = document.createElement("OPTION"); optn.text = boxFrom.options[x].text; optn.value= boxFrom.options[x].value; boxTo.options.add(optn); boxFrom.options[x] = null; } } } function setStudIDs(){ if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var IDlist = response.getElementsByTagName('IDs')[0].firstChild.data; var IDs = IDlist.split(","); var adding = getEle('addstudents'); var added = getEle('addedstudents'); var cardlist = getEle('addevt_studid'); //Clear out the old lists. clearList(cardlist); resetStudentBoxes('addstudents','addedstudents'); var i; var j; var k; var goFetch=new Array(); var fetch =0; for(i=0; i < IDs.length;i++){ k=0; for(j=0; j < adding.options.length; j++){ if( adding.options[j].value == IDs[i] ){ k=1; //remove from adding column and put in added. var optn = document.createElement("OPTION"); optn.text = adding.options[j].text; optn.value= adding.options[j].value; added.options.add(optn); adding.options[j].selected = true; } } if( k == 0 ) { goFetch[fetch] = IDs[i]; fetch++; } } for(i=0; i < adding.options.length; i++){ if(adding.options[i].selected == true){ var optn = document.createElement("OPTION"); optn.value = adding.options[i].value; optn.text = adding.options[i].text; cardlist.options.add(optn); } } clearSelectedList(adding); //Now that I have handled the main adding/swapping, fetch the other values from the backend. //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; for(i=0; i < fetch; i++){ var arg = goFetch[i]+'|oldevt'; loadXMLDocSync(url,'stdntByID',arg,processStudentInfo2); } } } } function setStudNumEvt() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var StudID = response.getElementsByTagName('StudID')[0].firstChild.data; var DataAvail = response.getElementsByTagName('DataAvail')[0].firstChild.data; var Element = response.getElementsByTagName('Element')[0].firstChild.data; var ListIDs = response.getElementsByTagName('EventListID')[0].firstChild.data; var ListNames = response.getElementsByTagName('EventListNames')[0].firstChild.data; if(getEle('addstudid').value != StudID) { return; } var IDS = ListIDs.split(","); var Names = ListNames.split(","); ListNames=null; ListIDs=null; var optn = document.createElement("OPTION"); optn.text = ""; optn.value= ""; getEle(Element).options.add(optn); getEle(Element).options[0].selected=true; var i=0; for(i=0; i < IDS.length;i++){ var optn = document.createElement("OPTION"); optn.text= Names[i]; optn.value=IDS[i]; getEle(Element).options.add(optn); } } } } function selStudEvt(studid,event,cardspan){ var studid = document.getElementById(studid).value; var regLinkID= document.getElementById(event).value; //url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; arg = studid+'|'+regLinkID+'|'+cardspan; loadXMLDoc(url,'GetEventCard',arg,setStudEvt); } function setGSI(element, lastclicked){ var element = getEle(element); element.value = lastclicked; } function setGSI2(element, lastclicked,row,col){ var element = getEle(element); element.value = lastclicked; var i; var test = getEle("addTd1_0"); for(i=1; i < 4; i++){ getEle("addTd"+i+"_"+row).bgColor="#FFFFFF"; } getEle("addTd"+col+"_"+row).bgColor="#FF0000"; } function selectLast(element){ var box = getEle(element); var x; for(x=0; x < box.options.length; x++){ box.options[x].selected=false; } if( box.options.length > 0){ box.options[box.options.length-1].selected = true; } } function eventCheck(event,studid){ ////url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var id = getEle(studid).value; var x; if( (getEle(studid).selectedIndex == -1) && (getEle(studid).options.length >0)){ getEle(studid).options[0].selected=true; id=getEle(studid).options[0].value; } else if(getEle(studid).options.length >0){ id=getEle(studid).options[getEle(studid).selectedIndex].value; for(x=0; x< getEle(studid).options.length; x++){ getEle(studid).options[x].selected = (getEle(studid).selectedIndex == x); } } var evt = getEle(event).value; arg = id+'|'+evt; loadXMLDoc(url,'GetEventHist',arg,setStudHist); } function addStudentOptions(studid){ //First we have to go through and verify correct info var hidden="<input type='hidden' name='hiddenField1' value='New Hidden Field'>"; } function levelCheck(level,birthdate,event,prefix){ level = getEle(level); event = getEle(event); var regexp1 = /^(SENIOR|SRC)/; var regexp2 = /Concerto/; var maxPts = 5; var levelName = level[level.selectedIndex].innerHTML; var eventName = event[event.selectedIndex].innerHTML; if( (levelName.search(regexp1) !=-1) &&(eventName.search(regexp2) != -1) ){ maxPts=8; } var priorPoints = getEle('goldcup').innerHTML; /* if(!isNaN(priorPoints)){ maxPts += parseInt(priorPoints); } getEle('maxgoldcup').innerHTML = maxPts+" pts
"; */ var levelReg = /^(PRE|PRI$|PRI 1$)/; if(levelName.search(levelReg) != -1){ getEle('measuresText').innerHTML = "at least 12 measures"; } else{ getEle('measuresText').innerHTML = "at least 16 measures"; } return; /* if( getEle(prefix+'_isgroup').checked == true ){ alert("This is a group event for Pre-Primary. Please update the birthdates of all students involved through the student menus."); return; } if(level.value.search(regexp) != -1 ){ birthdate.disabled=false; } else{ birthdate.disabled=true; } */ } function notifyGrp() { var isGrp = getEle('oldevt_isgroup').checked; if( isGrp == "on" || isGrp==1 || getEle('oldevt_grp').value != 0){ return confirm("Warning! You are modifying a group event. If you remove students from a group event, the cards for those students will be erased. Any changes you make to a group event will be reflected in the cards of all participants. Proceed?"); } return true; } function checkNumParticipants(){ var eventID = getEle('addevt_events').value; var event = getEventLongByID(eventID); var numParticipants=0; if(event.search(/SOLO/i)>=0){ numParticipants=1; } else if(event.search(/DUET/i)>=0){ numParticipants=2; } else if(event.search(/(TRIO\s|TRIO$)/i)>=0){ numParticipants=3; } else if(event.search(/QUARTET/i)>=0){ numParticipants=4; } else if(event.search(/QUINTET/i)>=0){ numParticipants=5; } return numParticipants; } function getEventLongByID( id ){ ////url = 'http://www.novaspfestival.org/cgi-bin/fetchInf.pl'; var arg = id; var eventLong = ""; loadXMLDocSync(url,'EventLongByID',arg, function(){ if (req.readyState == 4) { if (req.status == 200) { response = req.responseXML.documentElement; var test = response.getElementsByTagName('EventLong'); eventLong = response.getElementsByTagName('EventLong')[0].firstChild.data; } } } ); return eventLong; } function checkCardNew() { var regexp = /^PRE/; var retVal = true; var numParticipants = checkNumParticipants(); var errMesg=""; if((numParticipants == 0 && getEle("addedstudents").options.length>0)|| (numParticipants == getEle("addedstudents").options.length) ) { retVal = true; } else if(numParticipants == 0 && getEle("addedstudents").options.length == 0){ retVal = false; errMesg = errMesg + "You must add at least one student to this event." } else{ retVal = false; errMesg = errMesg+"This event requires "+numParticipants+" student(s)."; } var reqplaymin = parseInt($("#addevt_ReqPlaymin").val()); var reqplaysec = parseInt($("#addevt_ReqPlaysec").val()); var chcplaymin = parseInt($("#addevt_ChcPlaymin").val()); var chcplaysec = parseInt($("#addevt_ChcPlaysec").val()); if(chcplaysec+reqplaysec+chcplaymin*60+reqplaymin*60 > 480){ errMesg = errMesg+"Total repertoire is over 8 minutes long. Please change literature."; retVal = false; } if( retVal == false){ alert(errMesg); } return retVal; if( getEle('addevt_events').value == "Piano Solo"){ if( getEle('addevt_ChcPiecenat').value == "None or Not Applicable" ){ alert("Nationality is required for Choice Piano Solo events."); return false; } } regexp = /(Solo|Duet|Trio|Quartet|Ensemble)/; if( getEle('addevt_level').search(regexp) != -1 ){ /* var DateList = getEle('addevt_birthdate').value.split("/"); if( DateList.length != 3 ){ return dateAlert(); } var month = DateList[0]; var day = DateList[1]; var year = DateList[2]; month = parseInt(month); day = parseInt(day); year = parseInt(year); if(month == NaN || day == NaN || year == NaN){ return dateAlert(); } if( month > 12 || month < 1 || day > 31 || day < 1 || year < 1900 || year > 2150){ return dateAlert(); } */ } return true; } function dateAlert(){ alert("Birth Date must be in MM/DD/YYYY form"); return false; } function checkCardOld() { // addEvents('oldevt_studid'); if( getEle('oldevt_events').value == "Piano Solo"){ if( getEle('oldevt_ChcPiecenat') == "None or Not Applicable" ){ alert("Nationality is required for Choice Piano Solo events."); return false; } } if( getEle('oldevt_level').search(regexp) != -1 ){ /* var DateList = getEle('birthdate').value.split("/"); // if( DateList.length != 3 ){ // return dateAlert(); // } var month = DateList[0]; var day = DateList[1]; var year = DateList[2]; month = parseInt(month); day = parseInt(day); year = parseInt(year); if(month == NaN || day == NaN || year == NaN){ return dateAlert(); } if( month > 12 || month < 1 || day > 31 || day < 1 || year < 1900 || year > 2150){ return dateAlert(); }*/ } return notifyGrp(); } function setStudHist() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var x=0; var Level = response.getElementsByTagName('Level')[0].firstChild.data; var GoldCup = response.getElementsByTagName('GoldCup')[0].firstChild.data; var Rating = response.getElementsByTagName('Rating')[0].firstChild.data; var Year = response.getElementsByTagName('Year')[0].firstChild.data; var JunAdlt = response.getElementsByTagName('JunAdlt')[0].firstChild.data; var BirthDate = response.getElementsByTagName('BirthDate')[0].firstChild.data; getEle('lastyear').innerHTML=Year; getEle('lastrating').innerHTML=Rating; getEle('lastclass').innerHTML=Level; getEle('goldcup').innerHTML=GoldCup; getEle('junadlt').innerHTML=JunAdlt; getEle('birthdate').innerHTML=BirthDate; levelCheck('addevt_level','birthdate','addevt_events',''); } } } function setStudEvt() { if( req.readyState == 4 ) { if(req.status == 200 ) { response = req.responseXML.documentElement; var StudID = response.getElementsByTagName('StudID')[0].firstChild.data; var EventID = response.getElementsByTagName('EventID')[0].firstChild.data; var LevelID = response.getElementsByTagName('LevelID')[0].firstChild.data; var GroupID = response.getElementsByTagName('GroupID')[0].firstChild.data; var PrefID = response.getElementsByTagName('PrefID')[0].firstChild.data; var Element = response.getElementsByTagName('Element')[0].firstChild.data; var TwelveMeasures = response.getElementsByTagName('TwelveMeasures')[0].firstChild.data; var ClaimGold=response.getElementsByTagName('ClaimGold')[0].firstChild.data; var Accompanist=response.getElementsByTagName('Accompanist')[0].firstChild.data; var Combining=response.getElementsByTagName('Combining')[0].firstChild.data; var ReqID = response.getElementsByTagName('ReqID')[0].firstChild.data; var ReqPiece= response.getElementsByTagName('ReqPiece')[0].firstChild.data; var ReqPieceComp= response.getElementsByTagName('ReqPieceComp')[0].firstChild.data; var ReqPMin = response.getElementsByTagName('ReqPMin')[0].firstChild.data; var ReqPSec = response.getElementsByTagName('ReqPSec')[0].firstChild.data; var ChcID = response.getElementsByTagName('ChcID')[0].firstChild.data; var ChcPiece= response.getElementsByTagName('ChcPiece')[0].firstChild.data; var ChcPieceComp= response.getElementsByTagName('ChcPieceComp')[0].firstChild.data; var ChcPieceNat = response.getElementsByTagName('ChcPieceNat')[0].firstChild.data; var ChcPMin = response.getElementsByTagName('ChcPMin')[0].firstChild.data; var ChcPSec = response.getElementsByTagName('ChcPSec')[0].firstChild.data; var BirthDate = response.getElementsByTagName('BirthDate')[0].firstChild.data; var JunAdlt = response.getElementsByTagName('JunAdlt')[0].firstChild.data; var TeachLast = response.getElementsByTagName('TeachLast')[0].firstChild.data; var TeachFirst= response.getElementsByTagName('TeachFirst')[0].firstChild.data; var TeachClub = response.getElementsByTagName('CLUB')[0].firstChild.data; showCard(1); getEle('teachname').innerHTML=TeachFirst+" "+TeachLast; getEle('teachclub').innerHTML=TeachClub; getEle('addstudnum').innerHTML=StudID; // selectBox( getEle('oldevt_studid'), StudID ); getEle('junadlt').innerHTML=JunAdlt; // selectBox( getEle('addevt_events'), EventID); // selectBox( getEle('addevt_level'), LevelID); // selectBox( getEle('addevt_prefs'), PrefID ); getEle('addevt_grp').value = GroupID; getEle('addevt_ReqPiece').value=ReqPiece; getEle('addevt_ReqPiececomposer').value=ReqPiece; getEle('addevt_ReqPiececomposer').value= ReqPieceComp; getEle('addevt_ReqPlaymin').value = ReqPMin; getEle('addevt_ReqPlaysec').value = ReqPSec; getEle('addevt_ChcPiece').value=ChcPiece; getEle('addevt_ChcPiececomposer').value=ChcPiece; getEle('addevt_ChcPiececomposer').value= ChcPieceComp; getEle('addevt_ChcPlaymin').value = ChcPMin; getEle('addevt_ChcPlaysec').value = ChcPSec; getEle('addevt_reqrow').value = ReqID; getEle('addevt_chcrow').value = ChcID; getEle('birthdate').value = BirthDate; getEle('measures').checked=false; if( TwelveMeasures!=0){ getEle('measures').checked=true; } // getEle('claimgold').checked=false; // if( ClaimGold !=0 ){ // getEle('claimgold').checked=true; // } // getEle('combining').checked=false; // if( Combining !=0 ){ // getEle('combining').checked=true; // } var k=0; for(k=0; k