Application Delivery Management
Application Modernization & Connectivity
IT Operations Management
CyberRes
var globalData = new Object();
globalData.fields = new Object();
var FIELDTYPE_CBRADIO = "CBRADIO";
// store input fields
function registerInput( field, fieldType )
{
debugger;
if ( !globalData.fields[ field.getName() ] )
{ // initialize field storage
globalData.fields[ field.getName() ] = new Object();
globalData.fields[ field.getName() ].field = field;
globalData.fields[ field.getName() ].fieldType = fieldType;
globalData.fields[ field.getName() ].values = new Array();
}
if ( fieldType == FIELDTYPE_CBRADIO )
{
emulate_radio( field );
}
// remember current value
globalData.fields[ field.getName() ].values = field.getValues();
}
/**
* emulate radio button behavior with mv checkboxes
*/
function emulate_radio( field )
{
try
{ // get handle to saved field data
var storedVariable = globalData.fields[ field.getName() ];
if ( !storedVariable ) return;
var oldValues = storedVariable.values;
if ( !oldValues ) oldValues = new Array();
var newValues = field.getValues();
if ( !newValues ) newValues = new Array();
// nothing changed?
if ( oldValues.join( "#" ) == newValues.join( "#" ) ) return;
// re-calc new value from comparing old & new values
var modValues = [];
switch ( newValues.length )
{
case 0: // invalid: deselect - keep old
modValues = oldValues;
break;
case 1: // valid: keep new
modValues = newValues;
break;
default: // new CB was selected, unselect old values
for ( var i=0; i < newValues.length; i )
{
if ( !arrayContains( oldValues, newValues[i] ))
{ // keep changed value
modValues.push( newValues[i] );
break;
}
}
}
// save new selection
storedVariable.values = modValues;
// reselect cb values
storedVariable.field.select( modValues );
}
catch ( e )
{
alert( e )
}
}
// test if the string array contains the test variable
function arrayContains( varArray, varTest )
{
for ( var i=0; i < varArray.length; i )
{
if ( varArray[i] == varTest )
{
return ( true );
}
}
return ( false );
}