function isV1( )
{
if( window._pglV2 )
return false;
return true;
}
function isV2( )
{
if( window._pglV2 )
return true;
return false;
}
// collapse rows for two tables
function toggleCollapsableRows(tableId, cellId, startRow, numRows)
{
var shouldContinue = toggleCollapsableRowsSingleTable(tableId + "_syncslave_data", startRow, numRows, cellId );
if( !shouldContinue )
{
return;
}
shouldContinue = toggleCollapsableRowsSingleTable(tableId + "_syncmaster_data", startRow, numRows );
if( !shouldContinue )
{
return;
}
var imgId = tableId + "." + startRow + ".TOGGLE_IMG";
var img = document.getElementById( imgId );
if( img != null )
{
var src = img.src;
var lastSlash = src.lastIndexOf( "/" );
var path = src.substring( 0, lastSlash );
var imgName = src.substring( lastSlash+1 );
if( imgName.indexOf( "minus" ) != -1 )
{
img.src = path + "/plus_norgie.gif";
}
else
{
img.src = path + "/minus_norgie.gif";
}
}
else
{
//alert( "toggle img is null" );
}
onResize();
}
// MAB: collapse a single table
function toggleCollapsableRowsSingleTable(tableId, startRow, numRows, cellId)
{
var targetTable = document.getElementById( tableId );
if( targetTable == null )
{
//alert( "toggleRows targetTable '" + tableId + "' is null" );
return false;
}
startRow = startRow+1; // leave this row
var endRow = startRow+numRows;
var toggledAny = false;
var didCollapse = false;
for( i=startRow; i < endRow; i++ )
{
if( i >= targetTable.rows.length )
{
break;
}
var row = targetTable.rows[i];
if( row.collapseLock != null && row.collapseLock != startRow )
{
// for nested collapsable field groups, don't touch rows already collapsed by someone else
//alert( "lock held by " + row.collapseLock +": exiting" );
continue;
}
//alert( "row.collapseLock = " + row.collapseLock );
if (row.style.display == "none") // currently collapsed, do expand
{
row.style.display = "";
row.style.visibility = "visible";
row.collapseLock = null; // clear lock
didCollapse = false;
}
else // currently expanded, do collapse
{
row.style.display = "none";
row.collapseLock = startRow; // set lock
didCollapse = true;
}
toggledAny = true;
}
if( toggledAny )
{
for( i=0; i < targetTable.rows.length; i++ )
{
var row = targetTable.rows[i];
var firstCell = row.cells[0];
if( i==(targetTable.rows.length-1) && firstCell.innerHTML == ' ' && row.cells.length == 1 )
{
// mab: ie is adding an extra row is showing up -- it's not in the view->source!
targetTable.deleteRow(i);
// note: this will get called every time because ie doesn't really delete the row!
}
}
var collapsedLastRow = (targetTable.rows.length == endRow);
if( collapsedLastRow && cellId != null )
{
var lastDot = cellId.lastIndexOf( "." );
if( lastDot != -1 )
{
var parentCellId = cellId.substring( 0, lastDot );
var adjSize = didCollapse ? 0 - numRows : numRows;
fixRowSpanAfterToggleCollapse( parentCellId, adjSize );
}
}
}
return toggledAny;
}
function fixRowSpanAfterToggleCollapse( cellId, adjSize ) // adjSize can be pos (expand) or neg (collapse)
{
while( cellId != null && cellId.length > 0 )
{
var cell = document.getElementById( cellId + "_td" );
if( cell != null )
{
cell.rowSpan += adjSize;
}
var lastDot = cellId.lastIndexOf( "." );
cellId = (lastDot != -1) ? cellId.substring( 0, lastDot ) : null;
}
}
// dummy method, will be overriden
function autoCollapseRows()
{
}
function onTab( tabId, containerId )
{
var alertPrefix = "onTab(): ";
var form = document.forms['form' ];
if( form != null )
{
var selectedStep = containerId + "_SELECTED_STEP";
var selectedStepId = containerId + "_STEP_ID";
for( i=0; i < form.elements.length; i++ )
{
var input = form.elements[i];
if( input.name == selectedStep )
{
input.value = tabId;
}
else if( input.name == selectedStepId )
{
input.value = tabId;
}
else if( input.name == 'BUTTON_ID' )
{
input.value = 'SYS_TAB';
}
else if( input.name == 'START_COUNT' )
{
input.value = 0;
}
else if( input.name == 'SYS_ID' )
{
if( form.PAGE_SYS_ID != null )
{
input.value = form.PAGE_SYS_ID.value;
}
}
}
form.submit();
}
else
{
alertPrefix + alert( 'no form!' );
}
}
// Page Group js
function onLoad()
{
onLoadSuper();
scrollHelper();
autoCollapseRows(); // may be empty (default impl)
}
function onResize()
{
onResizeSuper();
scrollHelper();
}
function hideRenderingMessage()
{
var all = document.all;
all.busy_box.style.display = 'none';
all.busy_box_msg.style.display = '';
all.busy_box_render.style.display = 'none';
}
function setPageVisibility( visibility )
{
document.all.body_table.style.visibility = visibility;
}
function showBody()
{
//hideRenderingMessage( );
setPageVisibility( 'visible' );
onLoad( );
}
//Caching the images for run-time switching
var ui_filter_disabled_image = new Image();
ui_filter_disabled_image.src = "clearfield_disabled.gif";
var ui_filter_enabled_image = new Image();
ui_filter_enabled_image.src = "clearfield.gif";
//Table Filter Functions
function ui_switch_image(filterObject,imgObject )
{
if ( filterObject.length > 0 )
{
imgObject.src = ui_filter_enabled_image.src;
}
else
{
imgObject.src = ui_filter_disabled_image.src;
}
}
function ui_clear( filterObject,imgObject )
{
filterObject.value="";
ui_switch_image(filterObject.value,imgObject );
return;
}
//--------------------------------------------------------
// Validation js - Start::
var validation_areas = new Array();
function validation_areas_add(id)
{
var i = validation_areas.length;
validation_areas[i] = new Array();
validation_areas[i][0] = id;
validation_areas[i][1] = document.getElementById('instruction_area_'+id);
}
function validation_setFocusOnInstructionArea()
{
var obj = document.getElementById('instruction_area');
if (obj != null)
obj.focus();
else
{
for(var i = 0 ; i< validation_areas.length;i++)
{
if (validation_instructionAreaHasErrorMessages(validation_areas[i][0]))
{
validation_areas[i][1].focus(); return;
}
}
}
}
function getInstructionArea(formName)
{
var obj = document.getElementById('instruction_area_'+formName);
return obj;
}
function validation_alert(id)
{
validation_instruction_area_show_alert(id);
onResize();
}
function isValid_area(id,pObj)
{
var obj = pObj; if (id != null) obj = document.getElementById(id);
var isValid = true;
isValid = isValid_area_worker(obj);
validation_instruction_area_show_alert(id);
if (isValid == false)
{
onResize();
validation_setFocusOnInstructionArea();
}
return isValid;
}
function isValid_area_worker(obj)
{
// if (obj == null) return true;
var isValid = true;
// if it is an array
if (typeof(obj.length) == "number")
{
for (i = 0; i < obj.length; i++)
{
isValid = (isValid_area(null,obj[i]) && isValid);
}
}
// if it is an element
else if (obj.tagName == "INPUT" || obj.tagName == "TEXTAREA" || obj.tagName == "SELECT")
{
isValid = (isValid_field(null,obj) && isValid);
}
// if it is any object
else
{
//alert(obj.children.length);
var i;
for (i = 0; i < obj.children.length; i++)
{
isValid = (isValid_area(null,obj.children[i]) && isValid);
}
}
return isValid;
}
function isValid_page()
{
var isValidPage = true;
var j = 0;
for( j = 0; j < document.forms.length; j++)
{
var oForm = document.forms[j];
isValidPage = (isValid_form(oForm) && isValidPage)
}
return isValidPage;
}
function isValid_form(oForm)
{
var isValidForm = true;
var i=0;
for(i = 0; i < oForm.elements.length; i++)
{
isValidField = isValid_field(null,oForm.elements[i]);
isValidForm = (isValidForm && isValidField);
}
validation_instruction_area_show_alert(oForm.name);
if (isValidForm == false)
{
onResize();
validation_setFocusOnInstructionArea();
}
return isValidForm;
}
function isValid_field(id,obj)
{
if (id != null) obj = document.getElementsByName(id);
//alert(objectToString(obj));
//alert(typeof(obj.length));
var isValid= true;
// if it is an array
if (typeof(obj.length) == "number")
{
for (i = 0; i < obj.length; i++)
{
isValid = (isValid_field_worker(obj[i]) && isValid);
}
}
// if it is an element
else if (obj.tagName == "INPUT" || obj.tagName == "TEXTAREA" || obj.tagName == "SELECT")
{
isValid = (isValid_field_worker(obj) && isValid);
}
return isValid;
}
function isValid_field_worker(oField)
{
if (oField == null) return;
//alert(oField);
var isValidField= true;
if (oField.disabled) return true;
if (oField != null && oField.type != null && oField.type == 'hidden') return true;
var parent = oField.parentElement
var childLen = parent.childNodes.length;
var k;
if ( childLen >= 1)
{
for(k = 0; k < childLen; k++)
{
fieldValidator = parent.childNodes[k];
if (fieldValidator.nodeName == 'SPAN')
{
if (isValidField == false)
{
validator_clear(fieldValidator);
}
else if (isValidField == true)
{
isValidField = (validator_validate(fieldValidator, oField ) && isValidField);
}
}
}
}
return isValidField;
}
function isValid_field_if_data(oField)
{
validation_clearFieldErrors(oField);
return true;
// turning off in place validation
// if (trimString(oField.value) == "") return;
//
// var isvalid = isValid_field(null,oField);
// if (isvalid == false) onResize();
// return isvalid;
}
function validator_validate(oFieldValidator, oField)
{
if (oFieldValidator.type == 'required-validator')
{
oFieldValidator.isValid = isValid_required_worker(oField);
return validator_show_alert(oFieldValidator, oField);
}
else
if (oFieldValidator.type == 'data-type-validator')
{
oFieldValidator.isValid = isValid_data_type_worker(oField);
return validator_show_alert(oFieldValidator,oField);
}
else if (oFieldValidator.type == 'valid-range-validator')
{
oFieldValidator.isValid = isValid_number_range_worker(oField);
return validator_show_alert(oFieldValidator,oField);
}
else if (oFieldValidator.type == 'compare-validator')
{
withFieldValue = validator_compare_getWithFieldValue(oFieldValidator,oField);
oFieldValidator.isValid = isValid_compare_worker(oField.value,withFieldValue,oFieldValidator.operator, oField.fieldtype);
return validator_show_alert(oFieldValidator,oField);
}
else if (oFieldValidator.type == 'custom-validator')
{
fn = oFieldValidator.validationFunction;
if (typeof(fn) == "string") {eval("fn = " + fn + ";");}
oFieldValidator.isValid = fn(oFieldValidator,oField);
return validator_show_alert(oFieldValidator,oField);
}
return true;
}
function validator_compare_getWithFieldValue(oFieldValidator,oField)
{
// TODO need a js base mechanism to get fieldValue instead of depending on .oField.row
oForm = oField.form;
withField = eval("oForm."+oFieldValidator.withField);
if (withField.length == null)
{
return withField.value;
}
else
{
return withField[oField.row].value;
}
}
function validator_clear(oFieldValidator)
{
toggleItemVisibility(oFieldValidator,'hide');
}
function validator_show_alert(oFieldValidator, oField)
{
if ( oFieldValidator.isValid == true)
{
toggleItemVisibility(oFieldValidator,'hide');
return true;
}
if (oFieldValidator.severity == 'WARNING')
{
btn = core_confirm(oFieldValidator.message);
if (btn == 'ok')
{
return true;
}
else return false;
}
else
{
toggleItemVisibility(oFieldValidator,'show');
if (oFieldValidator.message != null)
{
if (oField.fieldtype == 'Date' && oFieldValidator.type == 'data-type-validator')
{
msg = validaton_getInvalidDateMsg();
validation_addMessage(msg, oField.containerId);
}
else if (oField.fieldtype == 'DateTime' && oFieldValidator.type == 'data-type-validator')
{
msg = validaton_getInvalidDateTimeMsg();
validation_addMessage(msg, oField.containerId);
}
else
validation_addMessage(oFieldValidator.message, oField.containerId);
}
validator_set_message(oFieldValidator, oField);
validator_notify_instruction_area(oFieldValidator,oField);
return false;
}
return false;
}
function validator_set_message(oFieldValidator, oField)
{
var imgchild = null;
var msgchild = null;
var childLen = oFieldValidator.childNodes.length;
var k =0;
for(k = 0; k < childLen; k++)
{
var child = null;
child = oFieldValidator.childNodes[k];
if (child.nodeName == 'IMG')
{
imgchild = child;
}
if (child.nodeName == 'DIV')
{
msgchild = child;
}
}
if (oFieldValidator.type == 'compare-validator')
{
var withFieldValue;
withFieldValue = validator_compare_getWithFieldValue(oFieldValidator,oField);
// TODO i18n
imgchild.alt = "should be " + "OPERATOR."+oFieldValidator.operator + " " + withFieldValue;
if (msgchild != null) msgchild.innerHTML = imgchild.alt;
}
else
if (oFieldValidator.type == 'custom-validator')
{
imgchild.alt = oFieldValidator.message;
if (msgchild != null) msgchild.innerHTML = '' ;// imgchild.alt;
}
else
if (oFieldValidator.type == 'data-validator')
{
}
}
function validator_notify_instruction_area(oFieldValidator, oField)
{
ia = getInstructionArea(oField.containerId);
if (ia == null)
{
return;
}
if (oFieldValidator.type == 'compare-validator')
{
//ia.anyFieldHasUIErrors = true;
}
else if (oFieldValidator.type == 'custom-validator')
{
//ia.anyFieldHasUIErrors = true;
}
else
if (oFieldValidator.type == 'required-validator')
{
ia.anyFieldIsMissing = true;
}
else
if (oFieldValidator.type == 'data-type-validator')
{
//ia.anyFieldHasUIErrors = true;
}
validation_instruction_area_show_alert(oField.containerId);
}
function isValid_required(elem)
{
return isValid_required_worker(elem);
}
function isEntered(elem)
{
return isValid_required_worker(elem);
}
function isNotEntered(elem)
{
return !(isValid_required_worker(elem));
}
function isValid_required_worker(elem)
{
if (elem.required == false || elem.disabled) return true;
else return (trimString(elem.value) != "");
}
function isValid_data_type_worker(elem)
{
elemValue = trimString(elem.value);
// Numeric Check - Start::
if ( elem.fieldtype == "Number" || elem.fieldtype == 'Currency' )
{
// remove any ,
var elemValueWithoutFormating;
if (elemValue != "")
elemValueWithoutFormating = parseInt(elemValue.replace(/[,\.]+/g, ""));
if ( elemValue != "" && isNaN(elemValueWithoutFormating) )
{
return false
}
else return true;
}
// Numeric Check - End.
// Date Check - Start::
if( (( elem.fieldtype == "DateRange") || ( elem.fieldtype == "Date"))
&& elemValue != ""
&& page_dateFormat != "")
{
if ( isDate(elemValue, page_dateFormat) == false )
{
return false;
}
return true;
}
if( ( elem.fieldtype == "DateTime") && elemValue != "" && page_dateTimeFormat != "")
{
if ( isDate(elemValue, page_dateTimeFormat) == false )
{
//TODO :: the padded time should be in the current format
var elemValueWithTime = elemValue + ' 00:00:00';
if ( isDate(elemValueWithTime, page_dateTimeFormat) == true )
{
elem.value = elemValueWithTime;
return true;
}
return false;
}
return true;
}
// Date Check - End.
return true;
}
function isValid_number_range_worker(numericInput)
{
var value = numericInput.value.trim() == "" ? null : numericInput.value;
var minValue = new Number(numericInput.minValue);
var maxValue = new Number(numericInput.maxValue);
var msg = null;
if (value == null)
{
}
else if (value < minValue)
{
fieldValidator = getRangeValidator(numericInput);
msg = fieldValidator.minMessage;
fieldValidator.message = msg;
var validatorImg = getRangeImg(fieldValidator);
if (validatorImg != null)
{
validatorImg.alt = msg;
}
return false;
}
else if (value > maxValue)
{
fieldValidator = getRangeValidator(numericInput);
msg = fieldValidator.maxMessage;
var validatorImg = getRangeImg(fieldValidator);
if (validatorImg != null)
{
validatorImg.alt = msg;
}
fieldValidator.message = msg;
return false;
}
return true;
}
function isValid_compare_worker(value1, value2, op, type)
{
if (type == 'Date')
return isValid_compare_worker_date(value1, value2 , op)
else if (type == 'Number')
{
return isValid_compare_worker_numeric(value1, value2, op)
}
}
function isValid_compare_worker_date(date1, date2 , op)
{
if ( trimString(date1) == "" )
{
return true;
}
if ( trimString(date2) == "" )
{
return true;
}
if ( op == "GREATER" && ( getDateFromFormat(date1,page_dateFormat) > getDateFromFormat(date2,page_dateFormat)) )
{
return true;
}
if ( op == "GREATER_EQUAL" && ( getDateFromFormat(date1,page_dateFormat) >= getDateFromFormat(date2,page_dateFormat)) )
{
return true;
}
if ( op == "LESS" && ( getDateFromFormat(date1,page_dateFormat) < getDateFromFormat(date2,page_dateFormat)) )
{
return true;
}
if ( op == "LESS_EQUAL" && ( getDateFromFormat(date1,page_dateFormat) <= getDateFromFormat(date2,page_dateFormat)) )
{
return true;
}
if ( op == "EQUAL" && ( getDateFromFormat(date1,page_dateFormat) == getDateFromFormat(date2,page_dateFormat)) )
{
return true;
}
return false;
}
function isValid_compare_worker_numeric(value1, value2 , op)
{
value1 = parseInt(value1.replace(/[,\.]+/g, ""));
value2 = parseInt(value2.replace(/[,\.]+/g, ""));
if ( value1 == "" || isNaN(value1) )
{
return false;
}
//check whether the ship qty is greater than the scheduled qty
if ( op == "GREATER" && ( parseInt(eval(value1)) > parseInt(eval(value2))) )
{
return true;
}
if ( op == "GREATER_EQUAL" && ( parseInt(eval(value1)) >= parseInt(eval(value2))) )
{
return true;
}
if ( op == "LESS_EQUAL" && ( parseInt(eval(value1)) <= parseInt(eval(value2))) )
{
return true;
}
if ( op == "LESS" && ( parseInt(eval(value1)) < parseInt(eval(value2))) )
{
return true;
}
if ( op == "EQUAL" && ( parseInt(eval(value1)) == parseInt(eval(value2))) )
{
return true;
}
return false;
}
function validation_turnOff(oForm)
{
var length = oForm.elements.length;
for(i = 0; i < length; i++)
{
oForm.elements[i].validate = false;
}
}
// Overrided from u2uitaglig.js
// difference is object is passed insted of string
function toggleItemVisibility(item,state)
{
if (item != null)
{
// setting display to none or "" can damage the DOM for
// Netscape 6. you may want to consider the visibility
// attribute instead.
if (state == null)
{
if (item.style.display == "none")
{
item.style.display = "";
item.style.visibility = "visible";
}
else
{
item.style.display = "none";
}
}
else
{
if (state == 'show')
{
item.style.display = "";
item.style.visibility = "visible";
}
else
{
item.style.display = "none";
}
}
}
}
function validation_instruction_area_show_alert(formName)
{
ia = getInstructionArea(formName);
if (ia == null)
{
ia = getInstructionArea('form'); if (ia == null) return;
}
var childLen = ia.rows.length;
if ( childLen >= 1)
{
var k = 0;
for(k = 0; k < childLen; k++)
{
oMessage = ia.rows[k];
if(oMessage.instructionType == 'required_field_missing')
{
if(ia.anyFieldIsMissing == true)
{
toggleItemVisibility(oMessage, 'show');
toggleItemVisibility(ia, 'show');
// msg = 'error_message' + formName;
// i2uiToggleItemVisibility(oMessage, 'hide');
// msg = 'success_message' + formName;
// i2uiToggleItemVisibility(oMessage, 'hide');
}
else
{
toggleItemVisibility(oMessage, 'hide');
}
}
else if (oMessage.instructionType == 'denotes_required_field')
{
if ( ia.anyFieldIsRequired == true)
{
toggleItemVisibility(oMessage, 'show');
toggleItemVisibility(ia, 'show');
}
}
else if (oMessage.instructionType == 'field_error_message')
{
if ((ia.anyFieldHasUIErrors))
{
toggleItemVisibility(oMessage, 'show');
toggleItemVisibility(ia, 'show');
}
else
{
toggleItemVisibility(oMessage, 'hide');
}
}
}
}
}
/* Clears all error messages from instruction area*/
function validation_clearMessages(id)
{
ia = getInstructionArea(id);
if (ia == null) return;
ia.anyFieldHasUIErrors = false;
ia.anyFieldIsMissing = false;
var childLen = ia.rows.length;
if ( childLen >= 1)
{
var k = 0;
for(k = 0; k < childLen; k++)
{
oMessage = ia.rows[k];
if(oMessage.instructionType == 'custom_error_message' ||
oMessage.instructionType == 'field_error_message' ||
oMessage.instructionType == 'required_field_missing'
)
{
toggleItemVisibility(oMessage, 'hide');
}
}
}
}
/* Add a Custom Error Message to the instruction area */
function validation_addMessage(msg,id)
{
ia = getInstructionArea(id);
if (ia == null) return;
if (validation_isMessageShown(msg,id) == true)
{
return;
}
oTR = ia.insertRow();
oTR.instructionType='custom_error_message';
oTD = oTR.insertCell();
var htm= "
";
oTD.innerHTML = htm;
oTD = oTR.insertCell();
oTD.width="100%"
oTD.innerHTML = msg
}
function validation_instructionAreaHasErrorMessages(id)
{
ia = getInstructionArea(id);
if (ia == null) return;
var childLen = ia.rows.length;
if ( childLen >= 1)
{
var k = 0;
for(k = 0; k < childLen; k++)
{
oMessageRow = ia.rows[k];
if (oMessageRow.instructionType == 'custom_error_message' || oMessageRow.instructionType == 'required_field_missing' )
{
if (oMessageRow.style.display != 'none')
{
return true;
}
}
}
}
return false;
}
function validation_isMessageShown(msg, id)
{
ia = getInstructionArea(id);
if (ia == null) return false;
var childLen = ia.rows.length;
if ( childLen >= 1)
{
var k = 0;
for(k = 0; k < childLen; k++)
{
oMessageRow = ia.rows[k];
if (oMessageRow.cells[1] == null) continue;
if (oMessageRow.cells[1].innerHTML == msg)
{
toggleItemVisibility(oMessageRow, 'show');
return true;
}
}
}
return false;
}
function validation_removeMessage(msg, id)
{
ia = getInstructionArea(id);
if (ia == null) return false;
var childLen = ia.rows.length;
if ( childLen >= 1)
{
var k = 0;
for(k = 0; k < childLen; k++)
{
oMessageRow = ia.rows[k];
if (oMessageRow.cells[1].innerHTML == msg)
{
toggleItemVisibility(oMessageRow, 'hide');
return true;
}
}
}
return false;
}
// Field Functions start::
function validation_noWildCards(validator, field)
{
if(validation_areWildCardsEntered(field) == false )
return true;
else
{
validator.message="Wild Cards are not Allowed.";
return false;
}
}
function validation_areWildCardsEntered(oField)
{
str = (String) (oField.value);
if (str == null) return false;
var m = str.match(/[\*,%]+/g); // regex for wildcards
if (m)
{
return true;
}
return false;
}
// Field Functions End.
// Selection Validations - Start::
function validation_AreRowsWithSameFieldSelected(form , checkBoxName, fieldName, operator, severity, message)
{
if (form == null) return true;
isValid = true;
var fieldValue = null;
var elemLen = form.elements.length;
var i = 0;
for( i = 0; i < elemLen; i++ )
{
// process each row
if( form.elements[i].name == checkBoxName &&
form.elements[i].checked == true
)
{
// locate the constraint field
for( j = i+1; j < elemLen; j++ )
{
if (form.elements[j].name == fieldName )
{
if ( fieldValue == null )
{
fieldValue = form.elements[j].value;
}
if (fieldValue != form.elements[j].value)
{
isValid = false;
}
break; // break and go to the next row
}
}
}
}
//isValid = true;
if ( isValid == false && severity == 'STOP')
{
core_alert(message); return false;
}
else if ( isValid == false && severity == 'WARNING')
{
var btn = core_confirm(message);
if (btn == 'ok') return true; else return false;
}
else return true;
}
// Selection Validations - End.
/*
This disables a row if one of the field has some value
Note that all hidden fields are also disabled.
Probably assumes check box is first element on the row
*/
function validation_disableCheckBoxIfFieldHasValue(form , checkBoxName, fieldName , fieldValue)
{
if (form == null) return true;
var elemLen = form.elements.length;
for( i = 0; i < elemLen; i++ )
{
// process each row
if(
form.elements[i].name == checkBoxName
)
{
var rowDisabled=false;
// locate the constraint field
for( j = i+1; j < elemLen; j++ )
{
if (form.elements[j].name == fieldName )
{
if (fieldValue == form.elements[j].value)
{
// disabled
rowDisabled=true;
form.elements[i].disabled = true;
}
break; // break and go to the next row
}
}
// START Disable all fields in the row
if (rowDisabled == true)
{
for( j1 = i+1; j1 < j; j1++ )
{
if (form.elements[j1].name == fieldName ) break;
// disable
form.elements[j1].disabled = true;
}
}
// END
}
}
return true;
}
function validation_onlyValidData()
{
var oField = event.srcElement;
var oFieldName = oField.name;
var oFieldLength = parseInt(oFieldName.length) -1;
var oFieldLastChar = oFieldName.substr(parseInt(oFieldLength),1);
// Now allowing Negative
if ( oField.fieldtype == 'Number' )
validCharacters = /[-0123456789., ]/;
else if (oField.fieldtype == 'Currency')
validCharacters = /[0123456789.,]/;
else return;
validation_onlyValidCharacters(validCharacters);
}
function validation_onlyValidCharacters(validCharacters)
{
var bChanged = false;
var oField = event.srcElement;
var sField = oField.value;
var nStringLen = sField.length;
var sValidField = "";
for(var x = 0; x < nStringLen; x++)
{
var cChar = sField.charAt(x);
if(cChar.search(validCharacters) != -1)
{
sValidField += cChar;
}
else
{
bChanged = true;
}
}
if(bChanged)
{
oField.value = sValidField;
}
}
function validation_clearFieldErrors(obj)
{
var isValid = true;
// if it is an array
if (typeof(obj.length) == "number")
{
for (i = 0; i < obj.length; i++)
{
isValid = (validation_clearFieldErrors_worker(obj[i]) && isValid);
}
}
// if it is an element
else if (obj.tagName == "INPUT" || obj.tagName == "TEXTAREA" || obj.tagName == "SELECT")
{
isValid = (validation_clearFieldErrors_worker(obj) && isValid);
}
return isValid;
}
function validation_clearFieldErrors_worker(oField)
{
if (oField == null) return;
if (oField.disabled) return true;
if (oField != null && oField.type != null && oField.type == 'hidden') return true;
var parent = oField.parentElement
if (parent.nodeName== "SELECT") parent = parent.parentElement;
var childLen = parent.childNodes.length;
var k;
if ( childLen >= 1)
{
for(k = 0; k < childLen; k++)
{
fieldValidator = parent.childNodes[k];
if (fieldValidator.nodeName == 'SPAN' || fieldValidator.nodeName == 'IMG' )
{
validator_clear(fieldValidator);
//validation_removeMessage(fieldValidator.message, oField.containerId);
}
}
}
return ;
}
function validation_tableHasRows( id)
{
var obj = document.getElementById(id+'_data');
if (obj == null) return false;
var noOfRows = obj.rows.length;
if (noOfRows >0 ) return true ;
else return false;
}
function validaton_getInvalidDateMsg()
{
return "Date must be in the format of " + page_dateFormat_i18n;
}
function validaton_getInvalidDateTimeMsg()
{
return "Date Time must be in the format of " + page_dateTimeFormat;
}
// Validation js - End::
// Key Tapping - Start::
browserName = navigator.appName;
if (browserName == "Netscape")
{
document.captureEvents(Event.KEYPRESS);
document.onkeypress=NetEnterKey;
}
else
{
if (browserName.indexOf("Explorer") >= 0)
{
document.onkeypress=IEEnterKey;
//document.onkeydown=IEEnterKey;
}
}
function IEEnterKey()
{
// if enter key
if(window.event.keyCode == 13)
{
if (window.event.srcElement.onclick != null)
{
event.returnValue=true;
}
else
{
if ( window.event.srcElement.type != "textarea" )
{
event.returnValue = onKeyPress(window.event.srcElement)
// event.returnValue=false;
}
}
}
// if backspace
if (window.event.keyCode==8)
{
if (window.event.srcElement.isTextEdit == false)
event.returnValue=false;
}
}
function NetEnterKey(e)
{
key = e.which;
if(key == 13)
{
onKeyPress( e.target )
return false;
}
}
function onKeyPress( target )
{
if (target.disablePageKeyTapping == 'true') return;
if (target.nodeName == 'INPUT' && target.name == 'pagenum')
{
getRecords('jump');
return false;
}
return true;
}
// Key Tapping - End::
// Page.xsl js - Start::
function initFrameToggleGif(path)
{
if(window == null ) return;
if(window.frameElement == null ) return;
if(window.frameElement.parentNode == null ) return;
var frameCol = window.frameElement.parentNode.cols;
if ( frameCol.charAt(0) == "0")
{
if (document.all)
{
document.header.toggle.alt = "Show Navigation Frame";
document.header.toggle.src = omxContextPath + "/expand.gif";
}
}
else
{
if (document.all)
{
document.header.toggle.alt = "Hide Navigation Frame";
document.header.toggle.src = omxContextPath + "/collapse.gif";
}
}
}
function togglenav(path)
{
if(window == null ) return;
if(window.frameElement == null ) return;
if(window.frameElement.parentNode == null ) return;
var frameCol = window.frameElement.parentNode.cols;
if ( frameCol.charAt(0) == "0")
{
if (document.all)
{
document.header.toggle.alt = "Hide Navigation Frame";
document.header.toggle.src = omxContextPath + "/collapse.gif";
window.frameElement.parentNode.cols="170,*";
tabShow = 0;
return;
}
}
else
{
if (document.all)
{
document.header.toggle.alt = "Show Navigation Frame";
document.header.toggle.src = omxContextPath + "/expand.gif";
window.frameElement.parentNode.cols="0%,100%";
tabShow = 1;
}
}
}
// Form Submit
function submitForm(formName, action, target)
{
var formObj = eval('document.' + formName);
formObj.action = action;
if (target != null)
{
formObj.target = target;
}
formObj.submit();
}
// Pagination
function getRecords(actionName, startCount,tableElement)
{
var page_form = null;
var search_form = null;
if(page_form == null) page_form = document.form;
if(search_form == null) search_form = document.form;
jumpTo(actionName, startCount, search_form, page_form,tableElement);
}
function jumpTo(actionName, startCount, search_form, page_form,tableElement)
{
var maxRows = 10;
if ( tableElement != null && tableElement != "" )
{
var maxRowElement = tableElement + "_MAX_ROWS";
if (page_form[maxRowElement] != null) maxRows = page_form[maxRowElement].value;
var recCountElement = tableElement + "_RECORD_COUNT";
var recCount = page_form[recCountElement].value;
var startCountElement = tableElement + "_pagenum";
var bstartCount= page_form[startCountElement].value;
var pageStartCountValue = page_form[tableElement + "_START_COUNT"].value;
}
else
{
if (page_form.MAX_ROWS != null) maxRows = page_form.MAX_ROWS.value;
var bstartCount= page_form.pagenum.value;
var recCount = page_form.RECORD_COUNT.value;
var pageStartCountValue = page_form.START_COUNT.value;
}
var nextCount = parseInt(startCount) + maxRows;
var prevCount = 0;
if ( parseInt(startCount) > 0 )
prevCount = parseInt(startCount) - maxRows;
if (startCount == null)
startCount= bstartCount;
var pagenum= parseInt(startCount); pagenum--;
if (actionName == "jump")
{
if( ( recCount == 0 || recCount > pagenum*maxRows) && (pagenum+1>0) )
// Commenting this condition because it doesnt work if we click the pagination button
// quickly twice or more times - eQ :: 533549
// the START_COUNT value in the form is already set to a different value which
// makes the subsequent clicks not to work
// && (pageStartCountValue != pagenum*maxRows) )
{
//search_form.reset();
if ( tableElement == null || tableElement == "" )
search_form.START_COUNT.value=pagenum*maxRows;
else
{
var sfStartCount = tableElement + "_START_COUNT";
search_form[sfStartCount].value = pagenum*maxRows;
}
search_form.submit();
}
}
}
function disableButtons()
{
var buttons = document.all.tags('TABLE');
for (var i=0; i < buttons.length; i++)
{
if (buttons[i].className == "buttonBorder")
{
if (buttons[i].id != "")
{
disableButton(buttons[i].id);
}
}
}
return;
}
function disableButton(id)
{
i2uiToggleButtonState( id, 'disabled');
return;
}
function enableButton(id)
{
i2uiToggleButtonState( id, 'enabled');
return;
}
function collapseNavArea()
{
if( top.i2ui_shell_content == null ) // MAB: on notes popup was getting null for this.
{
scrollHelper();
return false;
}
var frameCol = top.i2ui_shell_content.document.body.cols;
if ( frameCol.charAt(0) == "1")
{
togglenav('');
return true;
}
else
{
scrollHelper();
return false;
}
}
var resizerequest = null;
function page_onResize()
{
if (resizerequest != null)
clearTimeout(resizerequest);
setTimeout("onResize()",100);
}
function page_submitAsXML(val)
{
if (val == null) val = 'true';
document.form.SUBMIT_AS_XML.value = val;
}
// Page.xsl js - End::
// Search.xsl js - Start::
// Searching
function onSearch()
{
validation_clearMessages('search');
if ( validate_search() == true )
{
disableButton('search_button');
document.form.START_COUNT.value=0;
try
{
document.form.SORT_ORDER.disabled=true;
document.form.SORT_BY.disabled=true;
} catch(e){}
document.form.DO_SEARCH.value='Yes';
document.form.BUTTON_ID.value="search_button";
document.form.submit();
}
else
{
validation_alert('search');
}
}
function onExportSearch()
{
var prevAction = document.form.action;
if ( validate_search() == true )
{
document.form.START_COUNT.value = 0;
document.form.DO_SEARCH.value = 'Yes';
document.form.NO_OF_ROWS.value = page_maxRowsExportable;
document.form.MAX_ROWS.value = page_maxRowsExportable;
document.form.action = omxContextPath + '/SearchDownloadServlet';
document.form.BUTTON_ID.value = "search_button";
document.form.submit();
}
//reset form action and values
document.form.action = prevAction;
document.form.reset();
}
function onSearchSubmitXML()
{
validation_clearMessages('search');
if ( validate_search() == true )
{
disableButton('search_button');
document.form.SUBMIT_AS_XML.value='true';
document.form.START_COUNT.value=0;
document.form.DO_SEARCH.value='Yes';
try
{
document.form.SORT_ORDER.disabled=true;
document.form.SORT_BY.disabled=true;
} catch(e){}
document.form.BUTTON_ID.value="search_button";
document.form.submit();
}
else
{
validation_alert('search');
}
}
function onChangeSearchResultsBy(action, asXML)
{
validation_clearMessages('search');
var validate = false;
if (document.form.DO_SEARCH.value == 'Yes')
validate = true;
var valid = true;
if (validate) valid = validate_search();
if (valid)
{
disableButton('search_button');
document.form.action = action;
document.form.START_COUNT.value=0;
document.form.SUBMIT_AS_XML.value=asXML;
try
{
document.form.SORT_ORDER.disabled=true;
document.form.SORT_BY.disabled=true;
} catch(e){}
document.form.submit();
}
else
{
validation_alert('search');
}
}
// Saving Search
function onSaveSearch( newsearch )
{
if ( validate_search() == true )
{
var x = newsearch ? '?NEW_SEARCH=true' : '';
disableButton('save_search_button');
document.form.action=omxContextPath + '/core/search/controller/saveInSession.x2c' + x;
document.form.BUTTON_ID.value="save_search_button";
document.form.submit();
}
else
{
validation_alert('search');
}
}
// Advanced Search
function onAdvancedSearch()
{
disableButton('more_options_button');
document.form.VISIBILITY.value='Advanced';
document.form.submit();
}
// Simple Search
function onSimpleSearch()
{
disableButton('fewer_options_button');
document.form.VISIBILITY.value='Simple';
document.form.submit();
}
function validate_search()
{
var bIsFormValid = isValid_search();
return bIsFormValid;
}
// Search.xsl js - End::
function HTTP( )
{
this.object = null;
this.init = function init( )
{
if (document.all)
{
var prefixes = [ 'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XmlHttp','Microsoft.XmlHttp','MSXML.XmlHttp','MSXML3.XmlHttp' ];
var l = prefixes.length;
for( var i=0; i < l; ++i)
{
try
{
this.object = new ActiveXObject( prefixes[ i ] );
return;
}
catch (e){};
}
alert( 'Sorry, your browser can not handle this request' );
}
else
{
try
{
this.object = new XMLHttpRequest( );
}
catch (e)
{
alert( 'Sorry, your Netscape browser can not handle this request' );
}
}
}
this.getPost = function f( gp, url, callback, results, headername, headervalue, postdata )
{
if( this.object == null )
this.init( );
var object = this.object;
var http = this;
try
{
if( callback ){
object.open( gp, url, true );
object.onreadystatechange = function cb( ){
if( object.readyState == 4 )
callback( http );
};
}
else
object.open( gp, url, false );
object.setRequestHeader( 'accept-encoding', 'gzip, deflate' );
if( headername != null && headervalue != null )
object.setRequestHeader( headername, headervalue );
object.setRequestHeader( 'pragma', 'no-cache' );
object.setRequestHeader( 'cache-control', 'no-store, must-revalidate, private' );
object.setRequestHeader( 'If-Modified-Since', 'Tue, 11 Jul 2000 17:23:51 GMT' );
var xml = results == 'xml';
if( xml )
object.setRequestHeader( 'Content-type', 'text/xml' );
if( gp == 'POST' ){
object.setRequestHeader( 'Content-type', 'application/x-www-form-urlencoded' );
object.send( postdata );
}
else
object.send( null );
if( callback )
return;
if( xml )
return this.getXML( );
return this.getText( );
}
catch( e ){
alert( 'Error in get is ' + e.number + ' ' + e.description + ' ' + e.message );
}
}
this.get = function f( url, callback, results, headername, headervalue )
{
return this.getPost( 'GET', url, callback, results, headername, headervalue, null );
}
this.post = function f( url, callback, results, postdata, headername, headervalue )
{
return this.getPost( 'POST', url, callback, results, headername, headervalue, postdata );
}
this.getText = function getText( )
{
return this.object.responseText;
}
this.getXML = function getXML( )
{
return this.object.responseXML;
}
this.getHeaders = function getHeaders( )
{
return this.object.getAllResponseHeaders( );
}
this.request = function request( request, service, callback, params, results )
{
var s = omxContextPath + '/start.x2ps?REQUEST=' + request;
if( service )
s += '&SERVICE_NAME=' + service;
if( params )
s += '&' + params;
return this.get( s, callback, results );
}
this.submit = function f( button, params )
{
var x = 'BUTTON_ID=' + button + '&SYS_ID=' + document.form.SYS_ID.value + '&PAGE=' + document.form.PAGE.value;
if( params )
x += '&' + params;
return this.post( omxContextPath + '/view.x2ps', null, 'text', x );
}
}
var _xmlCreator;
function getXMLCreator( )
{
if( _xmlCreator == null )
_xmlCreator = new ActiveXObject( 'Microsoft.XMLDOM' );
return _xmlCreator
}
var _scrollBarSize = 0;
function getScrollBarSize( s )
{
if( _scrollBarSize > 0 )
return _scrollBarSize;
_scrollBarSize = s.offsetHeight - s.clientHeight;
if( _scrollBarSize > 0 )
return _scrollBarSize;
_scrollBarSize= s.offsetWidth - s.clientWidth;
if( _scrollBarSize > 0 )
return _scrollBarSize;
return 16;
}
function alignRowHeights( dataitem, headeritem )
{
var dataItemRows = dataitem.rows;
var headerItemRows = headeritem.rows;
var len = headerItemRows.length;
var hha = new Array( );
var dha = new Array( );
for( var i = 0; i < len; ++i ){
var hh = headerItemRows[ i ].clientHeight;
var hd = dataItemRows[ i ].clientHeight;
var h = Math.max( hh, hd );
if( h != hh )
hha[ i ] = h;
if( h != hd )
dha[ i ] = h;
}
for( i = 0; i < len; ++i ){
var h = hha[ i ];
if( h > 0 )
headerItemRows[ i ].height = h;
h = dha[ i ];
if( h > 0 )
dataItemRows[ i ].height = h;
}
}
function minimizeColumnWidths( dataitem, headeritem )
{
var dataItemRow0Cells = dataitem.rows[ 0 ].cells;
var headerItemRows = headeritem.rows;
var lastheaderrow = headerItemRows.length - 1;
var lastHeaderRowCells = headerItemRows[ lastheaderrow ].cells;
if( dataitem.width_check ){
if( dataitem.has_width )
return;
}
else{
dataitem.width_check = true;
if( lastHeaderRowCells[ 0 ].width != '' ){
dataitem.has_width = true;
return;
}
}
dataitem.style.width = 5 * dataItemRow0Cells.length;
headeritem.style.width = 5 * lastHeaderRowCells.length;
var len = lastHeaderRowCells.length;
for( i = 0; i < len; ++i )
{
lastHeaderRowCells[ i ].width = '';
dataItemRow0Cells[ i ].width = '';
}
var hws = new Array( );
var dws = new Array( );
for( i = 0; i < len; ++i )
{
w1 = lastHeaderRowCells[ i ].offsetWidth;
w2 = dataItemRow0Cells[ i ].offsetWidth;
w3 = Math.max( w1, w2 );
if( w1 != w3 )
hws[ i ] = w3;
if( w2 != w3 )
dws[ i ] = w3;
}
for( i = 0; i < len; ++i )
{
var w = hws[ i ];
if( w > 0 )
lastHeaderRowCells[ i ].width = w;
w = dws[ i ];
if( w > 0 )
dataItemRow0Cells[ i ].width = w;
}
}
function stretchColumnWidths( dataitem, headeritem, available )
{
var dataItemRow0Cells = dataitem.rows[ 0 ].cells;
var headerItemRows = headeritem.rows;
var lastheaderrow = headerItemRows.length - 1;
var lastHeaderRowCells = headerItemRows[ lastheaderrow ].cells;
if( dataitem.width_check ){
if( dataitem.has_width )
return;
}
else{
dataitem.width_check = true;
if( lastHeaderRowCells[ 0 ].width != '' ){
dataitem.has_width = true;
return;
}
}
var len = lastHeaderRowCells.length;
var current = 0;
var less = 0;
for( var i = 0; i < len; ++i )
current += dataItemRow0Cells[ i ].offsetWidth;
if( current == 0 )
return;
for( i = 0; i < len; ++i ){
var cell = dataItemRow0Cells[ i ];
var w2 = cell.offsetWidth;
var w3 = w2 * available / current;
var wf = Math.floor( w3 );
less += w3 - wf;
if( less >= 1 ){
++wf;
--less;
}
var w = w2 + wf;
cell.width = w;
lastHeaderRowCells[ i ].width = w;
}
}
var _noResizeCount = 0;
var _alltables = null;
var _needResize = false;
var _needMinimize = isV1( );
var _resetHeight = _needMinimize;
var _firstTable;
var _shrinkTable;
useGeneratedScrollHelper = false;
function InvertTable(
tbl, syncslave, syncslaveHeader, syncslaveData, syncmaster, syncmasterHeader, syncmasterData,
scroller, headerScroller, syncslaveScroller )
{
alignRowHeights( syncmasterData, syncslaveData );
this.resetHeight = function( )
{
var s = scroller.style;
s.height = '';
s.overflowY = 'hidden';
syncslaveScroller.style.height = '';
this.hasVerticalScroller = false;
}
this.minimizeWidth = function( )
{
var s = scroller.style;
s.width = 20;
var hs = headerScroller.style;
hs.width = 20;
}
this.reset = function( )
{
var s = scroller.style;
s.width = '';
headerScroller.style.width = '';
}
this.normalWidths = function( )
{
minimizeColumnWidths( syncmasterData, syncmasterHeader );
}
this.resizeWidths = function( container, totalAvailWidth )
{
var w = container.availableWidth( ) - totalAvailWidth;
if( w <= 0 ){
w = scroller.parentNode.clientWidth - syncmasterData.offsetWidth;
if( this.hasVerticalScroller )
w -= getScrollBarSize( scroller );
if( w > 0 )
stretchColumnWidths( syncmasterData, syncmasterHeader, w - 1 );
scroller.style.overflowX = 'hidden';
return false;
}
var s = scroller.style;
var dw = syncmasterData.offsetWidth - w - 1;
var hw = dw;
if( this.hasVerticalScroller ){
var sb = getScrollBarSize( scroller );
dw += sb;
syncslaveScroller.style.height = scroller.offsetHeight - sb;
}
s.width = dw;
headerScroller.style.width = hw;
s.overflowX = 'scroll';
return true;
}
this.shrinkHeight = function( shrink, force )
{
var h = scroller.offsetHeight - shrink;
if( h >= 100 || force && h > 0 ){
this.hasVerticalScroller = true;
var s = scroller.style;
s.height = h;
s.overflowY = 'scroll';
syncslaveScroller.style.height = h;
return true;
}
return false;
}
this.saveScrollPos = function( )
{
this.scrollLeft = scroller.scrollLeft;
this.scrollTop = scroller.scrollTop;
}
this.restoreScrollPos = function( )
{
scroller.scrollLeft = this.scrollLeft;
scroller.scrollTop = this.scrollTop;
}
this.saveScrollPos( );
}
function FreezeTable(
tbl, syncslave, syncslaveHeader, syncslaveData, syncmaster, syncmasterHeader, syncmasterData,
scroller, headerScroller, syncslaveScroller, syncslaveHeaderScroller )
{
alignRowHeights( syncmasterHeader, syncslaveHeader );
alignRowHeights( syncmasterData, syncslaveData );
this.resetHeight = function( )
{
var s = scroller.style;
s.height = '';
s.overflowY = 'hidden';
s = syncslaveScroller.style;
s.height = '';
s.overflowX = 'hidden';
this.hasVerticalScroller = false;
}
this.minimizeWidth = function( )
{
var s = scroller.style;
s.width = 20;
var hs = headerScroller.style;
hs.width = 20;
}
this.reset = function( )
{
scroller.style.width = '';
headerScroller.style.width = '';
syncslaveScroller.style.width = '';
syncslaveHeaderScroller.style.width = '';
}
this.normalWidths = function( )
{
minimizeColumnWidths( syncmasterData, syncmasterHeader );
minimizeColumnWidths( syncslaveData, syncslaveHeader );
}
this.resizeWidths = function( container, totalAvailWidth )
{
var w = container.availableWidth( ) - totalAvailWidth;
if( w <= 0 ){
w = scroller.parentNode.clientWidth - syncmasterData.offsetWidth;
if( this.hasVerticalScroller )
w -= getScrollBarSize( scroller );
if( w > 0 )
stretchColumnWidths( syncmasterData, syncmasterHeader, w - 1 );
scroller.style.overflowX = 'hidden';
syncslaveScroller.style.overflowX = 'hidden';
return false;
}
var s = scroller.style;
var dw = syncmasterData.offsetWidth - w - 1;
var hw = dw;
if( this.hasVerticalScroller )
dw += getScrollBarSize( scroller );
s.width = dw;
headerScroller.style.width = hw;
s.overflowX = 'scroll';
return true;
}
this.shrinkHeight = function( shrink, force )
{
var h = scroller.offsetHeight - shrink;
if( h >= 100 || force && h > 0 ){
this.hasVerticalScroller = true;
var s = scroller.style;
s.height = h;
s.overflowY = 'scroll';
s = syncslaveScroller.style;
s.height = h;
s.overflowX = 'scroll';
return true;
}
return false;
}
this.saveScrollPos = function( )
{
this.scrollLeft = scroller.scrollLeft;
this.scrollTop = scroller.scrollTop;
}
this.restoreScrollPos = function( )
{
scroller.scrollLeft = this.scrollLeft;
scroller.scrollTop = this.scrollTop;
}
this.saveScrollPos( );
}
function DraggableTable(
tbl, syncslave2, syncslave2Header, syncslave2Data, syncslave, syncslaveHeader, syncslaveData,
syncmaster, syncmasterHeader, syncmasterData, scroller, headerScroller, syncslaveScroller,
syncslave2Scroller, syncslave2HeaderScroller, draggerImg )
{
alignRowHeights( syncmasterHeader, syncslaveHeader );
alignRowHeights( syncmasterHeader, syncslave2Header );
alignRowHeights( syncslaveHeader, syncslave2Header );
alignRowHeights( syncmasterData, syncslaveData );
alignRowHeights( syncmasterData, syncslave2Data );
alignRowHeights( syncslaveData, syncslave2Data );
draggerImg.style.cursor = 'move';
draggerImg.ondragenter = function( ){ draggable.dragEnter( ); };
draggerImg.ondrag = function( ){ draggable.drag( ); };
this.resetHeight = function( )
{
var s = scroller.style;
s.height = '';
s.overflowY = 'hidden';
syncslaveScroller.style.height = '';
syncslave2Scroller.style.height = '';
this.hasVerticalScroller = false;
}
this.minimizeWidth = function( )
{
var s = scroller.style;
s.width = 20;
var hs = headerScroller.style;
hs.width = 20;
}
this.reset = function( )
{
scroller.style.width = '';
headerScroller.style.width = '';
syncslave2HeaderScroller.style.width = '';
syncslave2Scroller.style.width = '';
}
this.normalWidths = function( )
{
minimizeColumnWidths( syncslave2Data, syncslave2Header );
minimizeColumnWidths( syncmasterData, syncmasterHeader );
}
this.resizeWidths = function( container, totalAvailWidth )
{
var sw = syncslave2.width;
if( isNaN( sw ) )
sw = eval( syncslave2.id + '_width' );
var s2 = syncslave2Scroller.style;
s2.width = sw;
syncslave2HeaderScroller.style.width = sw;
sw -= syncslave2Data.clientWidth;
if( sw > 0 )
stretchColumnWidths( syncslave2Data, syncslave2Header, sw - 1 );
w = container.availableWidth( ) - totalAvailWidth;
var s = scroller.style;
if( w > 0 || sw < 0 ){
s.overflowX = 'scroll';
s2.overflowX = 'scroll';
if( this.hasVerticalScroller )
syncslaveScroller.style.overflowX = 'scroll';
else
syncslaveScroller.style.overflowX = 'hidden';
}
else{
s.overflowX = 'hidden';
s2.overflowX = 'hidden';
syncslaveScroller.style.overflowX = 'hidden';
}
if( w <= 0 ){
w = scroller.parentNode.clientWidth - syncmasterData.offsetWidth;
if( this.hasVerticalScroller )
w -= getScrollBarSize( scroller );
if( w > 0 )
stretchColumnWidths( syncmasterData, syncmasterHeader, w - 1 );
return false;
}
var dw = syncmasterData.offsetWidth - w - 1;
var hw = dw;
if( this.hasVerticalScroller )
dw += getScrollBarSize( scroller );
s.width = dw;
headerScroller.style.width = hw;
return true;
}
this.shrinkHeight = function( shrink, force )
{
var h = scroller.offsetHeight - shrink;
if( h >= 100 || force && h > 0 ){
this.hasVerticalScroller = true;
var s = scroller.style;
s.height = h;
s.overflowY = 'scroll';
syncslave2Scroller.style.height = h;
syncslaveScroller.style.height = h;
return true;
}
return false;
}
this.saveScrollPos = function( )
{
this.scrollLeft = scroller.scrollLeft;
this.scrollTop = scroller.scrollTop;
this.scrollLeft2 = syncslave2Scroller.scrollLeft;
this.scrollTop2 = syncslave2Scroller.scrollTop;
}
this.restoreScrollPos = function( )
{
scroller.scrollLeft = this.scrollLeft;
scroller.scrollTop = this.scrollTop;
syncslave2Scroller.scrollLeft = this.scrollLeft2;
syncslave2Scroller.scrollTop = this.scrollTop2;
}
var draggable = this;
this.drag = function( )
{
var pos = event.clientX;
var w = this.startWidth - this.startPos + pos;
var aw = tbl.offsetWidth;
if( w > 30 && w < aw - syncslave.offsetWidth - 30 ){
syncslave2.width = w;
this.reset( );
this.normalWidths( );
this.resizeWidths( this, aw );
}
}
this.dragEnter = function( )
{
this.startPos = event.clientX;
this.startWidth = syncslave2.offsetWidth;
}
this.availableWidth = function( )
{
return tbl.offsetWidth;
}
this.saveScrollPos( );
}
function Table( tbl, header, data, scroller, headerScroller )
{
this.resetHeight = function( )
{
var s = scroller.style;
s.height = '';
s.overflowY = 'hidden';
this.hasVerticalScroller = false;
}
this.minimizeWidth = function( )
{
var s = scroller.style;
s.width = 20;
var hs = headerScroller.style;
hs.width = 20;
}
this.reset = function( )
{
scroller.style.width = '';
headerScroller.style.width = '';
}
this.normalWidths = function( measureTable, totalAvailWidth )
{
minimizeColumnWidths( data, header );
}
this.resizeWidths = function( container, totalAvailWidth )
{
var w = container.availableWidth( ) - totalAvailWidth;
if( w <= 0 ){
w = scroller.parentNode.clientWidth - data.offsetWidth;
if( this.hasVerticalScroller )
w -= getScrollBarSize( scroller );
if( w > 0 )
stretchColumnWidths( data, header, w - 1 );
scroller.style.overflowX = 'hidden';
return false;
}
var s = scroller.style;
var dw = data.offsetWidth - w - 1;
var hw = dw;
if( this.hasVerticalScroller )
dw += getScrollBarSize( scroller );
s.width = dw;
headerScroller.style.width = hw;
s.overflowX = 'scroll';
return true;
}
this.shrinkHeight = function( shrink, force )
{
var h = scroller.offsetHeight - shrink;
if( h >= 80 || force && h > 0 ){
this.hasVerticalScroller = true;
var s = scroller.style;
s.height = h;
s.overflowY = 'scroll';
return true;
}
return false;
}
this.saveScrollPos = function( )
{
this.scrollLeft = scroller.scrollLeft;
this.scrollTop = scroller.scrollTop;
}
this.restoreScrollPos = function( )
{
scroller.scrollLeft = this.scrollLeft;
scroller.scrollTop = this.scrollTop;
}
this.saveScrollPos( );
}
function Tabset( tbl )
{
this.resetHeight = function( )
{
}
this.minimizeWidth = function( )
{
}
this.reset = function( )
{
}
this.normalWidths = function( )
{
}
this.resizeWidths = function( container, totalAvailWidth )
{
resizeTabsetScroller( tbl, container.scrollWidth( ) );
}
this.shrinkHeight = function( shrink, force )
{
return false;
}
this.availableWidth = function( )
{
}
this.saveScrollPos = function( )
{
}
this.restoreScrollPos = function( )
{
}
}
function Container( tbl, scroller, parent )
{
this.tables = new Array( );
this.clear = function( )
{
if( scroller )
scroller.removeAttribute( 'containerIndex' );
}
this.resetHeight = function( )
{
if( scroller ){
var s = scroller.style;
s.height = '';
s.overflowY = 'hidden';
}
this.hasVerticalScroller = false;
}
this.minimizeWidth = function( )
{
if( scroller ){
var s = scroller.style;
s.width = 20;
}
}
this.reset = function( )
{
if( scroller )
scroller.style.width = '';
}
this.normalWidths = function( )
{
}
this.resizeWidths = function( container, totalAvailWidth )
{
if( scroller ){
var s = scroller.style;
var w = container.availableWidth( ) - totalAvailWidth;
if( w > 0 ){
if( this.hasVerticalScroller )
w -= getScrollBarSize( scroller );
s.width = scroller.scrollWidth - w;
s.overflowX = 'scroll';
}
else
s.overflowX = 'hidden';
}
}
this.shrinkHeight = function( shrink, force )
{
var h = scroller.offsetHeight - shrink;
if( h >= 300 || force && h > 0 ){
var s = scroller.style;
s.height = h;
s.overflowY = 'scroll';
this.hasVerticalScroller = true;
return true;
}
return false;
}
this.availableWidth = function( )
{
if( this.hasVerticalScroller )
return parent.clientWidth - getScrollBarSize( scroller );
return parent.clientWidth;
}
this.add = function( t )
{
var x = this.tables;
x[ x.length ] = t;
t.container = this;
}
this.saveScrollPos = function( )
{
if( scroller ){
this.scrollLeft = scroller.scrollLeft;
this.scrollTop = scroller.scrollTop;
}
}
this.restoreScrollPos = function( )
{
if( scroller ){
scroller.scrollLeft = this.scrollLeft;
scroller.scrollTop = this.scrollTop;
}
}
this.scrollWidth = function( )
{
if( scroller )
return scroller.scrollWidth;
return -1;
}
this.saveScrollPos( );
}
function addToContainer( tbl, t, containers )
{
var p = tbl.parentNode;
while( p ){
var i = p.containerIndex;
if( i >= 0 ){
containers[ i ].add( t );
return;
}
p = p.parentNode;
}
containers[ 0 ].add( t );
}
function resizeContainer( container, aw )
{
var tables = container.tables;
var l = tables.length;
for( var j = 0; j < l; ++j ){
var t = tables[ j ];
t.reset( );
t.normalWidths( );
t.resizeWidths( container, aw );
}
for( var j = 0; j < l; ++j ){
var c = tables[ j ];
if( c.tables )
resizeContainer( c, c.availableWidth( ) );
}
}
function shrinkHeight( container, shrink, force )
{
var tables = container.tables;
var l = tables.length;
var j = l;
while( --j >= 0 ){
var c = tables[ j ];
if( c.tables && shrinkHeight( c, shrink, false ) )
return true;
}
while( --l >= 0 ){
var t = tables[ l ];
if( t.shrinkHeight( shrink, force ) ){
if( document.body.clientHeight < _firstTable.offsetHeight )
t.resetHeight( );
else{
_shrinkTable = t;
return true;
}
}
}
}
function getTableChild( tbl, r, c, tag )
{
var rows = tbl.rows;
if( rows.length <= r )
return null;
var cells = rows[ r ].cells;
if( cells.length <= c )
return null;
var children = cells[ c ].children;
var l = children.length;
for( var i = 0; i < l; ++i ){
var child = children[ i ];
var t = child.tagName;
if( t == tag )
return child;
if( t != '!' )
return null;
}
return null;
}
function getScrollerData( s )
{
return s.children[ 0 ];
}
function scrollHelper( )
{
if( _noResizeCount > 0 ){
_needResize = true;
return;
}
_needResize = false;
if( _alltables == null ){
var tables = document.getElementsByTagName( "TABLE" );
var noOfTables = tables.length;
var firstTable = isV2( ) ? 1 : 0;
_alltables = new Array( );
_alltables[ 0 ] = new Container( null, null, _firstTable = tables[ firstTable ] );
var ignoreTo = null;
for( var j = firstTable; j < noOfTables; j++ )
{
var tbl = tables[ j ];
if( ignoreTo ){
if( ignoreTo == tbl )
ignoreTo = null;
continue;
}
if( !isTableVisible( tbl ) )
continue;
if( tbl.id == 'tabs_container' ){
var t = new Tabset( tbl );
_alltables[ _alltables.length ] = t;
addToContainer( tbl, t, _alltables );
}
if( tbl.className == 'shadow' ){
var scroller = getTableChild( tbl, 1, 0, 'DIV' );
if( scroller ){
var i = _alltables.length;
scroller.containerIndex = i;
var t = new Container( tbl, scroller, scroller.parentNode );
_alltables[ i ] = t;
addToContainer( tbl, t, _alltables );
}
continue;
}
var tbl0 = getTableChild( tbl, 0, 0, 'TABLE' );
if( tbl0 == null ){
var headerScroller = getTableChild( tbl, 0, 0, 'DIV' );
if( headerScroller == null )
continue;
var masterScroller = getTableChild( tbl, 1, 0, 'DIV' );
if( masterScroller == null )
continue;
var header = getScrollerData( headerScroller );
var data = getScrollerData( masterScroller );
var t = new Table( tbl, header, data, masterScroller, headerScroller );
_alltables[ _alltables.length ] = t;
addToContainer( tbl, t, _alltables );
ignoreTo = data;
continue;
}
if( tbl.id == 'tabs_container' ){
var scroller = getTableChild( tbl0, 1, 0, 'DIV' );
if( scroller == null )
continue;
var id = scroller.id;
if( id == 'tabs_container_description_scroller' || id == 'tabs_container_scroller' ){
var i = _alltables.length;
scroller.containerIndex = i;
var t = new Container( tbl, scroller, scroller.parentNode );
_alltables[ i ] = t;
addToContainer( tbl, t, _alltables );
}
}
var tbl2 = getTableChild( tbl, 0, 2, 'TABLE' );
if( tbl2 == null ){
var syncslave = tbl0;
var slaveHeaderScroller = getTableChild( syncslave, 0, 0, 'DIV' );
if( slaveHeaderScroller == null ){
var syncslaveHeader = getTableChild( syncslave, 0, 0, 'TABLE' );
if( syncslaveHeader == null ){
var syncmaster = getTableChild( tbl, 0, 1, 'TABLE' );
if( syncmaster == null )
continue;
var sid = syncslave.id;
var mid = syncmaster.id;
var si = sid.indexOf( '_syncslave' );
var mi = mid.indexOf( '_syncmaster' );
if( isV2( ) && si > 0 && mi > 0 && si == sid.length - 10 && mi == mid.length - 11 )
alignRowHeights( syncmaster, syncslave );
continue;
}
var syncslaveScroller = getTableChild( syncslave, 1, 0, 'DIV' );
if( syncslaveScroller == null )
continue;
var syncslaveData = getScrollerData( syncslaveScroller );
var syncmaster = getTableChild( tbl, 0, 1, 'TABLE' );
if( syncmaster == null )
continue;
var headerScroller = getTableChild( syncmaster, 0, 0, 'DIV' );
if( headerScroller == null )
continue;
var masterScroller = getTableChild( syncmaster, 1, 0, 'DIV' );
if( masterScroller == null )
continue;
var syncmasterHeader = getScrollerData( headerScroller );
var syncmasterData = getScrollerData( masterScroller );
var t = new InvertTable(
tbl, syncslave, syncslaveHeader, syncslaveData, syncmaster, syncmasterHeader, syncmasterData,
masterScroller, headerScroller, syncslaveScroller );
_alltables[ _alltables.length ] = t;
addToContainer( tbl, t, _alltables );
ignoreTo = syncmasterData;
continue;
}
var slaveScroller = getTableChild( syncslave, 1, 0, 'DIV' );
if( slaveScroller == null )
continue;
var syncmaster = getTableChild( tbl, 0, 1, 'TABLE' );
if( syncmaster == null )
continue;
var headerScroller = getTableChild( syncmaster, 0, 0, 'DIV' );
if( headerScroller == null )
continue;
var masterScroller = getTableChild( syncmaster, 1, 0, 'DIV' );
if( masterScroller == null )
continue;
var masterScroller = getTableChild( syncmaster, 1, 0, 'DIV' );
if( masterScroller == null )
continue;
var syncslaveHeader = getScrollerData( slaveHeaderScroller );
var syncslaveData = getScrollerData( slaveScroller );
var syncmasterHeader = getScrollerData( headerScroller );
var syncmasterData = getScrollerData( masterScroller );
t = new FreezeTable(
tbl, syncslave, syncslaveHeader, syncslaveData, syncmaster, syncmasterHeader, syncmasterData,
masterScroller, headerScroller, slaveScroller, slaveHeaderScroller );
_alltables[ _alltables.length ] = t;
addToContainer( tbl, t, _alltables );
ignoreTo = syncmasterData;
continue;
}
var syncslave2 = tbl0;
var slave2HeaderScroller = getTableChild( syncslave2, 0, 0, 'DIV' );
if( slave2HeaderScroller == null )
continue;
var slave2Scroller = getTableChild( syncslave2, 1, 0, 'DIV' );
if( slave2Scroller == null )
continue;
var syncslave = getTableChild( tbl, 0, 1, 'TABLE' );
if( syncslave == null )
continue;
var syncslaveHeader = getTableChild( syncslave, 0, 0, 'TABLE' );
if( syncslaveHeader == null )
continue;
var slaveScroller = getTableChild( syncslave, 1, 0, 'DIV' );
if( slaveScroller == null )
continue;
var syncmaster = tbl2;
var headerScroller = getTableChild( syncmaster, 0, 0, 'DIV' );
if( headerScroller == null )
continue;
var masterScroller = getTableChild( syncmaster, 1, 0, 'DIV' );
if( masterScroller == null )
continue;
var draggerImg = getTableChild( syncslaveHeader, 0, 0, 'IMG' );
if( draggerImg == null )
continue;
var syncslave2Header = getScrollerData( slave2HeaderScroller );
var syncslave2Data = getScrollerData( slave2Scroller );
var syncslaveData = getScrollerData( slaveScroller );
var syncmasterHeader = getScrollerData( headerScroller );
var syncmasterData = getScrollerData( masterScroller );
var t = new DraggableTable(
tbl, syncslave2, syncslave2Header, syncslave2Data, syncslave, syncslaveHeader, syncslaveData, syncmaster, syncmasterHeader, syncmasterData,
masterScroller, headerScroller, slaveScroller, slave2Scroller, slave2HeaderScroller, draggerImg );
_alltables[ _alltables.length ] = t;
addToContainer( tbl, t, _alltables );
ignoreTo = syncmasterData;
}
}
else{
var l = _alltables.length;
while( --l >= 0 )
_alltables[ l ].saveScrollPos( );
}
var noOfTables = _alltables.length;
for( var j = 0; j < noOfTables; ++j ){
var c = _alltables[ j ].clear;
if( c )
c( );
}
if( _resetHeight ){
for( var j = 0; j < noOfTables; ++j )
_alltables[ j ].resetHeight( );
_resetHeight = false;
}
if( _shrinkTable ){
_shrinkTable.resetHeight( );
_shrinkTable = null;
}
if( _needMinimize ){
for( var j = 0; j < noOfTables; ++j )
_alltables[ j ].minimizeWidth( );
}
var shrink = _firstTable.offsetHeight - document.body.clientHeight;
if( shrink > 0 )
shrinkHeight( _alltables[ 0 ], shrink, true );
resizeContainer( _alltables[ 0 ], document.body.clientWidth );
shrink = _firstTable.offsetHeight - document.body.clientHeight;
if( _shrinkTable && shrink ){
_shrinkTable.resetHeight( );
shrink = _firstTable.offsetHeight - document.body.clientHeight;
if( shrink > 0 )
_shrinkTable.shrinkHeight( shrink, true );
}
for( var j = 0; j < noOfTables; ++j )
_alltables[ j ].restoreScrollPos( );
_needMinimize = true;
}
function alignTableColumns( sourceId, targetId, reverse )
{
var sd = document.getElementById( sourceId + '_syncmaster_data' );
if( sd ){
if( sd.offsetWidth > 0 ){
var th = document.getElementById( targetId + '_syncmaster_header' );
var td = document.getElementById( targetId + '_syncmaster_data' );
var sc = sd.rows[ 0 ].cells;
var hc = th.rows[ 0 ].cells;
var dc = td.rows[ 0 ].cells;
var l = sc.length;
if( reverse ){
var sh = document.getElementById( sourceId + '_syncmaster_header' ).rows[ 0 ].cells;
for( var i = 0; i < l; ++i ){
var w = sc[ i ].offsetWidth;
var rw = dc[ i ].offsetWidth;
if( rw > w )
w = rw;
hc[ i ].style.width = w;
dc[ i ].style.width = w;
sh[ i ].style.width = w;
sc[ i ].style.width = w;
}
}
else{
for( var i = 0; i < l; ++i ){
var w = sc[ i ].offsetWidth;
hc[ i ].style.width = w;
dc[ i ].style.width = w;
}
}
}
}
else{
sd = document.getElementById( sourceId + '_syncmaster' );
if( sd.offsetWidth > 0 ){
var td = document.getElementById( targetId + '_syncmaster' );
var sc = sd.rows[ 0 ].cells;
var dc = td.rows[ 0 ].cells;
var l = sc.length;
for( var i = 0; i < l; ++i ){
var w = sc[ i ].offsetWidth;
if( reverse ){
var rw = dc[ i ].offsetWidth;
if( rw > w )
w = rw;
sc[ i ].style.width = w;
}
dc[ i ].style.width = w;
}
}
}
}
function disableResize( )
{
++_noResizeCount;
}
function enableResize( )
{
if( --_noResizeCount == 0 && _needResize )
scrollHelper( );
}
function isTableVisible( tbl )
{
if( tbl.style.display == 'none' )
return false;
return true;
}
function openerWindow( )
{
if( opener )
return opener;
if( typeof( dialogArguments ) == 'undefined' )
return window;
return dialogArguments;
}
function getTabUrl( tab )
{
var x = document.getElementById( 'PAGE_NAME' ).value + '.' + tab;
var p = parent;
if( p == window )
return openerWindow( )[ 'opener_' + x ];
return p[ 'parent_' + x ];
}
function switchWorkflowTab( tab, workflow, service, params )
{
var url = getTabUrl( tab );
var p = new Object( );
if( params )
url += '&' + params;
var i = url.indexOf( '?' );
if( i < 0 )
i = url.indexOf( '&' );
var u;
if( i > 0 ){
u = url.substring( 0, i++ );
for(;;){
var a = url.indexOf( '=', i );
var n = url.indexOf( '&', i );
if( n < 0 ){
if( a < 0 )
p[ url.substring( i ) ] = '';
else
p[ url.substring( i, a ) ] = url.substring( a + 1 );
break;
}
if( a < 0 || n < a )
p[ url.substring( i, n ) ] = '';
else if( a < n )
p[ url.substring( i, a ) ] = url.substring( a + 1, n );
i = n + 1;
}
}
else
u = url;
if( workflow )
p[ 'START_WORKFLOW' ] = workflow;
if( service )
p[ 'SERVICE_NAME' ] = service;
url = u;
var first = true;
for( var x in p ){
url += first ? '?' : '&';
first = false;
var t = p[ x ];
url += x;
if( t.length > 0 )
url += '=' + t;
}
var lpm = disablePageLeaveMessage( );
getAction( url );
if( lpm )
enablePageLeaveMessage( );
}
function saveTabUrl( tab, url )
{
var x = document.getElementById( 'PAGE_NAME' ).value + '.' + tab;
var p = parent;
if( p == window )
openerWindow( )[ 'opener_' + x ] = url;
else
p[ 'parent_' + x ] = url;
}
function getInvertTableInputIndex( t )
{
var td = t.parentNode;
return td.cellIndex;
}
function setStyle( t, n, s )
{
if( n ){
var l;
if( typeof( n ) == 'object' && ( l = n.length ) >= 0 ){
t = t.style;
for( var i = 0; i < l; ++i )
t[ n[ i ] ] = s[ i ];
}
else if( s )
t.style[ n ] = s;
else
t.style.removeAttribute( n );
}
else
t.removeAttribute( 'style' );
}
var _pageActivity = 0;
var _pageTimeout = 1000000000;
var _lastActivity = new Date( );
function pageActivity( )
{
++_pageActivity;
}
function showDialog( url, width, height, resizeable )
{
var resize = resizeable ? ';resizable:yes' : '';
return showModalDialog( url, window, 'dialogWidth:' + width + 'px;dialogheight:' + height + 'px;status:no;unadorned:yes;help:no' + resize );
}
function closeDialog( value )
{
returnValue = value;
window.close( );
return false;
}
function showTimeoutMessage( )
{
var rc = showDialog( omxContextPath + '/core/alert/controller/display.x2c?MESSAGE=SESSION_TIMEOUT_MESSAGE&TYPE=warning&CLOSE_TIMEOUT=60000', 350, 150 );
if( rc == 'timeout' ){
disablePageLeaveMessage( );
submitAction( 'Log Out', omxContextPath + '/core/login/controller/logout.x2c?FROM=timeout' );
}
else
pageActivity( );
}
function timeoutCallback( )
{
var d = new Date( );
if( _pageActivity ){
_pageActivity = 0;
_lastActivity = d;
}
else if( _lastActivity.getTime( ) < d.getTime( ) - _pageTimeout * 1000 + 60000 )
showTimeoutMessage( );
setTimeout( timeoutCallback, 5000 );
}
function getPageTimeoutCallback( http )
{
var xml = http.getXML( );
if( isErrorResponse( xml ) )
return;
_pageTimeout = getValueAttribute( getChild( "SESSION_TIMEOUT", xml.firstChild ) );
}
function getPageTimeout( )
{
var http = new HTTP( );
var r = http.request( "getSessionTimeout", "HTTP_SESSION", getPageTimeoutCallback );
}
function enablePageTimeout( )
{
var tables = document.getElementsByTagName( "TABLE" );
var tbl = null;
var l = tables.length;
for( var i = 0; i < l; ++i ){
tbl = tables[ i ];
if( isOuterContainer( tbl ) )
break;
}
tbl.onmousemove = pageActivity;
tbl.onkeydown = pageActivity;
getPageTimeout( );
setTimeout( timeoutCallback, 5000 );
}
var _showPageLeaveMessage = true;
function setLeavePageMessage( msg, conditionFunc )
{
document.body.onbeforeunload = function onUnload( ){
if( _showPageLeaveMessage && conditionFunc( ) ){
event.returnValue = msg;
if( i2uiCurrentTab )
i2uiToggleTab( i2uiCurrentTabset, '', i2uiCurrentTab );
}
else
event.cancelBubble = true;
}
}
function enablePageLeaveMessage( )
{
_showPageLeaveMessage = true;
}
function disablePageLeaveMessage( )
{
var r = _showPageLeaveMessage;
_showPageLeaveMessage = false;
return r;
}
function setButtonAttributeById( id, attribute, value )
{
var btn = document.getElementById( id );
btn[ attribute ] = value;
}
function submitAction( button, action, sysId )
{
disableButtons( );
var f = document.form;
if( action == null )
action = 'view.x2ps';
var old;
var sid = f.SYS_ID;
if( sysId ){
old = sid.value;
sid.value = sysId;
}
f.BUTTON_ID.value = button;
f.action = action;
f.submit( );
if( sysId )
sid.value = old;
return false;
}
function getAction( action )
{
disableButtons( );
var l = window.location;
l.href = action;
}
function int( v )
{
return parseInt( v );
}
function double( v )
{
return parseFloat( v );
}
function ceiling( v )
{
return Math.ceil( toDouble( v ) );
}
function floor( v )
{
return Math.floor( toDouble( v ) );
}
function toDouble( v )
{
var t = typeof( v );
if( t == 'number' )
return v;
if( t != 'string' )
v = '' + v;
return parseFloat( v.replace( /[,]+/g, '' ) );
}
function minDouble( x, y )
{
x = toDouble( x );
y = toDouble( y );
if( x > y )
return y;
return x;
}
function maxDouble( x, y )
{
x = toDouble( x );
y = toDouble( y );
if( x > y )
return x;
return y;
}
function modFunction( x, y )
{
return toDouble( x ) % toDouble( y );
}
function DecimalFormat( s )
{
if( s == null || s == '' )
s = page_numberFormat;
var d = s.indexOf( '.' ) + 1;
var l = s.length;
if( d > 0 ){
var x = d;
while( x < l && s.charAt( x ) == '0' )
++x;
this.minDecimals = x - d;
x = l - d;
this.maxDecimals = x;
var a = '0.';
while( --x >= 0 )
a += '0';
a += '5';
this.roundAdd = parseFloat( a );
l = d - 1;
}
else{
this.roundAdd = 0.5;
this.minDecimals = 0;
this.maxDecimals = 0;
}
var x = l;
var g = -1;
var t = 0;
var f = true;
while( --x >= 0 ){
var c = s.charAt( x );
if( c == ',' ){
if( g < 0 )
g = l - x - 1;
}
else if( c == '0' ){
if( f )
++t;
}
else if( c == '#' )
f = false;
else
break;
}
if( x > 0 )
this.prefix = s.substring( 0, x );
this.minTens = t;
this.grouping = g;
this.groupingChar = ','; // how to get this right?
this.format = function format( s )
{
var v = toDouble( s );
if( isNaN( v ) )
return formatNaN( v );
if( !isFinite( v ) )
return formatInfinity( v );
if( v < 0 )
v -= this.roundAdd;
else
v += this.roundAdd;
s = '' + v;
var i = s.indexOf( '.' );
if( i < 0 )
i = s.length;
else{
var l = i + this.maxDecimals;
var e = i + this.minDecimals;
while( l > e && s.charAt( l ) == '0' )
--l;
if( l == i )
s = s.substring( 0, l );
else
s = s.substring( 0, l + 1 );
}
var g = this.grouping;
if( g >= i || v < 0 && g + 1 >= 0 )
return s;
var gc = this.groupingChar;
var t = g;
while( --i > 0 ){
if( --g == 0 )
s = s.substring( 0, i ) + gc + s.substring( i );
}
return s;
}
}
function formatNaN( v )
{
return 'NaN';
}
function formatInfinity( v )
{
return v > 0 ? 'Infinity' : '-Infinity';
}
function formatNumber( n, f )
{
var fs = '_fs' + f;
var formatter = this[ fs ];
if( formatter == null ){
formatter = new DecimalFormat( f );
this[ fs ] = formatter;
}
return formatter.format( n );
}
function strlen( v )
{
if( v == null )
return 0;
if( typeof( v ) == 'string' )
return v.length;
v = '' + v;
return v.length;
}
function stringToDate( date )
{
var i = date.indexOf( ' ' );
if( i > 0 )
date = date.substring( 0, i );
return getDateFromFormat( date + ' 00:00:00', 'M/d/yyyy HH:mm:ss' )
}
function incrDateByDays( date, days )
{
var d = stringToDate( date ) + days * 24 * 60 * 60 * 1000 + 2 * 60 * 60 * 1000;
return formatDate( _formatDate( new Date( d ), 'xs:date' ), 'MM/dd/yyyy' );
}
function dateCompare( x, y )
{
x = stringToDate( x );
y = stringToDate( y );
if( x > y )
return 1;
else if( y > x )
return -1;
return 0;
}
function isEmptyValue( s )
{
return s == null || typeof( s ) == 'string' && s == '' || s == ' ' || typeof( s ) == 'number' && isNaN( s );
}
function addValueRange( array, name, from, to, postfix )
{
if( postfix )
name += postfix;
var f = eval( 'get_' + name + '_WithIndex' );
var sum = 0;
while( from < to ){
sum += toDouble( f( from ) );
++from;
}
return sum;
}
function averageValue( array, name, from, to, count, postfix )
{
if( postfix )
name += postfix;
var f = eval( 'get_' + name + '_WithIndex' );
var c = 0;
var sum = 0;
while( from < to && count > 0 ){
var v = f( from );
if( !isNaN( v ) ){
sum += toDouble( v );
++c;
}
++from;
--count;
}
if( c > 0 )
return sum / c;
return 'x' - 0;
}
function isValidValue( )
{
var l = arguments.length;
var v = arguments[ 0 ];
for( var i = 1; i < l; ++i )
if( arguments[ i ] == v )
return true;
return false;
}
function getFirstChild( xml )
{
return xml.firstChild;
}
function getChild( name, xml )
{
var children = xml.childNodes;
var l = children.length;
for( var i = 0; i < l; ++i ){
var c = children[ i ];
if( c.nodeName == name )
return c;
}
return null;
}
function getValueAttribute( xml )
{
var a = xml.attributes;
var l = a.length;
while( --l >= 0 ){
var x = a[ l ];
if( x.name == 'Value' )
return x.value;
}
return null;
}
function getAttribute( name, xml )
{
var a = xml.attributes;
if( a ){
var l = a.length;
while( --l >= 0 ){
var x = a[ l ];
if( x.name == name )
return x.value;
}
}
return null;
}
function isErrorResponse( xml )
{
var c = xml.firstChild;
return c == null || getAttribute( 'Status', c ) == 'Error';
}
function addChangeHighlight( name, index )
{
var remove;
if( index >= 0 ){
var s = eval( 'set_' + name + '_StyleWithIndex' );
s( index, 'backgroundColor', 'orange' );
remove = 'removeChangeHighlight( \'' + name + '\', ' + index + ' )';
}
else{
var s = eval( 'set_' + name + '_Style' );
s( 'backgroundColor', 'orange' );
remove = 'removeChangeHighlight( \'' + name + '\' )';
}
setTimeout( remove, 15000 );
}
function removeChangeHighlight( name, index )
{
if( index >= 0 ){
var s = eval( 'set_' + name + '_StyleWithIndex' );
s( index, 'backgroundColor', null );
}
else{
var s = eval( 'set_' + name + '_Style' );
s( 'backgroundColor', null );
}
}
function updateNewValues( xml, postfixCallback, highlight )
{
xml = xml.firstChild;
var children = xml.childNodes;
var l = children.length;
var i = 0;
var postfix = '';
var changed = false;
while( i < l ){
var child = children[ i++ ];
var name = child.nodeName;
var value = getValueAttribute( child );
if( name == 'UPDATE_NBR' ){
var set = eval( 'set_UPDATE_NBR' + postfix );
set( value );
}
else if( name == 'UPDATE_ID' ){
if( postfixCallback )
postfix = postfixCallback( value );
}
else if( name == 'UPDATE_ARRAY' ){
var data = child.childNodes;
var dl = data.length;
for( var j = 0; j < dl; ++j ){
var values = data[ j ].childNodes;
var vl = values.length;
for( var x = 0; x < vl; ++x ){
child = values[ x ];
name = child.nodeName;
value = getValueAttribute( child );
var get = eval( 'get_' + name + postfix + '_WithIndex' );
var set = eval( 'set_' + name + postfix + '_WithIndex' );
var old = get( j );
set( j, value );
if( highlight && old != get( j ) ){
addChangeHighlight( name + postfix, j );
changed = true;
}
}
}
}
else{
var get = eval( 'get_' + name + postfix );
var set = eval( 'set_' + name + postfix );
var old = get( );
set( value );
if( highlight && old != get( ) ){
addChangeHighlight( name + postfix );
changed = true;
}
}
}
return changed;
}
function hideTableColumn( tbl, i )
{
tbl.children[ 0 ].children[ i ].style.display = 'none';
}
function showTableColumn( tbl, i )
{
tbl.children[ 0 ].children[ i ].style.display = '';
}
var _configuredTableId;
var _configuredTableConfigurationId;
var _configuredTablePostfixed;
var _configuredTablePostfixFlag = new function f( ) { };
function getConfiguredTableId( )
{
return _configuredTableId;
}
function getConfiguredTableConfigurationId( )
{
return _configuredTableConfigurationId;
}
function getConfiguredTableConfiguration( )
{
return eval( 'tableConfiguration_' + _configuredTableId + '( )' );
}
function isConfiguredTablePostfixed( )
{
return _configuredTablePostfixed;
}
function setConfiguredTablePostfixed( tableId, flag )
{
_configuredTablePostfixFlag[ tableId ] = flag;
}
var _configureTableButtonIds = new Object( );
function setConfigureTableButtonId( tableId, buttonId )
{
_configureTableButtonIds[ tableId ] = buttonId;
}
function ui_configureTableV2( tableId, buttonId )
{
if( buttonId == null )
buttonId = _configureTableButtonIds[ tableId ];
if( buttonId == null )
buttonId = 'SYS_RELOAD';
_configuredTableId = tableId;
_configuredTableConfigurationId = eval( 'tableConfigurationId_' + tableId + '( )' );
_configuredTablePostfixed = _configuredTablePostfixFlag[ tableId ] == true;
var d = new Date( );
var x = showDialog( omxContextPath + '/start.x2ps?SERVICE_NAME=UI&POPUP=true&START_WORKFLOW=ConfigureTable&DUMMY=' + d.getTime( ), 750, 400 );
var sid = document.form.SYS_ID;
if( x == 'submit' )
{
if( sid != null )
setTimeout( function (){ submitAction( buttonId ); }, 1 );
else
history.go(0);
}
}
function getInvertTableHeaderWidthById( tableId )
{
var tbl = document.getElementById( tableId + '_syncslave' );
return tbl.offsetWidth;
}
function setInvertTableHeaderWidthById( tableId, width )
{
var tbl = document.getElementById( tableId + '_syncslave' );
tbl.style.width = width;
}
function getInvertTableDataWidthById( tableId )
{
var tbl = document.getElementById( tableId + '_syncmaster' );
return tbl.offsetWidth;
}
function setInvertTableDataWidthById( tableId, width )
{
var tbl = document.getElementById( tableId + '_syncmaster' );
tbl.style.width = width;
}
function setInvertScroller( id, func )
{
var s = getInvertScroller( id );
s.onscroll = func;
}
function getInvertScroller( id )
{
if( false && isV2( ) )
return document.getElementById( id + '_div' );
return document.getElementById( id + '_syncmaster_scroller' );
}
function getScrollerTableId( scroller )
{
var id = scroller.id;
return id.substring( 0, id.length - 20 );
}
function invertScroll( scroller, left, top )
{
if( top >= 0 )
scroller.scrollTop = top;
else
top = scroller.scrollTop;
if( left >= 0 )
scroller.scrollLeft = left;
else
left = scroller.scrollLeft;
if( false && isV2( ) )
return;
var id = getScrollerTableId( scroller );
var x = document.getElementById( id + '_syncmaster_header_scroller' );
x.scrollTop = top;
x.scrollLeft = left;
x = document.getElementById( id + '_syncslave_scroller' );
x.scrollTop = top;
}
function invertScrollById( id )
{
invertScroll( getInvertScroller( id ) );
}
function getScrollerLeft( scroller )
{
return scroller.scrollLeft;
}
function getScrollerTop( scroller )
{
return scroller.scrollTop;
}
function getContentToggler( tableId )
{
if( isV2( ) )
return document.getElementById( tableId ).rows[ 0 ].cells[ 0 ].children[ 0 ];
return document.getElementById( tableId ).rows[ 0 ].cells[ 0 ].children[ 0 ].rows[ 0 ].cells[ 0 ].children[ 0 ];
}
function setCollapseTogglerByTableId( tableId, func )
{
var img = getContentToggler( tableId );
img.onclick = func;
}
function setCollapseToggler( obj, func )
{
obj.onclick = func;
}
function isCollapsed( tbl )
{
return tbl.rows[ 1 ].parentNode.style.display == 'none';
}
function toggleContent( obj )
{
i2uiToggleContent( obj, 2 );
var t = getContentTogglerTable( obj );
return isCollapsed( t );
}
function getContentTogglerTable( obj )
{
return obj.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
}
var _toggleCollapsableRowsCallback = true;
function toggleCollapsableRowsCallback( tableId, imgPostfix )
{
}
function toggleCollapsableRowsV2( img )
{
var td = img.parentNode;
var skip = td.skip;
var rc = td.collapseRowCount;
var tr = td.parentNode;
var src;
var hidden = td.children[ 0 ];
var change;
var state = tr.collapsed;
if( state == 'true' ){
tr.collapsed = 'false';
hidden.value = 'false';
src = 'minus_norgie.gif';
change = 1;
}
else{
tr.collapsed = 'true';
hidden.value = 'true';
src = 'plus_norgie.gif';
change = -1;
}
var s = img.src;
var i = s.lastIndexOf( '/' );
if( i < 0 )
img.src = src;
else
img.src = s.substring( 0, i + 1 ) + src;
var tbl = tr.parentNode.parentNode;
var mtbl = null;
var rows = tbl.rows;
var id = tbl.id;
var i = id.indexOf( '_syncslave_data' );
var mrows = null;
var drows = null;
if( i > 0 ){
id = id.substring( 0, i );
mtbl = document.getElementById( id + '_syncmaster_data' );
mrows = mtbl.rows;
}
else{
i = id.indexOf( '_syncslave' );
if( i > 0 ){
id = id.substring( 0, i );
mrows = document.getElementById( id + '_syncmaster' ).rows;
}
else
{
//added for freeze table
i = id.indexOf( '_data' );
if( i > 0 ){
id = id.substring( 0, i );
dragTableId = id.substring( 0, i-1 );
if ( document.getElementById( dragTableId + '_data' ) != null )
{
drows = document.getElementById( dragTableId + '_data' ).rows;
}
if ( document.getElementById( id + '_freeze_syncmaster_data' ) != null )
{
mrows = document.getElementById( id + '_freeze_syncmaster_data' ).rows;
}
}
}
}
var trIndex = tr.rowIndex;
if (skip > 1)
{
trIndex += skip - 1;
}
while( --rc >= 0 ){
var r = rows[ ++trIndex ];
var l = r.lvl -= change;
var display = l > 0 ? 'none' : '';
r.style.display = display;
if( mrows )
mrows[ trIndex ].style.display = display;
if( drows )
drows[ trIndex ].style.display = display;
}
if( _toggleCollapsableRowsCallback ){
_toggleCollapsableRowsCallback = false;
toggleCollapsableRowsCallback( id, img.id.substring( id.length ) );
_toggleCollapsableRowsCallback = true;
}
if( mtbl )
alignRowHeights( mtbl, tbl );
onResize( );
}
function toggleCollapsableRowsByImgId( id )
{
toggleCollapsableRowsV2( document.getElementById( id ) );
}
function toggleCollapsableRowsByImgName( name )
{
var treeCellImgs = document.getElementsByName( name );
for (k = 0; k < treeCellImgs.length; k++)
{
toggleCollapsableRowsV2(treeCellImgs[k]);
}
}
function getDropdownById( id )
{
return document.getElementById( id );
}
function dropdownEmptyOption( )
{
return new Option( ' ', 0 );
}
function dropdownFixWidth( dd )
{
var x = dd.options;
x[ x.length ] = dropdownEmptyOption( );
setTimeout( function f( ){ dropdownDeleteEmpty( dd ) }, 0 );
}
function dropdownDeleteEmpty( dd )
{
var e = dropdownEmptyOption( );
var x = dd.options;
var l = x.length;
while( --l >= 0 ){
if( x[ l ].value == e.value )
x[ l ] = null;
}
}
function dropdownAddOption( dd, id, text )
{
var x = dd.options;
var y = new Option( text, id );
x[ x.length ] = y;
return y;
}
function dropdownCopyAll( from, to, attr, condf )
{
var fl = from.length;
var tl = to.length;
if( condf ){
var fl = from.length;
var tl = to.length;
var l = 0;
for( var i = 0; i < fl; ++i ){
var f = from[ i ];
if( condf( f ) ){
var o = new Option( f.text, f.value );
copyOptionAttributes( o, f, attr );
to[ tl ] = o;
to[ tl++ ].selected = true;
from[ i ] = null;
--i;
--fl;
}
}
}
else{
for( var i = 0; i < fl; ++i ){
var f = from[ i ];
var o = new Option( f.text, f.value );
copyOptionAttributes( o, f, attr );
to[ tl ] = o
to[ tl++ ].selected = true;
}
from.length = 0;
}
}
function dropdownCopySelected( from, to )
{
from = from.options;
to = to.options;
var fl = from.length;
var tl = to.length;
for( var i = 0; i < fl; ++i ){
var f = from[ i ];
if( f.selected ){
to[ tl ] = new Option( f.text, f.value );
to[ tl++ ].selected = true;
}
}
dropdownDeleteSelected( from );
}
function dropdownCopySelectedBlocks( from, to, attr, condf )
{
from = from.options;
to = to.options;
var fl = from.length;
var tl = to.length;
var copy = false;
for( var i = 0; i < fl; ++i ){
var f = from[ i ];
if( condf( f ) ){
if( f.selected ){
var o = new Option( f.text, f.value );
copyOptionAttributes( o, f, attr );
to[ tl ] = o;
to[ tl++ ].selected = true;
copy = true;
}
else
copy = false;
}
else if( copy ){
var o = new Option( f.text, f.value );
copyOptionAttributes( o, f, attr );
to[ tl++ ] = o;
}
}
dropdownDeleteSelectedBlocks( from, condf );
}
function dropdownDeleteSelected( dd )
{
var x = dd.options;
var l = x.length;
while( --l >= 0 )
if( x[ l ].selected )
x[ l ] = null;
}
function dropdownDeleteSelectedBlocks( dd, condf )
{
var x = dd.options;
var l = x.length;
var i = 0;
var remove = false;
while( i < l ){
var o = x[ i ];
if( condf( o ) ){
if( x[ i ].selected ){
x[ i ] = null;
remove = true;
--l;
}
else{
remove = false;
++i;
}
}
else if( remove ){
x[ i ] = null;
--l;
}
else
++i;
}
}
function dropdownClearAll( dd )
{
var x = dd.options;
var l = x.length;
while( --l >= 0 )
x[ l ].selected = false;
}
function dropdownAnySelected( dd, condf )
{
var x = dd.options;
var l = x.length;
while( --l >= 0 ){
var o = x[ l ];
if( o.selected && ( condf == null || condf( o ) ) )
return true;
}
return false;
}
function copyOptionStyle( to, from )
{
var fs = from.style;
var ts = to.style;
var t = fs.color;
if( t )
ts.color = t
t = from.backgroundColor;
if( t )
ts.backgroundColor = t;
}
function copyOptionAttributes( to, from, attr )
{
if( attr ){
if( typeof( attr ) == 'object' ){
var c = attr.length;
while( --c >= 0 ){
var z = attr[ c ];
to[ z ] = from[ z ];
}
}
else
to[ attr ] = from[ attr ];
}
}
function dropdownMoveUp( dd, attr, condf )
{
var v = dd.options;
var l = v.length;
var e = 0;
var t = null;
for( var i = 0; i <= l; ++i ){
var x = i < l ? v[ i ] : null;
if( x && x.selected && ( condf == null || condf( x ) ) ){
var p = i - 1;
var o = new Option( x.text, x.value );
o.selected = true;
copyOptionStyle( o, x );
copyOptionAttributes( o, x, attr );
v[ p ] = o;
}
else{
if( t && e < i ){
var o = new Option( t.text, t.value );
copyOptionStyle( o, t );
copyOptionAttributes( o, t, attr );
v[ i - 1 ] = o;
}
t = x;
e = i + 1;
}
}
}
function dropdownMoveDown( dd, attr, condf )
{
var v = dd.options;
var l = v.length;
var e = 0;
var t = null;
while( l-- >= 0 ){
var x = l < 0 ? null : v[ l ];
if( x && x.selected && ( condf == null || condf( x ) ) ){
var p = l + 1;
var o = new Option( x.text, x.value );
copyOptionStyle( o, x );
copyOptionAttributes( o, x, attr );
o.selected = true;
v[ p ] = o;
}
else{
if( t && e > l ){
var o = new Option( t.text, t.value );
copyOptionStyle( o, t );
copyOptionAttributes( o, t, attr );
v[ l + 1 ] = o;
}
t = x;
e = l - 1;
}
}
}
function dropdownMoveUpBlocks( dd, attr, condf )
{
var v = dd.options;
var l = v.length;
var array = new Array( );
var from = 0;
var to = 0;
var upto = 0;
var move = false;
for( var i = 0; i < l; ++i ){
var x = v[ i ];
var bl = condf( x );
if( bl <= 0 ){
if( bl == 0 && x.selected ){
array[ to++ ] = x;
move = true;
}
else{
while( from < upto )
array[ to++ ] = v[ from++ ];
if( move )
from = i;
move = false;
upto = i + 1;
}
}
else if( move )
array[ to++ ] = x;
else
++upto;
}
while( from < l )
array[ to++ ] = v[ from++ ];
for( var i = 0; i < l; ++i ){
var t = array[ i ];
var o = new Option( t.text, t.value );
copyOptionStyle( o, t );
copyOptionAttributes( o, t, attr );
if( t.selected )
o.selected = true;
v[ i ] = o;
}
}
function dropdownMoveDownBlocks( dd, attr, condf )
{
var v = dd.options;
var l = v.length;
var array = new Array( );
var from = 0;
var to = 0;
var upto = 0;
var move = true;
for( var i = 0; i < l; ++i ){
var x = v[ i ];
var bl = condf( x );
if( bl <= 0 ){
if( bl == 0 && x.selected ){
move = false;
upto = i + 1;
}
else{
if( move ){
while( from < upto )
array[ to++ ] = v[ from++ ];
++from;
}
array[ to++ ] = x;
move = true;
}
}
else if( move ){
if( from >= upto )
++from;
array[ to++ ] = x;
}
else
++upto;
}
while( from < l )
array[ to++ ] = v[ from++ ];
for( var i = 0; i < l; ++i ){
var t = array[ i ];
var o = new Option( t.text, t.value );
copyOptionStyle( o, t );
copyOptionAttributes( o, t, attr );
if( t.selected )
o.selected = true;
v[ i ] = o;
}
}
function dropdownSelectAll( dd )
{
var x = dd.options;
var l = x.length;
while( --l >= 0 )
x[ l ].selected = true;
}
function dropdownGetPostData( dd, all )
{
var s = null;
var id = dd.name;
var x = dd.options;
var l = x.length;
for( var i = 0; i < l; ++i ){
var t = x[ i ];
if( all || t.selected ){
t = id + '=' + t.value;
if( s )
s += '&' + t;
else
s = t;
}
}
return s;
}
function toggleOnClickButtonImg( buttonImg, state, active, inactive )
{
if( buttonImg.disabled ){
if( state == 'disabled' )
return;
buttonImg.removeAttribute( 'disabled' );
buttonImg.style.cursor = 'hand';
var td = buttonImg.parentNode.parentNode;
td.className = 'buttonText';
td.id = 'buttonRegular';
td.parentNode.parentNode.parentNode.className = 'buttonBorder';
if( active )
buttonImg.src = buttonImg.src.replace(/[/][^/]*$/, '/' + active );
}
else{
if( state == 'enabled' )
return;
buttonImg.disabled = true;
buttonImg.style.cursor = '';
var td = buttonImg.parentNode.parentNode;
td.className = 'buttonTextDisabled';
td.id = 'buttonDisabled';
td.parentNode.parentNode.parentNode.className = 'buttonBorderDisabled';
if( inactive )
buttonImg.src = buttonImg.src.replace(/[/][^/]*$/, '/' + inactive );
}
}
var _callStepScrollCallback = true;
function stepScrollCallback( tableId, current, count, length, step )
{
}
function stepScrollButtonStates( tableId, current, count, length )
{
var state = current > 0 ? 'enabled' : 'disabled';
toggleOnClickButtonImg( document.getElementById( tableId + '_STEP_FIRST' ), state, 'page_to_beginning.gif', 'page_to_beginning_inact.gif' );
toggleOnClickButtonImg( document.getElementById( tableId + '_STEP_PREV' ), state, 'previous_active.gif', 'previous_inactive.gif' );
state = current < length - count ? 'enabled' : 'disabled';
toggleOnClickButtonImg( document.getElementById( tableId + '_STEP_NEXT' ), state, 'next_active.gif', 'next_inactive.gif' );
toggleOnClickButtonImg( document.getElementById( tableId + '_STEP_LAST' ), state, 'page_to_end.gif', 'page_to_end_inact.gif' );
}
function stepScrollFirst( tableId )
{
var start = document.getElementById( tableId + '_STEP_START' );
var count = document.getElementById( tableId + '_STEP_COUNT' );
var tbl = document.getElementById( tableId + '_syncmaster' );
var s = start.value;
var c = parseInt( count.value );
var l = tbl.rows[ 0 ].cells.length
while( --s >= 0 ){
hideTableColumn( tbl, s + c );
showTableColumn( tbl, s );
}
start.value = 0;
stepScrollButtonStates( tableId, s, c, l );
if( _callStepScrollCallback ){
_callStepScrollCallback = false;
stepScrollCallback( tableId, s, c, l, 'first' );
_callStepScrollCallback = true;
}
}
function stepScrollPrevious( tableId )
{
var start = document.getElementById( tableId + '_STEP_START' );
var count = document.getElementById( tableId + '_STEP_COUNT' );
var tbl = document.getElementById( tableId + '_syncmaster' );
var s = --start.value;
var c = parseInt( count.value );
var l = tbl.rows[ 0 ].cells.length
hideTableColumn( tbl, s + c );
showTableColumn( tbl, s );
stepScrollButtonStates( tableId, s, c, l );
if( _callStepScrollCallback ){
_callStepScrollCallback = false;
stepScrollCallback( tableId, s, c, l, 'previous' );
_callStepScrollCallback = true;
}
}
function stepScrollNext( tableId )
{
var start = document.getElementById( tableId + '_STEP_START' );
var count = document.getElementById( tableId + '_STEP_COUNT' );
var tbl = document.getElementById( tableId + '_syncmaster' );
var s = ++start.value;
var c = parseInt( count.value );
var l = tbl.rows[ 0 ].cells.length
hideTableColumn( tbl, s - 1 );
showTableColumn( tbl, s + c - 1 );
stepScrollButtonStates( tableId, s, c, l );
if( _callStepScrollCallback ){
_callStepScrollCallback = false;
stepScrollCallback( tableId, s, c, l, 'next' );
_callStepScrollCallback = true;
}
}
function stepScrollLast( tableId )
{
var start = document.getElementById( tableId + '_STEP_START' );
var count = document.getElementById( tableId + '_STEP_COUNT' );
var tbl = document.getElementById( tableId + '_syncmaster' );
var s = parseInt( start.value );
var c = parseInt( count.value );
var l = tbl.rows[ 0 ].cells.length
var e = l - c;
while( s < e ){
hideTableColumn( tbl, s );
showTableColumn( tbl, s + c );
++s;
}
start.value = e;
stepScrollButtonStates( tableId, s, c, l );
if( _callStepScrollCallback ){
_callStepScrollCallback = false;
stepScrollCallback( tableId, s, c, l, 'last' );
_callStepScrollCallback = true;
}
}
function stepScroll( tableId, step )
{
if( step == 'first' )
stepScrollFirst( tableId );
else if( step == 'previous' )
stepScrollPrevious( tableId );
else if( step == 'next' )
stepScrollNext( tableId );
else if( step == 'last' )
stepScrollLast( tableId );
}
function getPageNameByWindow( w )
{
return w.document.form.PAGE_NAME.value;
}
function getInvertTableInputIndex( t )
{
var td = t.parentNode;
var r = td.parentNode;
var cells = r.cells;
var l = cells.length;
while( --l >= 0 )
if( cells[ l ] == td )
return l;
return -1;
}
function getTableInputIndex( t )
{
var tr = t.parentNode.parentNode;
var tbl = tr.parentNode;
while( tbl.tagName != 'TABLE' )
tbl = tbl.parentNode;
var offset = -1;
var id = tbl.id;
var x = id.length;
if( x > 5 && id.substring( x - 5 ) == '_data' ){
var p = tbl.parentNode;
if( p && p.tagName == 'DIV' )
offset = 0;
}
var rows = tbl.rows;
var l = rows.length;
while( --l >= 0 )
if( rows[ l ] == tr )
return l + offset;
return -1;
}
function stripHTMLTags( v )
{
if( typeof( v ) == 'string' && ( z = v.indexOf( '<' ) ) >= 0 ){
for(;;){
var e = v.indexOf( '>', z );
if( z > 0 )
v = v.substring( 0, z ) + ' ' + v.substring( e + 1 );
else
v = v.substring( e + 1 );
z = v.indexOf( '<', z );
if( z < 0 )
break;
}
}
return v;
}
function replaceValues( v, vs )
{
if( typeof( v ) == 'string' ){
var o = v;
var l = vs.length;
for( var i = 0; i < l; i += 2 )
v = v.replace( vs[ i ], vs[ i + 1 ] );
if( o == v )
return v;
}
return v;
}
function isColumnExcluded( c, cs )
{
if( cs == null )
return false;
var l = cs.length;
while( --l >= 0 )
if( c == cs[ l ] )
return true;
return false;
}
function tableToXML( tableId, postfix, rootName, nodeName, full, stripHTML, replaceVs )
{
var c = getXMLCreator( );
var xml = c.createElement( rootName );
var rc = new Array( );
var rcn = new Array( );
var rcdn = new Array( );
var rcti = new Array( );
if( postfix == null )
postfix = '';
else
postfix = '' + postfix;
var pfLen = postfix.length;
var configuration = eval( 'tableConfiguration_' + tableId + postfix )( );
var l = configuration.length - 4;
for( var i = 0; i < l; i += 4 ){
var v = configuration[ i + 2 ];
if( v >= 0 || full ){
var n = configuration[ i ];
rc[ rc.length ] = eval( 'get_' + n + '_WithIndex' );
if( pfLen > 0 )
n = n.substring( 0, n.length - pfLen );
rcn[ rcn.length ] = n;
rcdn[ rcdn.length ] = configuration[ i + 1 ];
rcti[ rcti.length ] = eval( 'get_' + n + '_TableIndex' )( );
}
}
var rcl = rc.length;
var cid = eval( 'tableContainerId_' + tableId + postfix )( );
var tdf = eval( 'getTD_' + cid );
var l = eval( 'tableLength_' + cid )( );
for( var i = 0; i < l; ++i ){
var node = c.createElement( nodeName );
xml.appendChild( node );
for( var j = 0; j < rcl; ++j ){
var n = c.createElement( rcn[ j ] );
var dn = rcdn[ j ];
if( stripHTML ){
dn = dn.replace( /\[:/, '<' )
dn = dn.replace( /:\]/, '>' )
if( replaceVs )
dn = replaceValues( dn, replaceVs );
dn = stripHTMLTags( dn );
}
n.setAttribute( 'Name', dn );
var v = rc[ j ]( i );
if( replaceVs )
v = replaceValues( v, replaceVs );
if( stripHTML )
v = stripHTMLTags( v );
n.setAttribute( 'Value', isEmptyValue( v ) ? '' : v );
var ti = rcti[ j ];
if( ti >= 0 ){
var td = tdf( ti, i );
var st = td.style.cssText;
if( st.length > 0 )
n.setAttribute( 'Style', st );
}
node.appendChild( n );
}
}
return xml;
}
function tableToXMLByRows( tableId, postfix, full, stripHTML, replaceVs, excludedColumns )
{
var c = getXMLCreator( );
var xml = c.createElement( 'ROWS' );
if( postfix == null )
postfix = '';
else
postfix = '' + postfix;
var pfLen = postfix.length;
var cid = eval( 'tableContainerId_' + tableId + postfix )( );
var tdf = eval( 'getTD_' + cid );
var tl = eval( 'tableLength_' + cid )( );
var configuration = eval( 'tableConfiguration_' + tableId + postfix )( );
var l = configuration.length - 4;
for( var i = 0; i < l; i += 4 ){
var v = configuration[ i + 2 ];
if( v >= 0 || full ){
var n = configuration[ i ];
if( pfLen > 0 )
n = n.substring( 0, n.length - pfLen );
if( isColumnExcluded( n, excludedColumns ) )
continue;
var node = c.createElement( 'ROW' );
xml.appendChild( node );
node.setAttribute( 'Name', n );
var dn = configuration[ i + 1 ];
if( stripHTML ){
dn = dn.replace( /\[:/, '<' )
dn = dn.replace( /:\]/, '>' )
if( replaceVs )
dn = replaceValues( dn, replaceVs );
dn = stripHTMLTags( dn );
}
node.setAttribute( 'DisplayText', dn );
var df = eval( 'get_' + n + postfix + '_WithIndex' );
var ti = eval( 'get_' + n + postfix + '_TableIndex' )( );
for( var j = 0; j < tl; ++j ){
var n = c.createElement( 'CELL' );
node.appendChild( n );
var v = df( j );
if( replaceVs )
v = replaceValues( v, replaceVs );
if( stripHTML )
v = stripHTMLTags( v );
n.setAttribute( 'Value', isEmptyValue( v ) ? '' : v );
if( ti >= 0 ){
var td = tdf( ti, j );
var st = td.style.cssText;
if( st.length > 0 )
n.setAttribute( 'Style', st );
}
}
}
}
return xml;
}
function addToXML( ids, postfix, xml )
{
var c = getXMLCreator( );
if( postfix == null )
postfix = '';
else
postfix = '' + postfix;
if( typeof( ids ) == 'string' ){
var n = c.createElement( ids );
var v = eval( 'get_' + ids + postfix )( );
n.setAttribute( 'Value', isEmptyValue( v ) ? '' : v );
xml.appendChild( n );
}
else{
var l = ids.length;
for( var i = 0; i < l; ++i ){
var t = ids[ i ];
var n = c.createElement( t );
var v = eval( 'get_' + t + postfix )( )
n.setAttribute( 'Value', isEmptyValue( v ) ? '' : v );
xml.appendChild( n );
}
}
}
function showExcelDocument( name, windowName )
{
if( windowName == null )
windowName = 'excel';
var s = omxContextPath;
if( name )
s += '/' + name;
else
s += '/ExcelServlet';
s += '?EXCEL_DOWNLOAD=TRUE&StreamName=cpm_xsl_transform_result';
return window.open( s, windowName, 'menubar=yes, scrollbars=yes, resizable=yes' );
}
function VariableContainer( )
{
}
var _variables = new VariableContainer( );
function test_date_range(from,to,datatype)
{
var x = document.getElementsByName(from);
var y = document.getElementsByName(to);
var fromDate = x[0].value;
var toDate = y[0].value;
validation_clearMessages('search');
if ( isValid_field(from,null) && isValid_field(to,null) )
{
if(toDate != null && toDate != '' && fromDate != null && fromDate != '')
{
var dateFormat = datatype == 'DateTime' ? datatype : null;
var result = datecompare(fromDate, dateFormat, toDate, dateFormat);
if(result > 0)
{
core_alert('From Date greater than To Date');
y[0].value = x[0].value;
}
}
}
else
{
onResize();
return;
}
}
/* Use for number range validation */
function validRange(numericInput)
{
var value = numericInput.value.trim() == "" ? null : numericInput.value;
var minValue = new Number(numericInput.minValue);
var maxValue = new Number(numericInput.maxValue);
var msg = null;
if (value == null)
{
msg = "No value present.";
clearRangeError(numericInput);
}
else if (value < minValue)
{
fieldValidator = getRangeValidator(numericInput);
msg = fieldValidator.minMessage;
displayRangeError(numericInput, msg);
}
else if (value > maxValue)
{
fieldValidator = getRangeValidator(numericInput);
msg = fieldValidator.maxMessage;
displayRangeError(numericInput, msg);
}
else
{
// Clear error display
clearRangeError(numericInput);
}
}
function getRangeValidator(numericInput)
{
var parent = numericInput.parentElement
var childLen = parent.childNodes.length;
var i;
for(i = 0; i < childLen; i++)
{
fieldValidator = parent.childNodes[i];
if (fieldValidator.nodeName == 'SPAN')
{
if (fieldValidator.type == 'valid-range-validator')
{
return fieldValidator;
}
}
}
return null;
}
function displayRangeError(numericInput, msg)
{
var fieldValidator = getRangeValidator(numericInput);
if (fieldValidator != null)
{
fieldValidator.style.display = "";
fieldValidator.style.visibility = "visible";
fieldValidator.message = msg;
var validatorImg = getRangeImg(fieldValidator);
if (validatorImg != null)
{
validatorImg.alt = msg;
}
numericInput.focus();
numericInput.select();
}
}
function getRangeImg(fieldValidator)
{
var numFieldValidatorChildren = fieldValidator.childNodes.length;
for (k=0; k 0 ){
begin.style.cursor = 'hand';
left.style.cursor = 'hand';
begin.src = omxContextPath + '/page_to_beginning.gif';
left.src = omxContextPath + '/previous_active.gif';
}
else{
begin.style.cursor = 'default';
left.style.cursor = 'default';
begin.src = omxContextPath + '/page_to_beginning_inact.gif';
left.src = omxContextPath + '/previous_inactive.gif';
}
if( endScroll > 0 ){
right.style.cursor = 'hand';
end.style.cursor = 'hand';
right.src = omxContextPath + '/next_active.gif';
end.src = omxContextPath + '/page_to_end.gif';
}
else{
right.style.cursor = 'default';
end.style.cursor = 'default';
right.src = omxContextPath + '/next_inactive.gif';
end.src = omxContextPath + '/page_to_end_inact.gif';
}
}
function resizeTabsetScroller( table, w )
{
if ( isV1() )
return;
if( w < 0 )
w = document.body.clientWidth;
var cells = table.rows[ 0 ].cells;
var cl = cells.length;
var filler = cells[ cl - 10 ];
var first = 0;
var last = cl - 10;
var cw = 0;
for( var j = 0; j < last; ++j ){
var c = cells[ j ];
c.style.display = '';
cw += c.offsetWidth;
if( ( j & 3 ) == 3 ){
c.totalWidth = cw;
cw = 0;
}
}
while( ++j < cl )
cells[ j ].style.display = 'none';
if( filler.offsetWidth > 0 && table.offsetWidth <= w )
return;
for( var j = last + 1; j < cl; ++j )
cells[ j ].style.display = '';
var endScroll = 0;
if( table.hasScrollerBegin == null ){
for( var j = 0; j < last; j += 4 ){
var c = cells[ j + 1 ];
if( c.id == 'tabSelected' ){
var e = j + 4;
while( ( filler.offsetWidth == 0 || table.offsetWidth > w ) && last > e ){
cells[ --last ].style.display = 'none';
cells[ --last ].style.display = 'none';
cells[ --last ].style.display = 'none';
cells[ --last ].style.display = 'none';
++endScroll;
}
while( filler.offsetWidth == 0 || table.offsetWidth > w ){
cells[ first++ ].style.display = 'none';
cells[ first++ ].style.display = 'none';
cells[ first++ ].style.display = 'none';
cells[ first++ ].style.display = 'none';
}
table.scrollerBegin = first;
break;
}
}
table.hasScrollerBegin = true;
}
var lt = table.scrollerBegin;
while( first < lt ){
cells[ first++ ].style.display = 'none';
cells[ first++ ].style.display = 'none';
cells[ first++ ].style.display = 'none';
cells[ first++ ].style.display = 'none';
}
while( filler.offsetWidth == 0 || table.offsetWidth > w ){
cells[ --last ].style.display = 'none';
cells[ --last ].style.display = 'none';
cells[ --last ].style.display = 'none';
cells[ --last ].style.display = 'none';
++endScroll;
}
table.endScroll = endScroll;
tabsetScrollerButtons( cells, lt, endScroll );
}
function moveTabsetScroller( table, gotolast )
{
var w = document.body.clientWidth;
var cells = table.rows[ 0 ].cells;
var cl = cells.length;
var filler = cells[ cl - 10 ];
var first = 0;
var last = cl - 10;
var j = 0;
while( j < last ){
cells[ j++ ].style.display = 'none';
cells[ j++ ].style.display = 'none';
cells[ j++ ].style.display = 'none';
cells[ j++ ].style.display = 'none';
}
var endScroll = 0;
if( gotolast ){
while( last > 0 ){
var c = cells[ --last ];
if( filler.offsetWidth < c.totalWidth )
break;
c.style.display = '';
cells[ --last ].style.display = '';
cells[ --last ].style.display = '';
cells[ --last ].style.display = '';
}
table.scrollerBegin = ++last;
}
else{
var first = table.scrollerBegin;
while( first < last ){
var c3 = cells[ first + 3 ];
if( filler.offsetWidth < c3.totalWidth )
break;
cells[ first++ ].style.display = '';
cells[ first++ ].style.display = '';
cells[ first++ ].style.display = '';
c3.style.display = '';
++first;
}
endScroll = ( last - first ) / 4;
}
table.endScroll = endScroll;
tabsetScrollerButtons( cells, table.scrollerBegin, endScroll );
}
function i2uiScrollTab( td, dir )
{
var table = td.parentNode.parentNode.parentNode;
if( dir == 'begin' ){
if( table.scrollerBegin > 0 ){
table.scrollerBegin = 0;
moveTabsetScroller( table );
}
}
else if( dir == 'left' ){
if( table.scrollerBegin > 0 ){
table.scrollerBegin -= 4;
moveTabsetScroller( table );
}
}
else if( dir == 'right' ){
var es = table.endScroll;
if( es > 0 ){
table.scrollerBegin += 4;
moveTabsetScroller( table );
}
}
else if( dir == 'end' ){
var es = table.endScroll;
if( es > 0 )
moveTabsetScroller( table, true );
}
}