You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1728 lines
58 KiB
1728 lines
58 KiB
|
|
//////////////////////////////
|
|
// FOR DEBUGGING ONLY
|
|
var debug = false;
|
|
function dumpFormFields(formName)
|
|
{
|
|
theForm = document.forms[formName];
|
|
for ( idx = 0; idx < theForm.elements.length; ++idx )
|
|
alert ( theForm.elements[idx].name + " - " + theForm.elements[idx].value );
|
|
}
|
|
|
|
//////////////////////////////
|
|
// GLOBAL VAR
|
|
var needURLEncode = false; // only need to do url encode in java
|
|
var promptPrefix = "promptex-";
|
|
var CR_NULL = "_crNULL_";
|
|
var CR_USE_VALUE = "_crUseValue_";
|
|
var promptMinValue = "_minValue";
|
|
var promptMaxValue = "_maxValue";
|
|
var warningMaxValue = "_warnMSG";
|
|
|
|
var _bver = parseInt(navigator.appVersion);
|
|
var Nav4 = ((navigator.appName == "Netscape") && _bver==4);
|
|
var Nav4plus = ((navigator.appName == "Netscape") && _bver >= 4);
|
|
var IE4plus = ((navigator.userAgent.indexOf("MSIE") != -1) && _bver>4);
|
|
|
|
if (Nav4plus)
|
|
var userLanguage = (navigator.language.substr(0, 2));
|
|
else
|
|
var userLanguage = (navigator.browserLanguage.substr(0, 2));
|
|
|
|
///////////////////////////////
|
|
// substitue range string
|
|
function ConstructRangeDisplayString(rangeStr, param0, param1)
|
|
{
|
|
var newString = rangeStr.replace("{0}", param0);
|
|
newString = newString.replace("{1}", param1);
|
|
return newString;
|
|
}
|
|
|
|
///////////////////////////////
|
|
// Display string for range value in ListBox
|
|
function GetRangeValueDisplayText(rangeStr, param0, param1, paramType)
|
|
{
|
|
if (paramType == "dt" || paramType == "d" || paramType == "t")
|
|
{
|
|
if (param0.length != 0)
|
|
{
|
|
if (this.formatJsDate)
|
|
param0 = formatJsDate(NeutralDT2Date(param0));
|
|
else
|
|
param0 = NeutralDT2D(param0);
|
|
}
|
|
|
|
if (param1.length != 0)
|
|
{
|
|
if (this.formatJsDate)
|
|
param1 = formatJsDate(NeutralDT2Date(param1));
|
|
else
|
|
param1 = NeutralDT2D(param1);
|
|
}
|
|
}
|
|
|
|
return ConstructRangeDisplayString(rangeStr, param0, param1);
|
|
}
|
|
|
|
///////////////////////////////
|
|
// properly encode prompt values
|
|
function encodePrompt (prompt)
|
|
{
|
|
if (needURLEncode)
|
|
{
|
|
return encodeURIComponent(prompt);
|
|
}
|
|
else
|
|
{
|
|
return prompt;
|
|
}
|
|
}
|
|
|
|
function clickSetNullCheckBox(inForm, paramName, suffix)
|
|
{
|
|
var nullCtrl = inForm[paramName + "NULL"];
|
|
var textCtrl = inForm[paramName + suffix];
|
|
var hiddenCtrl = inForm[paramName + suffix + "Hidden"];
|
|
var hourCtrl = inForm[paramName + suffix + "Hour"];
|
|
var minuteCtrl = inForm[paramName + suffix + "Minute"];
|
|
var secondCtrl = inForm[paramName + suffix + "Second"];
|
|
var ampmCtrl = inForm[paramName + suffix + "AMPM"];
|
|
if (nullCtrl.checked)
|
|
{
|
|
if (textCtrl != null) textCtrl.disabled = true;
|
|
if (hourCtrl != null) hourCtrl.disabled = true;
|
|
if (minuteCtrl != null) minuteCtrl.disabled = true;
|
|
if (secondCtrl != null) secondCtrl.disabled = true;
|
|
if (ampmCtrl != null) ampmCtrl.disabled = true;
|
|
}
|
|
else
|
|
{
|
|
if (textCtrl != null) textCtrl.disabled = false;
|
|
if (hourCtrl != null) hourCtrl.disabled = false;
|
|
if (minuteCtrl != null) minuteCtrl.disabled = false;
|
|
if (secondCtrl != null) secondCtrl.disabled = false;
|
|
if (ampmCtrl != null) ampmCtrl.disabled = false;
|
|
|
|
}
|
|
}
|
|
|
|
function ClearListBoxAndSetNULL(theList)
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
promptEntry = new Option(L_NoValue, CR_NULL,false,false);
|
|
for ( var idx = 0; idx < theList.options.length; )
|
|
{
|
|
theList.options[0] = null;
|
|
idx++;
|
|
}
|
|
|
|
theList.options[0] = promptEntry;
|
|
return;
|
|
}
|
|
|
|
////////////////////////////////
|
|
// add number, currency, string from dropdown/textbox to list box
|
|
// where multiple prompt values are supported
|
|
function DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl)
|
|
{
|
|
var promptValue = "";
|
|
|
|
var year;
|
|
var month;
|
|
var day;
|
|
if ((type == "dt") || (type == "d"))
|
|
{
|
|
var d = hiddenCtrl.value;
|
|
if (d.length == 0)
|
|
{
|
|
alert(L_NoDateEntered);
|
|
return "";
|
|
}
|
|
var leftIndex = d.indexOf("(");
|
|
var rightIndex = d.indexOf(")");
|
|
d = d.substr(leftIndex + 1, rightIndex - leftIndex - 1);
|
|
var dArray = d.split(",");
|
|
year = dArray[0];
|
|
month = dArray[1];
|
|
day = dArray[2];
|
|
}
|
|
|
|
if (type == "dt")
|
|
{
|
|
promptValue = "DateTime(";
|
|
promptValue += year;
|
|
promptValue += ",";
|
|
promptValue += month;
|
|
promptValue += ",";
|
|
promptValue += day;
|
|
promptValue += ",";
|
|
|
|
var hour = 0;
|
|
if (ampmCtrl != undefined)
|
|
{
|
|
var i = 0;
|
|
if (ampmCtrl.selectedIndex == 1)
|
|
i = 1;
|
|
hour = hourCtrl.selectedIndex + 1 + i * 12;
|
|
if (hour == 12) hour = 0;
|
|
else if (hour == 24) hour = 12;
|
|
}
|
|
else
|
|
{
|
|
hour = hourCtrl.selectedIndex;
|
|
}
|
|
|
|
promptValue += hour;
|
|
promptValue += ",";
|
|
promptValue += minuteCtrl.selectedIndex;
|
|
promptValue += ",";
|
|
promptValue += secondCtrl.selectedIndex;
|
|
|
|
promptValue += ")";
|
|
}
|
|
else if (type == "d")
|
|
{
|
|
promptValue = "Date(";
|
|
promptValue += year;
|
|
promptValue += ",";
|
|
promptValue += month;
|
|
promptValue += ",";
|
|
promptValue += day;
|
|
promptValue += ")";
|
|
|
|
}
|
|
else if (type == "t")
|
|
{
|
|
promptValue = "Time("
|
|
|
|
var hour = 0;
|
|
if (ampmCtrl != undefined)
|
|
{
|
|
var i = 0;
|
|
if (ampmCtrl.selectedIndex == 1)
|
|
i = 1;
|
|
hour = hourCtrl.selectedIndex + 1 + i * 12;
|
|
if (hour == 12) hour = 0;
|
|
else if (hour == 24) hour = 12;
|
|
}
|
|
else
|
|
{
|
|
hour = hourCtrl.selectedIndex;
|
|
}
|
|
|
|
|
|
promptValue += hour;
|
|
promptValue += ",";
|
|
promptValue += minuteCtrl.selectedIndex;
|
|
promptValue += ",";
|
|
promptValue += secondCtrl.selectedIndex;
|
|
promptValue += ")";
|
|
}
|
|
|
|
return promptValue;
|
|
}
|
|
|
|
|
|
function DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl)
|
|
{
|
|
var neutralstring = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
if (type == "d" && this.formatJsDate)
|
|
return formatJsDate(NeutralDT2Date(neutralstring));
|
|
else if (type == "t" && this.formatJsTime)
|
|
return formatJsTime(NeutralDT2Date(neutralstring));
|
|
else if (type == "dt" && this.formatJsDate && this.formatJsTime)
|
|
return formatJsDate(NeutralDT2Date(neutralstring)) + ' ' + formatJsTime(NeutralDT2Date(neutralstring));
|
|
else
|
|
return NeutralDT2D(neutralstring);
|
|
}
|
|
|
|
|
|
function addPromptDiscreteValueHelper(inForm, type, paramName, suffix)
|
|
{
|
|
theList = inForm[paramName + "ListBox"];
|
|
|
|
// if there is a NULL checkbox and it is set
|
|
if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked )
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
|
|
// if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox
|
|
if (theList.options.length > 0 && theList.options[0].value == CR_NULL)
|
|
{
|
|
alert(L_NoValueAlready);
|
|
return;
|
|
}
|
|
|
|
// if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox
|
|
var dropDownListName = "";
|
|
if (suffix == "DiscreteValue")
|
|
dropDownListName = paramName + "SelectValue";
|
|
else
|
|
dropDownListName = paramName + "SelectLowerBound";
|
|
var dropDownListCtrl = inForm[dropDownListName];
|
|
if (dropDownListCtrl != null)
|
|
{
|
|
if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
}
|
|
|
|
var textCtrl = inForm[paramName + suffix];
|
|
var hiddenCtrl = inForm[paramName + suffix + "Hidden"];
|
|
var hourCtrl = inForm[paramName + suffix + "Hour"];
|
|
var minuteCtrl = inForm[paramName + suffix + "Minute"];
|
|
var secondCtrl = inForm[paramName + suffix + "Second"];
|
|
var ampmCtrl = inForm[paramName + suffix + "AMPM"];
|
|
|
|
var obj;
|
|
var editables = true;
|
|
|
|
if (textCtrl == undefined && hourCtrl == undefined)
|
|
{
|
|
//select box not a textbox, hour, minute, and second, ampm dropdown are not there either
|
|
editables = false;
|
|
obj = dropDownListCtrl;
|
|
obj = obj.options[obj.selectedIndex];
|
|
}
|
|
else
|
|
{
|
|
if (type == "t")
|
|
obj = hourCtrl;
|
|
else
|
|
obj = textCtrl;
|
|
}
|
|
|
|
if (type == "dt" || type == "d" || type == "t")
|
|
{
|
|
promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
if (promptValue.length == 0) return false;
|
|
|
|
if (editables)
|
|
displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
else
|
|
displayString = DateTimeDisplayStringHelper(type, obj.text, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
}
|
|
else
|
|
{
|
|
promptValue = encodePrompt(obj.value);
|
|
displayString = ( obj.text ) ? obj.text : obj.value;
|
|
}
|
|
|
|
if ( ! checkSingleValue (promptValue, type ) )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
promptEntry = new Option(displayString,promptValue,false,false);
|
|
theList.options[theList.length] = promptEntry;
|
|
}
|
|
|
|
function addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, suffix, minValue, maxValue, errorMessage )
|
|
{
|
|
theList = inForm[paramName + "ListBox"];
|
|
|
|
// if there is a NULL checkbox and it is set
|
|
if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked )
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
|
|
// if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox
|
|
if (theList.options.length > 0 && theList.options[0].value == CR_NULL)
|
|
{
|
|
alert(L_NoValueAlready);
|
|
return;
|
|
}
|
|
|
|
// if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox
|
|
var dropDownListName = "";
|
|
if (suffix == "DiscreteValue")
|
|
dropDownListName = paramName + "SelectValue";
|
|
else
|
|
dropDownListName = paramName + "SelectLowerBound";
|
|
var dropDownListCtrl = inForm[dropDownListName];
|
|
if (dropDownListCtrl != null)
|
|
{
|
|
if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
}
|
|
|
|
var textCtrl = inForm[paramName + suffix];
|
|
var hiddenCtrl = inForm[paramName + suffix + "Hidden"];
|
|
var hourCtrl = inForm[paramName + suffix + "Hour"];
|
|
var minuteCtrl = inForm[paramName + suffix + "Minute"];
|
|
var secondCtrl = inForm[paramName + suffix + "Second"];
|
|
var ampmCtrl = inForm[paramName + suffix + "AMPM"];
|
|
|
|
var obj;
|
|
var editables = true;
|
|
|
|
if (textCtrl == undefined && hourCtrl == undefined)
|
|
{
|
|
//select box not a textbox, hour, minute, and second, ampm dropdown are not there either
|
|
editables = false;
|
|
obj = dropDownListCtrl;
|
|
obj = obj.options[obj.selectedIndex];
|
|
}
|
|
else
|
|
{
|
|
if (type == "t")
|
|
obj = hourCtrl;
|
|
else
|
|
obj = textCtrl;
|
|
}
|
|
|
|
if (type == "dt" || type == "d" || type == "t")
|
|
{
|
|
promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
if (promptValue.length == 0) return false;
|
|
|
|
if (editables)
|
|
displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
else
|
|
displayString = DateTimeDisplayStringHelper(type, obj.text, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
}
|
|
else
|
|
{
|
|
promptValue = encodePrompt(obj.value);
|
|
displayString = ( obj.text ) ? obj.text : obj.value;
|
|
}
|
|
|
|
if ( ! checkSingleValueWithMinMax (promptValue, type, minValue, maxValue, errorMessage ) )
|
|
{
|
|
return false;
|
|
}
|
|
|
|
promptEntry = new Option(displayString,promptValue,false,false);
|
|
theList.options[theList.length] = promptEntry;
|
|
}
|
|
|
|
function addPromptDiscreteValue ( inForm, type , paramName)
|
|
{
|
|
addPromptDiscreteValueHelper(inForm, type, paramName, "DiscreteValue");
|
|
}
|
|
|
|
function addPromptDiscreteValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage )
|
|
{
|
|
addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, "DiscreteValue", minValue, maxValue, errorMessage);
|
|
}
|
|
|
|
////////////////////////////////////
|
|
// adds Range prompt to listbox where multiple values are supported
|
|
function addPromptDiscreteRangeValue ( inForm, type , paramName )
|
|
{
|
|
lowerOption = inForm[paramName + "SelectLowerOptions"];
|
|
|
|
// exactly
|
|
if (lowerOption.selectedIndex == 1)
|
|
{
|
|
// add discrete
|
|
addPromptDiscreteValueHelper(inForm, type, paramName, "LowerBound");
|
|
}
|
|
else
|
|
{
|
|
// add range
|
|
addPromptRangeValue(inForm, type, paramName);
|
|
}
|
|
}
|
|
|
|
// adds Range prompt with Checking to listbox where multiple values are supported
|
|
function addPromptDiscreteRangeValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage )
|
|
{
|
|
lowerOption = inForm[paramName + "SelectLowerOptions"];
|
|
|
|
// exactly
|
|
if (lowerOption.selectedIndex == 1)
|
|
{
|
|
// add discrete
|
|
addPromptDiscreteValueHelperWithChecking(inForm, type, paramName, "LowerBound", minValue, maxValue, errorMessage);
|
|
}
|
|
else
|
|
{
|
|
// add range
|
|
addPromptRangeValueWithChecking(inForm, type, paramName, minValue, maxValue, errorMessage);
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////
|
|
// adds Range prompt to listbox where multiple values are supported
|
|
function addPromptRangeValue ( inForm, type , paramName )
|
|
{
|
|
|
|
theList = inForm[paramName + "ListBox"];
|
|
|
|
// if there is a NULL checkbox and it is set
|
|
if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked )
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
|
|
// if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox
|
|
if (theList.options.length > 0 && theList.options[0].value == CR_NULL)
|
|
{
|
|
alert(L_NoValueAlready);
|
|
return;
|
|
}
|
|
|
|
// if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox
|
|
// if one of them is _crNULL_, it is not a valid option, do nothing
|
|
var lowerDropDownListName = paramName + "SelectLowerBound";
|
|
var upperDropDownListName = paramName + "SelectUpperBound";
|
|
var lowerDropDownListCtrl = inForm[lowerDropDownListName];
|
|
var upperDropDownListCtrl = inForm[upperDropDownListName];
|
|
if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null)
|
|
{
|
|
if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|
|
&& upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|
|
|| upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
alert(L_BadValue);
|
|
return;
|
|
}
|
|
}
|
|
|
|
lowerOption = inForm[paramName + "SelectLowerOptions"];
|
|
upperOption = inForm[paramName + "SelectUpperOptions"];
|
|
|
|
lowerBound = inForm[paramName + "LowerBound"];
|
|
upperBound = inForm[paramName + "UpperBound"];
|
|
|
|
lowerBoundHidden = inForm[paramName + "LowerBoundHidden"];
|
|
upperBoundHidden = inForm[paramName + "UpperBoundHidden"];
|
|
|
|
var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"];
|
|
var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"];
|
|
var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"];
|
|
var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"];
|
|
|
|
var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"];
|
|
var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"];
|
|
var usecondCtrl = inForm[paramName + "UpperBound" + "Second"];
|
|
var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"];
|
|
|
|
var editable = true;
|
|
|
|
//handle select box, not text box case
|
|
if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter
|
|
{
|
|
editable = false;
|
|
|
|
lowerBound = inForm[paramName + "SelectLowerBound"];
|
|
upperBound = inForm[paramName + "SelectUpperBound"];
|
|
lowerBound = lowerBound.options[lowerBound.selectedIndex];
|
|
upperBound = upperBound.options[upperBound.selectedIndex];
|
|
}
|
|
|
|
lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1));
|
|
upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1));
|
|
|
|
|
|
lvalue = uvalue = "";
|
|
|
|
if ( ! lowerUnBounded )
|
|
{
|
|
if ((type == "dt" || type == "d" || type == "t") && (editable))
|
|
{
|
|
lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
|
|
if (lvalue.length == 0) return false;
|
|
}
|
|
else
|
|
lvalue = lowerBound.value;
|
|
|
|
if ( ! checkSingleValue ( lvalue, type ) ) {
|
|
if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden")
|
|
lowerBound.focus ();
|
|
return false;
|
|
}
|
|
}
|
|
if ( ! upperUnBounded )
|
|
{
|
|
if ((type == "dt" || type == "d" || type == "t") && (editable))
|
|
{
|
|
uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
|
|
if (uvalue.length == 0) return false;
|
|
}
|
|
else
|
|
uvalue = upperBound.value;
|
|
|
|
if ( ! checkSingleValue ( uvalue, type ) ) {
|
|
if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden")
|
|
upperBound.focus ();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var ldisplay = "";
|
|
var udisplay = "";
|
|
if ((type == "dt" || type == "d" || type == "t") && (editable))
|
|
{
|
|
if (!lowerUnBounded)
|
|
ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
|
|
if (!upperUnBounded)
|
|
udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
|
|
}
|
|
else
|
|
{
|
|
ldisplay = lvalue;
|
|
udisplay = uvalue;
|
|
}
|
|
|
|
lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0);
|
|
upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0);
|
|
|
|
value = lowerUnBounded ? "{" : lowerChecked ? "[" : "(";
|
|
if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_")
|
|
value += encodePrompt(lvalue);
|
|
value += "_crRANGE_"
|
|
if ( ! upperUnBounded )
|
|
value += encodePrompt(uvalue);
|
|
value += upperUnBounded ? "}" : upperChecked ? "]" : ")";
|
|
if ( debug ) alert (value);
|
|
|
|
if ( !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var display = "";
|
|
if (lowerChecked && upperUnBounded)
|
|
{
|
|
display = ConstructRangeDisplayString(L_FROM, ldisplay, "");
|
|
}
|
|
else if (lowerUnBounded && upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_TO, udisplay, "");
|
|
}
|
|
else if (!lowerChecked && upperUnBounded)
|
|
{
|
|
display = ConstructRangeDisplayString(L_AFTER, ldisplay, "");
|
|
}
|
|
else if (lowerUnBounded && !upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_BEFORE, udisplay, "");
|
|
}
|
|
else if (lowerChecked && upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay);
|
|
}
|
|
else if (lowerChecked && !upperUnBounded && !upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay);
|
|
}
|
|
else if (!lowerChecked && !lowerUnBounded && upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay);
|
|
}
|
|
else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded)
|
|
{
|
|
display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay);
|
|
}
|
|
|
|
if ((!lowerUnBounded) || (!upperUnBounded))
|
|
{
|
|
promptEntry = new Option(display,value,false,false);
|
|
theList.options[theList.length] = promptEntry;
|
|
}
|
|
else
|
|
{
|
|
alert(L_BadBound);
|
|
}
|
|
|
|
}
|
|
|
|
////////////////////////////////////
|
|
// adds Range prompt with Checking to listbox where multiple values are supported
|
|
function addPromptRangeValueWithChecking ( inForm, type , paramName, minValue, maxValue, errorMessage )
|
|
{
|
|
|
|
theList = inForm[paramName + "ListBox"];
|
|
|
|
// if there is a NULL checkbox and it is set
|
|
if ( inForm[paramName + "NULL"] != null && inForm[paramName + "NULL"].checked )
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
|
|
// if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox
|
|
if (theList.options.length > 0 && theList.options[0].value == CR_NULL)
|
|
{
|
|
alert(L_NoValueAlready);
|
|
return;
|
|
}
|
|
|
|
// if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox
|
|
// if one of them is _crNULL_, it is not a valid option, do nothing
|
|
var lowerDropDownListName = paramName + "SelectLowerBound";
|
|
var upperDropDownListName = paramName + "SelectUpperBound";
|
|
var lowerDropDownListCtrl = inForm[lowerDropDownListName];
|
|
var upperDropDownListCtrl = inForm[upperDropDownListName];
|
|
if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null)
|
|
{
|
|
if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|
|
&& upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
// delete everything in the listbox, add _crNULL_ as an item
|
|
ClearListBoxAndSetNULL(theList);
|
|
return;
|
|
}
|
|
else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|
|
|| upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
alert(L_BadValue);
|
|
return;
|
|
}
|
|
}
|
|
|
|
lowerOption = inForm[paramName + "SelectLowerOptions"];
|
|
upperOption = inForm[paramName + "SelectUpperOptions"];
|
|
|
|
lowerBound = inForm[paramName + "LowerBound"];
|
|
upperBound = inForm[paramName + "UpperBound"];
|
|
|
|
lowerBoundHidden = inForm[paramName + "LowerBoundHidden"];
|
|
upperBoundHidden = inForm[paramName + "UpperBoundHidden"];
|
|
|
|
var lhourCtrl = inForm[paramName+"LowerBound" + "Hour"];
|
|
var lminuteCtrl = inForm[paramName + "LowerBound" + "Minute"];
|
|
var lsecondCtrl = inForm[paramName + "LowerBound" + "Second"];
|
|
var lampmCtrl = inForm[paramName + "LowerBound" + "AMPM"];
|
|
|
|
var uhourCtrl = inForm[paramName+"UpperBound" + "Hour"];
|
|
var uminuteCtrl = inForm[paramName + "UpperBound" + "Minute"];
|
|
var usecondCtrl = inForm[paramName + "UpperBound" + "Second"];
|
|
var uampmCtrl = inForm[paramName + "UpperBound" + "AMPM"];
|
|
|
|
var editable = true;
|
|
|
|
//handle select box, not text box case
|
|
if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter
|
|
{
|
|
editable = false;
|
|
|
|
lowerBound = inForm[paramName + "SelectLowerBound"];
|
|
upperBound = inForm[paramName + "SelectUpperBound"];
|
|
lowerBound = lowerBound.options[lowerBound.selectedIndex];
|
|
upperBound = upperBound.options[upperBound.selectedIndex];
|
|
}
|
|
|
|
lowerUnBounded = (inForm[paramName+"SelectLowerOptions"].selectedIndex == (inForm[paramName + "SelectLowerOptions"].options.length - 1));
|
|
upperUnBounded = (inForm[paramName+"SelectUpperOptions"].selectedIndex == (inForm[paramName + "SelectUpperOptions"].options.length - 1));
|
|
|
|
|
|
lvalue = uvalue = "";
|
|
|
|
if ( ! lowerUnBounded )
|
|
{
|
|
if ((type == "dt" || type == "d" || type == "t") && (editable))
|
|
{
|
|
lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
|
|
if (lvalue.length == 0) return false;
|
|
}
|
|
else
|
|
lvalue = lowerBound.value;
|
|
|
|
if ( ! checkSingleValue ( lvalue, type ) ) {
|
|
if ( lowerBound.focus && lowerBound.type.toLowerCase () != "hidden")
|
|
lowerBound.focus ();
|
|
return false;
|
|
}
|
|
}
|
|
if ( ! upperUnBounded )
|
|
{
|
|
if ((type == "dt" || type == "d" || type == "t") && (editable))
|
|
{
|
|
uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
|
|
if (uvalue.length == 0) return false;
|
|
}
|
|
else
|
|
uvalue = upperBound.value;
|
|
|
|
if ( ! checkSingleValue ( uvalue, type ) ) {
|
|
if ( upperBound.focus && upperBound.type.toLowerCase () != "hidden")
|
|
upperBound.focus ();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var ldisplay = "";
|
|
var udisplay = "";
|
|
if ((type == "dt" || type == "d" || type == "t") && (editable))
|
|
{
|
|
if (!lowerUnBounded)
|
|
ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
|
|
if (!upperUnBounded)
|
|
udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
|
|
}
|
|
else
|
|
{
|
|
ldisplay = lvalue;
|
|
udisplay = uvalue;
|
|
}
|
|
|
|
lowerChecked = (inForm[paramName+"SelectLowerOptions"].selectedIndex == 0);
|
|
upperChecked = (inForm[paramName+"SelectUpperOptions"].selectedIndex == 0);
|
|
|
|
value = lowerUnBounded ? "{" : lowerChecked ? "[" : "(";
|
|
if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not "_crEMPTY_")
|
|
value += encodePrompt(lvalue);
|
|
value += "_crRANGE_"
|
|
if ( ! upperUnBounded )
|
|
value += encodePrompt(uvalue);
|
|
value += upperUnBounded ? "}" : upperChecked ? "]" : ")";
|
|
if ( debug ) alert (value);
|
|
|
|
if ( !lowerUnBounded && !upperUnBounded && !checkRangeValueWithMinMax(lvalue, uvalue, type, minValue, maxValue, errorMessage))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var display = "";
|
|
if (lowerChecked && upperUnBounded)
|
|
{
|
|
display = ConstructRangeDisplayString(L_FROM, ldisplay, "");
|
|
}
|
|
else if (lowerUnBounded && upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_TO, udisplay, "");
|
|
}
|
|
else if (!lowerChecked && upperUnBounded)
|
|
{
|
|
display = ConstructRangeDisplayString(L_AFTER, ldisplay, "");
|
|
}
|
|
else if (lowerUnBounded && !upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_BEFORE, udisplay, "");
|
|
}
|
|
else if (lowerChecked && upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay);
|
|
}
|
|
else if (lowerChecked && !upperUnBounded && !upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay);
|
|
}
|
|
else if (!lowerChecked && !lowerUnBounded && upperChecked)
|
|
{
|
|
display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay);
|
|
}
|
|
else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded)
|
|
{
|
|
display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay);
|
|
}
|
|
|
|
if ((!lowerUnBounded) || (!upperUnBounded))
|
|
{
|
|
promptEntry = new Option(display,value,false,false);
|
|
theList.options[theList.length] = promptEntry;
|
|
}
|
|
else
|
|
{
|
|
alert(L_BadBound);
|
|
}
|
|
|
|
}
|
|
|
|
////////////////////////////////////
|
|
// disable check boxes based on user selection on the range parameters
|
|
function disableBoundCheck(lowOrUpBound, inform, paramName) {
|
|
if (lowOrUpBound == 0) {
|
|
if (inform[paramName + "NoLowerBoundCheck"].checked) {
|
|
inform[paramName + "NoUpperBoundCheck"].disabled = true;
|
|
inform[paramName + "LowerCheck"].disabled = true;
|
|
inform[paramName + "LowerBound"].disabled = true;
|
|
}
|
|
else {
|
|
inform[paramName + "NoUpperBoundCheck"].disabled = false;
|
|
inform[paramName + "LowerCheck"].disabled = false;
|
|
inform[paramName + "LowerBound"].disabled = false;
|
|
}
|
|
} else if (lowOrUpBound == 1) {
|
|
if (inform[paramName + "NoUpperBoundCheck"].checked) {
|
|
inform[paramName + "NoLowerBoundCheck"].disabled = true;
|
|
inform[paramName + "UpperCheck"].disabled = true;
|
|
inform[paramName + "UpperBound"].disabled = true;
|
|
} else {
|
|
inform[paramName + "NoLowerBoundCheck"].disabled = false;
|
|
inform[paramName + "UpperCheck"].disabled = false;
|
|
inform[paramName + "UpperBound"].disabled = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////
|
|
// puts "select" value into text box for an editable prompt which also has defaults
|
|
function setSelectedValue (inForm, selectCtrlName, textCtrlName, type, namePlusFix)
|
|
{
|
|
var textCtrl = inForm[textCtrlName];
|
|
var selectCtrl = inForm[selectCtrlName];
|
|
var hiddenCtrl = inForm[namePlusFix+"Hidden"];
|
|
var hourCtrl = inForm[namePlusFix+"Hour"];
|
|
var minuteCtrl = inForm[namePlusFix+"Minute"];
|
|
var secondCtrl = inForm[namePlusFix+"Second"];
|
|
var ampmCtrl = inForm[namePlusFix+"AMPM"];
|
|
|
|
// if no editable input fields are there, return, do nothing;
|
|
if (textCtrl == null && hourCtrl == null)
|
|
return;
|
|
|
|
// if selectedItem is UseValue,do nothing, and return
|
|
if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_USE_VALUE)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
if (textCtrl != null) textCtrl.disabled = true;
|
|
if (hourCtrl != null) hourCtrl.disabled = true;
|
|
if (minuteCtrl != null) minuteCtrl.disabled = true;
|
|
if (secondCtrl != null) secondCtrl.disabled = true;
|
|
if (ampmCtrl != null) ampmCtrl.disabled = true;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (textCtrl != null) textCtrl.disabled = false;
|
|
if (hourCtrl != null) hourCtrl.disabled = false;
|
|
if (minuteCtrl != null) minuteCtrl.disabled = false;
|
|
if (secondCtrl != null) secondCtrl.disabled = false;
|
|
if (ampmCtrl != null) ampmCtrl.disabled = false;
|
|
}
|
|
|
|
var year, month, day;
|
|
var hour, minute, second;
|
|
if (type == "dt" || type == "d" || type == "t")
|
|
{
|
|
var sDateTime = selectCtrl.options[selectCtrl.selectedIndex].value;
|
|
if (sDateTime.length == 0)
|
|
return;
|
|
|
|
var leftIndex = sDateTime.indexOf("(");
|
|
sDateTime = sDateTime.substr(leftIndex+1, sDateTime.length - leftIndex);
|
|
var rightIndex = sDateTime.indexOf(")");
|
|
sDateTime = sDateTime.substr(0, rightIndex);
|
|
var a = sDateTime.split(",");
|
|
|
|
if (type == "dt")
|
|
{
|
|
year = a[0];
|
|
month = a[1];
|
|
day = a[2];
|
|
|
|
hour = parseInt(a[3]);
|
|
minute = parseInt(a[4]);
|
|
second = parseInt(a[5]);
|
|
}
|
|
else if (type == "d")
|
|
{
|
|
year = a[0];
|
|
month = a[1];
|
|
day = a[2];
|
|
}
|
|
else if (type == "t")
|
|
{
|
|
hour = parseInt(a[0]);
|
|
minute = parseInt(a[1]);
|
|
second = parseInt(a[2]);
|
|
}
|
|
}
|
|
|
|
selectedOption = selectCtrl.options[selectCtrl.selectedIndex];
|
|
if (type == "dt")
|
|
{
|
|
var dt = new Date(year, month - 1, day, hour, minute, second);
|
|
if (this.formatJsDate)
|
|
textCtrl.value = formatJsDate(dt);
|
|
else
|
|
textCtrl.value = GLDT(dt,true, false);
|
|
hiddenCtrl.value = "Date(";
|
|
hiddenCtrl.value += year;
|
|
hiddenCtrl.value += ",";
|
|
hiddenCtrl.value += month;
|
|
hiddenCtrl.value += ",";
|
|
hiddenCtrl.value += day;
|
|
hiddenCtrl.value += ")";
|
|
|
|
if (ampmCtrl != undefined)
|
|
{
|
|
if (hour == 0 || hour == 12)
|
|
hourCtrl.selectedIndex = 11;
|
|
else if (hour > 12)
|
|
hourCtrl.selectedIndex = hour - 12 - 1;
|
|
else
|
|
hourCtrl.selectedIndex = hour - 1;
|
|
}
|
|
else
|
|
hourCtrl.selectedIndex = hour;
|
|
minuteCtrl.selectedIndex = minute;
|
|
secondCtrl.selectedIndex = second;
|
|
if (ampmCtrl != null)
|
|
{
|
|
if ( hour >= 12)
|
|
ampmCtrl.selectedIndex = 1;
|
|
else
|
|
ampmCtrl.selectedIndex = 0;
|
|
}
|
|
}
|
|
else if (type == "d")
|
|
{
|
|
var dt = new Date(year, month - 1, day, 0, 0, 0);
|
|
if (this.formatJsDate)
|
|
textCtrl.value = formatJsDate(dt);
|
|
else
|
|
textCtrl.value = GLDT(dt,true, false);
|
|
hiddenCtrl.value = "Date(";
|
|
hiddenCtrl.value += year;
|
|
hiddenCtrl.value += ",";
|
|
hiddenCtrl.value += month;
|
|
hiddenCtrl.value += ",";
|
|
hiddenCtrl.value += day;
|
|
hiddenCtrl.value += ")";
|
|
}
|
|
else if (type == "t")
|
|
{
|
|
if (ampmCtrl != null)
|
|
{
|
|
if (hour == 0 || hour == 12)
|
|
hourCtrl.selectedIndex = 11;
|
|
else if (hour > 12)
|
|
hourCtrl.selectedIndex = hour - 12 - 1;
|
|
else
|
|
hourCtrl.selectedIndex = hour - 1;
|
|
}
|
|
else
|
|
hourCtrl.selectedIndex = hour;
|
|
minuteCtrl.selectedIndex = minute;
|
|
secondCtrl.selectedIndex = second;
|
|
if (ampmCtrl != null)
|
|
{
|
|
if ( hour >= 12)
|
|
ampmCtrl.selectedIndex = 1;
|
|
else
|
|
ampmCtrl.selectedIndex = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
textCtrl.value = selectedOption.value;
|
|
}
|
|
|
|
if (selectCtrl.options[0].value == CR_USE_VALUE)
|
|
{
|
|
// always show USE_VALUE as selectedItem for the dropdownlist
|
|
selectCtrl.selectedIndex = 0;
|
|
}
|
|
}
|
|
|
|
///////////////////////////////////
|
|
// remove value from listbox where multiple value prompts are supported
|
|
function removeFromListBox ( inForm, paramName )
|
|
{
|
|
lbox = inForm[paramName + "ListBox"];
|
|
for ( var idx = 0; idx < lbox.options.length; )
|
|
{
|
|
if ( lbox.options[idx].selected )
|
|
lbox.options[idx] = null;
|
|
else
|
|
idx++;
|
|
}
|
|
}
|
|
|
|
/////////////////////////////////////
|
|
// sets prompt value into the hidden form field in proper format so that it can be submitted
|
|
function setPromptSingleValue (inform, type, paramName)
|
|
{
|
|
//alert("SetPromptSingleValue");
|
|
hiddenField = inform[promptPrefix + paramName];
|
|
var hiddenMinValue = "";
|
|
var hiddenMaxValue = "";
|
|
var hiddenWarnMsg = "";
|
|
if (typeof(inform[promptPrefix + paramName + promptMinValue]) != "undefined")
|
|
hiddenMinValue = (inform[promptPrefix + paramName + promptMinValue]).value;
|
|
if (typeof(inform[promptPrefix + paramName + promptMaxValue])!= "undefined")
|
|
hiddenMaxValue = (inform[promptPrefix + paramName + promptMaxValue]).value;
|
|
if (typeof(inform[promptPrefix + paramName + warningMaxValue]) != "undefined")
|
|
hiddenWarnMsg = (inform[promptPrefix + paramName + warningMaxValue]).value;
|
|
value = "";
|
|
if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked )
|
|
{
|
|
value = CR_NULL; //NULL is a literal for, uhmm.. a NULL
|
|
hiddenField.value = value;
|
|
return true;
|
|
}
|
|
|
|
// if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox
|
|
var dropDownListName = paramName + "SelectValue";
|
|
var dropDownListCtrl = inform[dropDownListName];
|
|
if (dropDownListCtrl != null)
|
|
{
|
|
if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
hiddenField.value = CR_NULL;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
discreteVal = inform[paramName + "DiscreteValue"];
|
|
if (discreteVal != undefined || inform[paramName + "DiscreteValueHour"] != undefined)
|
|
{ // editable
|
|
|
|
if ( type == "dt" || type == "d" || type == "t")
|
|
{
|
|
var hiddenCtrl = inform[paramName+"DiscreteValueHidden"];
|
|
var hourCtrl = inform[paramName+"DiscreteValueHour"];
|
|
var minuteCtrl = inform[paramName + "DiscreteValueMinute"];
|
|
var secondCtrl = inform[paramName + "DiscreteValueSecond"];
|
|
var ampmCtrl = inform[paramName + "DiscreteValueAMPM"];
|
|
value = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
|
|
if (value.length == 0) return false;
|
|
}
|
|
else
|
|
value = discreteVal.value;
|
|
}
|
|
else
|
|
{
|
|
// not editable
|
|
discreteVal = inform[paramName+"SelectValue"];
|
|
value = discreteVal.options[discreteVal.selectedIndex].value;
|
|
//alert(value);
|
|
}
|
|
if ( (hiddenMinValue.length==0 && hiddenMaxValue.length==0 && hiddenWarnMsg.length==0) && ! checkSingleValue ( value, type ) ) {
|
|
if (discreteVal.focus && discreteVal.type.toLowerCase ())
|
|
discreteVal.focus ();
|
|
return false;
|
|
}
|
|
else if ( (hiddenMinValue.length>0 && hiddenMaxValue.length>0 && hiddenWarnMsg.length>0) && ! checkSingleValueWithMinMax ( value, type, hiddenMinValue, hiddenMaxValue, hiddenWarnMsg ) ) {
|
|
if (typeof(discreteVal)!="undefined" && discreteVal.focus && discreteVal.type.toLowerCase ())
|
|
discreteVal.focus ();
|
|
return false;
|
|
}
|
|
else
|
|
value = encodePrompt(value);
|
|
|
|
hiddenField.value = value;
|
|
return true;
|
|
}
|
|
|
|
/////////////////////////////////////
|
|
// sets prompt value for a range into the hidden form field in proper format so that it can be submitted
|
|
function setPromptRangeValue (inform, type, paramName)
|
|
{
|
|
|
|
hiddenField = inform[promptPrefix + paramName];
|
|
var hiddenMinValue = "";
|
|
var hiddenMaxValue = "";
|
|
var hiddenWarnMsg = "";
|
|
if (typeof(inform[promptPrefix + paramName + promptMinValue]) != "undefined")
|
|
hiddenMinValue = (inform[promptPrefix + paramName + promptMinValue]).value;
|
|
if (typeof(inform[promptPrefix + paramName + promptMaxValue])!= "undefined")
|
|
hiddenMaxValue = (inform[promptPrefix + paramName + promptMaxValue]).value;
|
|
if (typeof(inform[promptPrefix + paramName + warningMaxValue]) != "undefined")
|
|
hiddenWarnMsg = (inform[promptPrefix + paramName + warningMaxValue]).value;
|
|
|
|
if ( inform[paramName + "NULL"] != null && inform[paramName + "NULL"].checked )
|
|
{
|
|
value = CR_NULL; //NULL is a literal for, uhmm.. a NULL
|
|
hiddenField.value = value;
|
|
return true;
|
|
}
|
|
|
|
// if both defaultdropdownlists selected item is _crNULL_, put it into hiddenfield
|
|
// if one of them is _crNULL_, it is not a valid option, do nothing
|
|
var lowerDropDownListName = paramName + "SelectLowerBound";
|
|
var upperDropDownListName = paramName + "SelectUpperBound";
|
|
var lowerDropDownListCtrl = inform[lowerDropDownListName];
|
|
var upperDropDownListCtrl = inform[upperDropDownListName];
|
|
if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null)
|
|
{
|
|
if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|
|
&& upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
hiddenField.value = "_crNULL_";
|
|
return true;
|
|
}
|
|
else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value == CR_NULL
|
|
|| upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value == CR_NULL)
|
|
{
|
|
alert(L_BadValue);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
lowerOptions = inform[paramName + "SelectLowerOptions"];
|
|
upperOptions = inform[paramName + "SelectUpperOptions"];
|
|
|
|
lowerBound = inform[paramName + "LowerBound"];
|
|
upperBound = inform[paramName + "UpperBound"];
|
|
|
|
lowerBoundHidden = inform[paramName + "LowerBoundHidden"];
|
|
upperBoundHidden = inform[paramName + "UpperBoundHidden"];
|
|
|
|
lowerBoundDropdown = inform[paramName + "SelectLowerBound"];
|
|
upperBoundDropdown = inform[paramName + "SelectUpperBound"];
|
|
|
|
var editables = true;
|
|
|
|
//handle select box, not text box case
|
|
if (lowerBound == undefined && inform[paramName + "LowerBound" + "Hour"] == undefined)
|
|
{
|
|
editables = false;
|
|
lowerBound = lowerBoundDropdown;
|
|
upperBound = upperBoundDropdown;
|
|
lowerBound = lowerBound.options[lowerBound.selectedIndex];
|
|
upperBound = upperBound.options[upperBound.selectedIndex];
|
|
}
|
|
|
|
lowerUnBounded = (lowerOptions.selectedIndex == (lowerOptions.length - 1));
|
|
upperUnBounded = (upperOptions.selectedIndex == (upperOptions.length - 1));
|
|
|
|
lowerChecked = (lowerOptions.selectedIndex == 0);
|
|
upperChecked = (upperOptions.selectedIndex == 0);
|
|
|
|
uvalue = lvalue = "";
|
|
|
|
if ( ! lowerUnBounded )
|
|
{
|
|
if ( (type == "dt" || type == "d" || type == "t") && (editables))
|
|
{
|
|
var lhourCtrl = inform[paramName+"LowerBound" + "Hour"];
|
|
var lminuteCtrl = inform[paramName + "LowerBound" + "Minute"];
|
|
var lsecondCtrl = inform[paramName + "LowerBound" + "Second"];
|
|
var lampmCtrl = inform[paramName + "LowerBound" + "AMPM"];
|
|
lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
|
|
if (lvalue.length == 0) return false;
|
|
}
|
|
else
|
|
lvalue = lowerBound.value;
|
|
|
|
if ( ! checkSingleValue ( lvalue, type ) ) {
|
|
if (lowerBound != undefined && lowerBound.focus)
|
|
lowerBound.focus();
|
|
return false;
|
|
}
|
|
}
|
|
if ( ! upperUnBounded )
|
|
{
|
|
if (( type == "dt" || type == "d" || type == "t") && (editables))
|
|
{
|
|
var uhourCtrl = inform[paramName+"UpperBound" + "Hour"];
|
|
var uminuteCtrl = inform[paramName + "UpperBound" + "Minute"];
|
|
var usecondCtrl = inform[paramName + "UpperBound" + "Second"];
|
|
var uampmCtrl = inform[paramName + "UpperBound" + "AMPM"];
|
|
uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
|
|
if (uvalue.length == 0) return false;
|
|
}
|
|
else
|
|
uvalue = upperBound.value;
|
|
|
|
if ( ! checkSingleValue ( uvalue, type ) ) {
|
|
if (upperBound != undefined && upperBound.focus)
|
|
upperBound.focus();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
value = lowerUnBounded ? "{" : lowerChecked ? "[" : "(";
|
|
if ( ! lowerUnBounded )
|
|
value += encodePrompt(lvalue);
|
|
value += "_crRANGE_"
|
|
if ( ! upperUnBounded )
|
|
value += encodePrompt(uvalue);
|
|
value += upperUnBounded ? "}" : upperChecked ? "]" : ")";
|
|
if ( debug )
|
|
alert (value);
|
|
|
|
if (lowerUnBounded && upperUnBounded)
|
|
{
|
|
alert(L_BadBound);
|
|
return false;
|
|
}
|
|
|
|
if ((hiddenMinValue.length==0 && hiddenMaxValue.length==0 && hiddenWarnMsg.length==0) && !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type))
|
|
{
|
|
return false;
|
|
}
|
|
else if ((hiddenMinValue.length>0 && hiddenMaxValue.length>0 && hiddenWarnMsg.length>0) && !lowerUnBounded && !upperUnBounded && !checkRangeValueWithMinMax(lvalue, uvalue, type, hiddenMinValue, hiddenMaxValue, hiddenWarnMsg))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
hiddenField.value = value;
|
|
return true;
|
|
}
|
|
|
|
/////////////////////////////////////
|
|
// sets prompt value into the hidden form field in proper format so that it can be submitted
|
|
function setPromptMultipleValue (inform, type, paramName)
|
|
{
|
|
hiddenField = inform[promptPrefix + paramName];
|
|
values = inform[paramName + "ListBox"].options;
|
|
|
|
if ( values.length == 0 )
|
|
{
|
|
value = "_crEMPTY_"; //if value is empty, set to empty string
|
|
}
|
|
else
|
|
{
|
|
value = "";
|
|
for ( idx = 0; idx < values.length; ++idx )
|
|
{
|
|
// first value could be empty string, then chcking value.length != 0 could miss one empty string
|
|
if ( idx != 0 )
|
|
value += "_crMULT_"
|
|
value += values[idx].value;
|
|
}
|
|
}
|
|
|
|
if ( debug )
|
|
alert (value);
|
|
|
|
hiddenField.value = value;
|
|
//NOTE: we'll always return true as the validation is done before values are added to select box
|
|
return true;
|
|
}
|
|
|
|
///////////////////////////////////////
|
|
// check and alert user about any errors based on type of prompt
|
|
var regNumber = /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/
|
|
var regCurrency = regNumber;
|
|
var regDate = /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/
|
|
var regDateTime = /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/
|
|
var regTime = /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/
|
|
|
|
function checkSingleValue ( value, type )
|
|
{
|
|
if ( type == 'n' && ! regNumber.test ( value ) )
|
|
{
|
|
alert ( L_BadNumber );
|
|
return false;
|
|
}
|
|
else if ( type == 'c' && ! regCurrency.test ( value ) )
|
|
{
|
|
alert ( L_BadCurrency );
|
|
return false;
|
|
}
|
|
/*else if ( type == 'd' && ! regDate.test ( value ) )
|
|
{
|
|
alert ( L_BadDate );
|
|
return false;
|
|
}
|
|
else if ( type == "dt" && ! regDateTime.test ( value ) )
|
|
{
|
|
alert ( L_BadDateTime );
|
|
return false;
|
|
}
|
|
else if ( type == 't' && ! regTime.test ( value ) )
|
|
{
|
|
alert ( L_BadTime );
|
|
return false;
|
|
}*/
|
|
|
|
//by default let it go...
|
|
return true;
|
|
}
|
|
|
|
function checkSingleValueWithMinMax ( value, type, minValue, maxValue, errorMessage )
|
|
{
|
|
if ( type == 'n' )
|
|
{
|
|
if (! regNumber.test ( value ) || isNaN(DelocalizeNum (value)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (maxValue)))
|
|
{
|
|
alert ( L_BadNumber );
|
|
return false;
|
|
}
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
//check min and max
|
|
if (eval (DelocalizeNum (value)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (value)) > eval (DelocalizeNum (maxValue)))
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if ( type == 'c' )
|
|
{
|
|
if (! regCurrency.test ( value ) || isNaN(DelocalizeNum (value)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (maxValue)))
|
|
{
|
|
alert ( L_BadCurrency );
|
|
return false;
|
|
}
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
//check min and max
|
|
if (eval (DelocalizeNum (value)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (value)) > eval (DelocalizeNum (maxValue)))
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if ( type == 'd' )
|
|
{
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
var comp = NeutralDT2Date(value);
|
|
//check min and max
|
|
var dMin = Date.parse(minValue);
|
|
var dMax = Date.parse(maxValue);
|
|
// since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it
|
|
// The number of milliseconds after midnight January 1, 1970
|
|
// Set to GMT for consistent comparison on the client side
|
|
var offset = comp.getTimezoneOffset()*60*1000;
|
|
var dComp = Date.parse(comp) - offset;
|
|
if (dComp < dMin || dComp > dMax)
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if ( type == "dt" )
|
|
{
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
var comp = NeutralDT2Date(value);
|
|
//check min and max
|
|
var dtMin = Date.parse(minValue);
|
|
var dtMax = Date.parse(maxValue);
|
|
// since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it
|
|
// The number of milliseconds after midnight January 1, 1970
|
|
// Set to GMT for consistent comparison on the client side
|
|
var offset = comp.getTimezoneOffset()*60*1000;
|
|
var dtComp = Date.parse(comp) - offset;
|
|
if (dtComp < dtMin || dtComp > dtMax)
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if ( type == 't' )
|
|
{
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
var comp = eval("new Date(0,0,0," + value.substring(value.indexOf('(') + 1, value.indexOf(')') + 1));
|
|
//var comp = NeutralDT2Date(value);
|
|
//check min and max
|
|
//getTimeFromIETFFormat to remove the difference of the year, month and day components
|
|
var tMinComponents = getTimeFromIETFFormat(minValue);
|
|
var tMaxComponents = getTimeFromIETFFormat(maxValue);
|
|
var tMinTEFT = eval("new Date(0,0,0," + tMinComponents[0] + "," + tMinComponents[1] + "," + tMinComponents[2] + ")");
|
|
var tMaxTEFT = eval("new Date(0,0,0," + tMaxComponents[0] + "," + tMaxComponents[1] + "," + tMaxComponents[2] + ")");
|
|
// check am or pm
|
|
var index1 = minValue.indexOf(" PM ");
|
|
if (index1>-1)
|
|
{
|
|
tMinTEFT.setTime(tMinTEFT.getTime()+(12*3600*1000));
|
|
}
|
|
var index2 = maxValue.indexOf(" PM ");
|
|
if (index2>-1)
|
|
{
|
|
tMaxTEFT.setTime(tMaxTEFT.getTime()+(12*3600*1000));
|
|
}
|
|
var tMin = Date.parse(tMinTEFT);
|
|
var tMax = Date.parse(tMaxTEFT);
|
|
// Both new Date() make consistent comparison on the client side
|
|
var tComp = Date.parse(comp);
|
|
if (tComp < tMin || tComp > tMax)
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if (type == "text" || type == 's')
|
|
{
|
|
// is a string
|
|
//check min and max
|
|
if (value.length < eval (DelocalizeNum (minValue)) || value.length > eval (DelocalizeNum (maxValue)))
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
//by default let it go...
|
|
return true;
|
|
}
|
|
|
|
function checkRangeValue (fvalue, tvalue, type)
|
|
{
|
|
// determine if the start is smaller than the end
|
|
if ((type == "n") || (type == "c"))
|
|
{
|
|
// Is a number, or currency
|
|
if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue)))
|
|
{
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
}
|
|
else if (type == "d"){
|
|
//Is a Date
|
|
if (eval("new " + fvalue) > eval("new " + tvalue)){
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
}else if (type == "t"){
|
|
//Is a Time
|
|
var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1));
|
|
var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1));
|
|
if (comp1 > comp2){
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
}else if (type == "dt"){
|
|
//Is a DateTime
|
|
var comp1 = eval("new Date" + fvalue.substring(8, fvalue.length));
|
|
var comp2 = eval("new Date" + tvalue.substring(8, tvalue.length));
|
|
if (comp1 > comp2){
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
}
|
|
else if (type == "text")
|
|
{
|
|
// is a string
|
|
if (fvalue.toLowerCase() > tvalue.toLowerCase())
|
|
{
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
}
|
|
// otherwise, let it go
|
|
|
|
return true;
|
|
}
|
|
|
|
function checkRangeValueWithMinMax (fvalue, tvalue, type, minValue, maxValue, errorMessage)
|
|
{
|
|
// determine if the start is smaller than the end
|
|
if ((type == "n") || (type == "c"))
|
|
{
|
|
// check invalid number
|
|
if (isNaN (DelocalizeNum(fvalue)) || isNaN(DelocalizeNum (minValue)) || isNaN(DelocalizeNum (tvalue)) || isNaN(DelocalizeNum (maxValue)))
|
|
{
|
|
alert ( L_BadNumber );
|
|
return false;
|
|
}
|
|
// Is a number, or currency
|
|
if (eval (DelocalizeNum (fvalue)) > eval (DelocalizeNum (tvalue)))
|
|
{
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
//check min and max
|
|
if (eval (DelocalizeNum (fvalue)) < eval (DelocalizeNum (minValue)) || eval (DelocalizeNum (tvalue)) > eval (DelocalizeNum (maxValue)))
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if (type == "d"){
|
|
//Is a Date
|
|
var comp1 = NeutralDT2Date(fvalue);
|
|
var comp2 = NeutralDT2Date(tvalue);
|
|
if (comp1 > comp2){
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
//check min and max
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
var dMin = Date.parse(minValue);
|
|
var dMax = Date.parse(maxValue);
|
|
// since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it
|
|
// The number of milliseconds after midnight January 1, 1970
|
|
// Set to GMT for consistent comparison on the client side
|
|
var offset1 = comp1.getTimezoneOffset()*60*1000;
|
|
var offset2 = comp2.getTimezoneOffset()*60*1000;
|
|
var dComp1 = Date.parse(comp1) - offset1;
|
|
var dComp2 = Date.parse(comp2) - offset2;
|
|
if (dComp1 < dMin || dComp2 > dMax)
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}else if (type == "t"){
|
|
//Is a Time
|
|
var comp1 = eval("new Date(0,0,0," + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1));
|
|
var comp2 = eval("new Date(0,0,0," + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1));
|
|
//var comp1 = NeutralDT2Date(fvalue);
|
|
//var comp2 = NeutralDT2Date(tvalue);
|
|
if (comp1 > comp2){
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
//check min and max
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
//getTimeFromIETFFormat to remove the difference of the year, month and day components
|
|
var tMinComponents = getTimeFromIETFFormat(minValue);
|
|
var tMaxComponents = getTimeFromIETFFormat(maxValue);
|
|
var tMinTEFT = eval("new Date(0,0,0," + tMinComponents[0] + "," + tMinComponents[1] + "," + tMinComponents[2] + ")");
|
|
var tMaxTEFT = eval("new Date(0,0,0," + tMaxComponents[0] + "," + tMaxComponents[1] + "," + tMaxComponents[2] + ")");
|
|
// check am or pm
|
|
var index1 = minValue.indexOf(" PM ");
|
|
if (index1>-1)
|
|
{
|
|
tMinTEFT.setTime(tMinTEFT.getTime()+(12*3600*1000));
|
|
}
|
|
var index2 = maxValue.indexOf(" PM ");
|
|
if (index2>-1)
|
|
{
|
|
tMaxTEFT.setTime(tMaxTEFT.getTime()+(12*3600*1000));
|
|
}
|
|
var tMin = Date.parse(tMinTEFT);
|
|
var tMax = Date.parse(tMaxTEFT);
|
|
// Both new Date() make consistent comparison on the client side
|
|
var tComp1 = Date.parse(comp1);
|
|
var tComp2 = Date.parse(comp2);
|
|
if (tComp1 < tMin || tComp2 > tMax)
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}else if (type == "dt"){
|
|
//Is a DateTime
|
|
var comp1 = NeutralDT2Date(fvalue);
|
|
var comp2 = NeutralDT2Date(tvalue);
|
|
if (comp1 > comp2){
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
//check min and max
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
var dtMin = Date.parse(minValue);
|
|
var dtMax = Date.parse(maxValue);
|
|
// since Date month as a value is from 0-11, the string represenatation as a value of 1-12, NeutralDT2Date handle it
|
|
// The number of milliseconds after midnight January 1, 1970
|
|
// Set to GMT for consistent comparison on the client side
|
|
var offset1 = comp1.getTimezoneOffset()*60*1000;
|
|
var offset2 = comp2.getTimezoneOffset()*60*1000;
|
|
var dtComp1 = Date.parse(comp1) - offset1;
|
|
var dtComp2 = Date.parse(comp2) - offset2;
|
|
if (dtComp1 < dtMin || dtComp2 > dtMax)
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
else if (type == "text" || type == 's')
|
|
{
|
|
// is a string
|
|
if (fvalue.toLowerCase() > tvalue.toLowerCase())
|
|
{
|
|
alert(L_RangeError);
|
|
return false;
|
|
}
|
|
if (minValue.length>0 && maxValue.length>0){
|
|
//check min and max
|
|
if (fvalue.length < eval (DelocalizeNum (minValue)) || fvalue.length > eval (DelocalizeNum(maxValue)) || tvalue.length > eval (DelocalizeNum (maxValue)) || tvalue.length < eval (DelocalizeNum (minValue)))
|
|
{
|
|
alert (errorMessage);
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
// otherwise, let it go
|
|
|
|
return true;
|
|
}
|
|
|
|
function DelocalizeNum(value)
|
|
{
|
|
// trim spaces first
|
|
var numStr = value.replace(/\s/g, "");
|
|
|
|
// get rid of grouping first
|
|
var tempStr = "";
|
|
var index = numStr.indexOf(groupSep);
|
|
|
|
while (index != -1)
|
|
{
|
|
tempStr += numStr.substr(0, index);
|
|
numStr = numStr.substr(index + groupSep.length, numStr.length - index - groupSep.length);
|
|
index = numStr.indexOf(groupSep);
|
|
}
|
|
|
|
tempStr += numStr;
|
|
|
|
index = tempStr.indexOf(decimalSep);
|
|
var neutralStr = "";
|
|
if (index != -1)
|
|
{
|
|
neutralStr += tempStr.substr(0, index);
|
|
neutralStr += ".";
|
|
neutralStr += tempStr.substr(index + decimalSep.length, tempStr.length - index - decimalSep.length);
|
|
}
|
|
else
|
|
{
|
|
neutralStr = tempStr;
|
|
}
|
|
|
|
return neutralStr;
|
|
}
|
|
|
|
// Disable enter key checking for multibyte languages since the enter key is used for committing characters
|
|
var isEnabledLanguage = (! ((userLanguage == "ja") || (userLanguage == "ko") || (userLanguage == "zh")) )
|
|
|
|
var isNav = (navigator.appName == "Netscape");
|
|
if (isEnabledLanguage)
|
|
{
|
|
if(isNav) {
|
|
document.captureEvents(Event.KEYUP);
|
|
}
|
|
document.onkeyup = checkValue;
|
|
}
|
|
|
|
function checkValue(evt) {
|
|
var buttonVal = "";
|
|
if (isNav) {
|
|
if (evt.which == 13 && (evt.target.type == "text" || evt.target.type == "password")) {
|
|
buttonVal = evt.target.value;
|
|
}
|
|
} else {
|
|
if (window.event.keyCode == 13 && (window.event.srcElement.type == "text" || window.event.srcElement.type == "password")) {
|
|
buttonVal = window.event.srcElement.value;
|
|
}
|
|
}
|
|
|
|
if (buttonVal != "") {
|
|
submitValues ();
|
|
}
|
|
}
|
|
|
|
// To retrieve Time components of IETF format
|
|
function getTimeFromIETFFormat (strIETF) {
|
|
|
|
var components = strIETF.split(" ");
|
|
for (var i=0; i<components.length; i++) {
|
|
var y = components[i].split(":");
|
|
if (y.length>1) {
|
|
return y;
|
|
}
|
|
}
|
|
}
|