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";
}
}