var additionalTableCheckOK = true; var fieldNames = new Array(); var fieldAlerts = new Array(); var fieldData = new Array (); var separator; var tableErrMsgElementID = "errMsgTable"; var commonErrMsgElementID = "errMsgCommon" // creates multidimensional arays function initFieldData(){ for (var i = 0; i< fieldNames.length; i++){ fieldData[i] = new Array(); } separator = getValue("Separator_"); if (separator == "") {separator = "~~~"}; } var tArray = new Array(); var selectedRow = -1; var s = ''; function changeCommentsVisibility(name) { elname="Comments"+name; //alert ( document.getElementById[elname]); // if (document.getElementById[elname] == null ) {return false;} vsb=getCommentsVisibility(name); if (name=="SecondParent"){ if (vsb == "Y"){ vsb = "N"; } else { vsb = "Y"; }; } if (name=="EnteringAim" || name=="EnteringAim2"){ if (vsb == "0"){ vsb = "Y"; } else { vsb = "N"; }; } if (name=="WorkActivityType"){ if (vsb == "0"){ vsb = "N"; } else { vsb = "Y"; }; } elExist = document.getElementById(elname); if(elExist != null) { if (vsb == "0" || vsb == "3" || vsb == "4" || vsb == "Y"){ document.getElementById(elname).style.visibility="visible"; document.getElementById(elname).style.display=""; } else if (vsb == "1" || vsb == "2" || vsb == "N"){ document.getElementById(elname).style.visibility="hidden"; document.getElementById(elname).style.display="none"; } } } // Add by Moiseenko Artem 11/03/2005 function changefieldsVisibility(name,status) { if (document.all[name] == null ) return; if (status == "Y"){ document.all[name].style.visibility="visible"; document.all[name].style.display=""; } else if (status == "N"){ document.all[name].style.visibility="hidden"; document.all[name].style.display="none"; } } function getCommentsVisibility(fieldName) { var field = document.forms[currentFormName].elements[fieldName]; if (field == null) { return (null) }; var fieldType= field.type; if (fieldType == "select-one") { return (field.options[field.options.selectedIndex].value ); } if (fieldType == "radio" || fieldType == "checkbox") { if (field.checked == true ) { return (field.COMMENTSVISIBLE); } else { if (field.COMMENTSVISIBLE == "Y" ) { return "N"; } else if (field.COMMENTSVISIBLE == "N" ) { return "Y"; } } } if (String(fieldType) == "undefined") { //multiple radio or checkbox (i hope :) for( var i=0; i< field.length; i++) { if (field[i].checked == true ) { return (field[i].value); } } return(""); } return; } function addUser(){ var num = fieldData[0].length; setDataRow( num); } function replaceUser(){ if(selectedRow == -1) return; setDataRow( selectedRow ); } function setDataRow( num ) { if (!additionalTableCheckOK) { return }; var tt = new Array(); for (var i = 0; i< fieldNames.length; i++) { tt[i] = getValue(fieldNames[i]+"_"); if ( tt[i] == "" && fieldAlerts[i] != "" ) { customAlert (tableErrMsgElementID, fieldAlerts[i]); return; } } for (var i = 0; i< fieldNames.length; i++) { fieldData[i][num] = tt[i] } drawTable(); clearFields(); } function removeUser(){ if(selectedRow == -1) return; var userCount = fieldData[0].length; for (var i = 0; i< fieldNames.length; i++) { fieldData[i] = fieldData[i].slice(0,selectedRow).concat( fieldData[i].slice(selectedRow+1,userCount) ); } drawTable(); clearFields(); } function drawTable(){ customAlert (tableErrMsgElementID, ''); s = composeTableString(); document.all['addInfo'].innerHTML = s; if (fieldData[0].length == 0) { document.all['removeUserButton'].style.visibility = "hidden"; document.all['replaceUserButton'].style.visibility = "hidden"; } else { document.all['removeUserButton'].style.visibility = "visible"; document.all['replaceUserButton'].style.visibility = "visible"; } selectedRow = -1; composeResFields(); } function composeResFields(){ for (var i = 0; i< fieldNames.length; i++) { setValue(fieldNames[i], fieldData[i].join(separator) ); } } function showUser(n){ selectedRow = n; document.all['userNumIn'+String(n)].checked = true; for (var i = 0; i< fieldNames.length; i++) { setValue(fieldNames[i]+"_", fieldData[i][n]); } } function clearFields() { for (var i = 0; i< fieldNames.length; i++) { setValue(fieldNames[i]+"_", ""); } } function highlightRow (x) { x.style.background = highlitedRowBG; } function unHighlightRow (x) { x.style.background = unHighlitedRowBG; } // initializes data arrays using field values, which contains array members sepsrated by value of the field "Separator_" function initialize(){ if (getValue(fieldNames[0]) != "") { for (var i = 0; i< fieldNames.length; i++) { fieldData[i] = getValue(fieldNames[i]).split(separator); setValue(fieldNames[i]+"_", ""); } }; drawTable(); } function setValue(fieldName, newValue){ var field = document.forms[currentFormName].elements[fieldName]; if (field == null) { return }; var fieldType= field.type; if (fieldType == "text" || fieldType == "textarea" || fieldType == "hidden"){ field.value = newValue; return; } if (fieldType == "select-one") { for (var i =0; i< field.options.length; i++) { if (field.options[i].value == newValue) { field.options.selectedIndex=i; // this line has bug changeCommentsVisibility(fieldName); //^^^^^^^^^^^^^ return; } } changeCommentsVisibility(fieldName); return; } if (fieldType == "radio" || fieldType == "checkbox") { if (field.value == newValue ) { field.checked = true; } else { field.checked = false; } changeCommentsVisibility(fieldName); return ; } if (String(fieldType) == "undefined") { //multiple radio or checkbox (i hope :) for( var i=0; i< field.length; i++) { if (field[i].value == newValue ) { field[i].checked = true; } else { field[i].checked = false; } } changeCommentsVisibility(fieldName); return; } return; } function getValue(fieldName) { var field = document.forms[currentFormName].elements[fieldName]; if (field == null) { return ("") }; var fieldType= field.type; if (fieldType == "text" || fieldType == "textarea" || fieldType == "hidden"){ return (field.value); } if (fieldType == "select-one") { return (field.options[field.options.selectedIndex].value ); } if (fieldType == "radio" || fieldType == "checkbox") { if (field.checked == true ) { return (field.value); } return ""; } if (String(fieldType) == "undefined") { //multiple radio or checkbox (i hope :) for( var i=0; i< field.length; i++) { if (field[i].checked == true ) { return (field[i].value); } } return(""); } return; } var oblFieldNames = new Array; // obligatory field names array var oblFieldRE = new Array; // regular expressions var oblFieldAlerts = new Array; // corresponding alerts function checkOblFields(){ var fv; for (var i=0; i< oblFieldNames.length; i++){ fv = getValue(oblFieldNames[i]); if (oblFieldRE[i].exec(fv) != fv ){ customAlert(commonErrMsgElementID, oblFieldAlerts[i]); return false; } else { customAlert(commonErrMsgElementID, ''); } } return true; } function openPopup(url, width, height){ var w = window.open (url, 'newWin', 'resizable=yes,scrollbars=auto,status=yes,width='+String(width)+',height='+String(height)); w.focus(); } function writeDateOptions(n) { document.write(' '); for (var d=1; d"+temporaryDayString+""); } } function customAlert(elementID, msg) { if (document.all[elementID] == null) { if (msg != '') { alert (msg); } } else { document.all[elementID].innerHTML=msg; } } function setElementVisible(itemName, itemValueList, elementID) { var valueFound = false; var element = document.getElementById(elementID); if (element == null) return ; for (var i = 0; i < itemValueList.length; i++){ if (getValue(itemName) == itemValueList[i] ) { valueFound = true; i = itemValueList.length; } } if (valueFound) { element.style.visibility="visible"; element.style.display=""; } else { element.style.visibility="hidden" element.style.display="none"; } }