Upgraded to SC 5-5-2011 3.0RC7
authorMartin Taal <martin.taal@openbravo.com>
Thu, 05 May 2011 22:40:54 +0200
changeset 6 c6a2c4707346
parent 5 30d46dc6bd1c
child 7 66a38c109cf7
Upgraded to SC 5-5-2011
docs/changelog.html
docs/readme.html
docs/resources/explorer.html
isomorphic/skins/Enterprise/load_skin.js.gz
isomorphic/skins/Enterprise/skin_styles.css.gz
isomorphic/skins/SmartClient/load_skin.js.gz
isomorphic/skins/SmartClient/skin_styles.css.gz
isomorphic/skins/SmartClient/unsupported_browser.html
isomorphic/skins/standard/load_skin.js.gz
isomorphic/skins/standard/skin_styles.css.gz
isomorphic/skins/standard/unsupported_browser.html
isomorphic/system/development/ISC_Calendar.js
isomorphic/system/development/ISC_Calendar.js.gz
isomorphic/system/development/ISC_ClassBrowser.js
isomorphic/system/development/ISC_ClassBrowser.js.gz
isomorphic/system/development/ISC_Containers.js
isomorphic/system/development/ISC_Containers.js.gz
isomorphic/system/development/ISC_Core.js
isomorphic/system/development/ISC_Core.js.gz
isomorphic/system/development/ISC_DBConsole.js
isomorphic/system/development/ISC_DBConsole.js.gz
isomorphic/system/development/ISC_DSBrowser.js
isomorphic/system/development/ISC_DSBrowser.js.gz
isomorphic/system/development/ISC_DataBinding.js
isomorphic/system/development/ISC_DataBinding.js.gz
isomorphic/system/development/ISC_DeveloperConsole.js
isomorphic/system/development/ISC_DeveloperConsole.js.gz
isomorphic/system/development/ISC_DocViewer.js
isomorphic/system/development/ISC_DocViewer.js.gz
isomorphic/system/development/ISC_EBay.js
isomorphic/system/development/ISC_EBay.js.gz
isomorphic/system/development/ISC_ExampleViewer.js
isomorphic/system/development/ISC_ExampleViewer.js.gz
isomorphic/system/development/ISC_FileBrowser.js
isomorphic/system/development/ISC_FileBrowser.js.gz
isomorphic/system/development/ISC_FileLoader.js
isomorphic/system/development/ISC_FileLoader.js.gz
isomorphic/system/development/ISC_Forms.js
isomorphic/system/development/ISC_Forms.js.gz
isomorphic/system/development/ISC_Foundation.js
isomorphic/system/development/ISC_Foundation.js.gz
isomorphic/system/development/ISC_Grids.js
isomorphic/system/development/ISC_Grids.js.gz
isomorphic/system/development/ISC_History.js
isomorphic/system/development/ISC_History.js.gz
isomorphic/system/development/ISC_Kapow.js
isomorphic/system/development/ISC_Kapow.js.gz
isomorphic/system/development/ISC_PluginBridges.js
isomorphic/system/development/ISC_PluginBridges.js.gz
isomorphic/system/development/ISC_RichTextEditor.js
isomorphic/system/development/ISC_RichTextEditor.js.gz
isomorphic/system/development/ISC_SQLBrowser.js
isomorphic/system/development/ISC_SQLBrowser.js.gz
isomorphic/system/development/ISC_SalesForce.js
isomorphic/system/development/ISC_SalesForce.js.gz
isomorphic/system/development/ISC_Scheduler.js
isomorphic/system/development/ISC_Scheduler.js.gz
isomorphic/system/development/ISC_SyntaxHiliter.js
isomorphic/system/development/ISC_SyntaxHiliter.js.gz
isomorphic/system/development/ISC_Tools.js
isomorphic/system/development/ISC_Tools.js.gz
isomorphic/system/helpers/Log.html
isomorphic/system/modules/ISC_Calendar.js
isomorphic/system/modules/ISC_Calendar.js.gz
isomorphic/system/modules/ISC_ClassBrowser.js
isomorphic/system/modules/ISC_ClassBrowser.js.gz
isomorphic/system/modules/ISC_Containers.js
isomorphic/system/modules/ISC_Containers.js.gz
isomorphic/system/modules/ISC_Core.js
isomorphic/system/modules/ISC_Core.js.gz
isomorphic/system/modules/ISC_DSBrowser.js
isomorphic/system/modules/ISC_DSBrowser.js.gz
isomorphic/system/modules/ISC_DataBinding.js
isomorphic/system/modules/ISC_DataBinding.js.gz
isomorphic/system/modules/ISC_EBay.js
isomorphic/system/modules/ISC_EBay.js.gz
isomorphic/system/modules/ISC_Forms.js
isomorphic/system/modules/ISC_Forms.js.gz
isomorphic/system/modules/ISC_Foundation.js
isomorphic/system/modules/ISC_Foundation.js.gz
isomorphic/system/modules/ISC_Grids.js
isomorphic/system/modules/ISC_Grids.js.gz
isomorphic/system/modules/ISC_History.js
isomorphic/system/modules/ISC_History.js.gz
isomorphic/system/modules/ISC_Kapow.js
isomorphic/system/modules/ISC_Kapow.js.gz
isomorphic/system/modules/ISC_PluginBridges.js
isomorphic/system/modules/ISC_PluginBridges.js.gz
isomorphic/system/modules/ISC_RichTextEditor.js
isomorphic/system/modules/ISC_RichTextEditor.js.gz
isomorphic/system/modules/ISC_SQLBrowser.js
isomorphic/system/modules/ISC_SQLBrowser.js.gz
isomorphic/system/modules/ISC_SalesForce.js
isomorphic/system/modules/ISC_SalesForce.js.gz
isomorphic/system/modules/ISC_Scheduler.js
isomorphic/system/modules/ISC_Scheduler.js.gz
isomorphic/system/reference/SmartClient_Explorer.html
isomorphic/system/reference/SmartClient_Reference.html
isomorphic/system/reference/docTree.js
isomorphic/system/reference/docTree.js.gz
isomorphic/system/reference/exampleTree.js
isomorphic/system/reference/exampleTree.js.gz
isomorphic/system/reference/exampleTree.xml
isomorphic/system/reference/inlineExamples/drawing/linearGradient.js
isomorphic/system/reference/inlineExamples/drawing/linesAndArrowheads.js
isomorphic/system/reference/inlineExamples/drawing/radialGradient.js
isomorphic/system/reference/inlineExamples/drawing/rotation.js
isomorphic/system/reference/inlineExamples/drawing/simpleGradient.js
isomorphic/system/reference/inlineExamples/drawing/zoomAndPan.js
isomorphic/system/reference/inlineExamples/forms/dataTypes/canvasItem.js
isomorphic/system/reference/inlineExamples/forms/dataTypes/nestedEditing.js
isomorphic/system/reference/inlineExamples/grids/filtering/expressionFilter.js
isomorphic/system/reference/referenceDocs.js
isomorphic/system/reference/referenceDocs.js.gz
isomorphic/system/reference/referenceDocs.xml
isomorphic/system/reference/referenceDocs.xml.gz
isomorphic/system/schema/DynamicForm.ds.xml
isomorphic/system/schema/FacetChart.ds.xml
isomorphic/system/schema/FileItem.ds.xml
isomorphic/system/schema/MockDataSource.ds.xml
isomorphic/system/schema/UploadItem.ds.xml
sources/application/ActionMethods.js
sources/application/DMI.js
sources/application/DataBoundComponent.js
sources/application/DataSource.js
sources/application/DataView.js
sources/application/EBay.js
sources/application/Kapow.js
sources/application/MultiSortDialog.js
sources/application/Offline.js
sources/application/Operators.js
sources/application/RPCManager.js
sources/application/RestDataSource.js
sources/application/ResultSet.js
sources/application/ResultTree.js
sources/application/SForce.js
sources/application/ServiceOperation.js
sources/application/WSDataSource.js
sources/application/WebService.js
sources/application/eBaySvc.wsdl.js
sources/browser/Browser.js
sources/browser/Cookie.js
sources/browser/History.js
sources/browser/Page.js
sources/browser/Params.js
sources/communications/Comm.js
sources/copyright.txt
sources/debug/DoneLoading.js
sources/debug/Log.js
sources/debug/StackTrace.js
sources/debug/debug.js
sources/event/EventHandler.js
sources/event/EventRegistry.js
sources/event/Timer.js
sources/language/Array.js
sources/language/Array_math.js
sources/language/Array_sort.js
sources/language/CellSelection.js
sources/language/Class.js
sources/language/ClassFactory.js
sources/language/Clone.js
sources/language/DOMTree.js
sources/language/Date.js
sources/language/Function.js
sources/language/IsA.js
sources/language/List.js
sources/language/Map.js
sources/language/Math.js
sources/language/Number.js
sources/language/Object.js
sources/language/Packager.js
sources/language/RelativeDate.js
sources/language/Selection.js
sources/language/Serialize.js
sources/language/SimpleType.js
sources/language/String.js
sources/language/StringBuffer.js
sources/language/StringMethod.js
sources/language/Time.js
sources/language/Tree.js
sources/language/XMLSerialize.js
sources/language/XMLTools.js
sources/modules/ISC_Calendar.js
sources/modules/ISC_ClassBrowser.js
sources/modules/ISC_Containers.js
sources/modules/ISC_Core.js
sources/modules/ISC_DSBrowser.js
sources/modules/ISC_DataBinding.js
sources/modules/ISC_EBay.js
sources/modules/ISC_Forms.js
sources/modules/ISC_Foundation.js
sources/modules/ISC_Grids.js
sources/modules/ISC_History.js
sources/modules/ISC_Kapow.js
sources/modules/ISC_PluginBridges.js
sources/modules/ISC_RichTextEditor.js
sources/modules/ISC_SQLBrowser.js
sources/modules/ISC_SalesForce.js
sources/modules/ISC_Scheduler.js
sources/reference/exampleTree.xml
sources/scheduler/QuartzJobDetail.js
sources/scheduler/QuartzManager.js
sources/standalone/SA_Core.js
sources/standalone/SA_Page.js
sources/tools/AutoTest.js
sources/tools/ClassBrowser.js
sources/tools/DBCompactList.js
sources/tools/DBList.js
sources/tools/DBPane.js
sources/tools/DBSchemaTree.js
sources/tools/DSBrowser.js
sources/tools/JVMClassTree.js
sources/tools/JavaClassPane.js
sources/tools/SQLBrowser.js
sources/tools/SQLEditor.js
sources/tools/SQLTableBrowser.js
sources/widgets/ActiveXControl.js
sources/widgets/Animation.js
sources/widgets/Applet.js
sources/widgets/BrowserPlugin.js
sources/widgets/Button.js
sources/widgets/ButtonTable.js
sources/widgets/Calendar.js
sources/widgets/Canvas.js
sources/widgets/ColorPicker.js
sources/widgets/ColumnTree.js
sources/widgets/DOMGrid.js
sources/widgets/DataSourceEditor.js
sources/widgets/DateChooser.js
sources/widgets/DetailViewer.js
sources/widgets/Dialog.js
sources/widgets/EdgedCanvas.js
sources/widgets/EditMode.js
sources/widgets/Element.js
sources/widgets/EntityEditor.js
sources/widgets/FieldEditor.js
sources/widgets/Flashlet.js
sources/widgets/FormulaBuilder.js
sources/widgets/GridRenderer.js
sources/widgets/GridToolStrip.js
sources/widgets/HTMLFlow.js
sources/widgets/HiliteEditor.js
sources/widgets/Hover.js
sources/widgets/Img.js
sources/widgets/ImgButton.js
sources/widgets/ImgTab.js
sources/widgets/Label.js
sources/widgets/Layout.js
sources/widgets/ListEditor.js
sources/widgets/ListGrid.js
sources/widgets/Menu.js
sources/widgets/MenuButton.js
sources/widgets/Menubar.js
sources/widgets/NativeScrollbar.js
sources/widgets/NavigationBar.js
sources/widgets/Panel.js
sources/widgets/Portal.js
sources/widgets/PrintCanvas.js
sources/widgets/Progressbar.js
sources/widgets/PropertySheet.js
sources/widgets/Rangebar.js
sources/widgets/RecordEditor.js
sources/widgets/ReportChooser.js
sources/widgets/RichTextCanvas.js
sources/widgets/RichTextEditor.js
sources/widgets/SVG.js
sources/widgets/ScreenReader.js
sources/widgets/Scrollbar.js
sources/widgets/ScrollingMenu.js
sources/widgets/SectionStack.js
sources/widgets/Slider.js
sources/widgets/SplitPane.js
sources/widgets/Splitbar.js
sources/widgets/StatefulCanvas.js
sources/widgets/StretchImg.js
sources/widgets/StretchImgButton.js
sources/widgets/StretchResizePolicy.js
sources/widgets/TabBar.js
sources/widgets/TabSet.js
sources/widgets/TableResizePolicy.js
sources/widgets/TableView.js
sources/widgets/TileGrid.js
sources/widgets/TileLayout.js
sources/widgets/ToolStrip.js
sources/widgets/Toolbar.js
sources/widgets/TreeGrid.js
sources/widgets/TreeMenuButton.js
sources/widgets/ViewLoader.js
sources/widgets/Window.js
sources/widgets/form/AutoFitTextAreaItem.js
sources/widgets/form/BlurbItem.js
sources/widgets/form/ButtonItem.js
sources/widgets/form/CanvasItem.js
sources/widgets/form/CheckboxItem.js
sources/widgets/form/ColorItem.js
sources/widgets/form/ComboBoxItem.js
sources/widgets/form/ContainerItem.js
sources/widgets/form/CycleItem.js
sources/widgets/form/DataPathItem.js
sources/widgets/form/DateItem.js
sources/widgets/form/DateRangeItem.js
sources/widgets/form/DateTimeItem.js
sources/widgets/form/DialogUploadItem.js
sources/widgets/form/DynamicForm.js
sources/widgets/form/ExpressionItem.js
sources/widgets/form/FileItem.js
sources/widgets/form/FilterBuilder.js
sources/widgets/form/FormItem.js
sources/widgets/form/FormItemFactory.js
sources/widgets/form/HeaderItem.js
sources/widgets/form/HiddenItem.js
sources/widgets/form/LinkItem.js
sources/widgets/form/MultiFileItem.js
sources/widgets/form/NativeCheckboxItem.js
sources/widgets/form/NativeSelectItem.js
sources/widgets/form/NestedEditorItem.js
sources/widgets/form/NestedListEditorItem.js
sources/widgets/form/PasswordItem.js
sources/widgets/form/PickList.js
sources/widgets/form/PickTreeItem.js
sources/widgets/form/PopUpTextAreaItem.js
sources/widgets/form/RadioGroupItem.js
sources/widgets/form/RadioItem.js
sources/widgets/form/RelationItem.js
sources/widgets/form/RelativeDateItem.js
sources/widgets/form/ReportChooserItem.js
sources/widgets/form/ResetItem.js
sources/widgets/form/RichTextItem.js
sources/widgets/form/RowSpacerItem.js
sources/widgets/form/SOAPUploadItem.js
sources/widgets/form/SearchForm.js
sources/widgets/form/SectionItem.js
sources/widgets/form/SelectItem.js
sources/widgets/form/SliderItem.js
sources/widgets/form/SpacerItem.js
sources/widgets/form/SpinnerItem.js
sources/widgets/form/StaticTextItem.js
sources/widgets/form/SubmitItem.js
sources/widgets/form/TextAreaItem.js
sources/widgets/form/TextItem.js
sources/widgets/form/TimeItem.js
sources/widgets/form/ToolbarItem.js
sources/widgets/form/UploadItem.js
sources/widgets/form/Validators.js
sources/widgets/form/ValuesManager.js
sources/widgets/form/ViewFileItem.js
--- a/docs/changelog.html	Thu Apr 21 20:11:16 2011 +0200
+++ b/docs/changelog.html	Thu May 05 22:40:54 2011 +0200
@@ -35,7 +35,7 @@
 <TD HEIGHT=100><a href="http://www.isomorphic.com"><IMG SRC="images/logos/Isomorphic_Software_Logo.gif" WIDTH="256" HEIGHT="100" ALT="Isomorphic Software Logo" border="0"></a></TD><TD WIDTH=10></TD><TD VALIGN=MIDDLE ALIGN=RIGHT><SPAN CLASS=headerTitle>
 	SmartClient&trade;&nbsp;SDK Change&nbsp;Log
 </SPAN><BR><SPAN WIDTH=100% CLASS=headerVersion ALIGN=RIGHT>
-	Version&nbsp;SC_SNAPSHOT-2011-04-17/LGPL Deployment&nbsp;(2011-04-17)
+	Version&nbsp;SC_SNAPSHOT-2011-05-05/LGPL Deployment&nbsp;(2011-05-05)
 </SPAN></TD></TR></TABLE>
 
 <h2>Changes in 8.0</h2>
--- a/docs/readme.html	Thu Apr 21 20:11:16 2011 +0200
+++ b/docs/readme.html	Thu May 05 22:40:54 2011 +0200
@@ -35,7 +35,7 @@
 <TD HEIGHT=100><a target="_blank" href="http://www.isomorphic.com"><IMG SRC="images/logos/Isomorphic_Software_Logo.gif" WIDTH="256" HEIGHT="100" ALT="Isomorphic Software Logo" border="0"></a></TD><TD WIDTH=10></TD><TD VALIGN=MIDDLE ALIGN=RIGHT><SPAN CLASS=headerTitle>
 	SmartClient&trade;&nbsp;SDK Release&nbsp;Notes
 </SPAN><BR><SPAN WIDTH=100% CLASS=headerVersion ALIGN=RIGHT>
-	Version&nbsp;SC_SNAPSHOT-2011-04-17/LGPL Deployment&nbsp;(2011-04-17)
+	Version&nbsp;SC_SNAPSHOT-2011-05-05/LGPL Deployment&nbsp;(2011-05-05)
 </SPAN></TD></TR></TABLE>
 
 
--- a/docs/resources/explorer.html	Thu Apr 21 20:11:16 2011 +0200
+++ b/docs/resources/explorer.html	Thu May 05 22:40:54 2011 +0200
@@ -10,15 +10,15 @@
 ==================================================================-->
 
 <HTML><HEAD><TITLE>
-    SmartClient&trade; SC_SNAPSHOT-2011-04-17 SDK Explorer
+    SmartClient&trade; SC_SNAPSHOT-2011-05-05 SDK Explorer
 </TITLE>
     <SCRIPT>var isomorphicDir="../../isomorphic/";</SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Core.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Foundation.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Containers.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Grids.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_DataBinding.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/skins/SmartClient/load_skin.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Core.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Foundation.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Containers.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Grids.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_DataBinding.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/skins/SmartClient/load_skin.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
 </HEAD><BODY bgcolor=#e0e0e0 style="font-family:Tahoma,Verdana,Arial,Helvetica,san-serif;">
 
 
Binary file isomorphic/skins/Enterprise/load_skin.js.gz has changed
Binary file isomorphic/skins/Enterprise/skin_styles.css.gz has changed
Binary file isomorphic/skins/SmartClient/load_skin.js.gz has changed
Binary file isomorphic/skins/SmartClient/skin_styles.css.gz has changed
--- a/isomorphic/skins/SmartClient/unsupported_browser.html	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/skins/SmartClient/unsupported_browser.html	Thu May 05 22:40:54 2011 +0200
@@ -13,7 +13,7 @@
 <SPAN CLASS=pageHeader>Unsupported Browser Version</SPAN><br>
 <BR><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD BGCOLOR=336666><IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4></TD></TR></TABLE><BR><BR>
 
-This page uses the <a href="http://www.isomorphic.com">Isomorphic SmartClient</a> web presentation layer (Version SC_SNAPSHOT-2011-04-17/LGPL Deployment - 2011-04-17), which requires one of the following supported DHTML web browsers:<br><br>
+This page uses the <a href="http://www.isomorphic.com">Isomorphic SmartClient</a> web presentation layer (Version SC_SNAPSHOT-2011-05-05/LGPL Deployment - 2011-05-05), which requires one of the following supported DHTML web browsers:<br><br>
 
 <table class="normal" cellPadding=5>
 
Binary file isomorphic/skins/standard/load_skin.js.gz has changed
Binary file isomorphic/skins/standard/skin_styles.css.gz has changed
--- a/isomorphic/skins/standard/unsupported_browser.html	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/skins/standard/unsupported_browser.html	Thu May 05 22:40:54 2011 +0200
@@ -13,7 +13,7 @@
 <SPAN CLASS=pageHeader>Unsupported Browser Version</SPAN><br>
 <BR><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD BGCOLOR=336666><IMG SRC=images/blank.gif WIDTH=1 HEIGHT=4></TD></TR></TABLE><BR><BR>
 
-This page uses the <a href="http://www.isomorphic.com">Isomorphic SmartClient</a> web presentation layer (Version SC_SNAPSHOT-2011-04-17/LGPL Deployment - 2011-04-17), which requires one of the following supported DHTML web browsers:<br><br>
+This page uses the <a href="http://www.isomorphic.com">Isomorphic SmartClient</a> web presentation layer (Version SC_SNAPSHOT-2011-05-05/LGPL Deployment - 2011-05-05), which requires one of the following supported DHTML web browsers:<br><br>
 
 <table class="normal" cellPadding=5>
 
--- a/isomorphic/system/development/ISC_Calendar.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Calendar.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -110,31 +110,35 @@
 ,isc.A.$53g=function isc_Calendar__getEventsInRange(_1,_2){var _3=[];var _4=Date.getWeekendDays();for(var i=0;i<this.data.getLength();i++){var _6=this.data.get(i);if(!_6||!_6[this.startDateField])return[];if(_6[this.startDateField].getTime()>=_1.getTime()&&_6[this.startDateField].getTime()<=_2.getTime()&&(this.showWeekends||!_4.contains(_6[this.startDateField].getDay()))){_3.add(_6)}}
 return _3}
 ,isc.A.$64h=function isc_Calendar__getEventsTouchingRange(_1,_2,_3){var _4=[],_5=Date.getWeekendDays(),_6=_1.getTime(),_7=this.getDayEnd(_1),_8=_2.getHours()!=0?_2.getTime():_7.getTime(),_9=_6,_10=_8,_11=false;var _12=(_2.getHours()==0||Date.compareDates(_1,_2)<0)?_7:_2;while(!_11){for(var i=0;i<this.data.getLength();i++){var _14=this.data.get(i);var _15=_14[this.startDateField],_16=_14[this.endDateField];if(_16.getHours()==0||_16<_15){_16=_7}
-if(!_15)return[];if((_15.getTime()>=_6&&_15.getTime()<_8&&_15.getDay()==_1.getDay())||(_16.getTime()>_6&&_16.getTime()<=_8&&_16.getDay()==_2.getDay())||(_15.getTime()<_6&&_16.getTime()>_8&&(_15.getDay()==_1.getDay()||_16.getDay()==_2.getDay()))&&(this.showWeekends||!_5.contains(_15.getDay())))
+if(!_15)return[];var _17=_15.getTime(),_18=_15.getDay(),_19=_16.getTime(),_20=_16.getDay();var _21=(_17>=_6&&_17<_8&&_18==_1.getDay());var _22=(_19>_6&&_19<=_8&&_20==_1.getDay());var _23=(_17<=_6)&&(_19>=_8)&&(_18==_1.getDay());if((_21||_22||_23)&&(this.showWeekends||!_5.contains(_15.getDay())))
 {_4.add(_14);if(_3){if(_15.getTime()<_9){_9=_15.getTime()}
 if(_16.getTime()>_10){_10=_16.getTime()}}}}
 if(!_3||(_9==_6&&_10==_8)){_11=true}else{_6=_9;_8=_10;_4.clear()}}
 return _4}
 ,isc.A.$64i=function isc_Calendar__findEventWindow(_1,_2){var _3=(_2?this.weekView:this.dayView);if(!_3.body||!_3.body.children)return;var _4=_3.body.children;if(this.dataSource)this.$53s=isc.DataSource.get(this.dataSource).getLocalPrimaryKeyFields();for(var i=0;i<_4.length;i++){if(isc.isAn.EventWindow(_4[i])&&_3.areSame(_4[i].event,_1)&&_4[i].$53i==_2){return _4[i]}}
 return false}
-,isc.A.$64j=function isc_Calendar__prepareAutoArrangeOffsets(_1,_2){var _3=[],_4=0,_5=60/this.eventSnapGap,_6=24*_5;for(var i=0;i<_6;i++){_3.add({usedCol:0,assignedCol:0,exactTime:0})}
-for(var i=0;i<_1.getLength();i++){var _8=_1.get(i);var _9=_8[this.startDateField].getHours(),_10=_8[this.startDateField].getMinutes(),_11=_10%this.eventSnapGap;if(_11){_10=_10-_11}
-if(_9==24)_9=0;var _12=_8[this.endDateField].getHours(),_13=_8[this.endDateField].getMinutes(),_14=_13%this.eventSnapGap;if(_14){_13=_13+(this.eventSnapGap-_14);if(_13==60){_13=0;_12++}}
-_8.$64k=0;_8.$64l=0;var _15=(_9*_5)+(_10/ this.eventSnapGap),_16=(_12*_5)+(_13/ this.eventSnapGap);for(var _17=_15;_17<_16;_17++){var _18=_3[_17].usedCol;var _19=_3[_17].assignedCol;var _20=_3[_17].exactTime;if(_17==_15){var _21=_19!=0;_8.$64k=_19;if(this.eventOverlap){if(!this.eventOverlapIdenticalStartTimes){_8.$64m=_20==0}else{_8.$64m=true}
-_20=1}
-_19++;if(_19>_4){_4=_19}
-if(!_21&&_18!=0){_8.$64l=_18;_19=_18+1}else{if(_19<=_18){_8.$64l=_18;_19=_18+1}else{_8.$64l=_4}}}else{if(_21){if(_19==0){if(_18==0){_18=_8.$64k}}else{if(_18==0){if(_8.$64k>_19){_18=_8.$64k}else{_19=_8.$64k+1}}else if(_19<_18){_19=_18+1}}}else{if(_19+1<_18){_19++}else{_19=_18+1}}}
-_3[_17].usedCol=_18;_3[_17].assignedCol=_19;_3[_17].exactTime=_20}}
-return _4}
+,isc.A.$64j=function isc_Calendar__prepareAutoArrangeOffsets(_1,_2){var _3=[],_4=60/this.eventSnapGap,_5=24*_4,_6=[new Array(_5),new Array(_5),new Array(_5),new Array(_5),new Array(_5),new Array(_5),new Array(_5)];for(var i=0;i<_5;i++){_3.add({usedCol:[0,0,0,0,0,0,0],assignedCol:[0,0,0,0,0,0,0],exactTime:[0,0,0,0,0,0,0]})}
+for(var i=0;i<_1.getLength();i++){var _8=_1.get(i);var _9=_8[this.startDateField].getDay();var _10=_8[this.startDateField].getHours(),_11=_8[this.startDateField].getMinutes(),_12=_11%this.eventSnapGap;if(_12){_11=_11-_12}
+if(_10==24)_10=0;var _13=_8[this.endDateField].getDay(),_14=_8[this.endDateField].getHours(),_15=_8[this.endDateField].getMinutes(),_16=_15%this.eventSnapGap;if(_13>_9){_14=24;_15=0;_16=0}
+if(_16){_15=_15+(this.eventSnapGap-_16);if(_15==60){_15=0;_14++}}
+var _17=(_10*_4)+(_11/ this.eventSnapGap),_18=(_14*_4)+(_15/ this.eventSnapGap);_8.$64k=0;_8.$64l=0;_8.$85h=_17;_8.$85i=_18;for(var _19=_17;_19<_18;_19++){var _20=_3[_19];var _21=_3[_19].usedCol[_9];var _22=_3[_19].assignedCol[_9];var _23=_3[_19].exactTime[_9];if(_6[_9][_19]==null)_6[_9][_19]=0;if(_19==_17){var _24=_22!=0;_8.$64k=_22;if(this.eventOverlap){if(!this.eventOverlapIdenticalStartTimes){_8.$64m=_23==0}else{_8.$64m=true}
+_23=1}
+_22++;if(_22>_6[_9][_19]){_6[_9][_19]=_22}
+if(!_24&&_21!=0){_8.$64l=_21;_22=_21+1}else{if(_22<=_21){_8.$64l=_21;_22=_21+1}else{_8.$64l=_6[_9][_19]}}}else{if(_24){if(_22==0){if(_21==0){_21=_8.$64k}}else{if(_21==0){if(_8.$64k>_22){_21=_8.$64k}else{_22=_8.$64k+1}}else if(_22<_21){_22=_21+1}}}else{if(_22+1<_21){_22++}else{_22=_21+1}}}
+_3[_19].usedCol[_9]=_21;_3[_19].assignedCol[_9]=_22;_3[_19].exactTime[_9]=_23}}
+return _6}
 ,isc.A.getDayEnd=function isc_Calendar_getDayEnd(_1){return new Date(_1.getFullYear(),_1.getMonth(),_1.getDate(),23,59,59)}
 ,isc.A.$64n=function isc_Calendar__renderEventRange(_1,_2,_3){var _4=(_1?this.weekView:this.dayView);if(!_4.isDrawn())return;var _5=_4.getRowHeight(1),_6=_4.getColumnWidth(_4.isLabelCol(0)?1:0);var _7=_2,_8=_3;if(Date.compareDates(_7,_8)<0||(_8.getHours()==0)){_8=this.getDayEnd(_7)}
-var _9=this.$64h(_7,_8,true);_9.sortByProperties([this.startDateField,this.endDateField],[true,false]);var _10=this.$64j(_9,_4);if(_10==0)_10=1;_9.unsort();_9.sortByProperties(["$64k"],[true]);var _11=_6/ _10;for(var i=0;i<_9.getLength();i++){var _13=_9.get(i);if(_13.$64l==0)_13.$64l=1;var _14=this.getEventLeft(_13,_1);_14+=(_13.$64k*_11);var _15=(_13.$64l-_13.$64k)*_11;if(this.eventOverlap&&_13.$64m){if(_13.$64k>0){_14-=_11*(this.eventOverlapPercent/ 100);_15+=_11*(this.eventOverlapPercent/ 100)}}
-var _16=_13[this.endDateField].getHours();if(_16==0&&_13[this.endDateField].getMinutes()==0)_16=24;var _17=false;if(_2.getDate()>_3.getDate()){_17=true;_16=24}
-var _18=(_16-_13[this.startDateField].getHours())*(_5*2)
-if(this.weekEventBorderOverlap&&_4.$53i)_15+=1;if(_13[this.startDateField].getMinutes()>0){_18-=this.$54g(_13[this.startDateField].getMinutes(),_5)}
-if(_13[this.endDateField].getMinutes()>0&&!_17){_18+=this.$54g(_13[this.endDateField].getMinutes(),_5)}
-var _19=_13[this.startDateField].getHours()*(_5*2);if(_13[this.startDateField].getMinutes()>0){_19+=this.$54g(_13[this.startDateField].getMinutes(),_5)}
-var _20=this.$64i(_13,_1);if(_20){_20.renderEvent(_19,_14,_15,_18)}}}
+var _9=this.$64h(_7,_8,true);_9.sortByProperties([this.startDateField,this.endDateField],[true,false]);var _10=this.$64j(_9,_4);for(var i=0;i<_10.length;i++){for(var j=0;j<_10[i].length;j++){if(_10[i][j]==0)_10[i][j]=1}}
+_9.unsort();_9.sortByProperties(["$64k"],[true]);for(var i=0;i<_9.getLength();i++){var _13=_9.get(i),_14=_13[this.startDateField],_15=_13[this.endDateField];var _16=_14.getDay();var _17=_10[_16];var _18=this.getTimeSlotsTouchedByEventRange(_13);var _19=_6/
+Math.max(1,_17.max(_18.min,_18.max-1));if(_13.$64l==0)_13.$64l=1;var _20=this.getEventLeft(_13,_1);_20+=(_13.$64k*_19);var _21=(_13.$64l-_13.$64k)*_19;if(this.eventOverlap&&_13.$64m){if(_13.$64k>0){_20-=_19*(this.eventOverlapPercent/ 100);_21+=_19*(this.eventOverlapPercent/ 100)}}
+var _22=_15.getHours(),_23=_15.getMinutes();if(_22==0&&(_23==0||_15.getDate()!=_14.getDate())){_22=24;_23=0}
+var _24=(_22-_14.getHours())*(_5*2)
+if(this.weekEventBorderOverlap&&_4.$53i)_21+=1;if(_14.getMinutes()>0){_24-=this.$54g(_14.getMinutes(),_5)}
+if(_23>0){_24+=this.$54g(_23,_5)}
+var _25=_14.getHours()*(_5*2);if(_14.getMinutes()>0){_25+=this.$54g(_14.getMinutes(),_5)}
+var _26=this.$64i(_13,_1);if(_26){_26.renderEvent(_25,_20,_21,_24)}}}
+,isc.A.getTimeSlotsTouchedByEventRange=function isc_Calendar_getTimeSlotsTouchedByEventRange(_1){var _2=this.$64h(_1[this.startDateField],_1[this.endDateField],true);var _3=_2.getProperty("$85h").min();var _4=_2.getProperty("$85i").max();return{min:_3,max:_4}}
 ,isc.A.$529=function isc_Calendar__setChosenWeek(){var _1=this.chosenWeekStart=new Date(this.year,this.month,this.chosenDate.getDate()
 -this.chosenDate.getDay()+this.firstDayOfWeek);if(Date.compareDates(this.chosenDate,_1)==1){this.chosenWeekStart.setDate(this.chosenWeekStart.getDate()-7)}
 this.chosenWeekEnd=new Date(_1.getFullYear(),_1.getMonth(),_1.getDate()+6,23,59);if(Date.compareDates(this.chosenDate,this.chosenWeekEnd)==-1){this.chosenWeekStart.setDate(this.chosenWeekStart.getDate()+7);this.chosenWeekEnd.setDate(this.chosenWeekEnd.getDate()+7)}}
@@ -233,7 +237,7 @@
 ,isc.A.getActiveDay=function isc_Calendar_getActiveDay(){var _1=this.getActiveTime();if(_1)return _1.getDay()}
 ,isc.A.getActiveTime=function isc_Calendar_getActiveTime(){var _1=this.ns.EH,_2=this.getSelectedView();var _3=_2.getEventColumn();var _4=_2.getEventRow();return this.$53m(_4,_3)}
 ,isc.A.setTimelineRange=function isc_Calendar_setTimelineRange(_1,_2,_3,_4,_5){if(this.timelineView)this.timelineView.setTimelineRange(_1,_2,_3,_4);if(_5)this.fireCallback(_5)}
-);isc.B._maxIndex=isc.C+80;isc.ClassFactory.defineClass("DaySchedule","ListGrid");isc.DaySchedule.changeDefaults("bodyProperties",{childrenSnapToGrid:true,snapToCells:true,redrawOnResize:true});isc.A=isc.DaySchedule.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoDraw=false;isc.A.canSort=false;isc.A.canResizeFields=false;isc.A.canReorderFields=false;isc.A.showHeader=false;isc.A.showHeaderContextMenu=false;isc.A.showAllRecords=true;isc.A.fixedRecordHeights=true;isc.A.labelColumnWidth=60;isc.A.labelColumnAlign="right";isc.A.showLabelColumn=true;isc.A.labelColumnPosition="left";isc.A.labelColumnBaseStyle="labelColumn";isc.A.showRollOver=true;isc.A.useCellRollOvers=true;isc.A.canSelectCells=true;isc.B.push(isc.A.initWidget=function isc_DaySchedule_initWidget(){this.fields=[];var _1={width:this.labelColumnWidth,name:"label",title:" ",cellAlign:"right",formatCellValue:function(_9,_10,_11,_12,_13){if(_11%2==0){var _2=(_11/ 2);var _3=isc.Time.parseInput(_2);return isc.Time.toTime(_3,_13.creator.timeFormatter)}
+);isc.B._maxIndex=isc.C+81;isc.ClassFactory.defineClass("DaySchedule","ListGrid");isc.DaySchedule.changeDefaults("bodyProperties",{childrenSnapToGrid:true,snapToCells:true,redrawOnResize:true});isc.A=isc.DaySchedule.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoDraw=false;isc.A.canSort=false;isc.A.canResizeFields=false;isc.A.canReorderFields=false;isc.A.showHeader=false;isc.A.showHeaderContextMenu=false;isc.A.showAllRecords=true;isc.A.fixedRecordHeights=true;isc.A.labelColumnWidth=60;isc.A.labelColumnAlign="right";isc.A.showLabelColumn=true;isc.A.labelColumnPosition="left";isc.A.labelColumnBaseStyle="labelColumn";isc.A.showRollOver=true;isc.A.useCellRollOvers=true;isc.A.canSelectCells=true;isc.B.push(isc.A.initWidget=function isc_DaySchedule_initWidget(){this.fields=[];var _1={width:this.labelColumnWidth,name:"label",title:" ",cellAlign:"right",formatCellValue:function(_9,_10,_11,_12,_13){if(_11%2==0){var _2=(_11/ 2);var _3=isc.Time.parseInput(_2);return isc.Time.toTime(_3,_13.creator.timeFormatter)}
 else{return""}}}
 if(this.showLabelColumn&&this.labelColumnPosition=="left"){this.fields.add(_1)}
 this.fields.add({name:"day1",align:"center"});if(this.$53i){var _4=8;for(var i=2;i<_4;i++){this.fields.add({name:"day"+i,align:"center"})}
@@ -463,7 +467,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Calendar.js.gz has changed
--- a/isomorphic/system/development/ISC_ClassBrowser.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_ClassBrowser.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -79,7 +79,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_ClassBrowser.js.gz has changed
--- a/isomorphic/system/development/ISC_Containers.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Containers.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -91,7 +91,7 @@
 );isc.B._maxIndex=isc.C+26;isc.ClassFactory.defineClass("Window","Layout");isc.A=isc.Window.getPrototype();isc.A.styleName="windowBackground";isc.A.skinImgDir="images/Window/";isc.A.backgroundColor="#DDDDDD";isc.A.layoutMargin=2;isc.A.membersMargin=2;isc.A.orientation="vertical";isc.A.dragStartDistance=1;isc.A.canDragReposition=true;isc.A.dragAppearance=isc.EventHandler.OUTLINE;isc.A.canDragResize=false;isc.A.resizeFrom=["R","B","BR"];isc.A.minWidth=100;isc.A.minHeight=100;isc.A.useBackMask=isc.Browser.isIE&&isc.Browser.minorVersion>=5.5;isc.A.isModal=false;isc.A.modalMaskOpacity=50;isc.A.modalMaskStyle="modalMask";isc.A.modalMaskConstructor="ScreenSpan";isc.A.dismissOnOutsideClick=false;isc.A.showBody=true;isc.A.bodyStyle="windowBody";isc.A.bodyColor="#FFFFFF";isc.A.hiliteBodyColor="#EEEEEE";isc.A.contentsType="page";isc.A.bodyDefaults={layoutMargin:0};isc.A.contentLayout="vertical";isc.A.autoSize=false;isc.A.showHeader=true;isc.A.headerConstructor="HLayout";isc.A.showHeaderBackground=!(isc.Browser.isIE&&!isc.Browser.isStrict&&isc.Browser.minorVersion>=5.5);isc.A.headerBackgroundConstructor="Img";isc.A.headerBackgroundDefaults={width:"100%",height:"100%",addAsChild:true,vertical:false,capSize:10};isc.A.headerStyle="windowHeader";isc.A.headerSrc=(!(isc.Browser.isIE&&!isc.Browser.isStrict&&isc.Browser.minorVersion>=5.5)?"[SKIN]Window/headerGradient.gif":null);isc.A.headerDefaults={height:18,layoutMargin:1,membersMargin:2,overflow:isc.Canvas.HIDDEN};isc.A.headerControls=["headerIcon","headerLabel","minimizeButton","maximizeButton","closeButton"];isc.A.hiliteHeaderStyle="windowHeaderHilite";isc.A.hiliteHeaderSrc=(!(isc.Browser.isIE&&isc.Browser.minorVersion>=5.5)?"[SKIN]Window/headerGradient_hilite.gif":null);isc.A.showTitle=true;isc.A.title="Untitled Window";isc.A.headerLabelConstructor="Label";isc.A.headerLabelDefaults={wrap:false,align:isc.Canvas.LEFT,styleName:"windowHeaderText",width:10,inherentWidth:true};isc.A.showHeaderIcon=true;isc.A.headerIconConstructor="Img";isc.A.headerIconDefaults={width:16,height:16,layoutAlign:"center",src:"[SKIN]/Window/headerIcon.gif"};isc.A.canFocusInHeaderButtons=false;isc.A.showCloseButton=true;isc.A.closeButtonConstructor="ImgButton";isc.A.closeButtonDefaults={width:16,height:14,layoutAlign:"center",src:"[SKIN]/Window/close.gif",click:function(){return this.creator.$7e()}};isc.A.showMinimizeButton=true;isc.A.minimizeButtonConstructor="ImgButton";isc.A.minimizeButtonDefaults={width:16,height:14,layoutAlign:"center",src:"[SKIN]/Window/minimize.gif",click:function(){if(!this.creator.onMinimizeClick||(this.creator.onMinimizeClick()!=false)){this.creator.minimize()}
 return false}};isc.A.minimized=false;isc.A.defaultMinimizeHeight=16;isc.A.restoreButtonDefaults={width:16,height:14,src:"[SKIN]/Window/restore.gif",layoutAlign:"center",click:function(){if(!this.creator.onRestoreClick||(this.creator.onRestoreClick()!=false)){this.creator.restore()}
 return false}};isc.A.minimized=false;isc.A.showMaximizeButton=false;isc.A.maximizeButtonConstructor="ImgButton";isc.A.maximizeButtonDefaults={width:16,height:14,src:"[SKIN]/Window/maximize.gif",layoutAlign:"center",click:function(){if(!this.creator.onMaximizeClick||(this.creator.onMaximizeClick()!=false)){this.creator.maximize()}
-return false}};isc.A.showFooter=true;isc.A.footerConstructor="HLayout";isc.A.footerHeight=18;isc.A.footerControls=["spacer","resizer"];isc.A.showStatusBar=true;isc.A.statusBarConstructor="Canvas";isc.A.statusBarDefaults={overflow:isc.Canvas.HIDDEN,styleName:"windowStatusBar",addAsChild:true,width:"100%",wrap:false,leftPadding:5};isc.A.showResizer=true;isc.A.resizerConstructor="Img";isc.A.resizerDefaults={canDragResize:true,getEventEdge:function(){return"BR"},src:"[SKIN]/Window/resizer.gif",width:16,height:16};isc.A.showToolbar=false;isc.A.toolbarConstructor="Toolbar";isc.A.toolbarDefaults={height:40,layoutMargin:10,membersMargin:5,overflow:"visible"};isc.A.customEdges=["T","B"];isc.A.overflow="hidden";isc.A=isc.Window.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoChildParentMap={resizer:"footer",statusBar:"footer",headerBackground:"header",headerIcon:"header",headerLabel:"header",minimizeButton:"header",maximizeButton:"header",closeButton:"header",toolbar:"body"};isc.B.push(isc.A.initWidget=function isc_Window_initWidget(){if(this.minimized&&this.maximized){this.logWarn("Window initialized with maximized and minimized both set to true. "+"This is unsupported. The Window will be rendered minimized.");this.maximized=false}
+return false}};isc.A.showFooter=true;isc.A.footerConstructor="HLayout";isc.A.footerHeight=18;isc.A.footerControls=["spacer","resizer"];isc.A.showStatusBar=true;isc.A.statusBarConstructor="Canvas";isc.A.statusBarDefaults={overflow:isc.Canvas.HIDDEN,styleName:"windowStatusBar",addAsChild:true,width:"100%",wrap:false,leftPadding:5};isc.A.showResizer=true;isc.A.resizerConstructor="Img";isc.A.resizerDefaults={canDragResize:true,getEventEdge:function(){if(this.creator.resizeFrom.contains("BR")){return"BR"}else if(this.creator.resizeFrom.contains("B")){return"B"}else if(this.creator.resizeFrom.contains("R")){return"R"}},src:"[SKIN]/Window/resizer.gif",width:16,height:16};isc.A.showToolbar=false;isc.A.toolbarConstructor="Toolbar";isc.A.toolbarDefaults={height:40,layoutMargin:10,membersMargin:5,overflow:"visible"};isc.A.customEdges=["T","B"];isc.A.overflow="hidden";isc.A=isc.Window.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoChildParentMap={resizer:"footer",statusBar:"footer",headerBackground:"header",headerIcon:"header",headerLabel:"header",minimizeButton:"header",maximizeButton:"header",closeButton:"header",toolbar:"body"};isc.B.push(isc.A.initWidget=function isc_Window_initWidget(){if(this.minimized&&this.maximized){this.logWarn("Window initialized with maximized and minimized both set to true. "+"This is unsupported. The Window will be rendered minimized.");this.maximized=false}
 if(this.minimized){this.minimized=null;this.minimize()}else if(this.maximized){this.maximized=null;this.maximize()}
 if(this.autoSize){this.vPolicy="none";this.overflow="visible"}
 this.Super(this.$oc);if(!this.$7f&&this.items!=null){for(var i=0;i<this.items.length;i++){if(isc.isA.Canvas(this.items[i])&&this.items[i].isDrawn())this.items[i].clear()}}}
@@ -238,39 +238,63 @@
 ,isc.A.closeClick=function isc_Window_closeClick(){this.returnValue(null);this.hide();return false}
 );isc.B._maxIndex=isc.C+72;isc.Window.registerStringMethods({onMaximizeClick:"",onMinimizeClick:"",onRestoreClick:"",onCloseClick:""})
 if(isc.definePrintWindow)isc.definePrintWindow();isc.Window.registerDupProperties("items");isc.defineClass("Portlet","Window");isc.A=isc.Portlet.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showShadow=false;isc.A.animateMinimize=true;isc.A.dragAppearance="outline";isc.A.canDrop=true;isc.A.dragType="Portlet";isc.A.resizeFrom=null;isc.A.showMaximizeButton=true;isc.A.headerControls=["headerLabel","minimizeButton","maximizeButton","closeButton"];isc.A.dragOpacity=30;isc.A.showCloseConfirmationMessage=true;isc.A.closeConfirmationMessage="Close portlet?";isc.B.push(isc.A.closeClick=function isc_Portlet_closeClick(){if(this.showCloseConfirmationMessage){isc.confirm(this.closeConfirmationMessage,{target:this,methodName:"confirmedClosePortlet"})}else{this.confirmedClosePortlet(true)}}
-,isc.A.confirmedClosePortlet=function isc_Portlet_confirmedClosePortlet(_1){if(!_1)return;var _2=this.parentElement,_3=_2?_2.parentElement:null,_4=_3?_3.parentElement:null;if(!isc.isA.PortalLayout(_4))this.clear();else _4.removePortlet(this)}
+,isc.A.confirmedClosePortlet=function isc_Portlet_confirmedClosePortlet(_1){if(!_1)return;var _2=this.parentElement;if(_2.removePortlets){_2.removePortlets(this)}else{this.clear()}}
 ,isc.A.maximize=function isc_Portlet_maximize(){var _1=this.getVisibleWidth(),_2=this.getVisibleHeight(),_3=this.getPageLeft(),_4=this.getPageTop();this.$55d=isc.Canvas.create({width:this.getVisibleWidth(),height:this.getVisibleHeight()});this.masterLayout=this.parentElement;this.masterLayout.portletMaximizing=true;this.masterLayout.replaceMember(this,this.$55d,false);this.masterLayout.portletMaximizing=false;this.setWidth(_1);this.setHeight(_2);this.moveTo(_3,_4);this.bringToFront();this.draw();this.delayCall("doMaximize")}
 ,isc.A.completeRestore=function isc_Portlet_completeRestore(){this.Super("completeRestore",arguments);this.masterLayout.portletMaximizing=true;this.masterLayout.replaceMember(this.$55d,this);this.masterLayout.portletMaximizing=false;this.$55d.destroy();delete this.$55e;delete this.masterLayout}
 ,isc.A.doMaximize=function isc_Portlet_doMaximize(){this.Super("maximize",arguments)}
-);isc.B._maxIndex=isc.C+5;isc.defineClass("PortalColumnHeader","HLayout");isc.A=isc.PortalColumnHeader.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.height=20;isc.A.noResizer=true;isc.A.border="1px solid #CCCCCC";isc.A.canDragReposition=true;isc.B.push(isc.A.initWidget=function isc_PortalColumnHeader_initWidget(){this.Super("initWidget",arguments);this.dragTarget=this.portalColumn;this.addMember(isc.LayoutSpacer.create());this.menu=this.getMenuConstructor().create({width:150,portalColumn:this.portalColumn,data:[{title:"Remove Column",click:"menu.portalColumn.destroy()"},{title:"Add Column",click:"menu.portalColumn.addNewColumn()"}]});this.addMember(isc.MenuButton.create({title:"Column Properties",width:150,menu:this.menu}));this.addMember(isc.LayoutSpacer.create())}
-);isc.B._maxIndex=isc.C+1;isc.defineClass("PortalRow","Layout");isc.A=isc.PortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.defaultResizeBars="marked";isc.A.vertical=false;isc.A.overflow="hidden";isc.A.layoutMargin=3;isc.A.canAcceptDrop=true;isc.A.dropTypes=["Portlet"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.hDropOffset=15;isc.B.push(isc.A.isHDrop=function isc_PortalRow_isHDrop(){var _1=this.getDropPosition();var _2=this.getMember(_1==0?0:_1-1);if(!_2.containsEvent()&&_1<this.members.length){_2=this.getMember(_1)}
+);isc.B._maxIndex=isc.C+5;isc.defineClass("PortalColumnHeader","HLayout");isc.A=isc.PortalColumnHeader.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.height=20;isc.A.noResizer=true;isc.A.border="1px solid #CCCCCC";isc.A.canDragReposition=true;isc.B.push(isc.A.initWidget=function isc_PortalColumnHeader_initWidget(){this.Super("initWidget",arguments);this.dragTarget=this.creator;this.addMember(isc.LayoutSpacer.create());this.menu=this.getMenuConstructor().create({width:150,portalColumn:this.creator,data:[{title:"Remove Column",click:"menu.portalColumn.destroy()"},{title:"Add Column",click:"menu.portalColumn.addNewColumn()"}]});this.addMember(isc.MenuButton.create({title:"Column Properties",width:150,menu:this.menu}));this.addMember(isc.LayoutSpacer.create())}
+);isc.B._maxIndex=isc.C+1;isc.defineClass("PortalRow","Layout");isc.A=isc.PortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.defaultResizeBars="marked";isc.A.vertical=false;isc.A.overflow="hidden";isc.A.layoutMargin=3;isc.A.canAcceptDrop=true;isc.A.dropTypes=["Portlet"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.hDropOffset=15;isc.B.push(isc.A.initWidget=function isc_PortalRow_initWidget(){this.Super("initWidget",arguments);if(this.portlets)this.addPortlets(this.portlets);this.portlets=null}
+,isc.A.isHDrop=function isc_PortalRow_isHDrop(){var _1=this.getDropPosition();var _2=this.getMember(_1==0?0:_1-1);if(!_2.containsEvent()&&_1<this.members.length){_2=this.getMember(_1)}
 var _3=_2.getOffsetX();if(_3<this.hDropOffset||_3>_2.getVisibleWidth()-this.hDropOffset){return true}else{return false}}
 ,isc.A.dropMove=function isc_PortalRow_dropMove(){if(this.isHDrop()){this.Super("dropMove",arguments);this.parentElement.hideDropLine();return isc.EH.STOP_BUBBLING}else{this.hideDropLine()}}
 ,isc.A.dropOver=function isc_PortalRow_dropOver(){if(this.isHDrop()){this.Super("dropOver",arguments);this.parentElement.hideDropLine();return isc.EH.STOP_BUBBLING}else{this.hideDropLine()}}
 ,isc.A.drop=function isc_PortalRow_drop(){if(this.isHDrop()){this.Super("drop",arguments);this.parentElement.hideDropLine();this.hideDropLine();return isc.EH.STOP_BUBBLING}else{this.hideDropLine()}}
 ,isc.A.membersChanged=function isc_PortalRow_membersChanged(){if(this.members.length==0&&!this.portletMaximizing)this.destroy()}
-);isc.B._maxIndex=isc.C+5;isc.defineClass("PortalColumn","Layout");isc.A=isc.PortalColumn.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.defaultResizeBars="marked";isc.A.layoutMargin=3;isc.A.dragAppearance="outline";isc.A.canAcceptDrop=true;isc.A.canDrop=true;isc.A.dragType="PortalColumn";isc.A.dropTypes=["Portlet"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.showColumnHeader=true;isc.A.rowConstructor="PortalRow";isc.B.push(isc.A.initWidget=function isc_PortalColumn_initWidget(){this.Super("initWidget",arguments);if(this.showColumnHeader){this.columnHeader=isc.PortalColumnHeader.create({title:"Column",portalColumn:this});this.addMember(this.columnHeader)}}
+,isc.A.addPortlets=function isc_PortalRow_addPortlets(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;_1.map(function(_5){var _4=_5.$po;if(_4!=null){_5.setHeight("100%");_3.setHeight(_4)}});this.addMembers(_1,_2)}
+,isc.A.addPortlet=function isc_PortalRow_addPortlet(_1,_2){this.addPortlets(_1,_2)}
+,isc.A.removePortlets=function isc_PortalRow_removePortlets(_1){this.removeMembers(_1)}
+,isc.A.removePortlet=function isc_PortalRow_removePortlet(_1){this.removeMembers(_1)}
+,isc.A.getPortlets=function isc_PortalRow_getPortlets(){return this.getMembers()}
+);isc.B._maxIndex=isc.C+11;isc.defineClass("PortalColumnBody","Layout");isc.A=isc.PortalColumnBody.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.layoutMargin=3;isc.A.defaultResizeBars="marked";isc.A.canAcceptDrop=true;isc.A.dropTypes=["Portlet"];isc.A.canDrag=false;isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.B.push(isc.A.getDropComponent=function isc_PortalColumnBody_getDropComponent(_1,_2){this.creator.addPortlet(_1,_2)}
+);isc.B._maxIndex=isc.C+1;isc.defineClass("PortalColumn","Layout");isc.A=isc.PortalColumn.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.layoutMargin=3;isc.A.dragAppearance="outline";isc.A.canAcceptDrop=false;isc.A.canDrop=true;isc.A.dragType="PortalColumn";isc.A.showColumnHeader=true;isc.A.columnHeaderConstructor="PortalColumnHeader";isc.A.columnHeaderDefaults={title:"Column"};isc.A.bodyConstructor="PortalColumnBody";isc.A.bodyDefaults={height:"100%"};isc.A.portalRowConstructor="PortalRow";isc.B.push(isc.A.initWidget=function isc_PortalColumn_initWidget(){this.Super("initWidget",arguments);this.addAutoChild("columnHeader");this.addAutoChild("body");if(this.portalRows)this.addPortalRows(this.portalRows);this.portalRows=null}
 ,isc.A.addNewColumn=function isc_PortalColumn_addNewColumn(){this.portalLayout.addColumnAfter(this)}
-,isc.A.getDropComponent=function isc_PortalColumn_getDropComponent(_1,_2){this.addPortlet(_1,this.getDropPosition())}
-,isc.A.addPortlet=function isc_PortalColumn_addPortlet(_1,_2){if(this.showColumnHeader)_2+=1;var _3=this.getMembers();if(_3==null)_2=0;else if(_2>_3.length)_2=_3.length;var _4=_1.$po;if(_4!=null){_1.setHeight("100%")}
-var _5={showResizeBar:this.canResizeRows};if(_4!=null){_5.height=_4}
-var _6=this.createAutoChild("row",_5);this.addMember(_6,_2);_6.addMember(_1)}
-,isc.A.addPortletToExistingRow=function isc_PortalColumn_addPortletToExistingRow(_1,_2,_3){if(this.showColumnHeader)_2+=1;var _4=this.getMembers();if(_4==null||_4.length<=_2){this.addPortlet(_1)}else{var _5=this.getMember(_2);_5.addMember(_1,_3)}}
-,isc.A.getDropPosition=function isc_PortalColumn_getDropPosition(){var _1=this.Super("getDropPosition",arguments);if(_1==0)_1=1;return _1}
-);isc.B._maxIndex=isc.C+6;isc.defineClass("PortalLayout","Layout");isc.A=isc.PortalLayout.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=false;isc.A.numColumns=2;isc.A.showColumnMenus=true;isc.A.columnBorder="1px solid gray";isc.A.canResizeColumns=false;isc.A.canResizeRows=false;isc.A.canAcceptDrop=true;isc.A.dropTypes=["PortalColumn"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.columnConstructor="PortalColumn";isc.B.push(isc.A.getNumColumns=function isc_PortalLayout_getNumColumns(){return this.getMembers().length}
+,isc.A.makePortalRow=function isc_PortalColumn_makePortalRow(_1){if(_1==null)_1={};var _2={showResizeBar:this.canResizeRows};var _3;if(isc.isA.PortalRow(_1)){_1.setProperties(_2);_3=_1}else{isc.addProperties(_1,_2);_3=this.createAutoChild("portalRow",_1)}
+return _3}
+,isc.A.setCanResizeRows=function isc_PortalColumn_setCanResizeRows(_1){this.canResizeRows=_1;this.getPortalRows().map(function(_2){_2.setShowResizeBar(_1)})}
+,isc.A.addPortalRows=function isc_PortalColumn_addPortalRows(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;_1=_1.map(function(_4){return _3.makePortalRow(_4)});this.body.addMembers(_1,_2)}
+,isc.A.addPortalRow=function isc_PortalColumn_addPortalRow(_1,_2){this.addPortalRows(_1,_2)}
+,isc.A.removePortalRows=function isc_PortalColumn_removePortalRows(_1){this.body.removeMembers(_1)}
+,isc.A.removePortalRow=function isc_PortalColumn_removePortalRow(_1){this.removePortalRows(_1)}
+,isc.A.getPortalRows=function isc_PortalColumn_getPortalRows(){return this.body.getMembers()}
+,isc.A.addPortlets=function isc_PortalColumn_addPortlets(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;var _4=_1.map(function(_5){return _3.makePortalRow({portlets:_5})});this.addPortalRows(_4,_2)}
+,isc.A.addPortlet=function isc_PortalColumn_addPortlet(_1,_2){this.addPortlets(_1,_2)}
+,isc.A.addPortletToExistingRow=function isc_PortalColumn_addPortletToExistingRow(_1,_2,_3){var _4=this.body.getMembers();if(_4==null||_4.length<=_2){this.addPortlet(_1)}else{var _5=this.body.getMember(_2);_5.addPortlets(_1,_3)}}
+);isc.B._maxIndex=isc.C+12;isc.defineClass("PortalLayout","Layout");isc.A=isc.PortalLayout.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=false;isc.A.numColumns=2;isc.A.showColumnMenus=true;isc.A.columnBorder="1px solid gray";isc.A.canResizeColumns=false;isc.A.canResizeRows=false;isc.A.canAcceptDrop=true;isc.A.dropTypes=["PortalColumn"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.portalColumnConstructor="PortalColumn";isc.B.push(isc.A.getNumColumns=function isc_PortalLayout_getNumColumns(){return this.getMembers().length}
 ,isc.A.setColumnBorder=function isc_PortalLayout_setColumnBorder(_1){this.columnBorder=_1;var _2=this.members||[];for(var i=0;i<_2.length;i++){_2[i].setBorder(_1)}}
-,isc.A.initWidget=function isc_PortalLayout_initWidget(){this.Super("initWidget",arguments);for(var i=0;i<this.numColumns;i++)this.addMember(this.makePortalColumn())}
-,isc.A.makePortalColumn=function isc_PortalLayout_makePortalColumn(_1){if(_1==null)_1={};isc.addProperties(_1,{portalLayout:this,showColumnHeader:this.showColumnMenus,border:this.columnBorder,showResizeBar:this.canResizeColumns,canResizeRows:this.canResizeRows});var _2=this.createAutoChild("column",_1);return _2}
-,isc.A.addColumn=function isc_PortalLayout_addColumn(_1){this.addMember(this.makePortalColumn({}),_1)}
+,isc.A.setCanResizeColumns=function isc_PortalLayout_setCanResizeColumns(_1){this.canResizeColumns=_1;this.getPortalColumns().map(function(_2){_2.setShowResizeBar(_1)})}
+,isc.A.setCanResizeRows=function isc_PortalLayout_setCanResizeRows(_1){this.canResizeRows=_1;this.getPortalColumns().map(function(_2){_2.setCanResizeRows(_1)})}
+,isc.A.initWidget=function isc_PortalLayout_initWidget(){this.Super("initWidget",arguments);if(this.portalColumns){this.addPortalColumns(this.portalColumns);this.portalColumns=null}else{if(this.numColumns){for(var x=0;x<this.numColumns;x++){this.addPortalColumns(this.makePortalColumn())}}}}
+,isc.A.getPortalColumns=function isc_PortalLayout_getPortalColumns(){return this.getMembers()}
+,isc.A.makePortalColumn=function isc_PortalLayout_makePortalColumn(_1){if(_1==null)_1={};var _2={portalLayout:this,showColumnHeader:this.showColumnMenus,border:this.columnBorder,showResizeBar:this.canResizeColumns,canResizeRows:this.canResizeRows}
+var _3;if(isc.isA.PortalColumn(_1)){_1.setProperties(_2);_3=_1}else{isc.addProperties(_1,_2);_3=this.createAutoChild("portalColumn",_1)}
+return _3}
+,isc.A.addPortalColumns=function isc_PortalLayout_addPortalColumns(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;_1=_1.map(function(_4){return _3.makePortalColumn(_4)});this.addMembers(_1,_2)}
+,isc.A.addPortalColumn=function isc_PortalLayout_addPortalColumn(_1,_2){this.addPortalColumns(_1,_2)}
+,isc.A.removePortalColumns=function isc_PortalLayout_removePortalColumns(_1){if(!isc.isAn.Array(_1))_1=[_1];this.removeMembers(_1);_1.map(function(_2){if(_2!=null)_2.destroy()})}
+,isc.A.removePortalColumn=function isc_PortalLayout_removePortalColumn(_1){this.removePortalColumn(_1)}
+,isc.A.getPortalColumns=function isc_PortalLayout_getPortalColumns(){return this.getMembers()}
+,isc.A.addColumn=function isc_PortalLayout_addColumn(_1){this.addPortalColumn({},_1)}
 ,isc.A.removeColumn=function isc_PortalLayout_removeColumn(_1){var _2=this.members[_1];if(_2!=null)_2.destroy()}
 ,isc.A.addColumnAfter=function isc_PortalLayout_addColumnAfter(_1){var _2=this.getMemberNumber(_1)+1;this.addColumn(_2)}
 ,isc.A.addPortlet=function isc_PortalLayout_addPortlet(_1,_2,_3){if(_3==null)_3=0;if(_2==null)_2=0;var _4=this.getMember(_2);if(_4!=null)_4.addPortlet(_1,_3)}
-,isc.A.getColumn=function isc_PortalLayout_getColumn(_1){return this.getMember(_1)}
+,isc.A.getPortalColumn=function isc_PortalLayout_getPortalColumn(_1){return this.getMember(_1)}
+,isc.A.getPortalColumnNumber=function isc_PortalLayout_getPortalColumnNumber(_1){return this.getMemberNumber(_1)}
+,isc.A.getColumn=function isc_PortalLayout_getColumn(_1){return this.getPortalColumn(_1)}
 ,isc.A.removePortlet=function isc_PortalLayout_removePortlet(_1){if(!this.contains(_1))return;_1.deparent()}
-);isc.B._maxIndex=isc.C+10;isc.defineClass("EditModePortalRow","PortalRow");isc.ClassFactory.mixInInterface("EditModePortalRow","EditContext");isc.A=isc.EditModePortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getDropComponent=function isc_EditModePortalRow_getDropComponent(_1,_2){if(!isc.isA.Palette(_1))return _1;var _3=_1.transferDragData(),_4=(isc.isAn.Array(_3)?_3[0]:_3);var _5=isc.Portlet.create({autoDraw:false,title:_4.title,items:[_4.liveObject],confirmedClosePortlet:function(_6){this.Super("closePortlet",arguments);if(_6)this.destroy()}});return _5}
-);isc.B._maxIndex=isc.C+1;isc.defineClass("EditModePortalColumn","PortalColumn");isc.ClassFactory.mixInInterface("EditModePortalColumn","EditContext");isc.A=isc.EditModePortalColumn.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.rowConstructor="EditModePortalRow";isc.B.push(isc.A.getDropComponent=function isc_EditModePortalColumn_getDropComponent(_1,_2){var _3;if(!isc.isA.Palette(_1))_3=_1;else{var _4=_1.transferDragData(),_5=(isc.isAn.Array(_4)?_4[0]:_4);var _6=isc.Portlet.create({autoDraw:false,title:_5.title,items:[_5.liveObject],confirmedClosePortlet:function(_7){this.Super("closePortlet",arguments);if(_7)this.destroy()}});_3=_6}
-this.addPortlet(_3,this.getDropPosition())}
-);isc.B._maxIndex=isc.C+1;isc.A=isc.PortalLayout.getPrototype();isc.A.columnConstructor="EditModePortalColumn";isc.ClassFactory.defineClass("Dialog","Window");isc.A=isc.Dialog;isc.A.$76=[];isc.A.OK_BUTTON_TITLE="OK";isc.A.APPLY_BUTTON_TITLE="Apply";isc.A.YES_BUTTON_TITLE="Yes";isc.A.NO_BUTTON_TITLE="No";isc.A.CANCEL_BUTTON_TITLE="Cancel";isc.A.DONE_BUTTON_TITLE="Done";isc.A.CONFIRM_TITLE="Confirm";isc.A.SAY_TITLE="Note";isc.A.WARN_TITLE="Note";isc.A.ASK_TITLE="Question";isc.A.ASK_FOR_VALUE_TITLE="Please enter a value";isc.A.LOGIN_TITLE="Please log in";isc.A.USERNAME_TITLE="Username";isc.A.PASSWORD_TITLE="Password";isc.A.LOGIN_BUTTON_TITLE="Log in";isc.A.LOGIN_ERROR_MESSAGE="Invalid username or password";isc.A.OK={getTitle:function(){return isc.Dialog.OK_BUTTON_TITLE},width:75,click:function(){this.topElement.okClick()}};isc.A.APPLY={getTitle:function(){return isc.Dialog.APPLY_BUTTON_TITLE},width:75,click:function(){this.topElement.applyClick()}};isc.A.YES={getTitle:function(){return isc.Dialog.YES_BUTTON_TITLE},width:75,click:function(){this.topElement.yesClick()}};isc.A.NO={getTitle:function(){return isc.Dialog.NO_BUTTON_TITLE},width:75,click:function(){this.topElement.noClick()}};isc.A.CANCEL={getTitle:function(){return isc.Dialog.CANCEL_BUTTON_TITLE},width:75,click:function(){this.topElement.cancelClick()}};isc.A.DONE={getTitle:function(){return isc.Dialog.DONE_BUTTON_TITLE},width:75,click:function(){this.topElement.doneClick()}};isc.A=isc.Dialog.getPrototype();isc.A.styleName="dialogBackground";isc.A.skinImgDir="images/Dialog/";isc.A.canDragReposition=false;isc.A.canDragResize=false;isc.A.autoCenter=true;isc.A.bodyStyle="dialogBody";isc.A.bodyColor="#DDDDDD";isc.A.hiliteBodyColor="#FFFFFF";isc.A.messageStyle="normal";isc.A.headerStyle="dialogHeader";isc.A.hiliteHeaderStyle="dialogHeaderHilite";isc.A.headerLabelDefaults=isc.addProperties({},isc.Window.getInstanceProperty("headerLabelDefaults"),{styleName:"dialogHeaderText"});isc.A.showHeaderIcon=false;isc.A.showMinimizeButton=false;isc.A.showMaximizeButton=false;isc.A.showFooter=false;isc.A.showToolbar=true;isc.A.askIcon="[SKIN]ask.png";isc.A.sayIcon="[SKIN]say.png";isc.A.warnIcon="[SKIN]warn.png";isc.A.confirmIcon="[SKIN]confirm.png";isc.A.notifyIcon="[SKIN]notify.png";isc.A.errorIcon="[SKIN]error.png";isc.A.stopIcon="[SKIN]stop.png";isc.A=isc.Dialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.namedLocatorChildren=["okButton","applyButton","yesButton","noButton","cancelButton","doneButton"];isc.B.push(isc.A.saveData=function isc_Dialog_saveData(){}
+);isc.B._maxIndex=isc.C+20;isc.defineClass("EditModePortalRow","PortalRow");isc.ClassFactory.mixInInterface("EditModePortalRow","EditContext");isc.A=isc.EditModePortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getDropComponent=function isc_EditModePortalRow_getDropComponent(_1,_2){if(!isc.isA.Palette(_1))return _1;var _3=_1.transferDragData(),_4=(isc.isAn.Array(_3)?_3[0]:_3);var _5=isc.Portlet.create({autoDraw:false,title:_4.title,items:[_4.liveObject],confirmedClosePortlet:function(_6){this.Super("closePortlet",arguments);if(_6)this.destroy()}});return _5}
+);isc.B._maxIndex=isc.C+1;isc.defineClass("EditModePortalColumn","PortalColumn");isc.ClassFactory.mixInInterface("EditModePortalColumn","EditContext");isc.A=isc.EditModePortalColumn.getPrototype();isc.A.portalRowConstructor="EditModePortalRow";isc.A.bodyConstructor="EditModePortalColumnBody";isc.defineClass("EditModePortalColumnBody","PortalColumnBody","EditContext");isc.A=isc.EditModePortalColumnBody.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getDropComponent=function isc_EditModePortalColumnBody_getDropComponent(_1,_2){var _3;if(!isc.isA.Palette(_1))_3=_1;else{var _4=_1.transferDragData(),_5=(isc.isAn.Array(_4)?_4[0]:_4);var _6=isc.Portlet.create({autoDraw:false,title:_5.title,items:[_5.liveObject],confirmedClosePortlet:function(_7){this.Super("closePortlet",arguments);if(_7)this.destroy()}});_3=_6}
+this.creator.addPortlet(_3,_2)}
+);isc.B._maxIndex=isc.C+1;isc.A=isc.PortalLayout.getPrototype();isc.A.portalColumnConstructor="EditModePortalColumn";isc.ClassFactory.defineClass("Dialog","Window");isc.A=isc.Dialog;isc.A.$76=[];isc.A.OK_BUTTON_TITLE="OK";isc.A.APPLY_BUTTON_TITLE="Apply";isc.A.YES_BUTTON_TITLE="Yes";isc.A.NO_BUTTON_TITLE="No";isc.A.CANCEL_BUTTON_TITLE="Cancel";isc.A.DONE_BUTTON_TITLE="Done";isc.A.CONFIRM_TITLE="Confirm";isc.A.SAY_TITLE="Note";isc.A.WARN_TITLE="Note";isc.A.ASK_TITLE="Question";isc.A.ASK_FOR_VALUE_TITLE="Please enter a value";isc.A.LOGIN_TITLE="Please log in";isc.A.USERNAME_TITLE="Username";isc.A.PASSWORD_TITLE="Password";isc.A.LOGIN_BUTTON_TITLE="Log in";isc.A.LOGIN_ERROR_MESSAGE="Invalid username or password";isc.A.OK={getTitle:function(){return isc.Dialog.OK_BUTTON_TITLE},width:75,click:function(){this.topElement.okClick()}};isc.A.APPLY={getTitle:function(){return isc.Dialog.APPLY_BUTTON_TITLE},width:75,click:function(){this.topElement.applyClick()}};isc.A.YES={getTitle:function(){return isc.Dialog.YES_BUTTON_TITLE},width:75,click:function(){this.topElement.yesClick()}};isc.A.NO={getTitle:function(){return isc.Dialog.NO_BUTTON_TITLE},width:75,click:function(){this.topElement.noClick()}};isc.A.CANCEL={getTitle:function(){return isc.Dialog.CANCEL_BUTTON_TITLE},width:75,click:function(){this.topElement.cancelClick()}};isc.A.DONE={getTitle:function(){return isc.Dialog.DONE_BUTTON_TITLE},width:75,click:function(){this.topElement.doneClick()}};isc.A=isc.Dialog.getPrototype();isc.A.styleName="dialogBackground";isc.A.skinImgDir="images/Dialog/";isc.A.canDragReposition=false;isc.A.canDragResize=false;isc.A.autoCenter=true;isc.A.bodyStyle="dialogBody";isc.A.bodyColor="#DDDDDD";isc.A.hiliteBodyColor="#FFFFFF";isc.A.messageStyle="normal";isc.A.headerStyle="dialogHeader";isc.A.hiliteHeaderStyle="dialogHeaderHilite";isc.A.headerLabelDefaults=isc.addProperties({},isc.Window.getInstanceProperty("headerLabelDefaults"),{styleName:"dialogHeaderText"});isc.A.showHeaderIcon=false;isc.A.showMinimizeButton=false;isc.A.showMaximizeButton=false;isc.A.showFooter=false;isc.A.showToolbar=true;isc.A.askIcon="[SKIN]ask.png";isc.A.sayIcon="[SKIN]say.png";isc.A.warnIcon="[SKIN]warn.png";isc.A.confirmIcon="[SKIN]confirm.png";isc.A.notifyIcon="[SKIN]notify.png";isc.A.errorIcon="[SKIN]error.png";isc.A.stopIcon="[SKIN]stop.png";isc.A=isc.Dialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.namedLocatorChildren=["okButton","applyButton","yesButton","noButton","cancelButton","doneButton"];isc.B.push(isc.A.saveData=function isc_Dialog_saveData(){}
 ,isc.A.cancelClick=function isc_Dialog_cancelClick(){return this.closeClick()}
 ,isc.A.$7e=function isc_Dialog__closeButtonClick(){return this.cancelClick()}
 ,isc.A.okClick=function isc_Dialog_okClick(){this.saveData();this.clear();this.returnValue(true)}
@@ -411,7 +435,8 @@
 {if(_2!=null)_1.pane=_2;return this.addTabs(_1)}
 var _3=this.getTabNumber(_1);if(_3==-1){this.logWarn("no such tab: "+this.echo(_1));return}
 var _4=this.getTabObject(_3),_5=_4?_4.pane:null;if(_4&&_4.pane==_2)return;if(_5!=null){_5.hide();_5.deparent()}
-var _6=this.getTab(_1);if(_2==null)return _4.pane=_6.pane=null;_2=_4.pane=this.createPane(_2,_4);if(_6!=null)_6.pane=_2;if(this.getSelectedTabNumber()==_3){if(!this.paneContainer.hasMember(_2))this.paneContainer.addMember(_2);_2.setVisibility(isc.Canvas.INHERIT)}}
+var _6=this.getTab(_1);if(_2==null){if(_6!=null)_6.pane=null;return _4.pane=null}
+_2=_4.pane=this.createPane(_2,_4);if(_6!=null)_6.pane=_2;if(this.getSelectedTabNumber()==_3){if(!this.paneContainer.hasMember(_2))this.paneContainer.addMember(_2);_2.setVisibility(isc.Canvas.INHERIT)}}
 ,isc.A.fixLayout=function isc_TabSet_fixLayout(){var _1=this._tabBar,_2=this.$l0||this.paneContainer;if(_1==null||_2==null)return;if(_2.getZIndex(true)>=_1.getZIndex(true))_2.moveBelow(_1);var _3=this.$du(this.tabBarOverlap,_1.borderThickness,_1.baseLineThickness);var _4;switch(this.tabBarPosition){case isc.Canvas.TOP:_4=false;_2.setRect(0,_1.getHeight()-_3,this.getWidth(),this.getHeight()-_1.getHeight()+_3);break;case isc.Canvas.BOTTOM:_4=false;_1.setTop(this.getHeight()-_1.getHeight());_2.setRect(0,0,this.getWidth(),this.getHeight()-_1.getHeight()+_3);break;case isc.Canvas.LEFT:_4=true;_2.setRect(_1.getWidth()-_3,0,this.getWidth()-_1.getWidth()+_3,this.getHeight());break;case isc.Canvas.RIGHT:_4=true;_1.setLeft(this.getWidth()-_1.getWidth());_2.setRect(0,0,this.getWidth()-_1.getWidth()+_3,this.getHeight());break}
 var _5=this.showControls();if(_5){if(_4)_1.setHeight(this.getViewportHeight()-this.tabBarControlLayout.getHeight());else _1.setWidth(this.getViewportWidth()-this.tabBarControlLayout.getWidth());this.tabBarControlLayout.bringToFront()}else{_1.resizeTo(_4?null:"100%",_4?"100%":null)}
 var _6=this.$8f();if(_4){if(_1.getScrollTop()>0&&_6<=_1.getViewportHeight())_1.scrollTo(null,0)}else{if(_1.getScrollLeft()>0&&_6<=_1.getViewportWidth())_1.scrollTo(0,null)}}
@@ -499,7 +524,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Containers.js.gz has changed
--- a/isomorphic/system/development/ISC_Core.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Core.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -36,7 +36,7 @@
 var isc = window.isc ? window.isc : {};if(window.isc&&!window.isc.module_Core){isc.module_Core=1;isc._moduleStart=isc._Core_start=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc._moduleEnd&&(!isc.Log||(isc.Log && isc.Log.logIsDebugEnabled('loadTime')))){isc._pTM={ message:'Core load/parse time: ' + (isc._moduleStart-isc._moduleEnd) + 'ms', category:'loadTime'};
 if(isc.Log && isc.Log.logDebug)isc.Log.logDebug(isc._pTM.message,'loadTime')
 else if(isc._preLog)isc._preLog[isc._preLog.length]=isc._pTM
-else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-04-17/LGPL Development Only";isc.versionNumber="SC_SNAPSHOT-2011-04-17";isc.buildDate="2011-04-17";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
+else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-05-05/LGPL Development Only";isc.versionNumber="SC_SNAPSHOT-2011-05-05";isc.buildDate="2011-05-05";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
 return _1};isc.hasOptionalModules=function(_1){if(!_1)return true;_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++)if(!isc.hasOptionalModule(_1[i]))return false;return true};isc.getMissingModules=function(_1){var _2=[];_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++){var _4=_1[i];if(!isc.hasOptionalModule(_4))_2.add(isc.$41r[_4])}
 return _2};isc.hasOptionalModule=function(_1){var v=isc.$41r[_1];if(!v){if(isc.Log)isc.Log.logWarn("isc.hasOptionalModule - unknown module: "+_1);return false}
 return v.present=="true"||v.present.charAt(0)=="$"};isc.getOptionalModule=function(_1){return isc.$41r[_1]};isc.$a=window.isc_useSimpleNames;if(isc.$a==null)isc.$a=true;if(window.OpenAjax){isc.$b=isc.versionNumber.replace(/[a-zA-Z_]+/,".0");OpenAjax.registerLibrary("SmartClient","http://smartclient.com/SmartClient",isc.$b,{namespacedMode:!isc.$a,iscVersion:isc.version,buildDate:isc.buildDate,licenseType:isc.licenseType,licenseCompany:isc.licenseCompany,licenseSerialNumber:isc.licenseSerialNumber});OpenAjax.registerGlobals("SmartClient",["isc"])}
@@ -643,7 +643,7 @@
 ,isc.A.toUSDollarString=function isc_c_Format_toUSDollarString(_1,_2){if(!isc.isA.Number(_1))return _1;return _1.toUSDollarString(_2)}
 ,isc.A.toCurrencyString=function isc_c_Format_toCurrencyString(_1,_2,_3,_4,_5){if(!isc.isA.Number(_1))return _1;return _1.toCurrencyString(_2,_3,_4,_5)}
 );isc.B._maxIndex=isc.C+3;isc.Math={random:function(_1,_2){if(_2==null){return Math.round(Math.random()*_1)}else{return Math.round(Math.random()*(_2-_1))+_1}}}
-isc.addGlobal("timeStamp",function(){return new Date().getTime()});isc.addGlobal("timestamp",isc.timeStamp);Date.prototype.Class="Date";Date.Class="Date";isc.Date=Date;isc.A=Date;isc.A.INVALID_DATE_STRING="Invalid date format";isc.A=Date;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$64g={toUSShortDate:"MDY",toUSShortDateTime:"MDY",toEuropeanShortDate:"DMY",toEuropeanShortDateTime:"DMY",toJapanShortDate:"YMD",toJapanShortDateTime:"YMD"};isc.B.push(isc.A.newInstance=function isc_Date_newInstance(_1,_2,_3,_4,_5,_6,_7){return new Date(_1,_2,_3,_4,_5,_6,_7)}
+isc.defineClass("DateUtil");isc.addGlobal("timeStamp",function(){return new Date().getTime()});isc.addGlobal("timestamp",isc.timeStamp);Date.prototype.Class="Date";Date.Class="Date";isc.Date=Date;isc.A=Date;isc.A.INVALID_DATE_STRING="Invalid date format";isc.A=Date;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$64g={toUSShortDate:"MDY",toUSShortDateTime:"MDY",toEuropeanShortDate:"DMY",toEuropeanShortDateTime:"DMY",toJapanShortDate:"YMD",toJapanShortDateTime:"YMD"};isc.B.push(isc.A.newInstance=function isc_Date_newInstance(_1,_2,_3,_4,_5,_6,_7){return new Date(_1,_2,_3,_4,_5,_6,_7)}
 ,isc.A.create=function isc_Date_create(_1,_2,_3,_4,_5,_6,_7){var _8;if(_1===_8)return new Date();if(_2===_8)return new Date(_1);if(_3===_8)_3=0;if(_4===_8)_4=0;if(_5===_8)_5=0;if(_6===_8)_6=0;if(_7===_8)_7=0;return new Date(_1,_2,_3,_4,_5,_6,_7)}
 ,isc.A.compareDates=function isc_Date_compareDates(_1,_2){var _3=(_1!=null?_1.getTime():0),_4=(_2!=null?_2.getTime():0);return _3>_4?-1:(_4>_3?1:0)}
 ,isc.A.compareLogicalDates=function isc_Date_compareLogicalDates(_1,_2){if(_1==_2)return 0;if(!isc.isA.Date(_1)||!isc.isA.Date(_2))return false;var _3=_1.getFullYear(),_4=_1.getMonth(),_5=_1.getDate(),_6=_2.getFullYear(),_7=_2.getMonth(),_8=_2.getDate();var _9=_3*10000+_4*100+_5,_10=_6*10000+_7*100+_8;return _9>_10?-1:(_10>_9?1:0)}
@@ -754,7 +754,28 @@
 ,isc.A.parsePrettyString=function isc_Date_parsePrettyString(_1,_2){return this.parseShortDate(_1,_2)}
 ,isc.A.parseEuropeanShortDate=function isc_Date_parseEuropeanShortDate(_1,_2){return this.parseInput(_1,"DMY",_2)}
 ,isc.A.parseEuropeanShortDateTime=function isc_Date_parseEuropeanShortDateTime(_1,_2){return this.parseInput(_1,"DMY",_2)}
-);isc.B._maxIndex=isc.C+9;String.prototype.Class="String";isc.$ey=function(){var _1=[Array,Number,Date].getProperty("prototype");for(var i=0;i<_1.length;i++){var _3=_1[i];if(_3.toLocaleString==null){_3.toLocaleString=_3.toString}}
+);isc.B._maxIndex=isc.C+9;isc.A=isc.DateUtil;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.mapRelativeDateShortcut=function isc_c_DateUtil_mapRelativeDateShortcut(_1,_2){switch(_1){case"$now":return"+0MS";case"$today":if(_2=="end"){return"+0D"}else{return"-0D"}
+case"$startOfToday":return"-0D";case"$endOfToday":return"+0D";case"$yesterday":if(_2=="end"){return"-1ms[-0D]"}else{return"-1D"}
+case"$startOfYesterday":return"-1D";case"$endOfYesterday":return"-1ms[-0D]";case"$tomorrow":if(_2=="end"){return"+1D"}else{return"+1ms[+0D]"}
+case"$startOfTomorrow":return"+1ms[+0D]";case"$endOfTomorrow":return"+1D";case"$startOfWeek":return"-0W";case"$endOfWeek":return"+0W";case"$startOfMonth":return"-0M";case"$endOfMonth":return"+0M";case"$startOfYear":return"-0Y";case"$endOfYear":return"+0Y";case"$weekFromNow":if(_2=="end"){return"+1w[+0D]"}else{return"+1w[-0D]"}
+case"$weekAgo":if(_2=="end"){return"-1w[+0D]"}else{return"-1w[-0D]"}
+case"$monthFromNow":if(_2=="end"){return"+1m[+0D]"}else{return"+1m[-0D]"}
+case"$monthAgo":if(_2=="end"){return"-1m[+0D]"}else{return"-1m[-0D]"}}
+return _1}
+,isc.A.getAbsoluteDate=function isc_c_DateUtil_getAbsoluteDate(_1,_2,_3){if(this.isRelativeDate(_1)){if(!_3)_3=_1.rangePosition;_1=_1.value}
+if(_1.startsWith("$")){_1=this.mapRelativeDateShortcut(_1,_3)}
+var _4=_1,_5=new Date();if(_2!=null)_5.setTime(_2.getTime());var _6=this.getRelativeDateParts(_4);if(_6.qualifier){_6.qualifier=_6.qualifier.toUpperCase();var _7=this.getRelativeDateParts(_6.qualifier);var _8=["S","MN","H","D","W","M","Q","Y"];if(_8.contains(_7.period)){_5=this.dateAdd(_5,_7.period,_7.countValue,(_7.direction=="+"?1:-1),_3)}else{isc.logWarn("Invalid date-offset qualifier provided: "+_7.period+".  Valid "+"options are: S, MN, H, D, W, M, Q and Y.")}}
+var _9=this.dateAdd(_5,_6.period,_6.countValue,(_6.direction=="+"?1:-1));return _9}
+,isc.A.isRelativeDate=function isc_c_DateUtil_isRelativeDate(_1){if(isc.isA.Date(_1))return false;if(isc.isAn.Object(_1)&&_1._constructor=="RelativeDate")return true;return false}
+,isc.A.getRelativeDateParts=function isc_c_DateUtil_getRelativeDateParts(_1){var _2=_1,_3=_2.substring(0,1),_4=_2.indexOf("["),_5=(_4>0?_2.substring(_4):null),_6=(_5!=null?_2.substring(1,_4):_2.substring(1)),_7=parseInt(_6),_8=_6.replace(_7,"");return{direction:(_3=="+"||_3=="-"?_3:"+"),qualifier:_5?_5.replace("[","").replace("]","").replace(",",""):null,countValue:isc.isA.Number(_7)?_7:0,period:_8?_8:_3}}
+,isc.A.dateAdd=function isc_c_DateUtil_dateAdd(_1,_2,_3,_4){var _5=false;switch(_2){case"MS":case"ms":_1.setMilliseconds(_1.getMilliseconds()+(_3*_4));break;case"S":_5=true;case"s":_1.setSeconds(_1.getSeconds()+(_3*_4));break;case"MN":_5=true;case"mn":_1.setMinutes(_1.getMinutes()+(_3*_4));break;case"H":_5=true;case"h":_1.setHours(_1.getHours()+(_3*_4));break;case"D":_5=true;case"d":_1.setDate(_1.getDate()+(_3*_4));break;case"W":_5=true;case"w":_1.setDate(_1.getDate()+((_3*7)*_4));break;case"M":_5=true;case"m":_1.setMonth(_1.getMonth()+(_3*_4));break;case"Q":_5=true;case"q":_1.setMonth(_1.getMonth()+((_3*3)*_4));break;case"Y":_5=true;case"y":_1.setFullYear(_1.getFullYear()+(_3*_4));break;case"DC":_5=true;case"dc":_1.setFullYear(_1.getFullYear()+((_3*10)*_4));break;case"C":_5=true;case"c":_1.setFullYear(_1.getFullYear()+((_3*100)*_4));break}
+if(_5){if(_4>0){_1=this.getEndOf(_1,_2)}else{_1=this.getStartOf(_1,_2)}}
+return _1}
+,isc.A.getStartOf=function isc_c_DateUtil_getStartOf(_1,_2){var _3=_1;switch(_2){case"s":case"S":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),_3.getSeconds(),0);case"mn":case"MN":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),0,0);case"h":case"H":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),0,0,0);case"d":case"D":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),0,0,0,0);case"w":case"W":_3.setDate(_1.getDate()-_1.getDay());return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),0,0,0,0);case"m":case"M":return new Date(_1.getFullYear(),_1.getMonth(),1,0,0,0,0);case"q":case"Q":var _4=Math.floor((_1.getMonth()+1)/3)*3;return new Date(_1.getFullYear(),_4-1,1,0,0,0,0);case"y":case"Y":return new Date(_1.getFullYear(),0,1,0,0,0,0);case"dc":case"DC":var _5=Math.floor(_1.getFullYear()/10)*10;return new Date(_5,0,1,0,0,0,0);case"c":case"C":var _6=Math.floor(_1.getFullYear()/100)*100;return new Date(_6,0,1,0,0,0,0)}
+return _3}
+,isc.A.getEndOf=function isc_c_DateUtil_getEndOf(_1,_2){var _3=_1;switch(_2){case"s":case"S":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),_3.getSeconds(),999);case"mn":case"MN":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),59,999);case"h":case"H":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),59,59,999);case"d":case"D":return new Date(_1.getFullYear(),_1.getMonth(),_1.getDate(),23,59,59,999);case"w":case"W":_3.setDate(_1.getDate()+(6-_1.getDay()));return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),23,59,59,999);case"m":case"M":_3=new Date(_1.getFullYear(),_1.getMonth()+1,1,23,59,59,999);_3.setDate(_3.getDate()-1);return _3;case"q":case"Q":var _4=Math.floor((_1.getMonth()+4)/3)*3;_3=new Date(_1.getFullYear(),_4,1,23,59,59,999);_3.setDate(_3.getDate()-1);return _3;case"y":case"Y":return new Date(_1.getFullYear(),11,31,23,59,59,999);case"dc":case"DC":var _5=((_1.getFullYear()/10)*10)+9;return new Date(_5,11,1,23,59,59,999);case"c":case"C":var _6=(Math.floor(_1.getFullYear()/100)*100)+99;return new Date(_6,11,1,23,59,59,999)}
+return _3}
+);isc.B._maxIndex=isc.C+7;String.prototype.Class="String";isc.$ey=function(){var _1=[Array,Number,Date].getProperty("prototype");for(var i=0;i<_1.length;i++){var _3=_1[i];if(_3.toLocaleString==null){_3.toLocaleString=_3.toString}}
 var _4=String.prototype;if(!_4.toLocaleUpperCase){_4.toLocaleUpperCase=_4.toUpperCase;_4.toLocaleLowerCase=_4.toLowerCase}
 if(isc.Browser.isMoz){var _5="x",_6=_5.toLocaleString();if(_6!=_5){_4.toBrowserLocaleString=_4.toLocaleString;_4.toLocaleString=_4.toString}
 _5=true;_6=_5.toLocaleString();if(_6!=_5+""){Boolean.prototype.toBrowserLocaleString=Boolean.prototype.toLocaleString;Boolean.prototype.toLocaleString=Boolean.prototype.toString}}}
@@ -860,7 +881,7 @@
 _4+=")";_2=_2||_1.$cw;if(_2)_4+=" on "+this.echoLeaf(_2);if(!_3&&!_5.$c7)return _4;var _11=this.$e6(_5);if(!_5.$c7){var _12=_11.split(/[\r\n]+/);if(_12.length>1||_12[0].length>200)return _4}
 _4+='\n        "'+_11+'"';return _4},$e6:function(_1){var _2=isc.Func.getBody(_1);return _2.trim()},getStackTrace:function(_1,_2,_3,_4){var _5="";_5+=this.$76x(_1,_2,_3);if(this.hasFireBug()&&!_4){isc.Log.$50m=isc.Log.$50m||0;var _6="FBugTrace"+isc.Log.$50m++;_5+="\r\n"+this.fireBugTrace(_6)}
 return _5},$76x:function(_1,_2,_3){if(!arguments||!arguments.callee||!arguments.callee.caller){return" [Stack trace not supported in this browser]"}
-if(_1==null)_1=arguments.caller||arguments.callee.caller.arguments;var _4=[];var _5=isc.Browser.isIE&&isc.Browser.version<=5;for(var i=0;i<_2;i++){if(_1==null)break;if(!_5){_1=_1.callee.caller.arguments}else{_1=_1.caller}}
+if(_1==null)_1=arguments.caller||arguments.callee.caller.arguments;var _4=[];var _5=isc.Browser.isIE&&isc.Browser.version<=5;if(_2!=null){for(var i=0;i<_2;i++){if(_1==null)break;if(!_5){_1=_1.callee.caller.arguments}else{_1=_1.caller}}}
 if(_1==null){return""}
 var _7=_1.callee;var _8=[];var _9=true;if(_3==null)_3=Number.MAX_VALUE;var _10=0;while(_7!=null&&_1!=null&&_10<_3){if(_1.timerTrace){_4.add("\nStack trace for setTimeout() call:   "+_1.timerTrace);break}
 if(!_5){if(_8.contains(_7)){_4.add("    ** recursed on "+isc.Func.getName(_7,true));break}
@@ -876,7 +897,7 @@
 {_3+=_5;break}
 _3+="Obj"+this.getIDText(_1);break;default:_3+=""+_1}}
 return _3}catch(e){var _6="[Error in echoLeaf: "+e+"]";_3+=_6;this.logDebug(_6,"Log");return _3}},getIDText:function(_1){var _2=_1.name||(isc.isAn.XMLNode(_1)?_1.getAttribute("name"):null);if(_2!=null&&!isc.isAn.emptyString(_2))return"{name:"+_2+"}";var _3=_1.ID!=null?_1.ID:_1.id!=null?_1.id:(isc.isAn.XMLNode(_1)?_1.getAttribute("id"):null);if(_3!=null&&!isc.isAn.emptyString(_3))return"{ID:"+_3+"}";if(_1.nodeName!=null&&!isc.isAn.emptyString(_1.nodeName)){return"{nodeName:"+_1.nodeName+"}"}
-var _4=_1.title||(isc.isAn.XMLNode(_1)?_1.getAttribute("title"):null);if(_4!=null&&!isc.isAn.emptyString(_4))return"{title:"+_4+"}";var _5=_1.type||(isc.isAn.XMLNode(_1)?_1.getAttribute("type"):null);if(_5!=null&&!isc.isAn.emptyString(_5))return"{type:"+_5+"}";var _6=_1.label||(isc.isAn.XMLNode(_1)?_1.getAttribute("label"):null);if(_6!=null&&!isc.isAn.emptyString(_6))return"{label:"+_6+"}";if(_1.length!=null)return"{length:"+_1.length+"}";return""},echo:function(_1,_2,_3,_4){if(_1==null)return this.echoLeaf(_1);if(_2==null)_2=true;if(_1.tagName)return this.echoDOM(_1);if(typeof _1!="object"||isc.isA.Date(_1))return this.echoLeaf(_1,true);if(isc.isAn.Array(_1)){var _5=(_3?"[\n":"[");for(var i=0;i<_1.length;i++){_5+=(_3?this.echo(_1[i],_2):this.echoLeaf(_1[i]));if(i+1<_1.length)_5+=(_3?",\n":", ")}
+var _4=_1.title||(isc.isAn.XMLNode(_1)?_1.getAttribute("title"):null);if(_4!=null&&!isc.isAn.emptyString(_4))return"{title:"+_4+"}";var _5=_1.type||(isc.isAn.XMLNode(_1)?_1.getAttribute("type"):null);if(_5!=null&&!isc.isAn.emptyString(_5))return"{type:"+_5+"}";var _5=_1._constructor;if(_5!=null&&!isc.isAn.emptyString(_5))return"{_constructor:"+_5+"}";var _6=_1.label||(isc.isAn.XMLNode(_1)?_1.getAttribute("label"):null);if(_6!=null&&!isc.isAn.emptyString(_6))return"{label:"+_6+"}";var _5=_1.className;if(_5!=null&&!isc.isAn.emptyString(_5))return"{className:"+_5+"}";if(_1.length!=null)return"{length:"+_1.length+"}";return""},echo:function(_1,_2,_3,_4){if(_1==null)return this.echoLeaf(_1);if(_2==null)_2=true;if(_1.tagName)return this.echoDOM(_1);if(typeof _1!="object"||isc.isA.Date(_1))return this.echoLeaf(_1,true);if(isc.isAn.Array(_1)){var _5=(_3?"[\n":"[");for(var i=0;i<_1.length;i++){_5+=(_3?this.echo(_1[i],_2):this.echoLeaf(_1[i]));if(i+1<_1.length)_5+=(_3?",\n":", ")}
 _5+="\n]";return _5}
 var _5="{";if(_1.getUniqueProperties!=null){_5=_1.getClassName()+"{";_1=_1.getUniqueProperties();if(_4==null)_4=false}
 if(_4==null)_4=true;var _7;try{_7=isc.getKeys(_1)}catch(e){return this.echoLeaf(_1)}
@@ -992,10 +1013,11 @@
 isc.Log.defaultPriority=isc.$gg.defaultPriority}else{isc.Log.setPriority("Log",isc.Log.INFO)}
 isc.showConsole=function(_1,_2,_3,_4){isc.showLog(_1,_2,_3,_4)}
 isc.addGlobal("showLog",function(_1,_2,_3,_4){isc.Log.show(_1,_2,_3,_4)})
-isc.Log.logInfo("initialized");isc.Log.$fy();isc.Log.supportsOnError=(isc.Browser.isIE);if(isc.Log.supportsOnError&&!(window.isc_installOnError==false)){window.onerror=function(_1,_2,_3){var _4=arguments.caller;if(_4==null&&arguments.callee.caller!=null){_4=arguments.callee.caller.arguments}
+isc.Log.logInfo("initialized");isc.Log.$fy();isc.Log.supportsOnError=(isc.Browser.isIE);if(isc.Log.supportsOnError&&!(window.isc_installOnError==false)){window.onerror=function(_1,_2,_3){var _4=arguments.caller,_5;if(_4==null&&arguments.callee.caller!=null){_5=arguments.callee.caller;_4=_5.arguments}
 if(_4&&_4.$e9){return}
-var _5="Error:\r\t'"+_1+"'\r\tin "+_2+"\r\tat line "+_3;if(_4){_5+=isc.Log.getStackTrace(_4)}
-isc.Log.logWarn(_5);if(isc.Browser.isIE&&isc.useIEDebugger){if(confirm("Run debugger?\r\r"+_5)){debugger}}}}
+var _6="Error:\r\t'"+_1+"'\r\tin "+_2+"\r\tat line "+_3;if(_5!=null&&_4==null&&isc.Browser.isIE&&isc.Browser.version>=9)
+{_6+="\r\n    crashed in:  "+isc.Func.getName(_5,true)+"()"+"\r\n    Use a pre-9.0 Internet Explorer for best diagnostics, otherwise Firefox or Chrome"}else if(_4!=null){_6+=isc.Log.getStackTrace(_4)}
+isc.Log.logWarn(_6);if(isc.Browser.isIE&&isc.useIEDebugger){if(confirm("Run debugger?\r\r"+_6)){debugger}}}}
 isc.$63a=function(){return"["+this.Class+" ID:"+this.ID+" (created by: "+this.componentId+")]"}
 isc.$63b=function(_1,_2,_3,_4){var _5=isc.Log;if(!_5)return;if(_1==null)_1=_5.defaultPriority;if(_1<=_5.stackTracePriority&&this.getStackTrace!=null){_2+="\nStack trace:\n"+this.getStackTrace(arguments,2)}
 if(!_3)_3=this.Class;_5.log(_1,_2,_3,this.ID+" (created by: "+this.componentId+")",this,_4)}
@@ -2045,7 +2067,8 @@
 {if(this.getPageRight()>=isc.Page.getWidth()||this.getPageBottom()>=isc.Page.getHeight())
 {isc.EH.fireOnPause("checkForBodyOverflowChange",{target:isc.Canvas,methodName:"checkForPageResize"},100)}}
 if(this.parentElement==null&&this.position==this.$411){this.$412=this.getPageLeft();this.$413=this.getPageTop();isc.Page.setEvent("resize",this,isc.Page.FIRE_ONCE,"$414")}
-return this}
+this.onDraw();return this}
+,isc.A.onDraw=function isc_Canvas_onDraw(){}
 ,isc.A.doInitialFetch=function isc_Canvas_doInitialFetch(){}
 ,isc.A.$qb=function isc_Canvas__writeHTML(){this.setDrawnState(isc.Canvas.DRAWING_HANDLE);var _1=this.getDocument(),_2=this.separateContentInsertion;if(this.children!=null&&this.$p2()){this.$p5=true;var _3=this.getTagStart(),_4=this.getTagEnd();_1.write(_2?_3:_3+this.$px())
 this.drawChildren();_1.write(_2?this.$px()+_4:_4);this.setDrawnState(isc.Canvas.HANDLE_DRAWN)}else{_1.write(isc.SB.concat(this.getTagStart(),(_2?null:this.$px()),this.getTagEnd()));this.setDrawnState(isc.Canvas.HANDLE_DRAWN);if(_2)this.$p9();this.drawChildren()}
@@ -3208,7 +3231,7 @@
 this.getTopMargin();_1.moveAbove(this);if(_1.isDrawn()&&!this.isDrawn())_1.clear()}
 ,isc.A.$55v=function isc_Canvas__hideGroupLabel(){if(!this.groupLabel)return;var _1=this.groupLabel;this.$wj(_1,isc.Canvas.TOP);this.setTopPadding(null);_1.clear();_1.depeer()}
 ,isc.A.setGroupTitle=function isc_Canvas_setGroupTitle(_1){this.groupTitle=_1;if(this.groupLabel){this.groupLabel.setContents(this.groupTitle)}else{this.$55u()}}
-);isc.B._maxIndex=isc.C+532;isc.A=isc.Canvas;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$hm="[SKIN]";isc.A.printOmitControls=["Button","StretchImgButton","ImgButton","MenuButton","Toolbar","ToolStrip","ButtonItem","ToolbarItem"];isc.A.printIncludeControls=["Label"];isc.A.$ws=0;isc.A.$wt="ID='";isc.A.$ob="'";isc.A.$wu="absmiddle";isc.A.$wv=[,,," eventpart='valueicon' style='vertical-align:middle;margin-left:",,"px;margin-right:",,"px;'"];isc.A.$ww={};isc.A.$wx={png:true,PNG:true,Png:true};isc.A.$wy=["<a",," href='",,"' target='",,"'",,,,">",,"</a>"];isc.A.$wz="[SKINIMG]/blank.gif";isc.A.$w0="0";isc.A.$w1="clearRedrawQueue";isc.A.$65j=[];isc.A.$65k=0;isc.A.$65l="clearDestroyQueue";isc.A.$tw=[];isc.B.push(isc.A.stripScriptTags=function isc_c_Canvas_stripScriptTags(_1){return _1.replace(/<script([^>]*)?>(.|\n|\r)*?<\/script>/ig,isc.emptyString)}
+);isc.B._maxIndex=isc.C+533;isc.A=isc.Canvas;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$hm="[SKIN]";isc.A.printOmitControls=["Button","StretchImgButton","ImgButton","MenuButton","Toolbar","ToolStrip","ButtonItem","ToolbarItem"];isc.A.printIncludeControls=["Label"];isc.A.$ws=0;isc.A.$wt="ID='";isc.A.$ob="'";isc.A.$wu="absmiddle";isc.A.$wv=[,,," eventpart='valueicon' style='vertical-align:middle;margin-left:",,"px;margin-right:",,"px;'"];isc.A.$ww={};isc.A.$wx={png:true,PNG:true,Png:true};isc.A.$wy=["<a",," href='",,"' target='",,"'",,,,">",,"</a>"];isc.A.$wz="[SKINIMG]/blank.gif";isc.A.$w0="0";isc.A.$w1="clearRedrawQueue";isc.A.$65j=[];isc.A.$65k=0;isc.A.$65l="clearDestroyQueue";isc.A.$tw=[];isc.B.push(isc.A.stripScriptTags=function isc_c_Canvas_stripScriptTags(_1){return _1.replace(/<script([^>]*)?>(.|\n|\r)*?<\/script>/ig,isc.emptyString)}
 ,isc.A.stripLinkTags=function isc_c_Canvas_stripLinkTags(_1){return _1.replace(/<link([^>]*)?>/ig,isc.emptyString)}
 ,isc.A.getById=function isc_c_Canvas_getById(_1){var _2=window[_1]||null;return _2?(isc.isA.Canvas(_2)?_2:null):null}
 ,isc.A.getNextZIndex=function isc_c_Canvas_getNextZIndex(){return(isc.Canvas.$ng+=18)}
@@ -3376,26 +3399,25 @@
 if(isc.isA.String(_1.imageSize)){_7=_1.imageSize}else{_3=_3||_1.imageSize;_4=_4||_1.imageSize}
 if(_2!=null){_3=_3||_2[_5]||_2[_7];_4=_4||_2[_6]||_2[_7]}
 return{width:_3,height:_4}}
-,isc.A.$833=function isc_c_Canvas__performActionOnValue(_1,_2,_3,_4,_5,_6,_7,_8){if(!_3||_2==null||isc.isAn.emptyString(_2))return;var _9=_3;var _10=_2.contains(this.$70l);if(_10){_2=_2.trim(isc.Canvas.$70l);var _11=_2.split(this.$70l),_12=[],_13;if(_11[0]&&_3[_11[0]]===_13&&(!_8||_3[_8]===_13)&&_1=="get"&&!_7)
+,isc.A.$833=function isc_c_Canvas__performActionOnValue(_1,_2,_3,_4,_5,_6,_7){if(!_3||_2==null||isc.isAn.emptyString(_2))return;var _8=_3;var _9=_2.contains(this.$70l);if(_9){_2=_2.trim(isc.Canvas.$70l);var _10=_2.split(this.$70l),_11=[],_12;if(_10[0]&&_3[_10[0]]===_12&&_1=="get"&&!_7)
 {if(_4&&isc.ValuesManager&&isc.isA.ValuesManager(_4.valuesManager))
-{return this.$833(_1,_2,_4.valuesManager.getValues(),_4,_5,_6,true,_8)}}
-if(isc.isAn.emptyString(_11.last()))_11.length-=1;for(var i=0;i<_11.length;i++){if(isc.isAn.emptyString(_11[i]))continue;if(_3==null){_12.length=0;break}
-_12.add(_3);if(i==_11.length-1){if(_1=="get"){return _3[_11[i]]}else if(_1=="clear"){delete _3[_11[i]]}else if(_1=="save"){_3[_11[i]]=_6}}else{_3=_3[_11[i]];if(_3===_13&&_8!==_13){if(_1=="get"){return _9[_8]}else if(_1=="clear"){delete _9[_8]}else if(_1=="save"){_9[_8]=_6}}
-if(isc.isAn.Array(_3)){var _15=null;var _16=(parseInt(_11[i+1])==_11[i+1])
-if(_16){_15=parseInt(_11[i+1])
-_11.removeAt(i+1)}else if(_4&&_4.selectionComponent){var _17=isc.Canvas.$70l,_18=_4,_19;for(var j=0;j<=i;j++){_17+=_11[j]+isc.Canvas.$70l}
+{return this.$833(_1,_2,_4.valuesManager.getValues(),_4,_5,_6,true)}}
+if(isc.isAn.emptyString(_10.last()))_10.length-=1;for(var i=0;i<_10.length;i++){if(isc.isAn.emptyString(_10[i]))continue;if(_3==null){_11.length=0;break}
+_11.add(_3);if(i==_10.length-1){if(_1=="get"){return _3[_10[i]]}else if(_1=="clear"){delete _3[_10[i]]}else if(_1=="save"){_3[_10[i]]=_6}}else{var _14=_3[_10[i]];if(_14==_12){if(_1=="get"){return null}else if(_1=="clear"){return}else if(_1=="save"){_14=_3[_10[i]]={}}}
+_3=_14;if(isc.isAn.Array(_3)){var _15=null;var _16=(parseInt(_10[i+1])==_10[i+1])
+if(_16){_15=parseInt(_10[i+1])
+_10.removeAt(i+1)}else if(_4&&_4.selectionComponent){var _17=isc.Canvas.$70l,_18=_4,_19;for(var j=0;j<=i;j++){_17+=_10[j]+isc.Canvas.$70l}
 _17=_17.trim(isc.Canvas.$70l);_18=_4.selectionComponent;while(_18){var _21=_18.dataPath;if(_21)_21=_21.trim(isc.Canvas.$70l);if(_17==_21){var _22=_18.getSelectedRecord();if(_22){_15=_18.getRecordIndex(_22)}else{_19=true}
 break}
 _18=_18.selectionComponent}
 if(_15==null){if(!_19&&_5){_15=0}else{return}}}else{if(_5){_15=0}else{return}}
 _3=_3[_15]}}}
-if(_1=="clear"){for(var i=_12.length-1;i>0;i--){if(isc.isAn.emptyObject(_12[i])){delete _12[i-1][_11[i-1]]}}}}else{if(_1=="get")return _3[_2];else if(_1=="clear")delete _3[_2];else if(_1=="save")_3[_2]=_6}}
-,isc.A.$70m=function isc_c_Canvas__clearFieldValue(_1,_2,_3,_4){var _5=this.$84y(_1,_3);this.$833("clear",_1,_2,_3,_4,null,false,_5)}
-,isc.A.$70n=function isc_c_Canvas__saveFieldValue(_1,_2,_3,_4,_5){var _6=this.$84y(_1,_4);this.$833("save",_1,_3,_4,_5,_2,false,_6);return _3}
-,isc.A.$70o=function isc_c_Canvas__getFieldValue(_1,_2,_3,_4){var _5=this.$84y(_1,_3);return this.$833("get",_1,_2,_3,_4,null,false,_5)}
-,isc.A.$84y=function isc_c_Canvas__getFlatFieldName(_1,_2){if(_2&&_2.getField){var _3=_2.getField(_1);if(_3)return _3.name}}
+if(_1=="clear"){for(var i=_11.length-1;i>0;i--){if(isc.isAn.emptyObject(_11[i])){delete _11[i-1][_10[i-1]]}}}}else{if(_1=="get")return _3[_2];else if(_1=="clear")delete _3[_2];else if(_1=="save")_3[_2]=_6}}
+,isc.A.$70m=function isc_c_Canvas__clearFieldValue(_1,_2,_3,_4){this.$833("clear",_1,_2,_3,_4,null,false)}
+,isc.A.$70n=function isc_c_Canvas__saveFieldValue(_1,_2,_3,_4,_5){this.$833("save",_1,_3,_4,_5,_2,false);return _3}
+,isc.A.$70o=function isc_c_Canvas__getFieldValue(_1,_2,_3,_4){return this.$833("get",_1,_2,_3,_4,null,false)}
 ,isc.A.$702=function isc_c_Canvas__combineDataPaths(_1,_2){if(_1==null)return""+_2;if(_2==null)return _1+"";if(isc.isA.String(_2)&&_2.startsWith(this.$70l))_2=_2.substring(1);if(isc.isA.String(_1)&&_1.endsWith(this.$70l)){return _1+_2}else{return _1+this.$70l+_2}}
-);isc.B._maxIndex=isc.C+7;isc.A=isc.Canvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showComplexFields=true;isc.A.exportIncludeSummaries=true;isc.A.ignoreEmptyCriteria=true;isc.A.dragRecategorize=false;isc.A.duplicateDragMessage="Duplicates not allowed";isc.A.showOfflineMessage=true;isc.A.offlineMessage="This data not available while offline";isc.A.offlineMessageStyle="offlineMessage";isc.A.offlineSaveMessage="Data cannot be saved because you are not online";isc.A.addDropValues=true;isc.A.fieldIdProperty="name";isc.A.dataArity="multiple";isc.A.autoTrackSelection=true;isc.A.$308={date:true,DateItem:true};isc.A.$301="false;";isc.A.$18r="false";isc.A.styleOpposite="cellHiliteOpposite";isc.A.hiliteProperty="_hilite";isc.A.hiliteMarker="$63i";isc.A.$578=0;isc.A.$579=[];isc.A.dragDataAction=isc.Canvas.MOVE;isc.A.dragTrackerStyle="gridDragTracker";isc.A.canExport=true;isc.A.canPrint=true;isc.A.panelControls=["action:edit","action:editNew","action:sort","action:export","action:print"];isc.A.dbcProperties=["autoFetchData","autoFetchTextMatchStyle","autoFetchAsFilter","dataSource"];isc.A.badFormulaResultValue=".";isc.A.missingSummaryFieldValue="-";isc.A.canAddFormulaFields=false;isc.A.addFormulaFieldText="Add formula column...";isc.A.editFormulaFieldText="Edit formula...";isc.A.removeFormulaFieldText="Remove formula";isc.A.canAddSummaryFields=false;isc.A.addSummaryFieldText="Add summary column...";isc.A.editSummaryFieldText="Edit summary format...";isc.A.removeSummaryFieldText="Remove summary column..";isc.A.formulaFieldNamePrefix="formulaField";isc.A.summaryFieldNamePrefix="summaryField";isc.A.uniqueFieldNamePrefix="field";isc.A.exportDataChunkSize=50;isc.A.emptyExportMessage="You are attempting to export an empty dataset";isc.A.unknownErrorMessage="Invalid value";isc.A.$685=["isInteger","isFloat","isBoolean","isString"];isc.A.$746="partial";isc.A.$75a={};isc.A.$75b=null;isc.B.push(isc.A.setValuesManager=function isc_Canvas_setValuesManager(_1){if(_1)_1.addMember(this)}
+);isc.B._maxIndex=isc.C+6;isc.A=isc.Canvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showComplexFields=true;isc.A.exportIncludeSummaries=true;isc.A.ignoreEmptyCriteria=true;isc.A.dragRecategorize=false;isc.A.duplicateDragMessage="Duplicates not allowed";isc.A.showOfflineMessage=true;isc.A.offlineMessage="This data not available while offline";isc.A.offlineMessageStyle="offlineMessage";isc.A.offlineSaveMessage="Data cannot be saved because you are not online";isc.A.addDropValues=true;isc.A.fieldIdProperty="name";isc.A.dataArity="multiple";isc.A.autoTrackSelection=true;isc.A.$308={date:true,DateItem:true};isc.A.$301="false;";isc.A.$18r="false";isc.A.styleOpposite="cellHiliteOpposite";isc.A.hiliteProperty="_hilite";isc.A.hiliteMarker="$63i";isc.A.$578=0;isc.A.$579=[];isc.A.dragDataAction=isc.Canvas.MOVE;isc.A.dragTrackerStyle="gridDragTracker";isc.A.canExport=true;isc.A.canPrint=true;isc.A.panelControls=["action:edit","action:editNew","action:sort","action:export","action:print"];isc.A.dbcProperties=["autoFetchData","autoFetchTextMatchStyle","autoFetchAsFilter","dataSource"];isc.A.badFormulaResultValue=".";isc.A.missingSummaryFieldValue="-";isc.A.canAddFormulaFields=false;isc.A.addFormulaFieldText="Add formula column...";isc.A.editFormulaFieldText="Edit formula...";isc.A.removeFormulaFieldText="Remove formula";isc.A.canAddSummaryFields=false;isc.A.addSummaryFieldText="Add summary column...";isc.A.editSummaryFieldText="Edit summary format...";isc.A.removeSummaryFieldText="Remove summary column..";isc.A.formulaFieldNamePrefix="formulaField";isc.A.summaryFieldNamePrefix="summaryField";isc.A.uniqueFieldNamePrefix="field";isc.A.exportDataChunkSize=50;isc.A.emptyExportMessage="You are attempting to export an empty dataset";isc.A.unknownErrorMessage="Invalid value";isc.A.$685=["isInteger","isFloat","isBoolean","isString"];isc.A.$746="partial";isc.A.$75a={};isc.A.$75b=null;isc.B.push(isc.A.setValuesManager=function isc_Canvas_setValuesManager(_1){if(_1)_1.addMember(this)}
 ,isc.A.initializeValuesManager=function isc_Canvas_initializeValuesManager(){var _1=this.valuesManager;delete this.valuesManager;if(_1!=null){if(isc.ValuesManager==null){this.logWarn("Widget initialized with specified 'valuesManager' property but "+"ValuesManager class is not loaded. This functionality requires the "+"Forms module.");return}
 if(isc.isA.ValuesManager(_1)){_1.addMember(this)}else if(isc.isA.ValuesManager(window[_1])){window[_1].addMember(this)}else if(isc.isA.String(_1)){isc.ValuesManager.create({ID:_1,dataSource:this.dataSource,members:[this]})}else{this.logWarn("Widget initialized with invalid 'valuesManager' property:"+isc.Log.echo(_1)+", clearing this property out")}}}
 ,isc.A.setDataPath=function isc_Canvas_setDataPath(_1){this.dataPath=_1;if(this.getFields==null||this.getFields()==null)return;if(_1==null){delete this.$704;if(this.valuesManager&&this.$703){this.valuesManager.removeMember(this);delete this.$703}
@@ -3406,7 +3428,8 @@
 this.$704=_2;if(_3){if(_3!=this||!this.dataSource){if(_3.valuesManager==null){_3.createDefaultValuesManager()}
 var _4=isc.isA.DynamicForm(this)?this.$834:this.getFields();_4=_4||this.getFields();if(_3.valuesManager.getDataSource()){this.setDataSource(_3.valuesManager.getDataSource(),_4)}
 _3.valuesManager.addMember(this,true)}}}
-,isc.A.getFullDataPath=function isc_Canvas_getFullDataPath(){return this.$704||this.dataPath}
+,isc.A.getFullDataPath=function isc_Canvas_getFullDataPath(){var _1=this.$704||this.dataPath;if(!_1&&this.masterElement){return this.masterElement.$704||this.masterElement.dataPath}
+return _1}
 ,isc.A.buildFieldDataPath=function isc_Canvas_buildFieldDataPath(_1,_2){var _3=_2.dataPath||_2.name;if(_1&&!_3.startsWith("/")){_3=_1+"/"+_3}
 return!_3?null:_3.replace(/^\/*/,"")}
 ,isc.A.createDefaultValuesManager=function isc_Canvas_createDefaultValuesManager(_1){if(!_1)_1=[];_1.add(this);isc.ValuesManager.create({members:_1,ID:this.getID()+"$705",dataSource:this.dataSource})}
@@ -3490,7 +3513,8 @@
 ,isc.A.exportData=function isc_Canvas_exportData(_1){if(!_1)_1={};var _2=this.getSort();if(_2)_1.sortBy=isc.DS.getSortBy(_2);else if(this.sortField)_1.sortBy=(!this.sortDirection?"-":"")+this.sortField;if(!_1.textMatchStyle){var _3=this.data.context;if(_3&&_3.textMatchStyle)_1.textMatchStyle=_3.textMatchStyle}
 if(!this.exportAll&&!_1.exportFields){var _4=this.exportFields;if(!_4){_4=[];for(var i=0;i<this.fields.length;i++){var _6=this.fields.get(i);if(this.$71s(_6)){_4.add(_6.name);if(_6.displayField&&!_6.optionDataSource)_4.add(_6.displayField)}}}
 if(_4&&_4.length>0)_1.exportFields=_4}
-var _7=_1.exportFields||this.exportFields||this.fields;var _8={};for(var i=0;i<_7.length;i++){var _6=_7[i];if(isc.isA.String(_6))_6=this.getField(_6);_8[_6.name]=_6.exportTitle||_6.title}
+var _7=_1.exportFields||this.exportFields||this.fields;var _8={};for(var i=0;i<_7.length;i++){var _6=_7[i];var _9;if(isc.isA.String(_6)){_9=_6;_6=this.getField(_9)}
+if(_6){_8[_6.name]=_6.exportTitle||_6.title}else{_8[_9]=_9}}
 _1.exportFieldTitles=_8;this.getDataSource().exportData(this.getCriteria(),_1)}
 ,isc.A.setCriteria=function isc_Canvas_setCriteria(_1){if(this.data&&this.data.setCriteria)this.data.setCriteria(_1);else this.initialCriteria=_1}
 ,isc.A.getCriteria=function isc_Canvas_getCriteria(){if(!this.isDrawn()&&(!this.data||this.data.getLength()==0)){return isc.shallowClone(this.initialCriteria)}
@@ -3724,7 +3748,7 @@
 ,isc.A.getClientExportDataChunk=function isc_Canvas_getClientExportDataChunk(_1){var _2=_1.settings,_3=_1.data,_4=_1.exportData,_5=_1.fields,_6=_1.includeHiddenFields,_7=_1.allowedProperties,_8=_1.includeCollapsedNodes,_9=_1.alwaysExportExpandedStyles,_10=_1.totalRows,_11=_1.startRow,_12=_1.endRow;for(var _13=_11;_13<_12;_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}
 if(_1.endRow<_1.totalRows){_1.lastTimeStamp=_1.thisTimeStamp;_1.thisTimeStamp=isc.timeStamp();if(this.logIsInfoEnabled("export")){this.logInfo("processed "+_1.endRow+" rows - starting next chunk - "+((_1.thisTimeStamp-_1.lastTimeStamp)/1000),"export")}
 _1.startRow=_1.endRow;_1.endRow=Math.min(_1.startRow+_1.chunkSize,_1.totalRows);return this.delayCall("getClientExportDataChunk",[_1],0)}
-if(this.showGridSummary&&this.summaryRow&&this.exportIncludeSummaries){var _16=this.summaryRow,_3=[_16.$71q];for(var _13=0;_13<_3.getLength();_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}}
+if(this.showGridSummary&&this.summaryRow&&this.exportIncludeSummaries){var _16=this.summaryRow,_3=this.getGridSummaryData(true);for(var _13=0;_13<_3.getLength();_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}}
 if(_1.callback){var _3=_1.exportData;if(this.logIsInfoEnabled("export")){this.logInfo("finished processing "+_1.endRow+" rows - about to export - "+isc.timestamp(),"export")}
 this.fireCallback(_1.callback,"data,context",[_3,_1.settings])}}
 ,isc.A.getClientExportFields=function isc_Canvas_getClientExportFields(_1){var _2=this.getAllFields();if(isc.isA.Object(_1)){if(_1&&_1.exportFields){var _3=[];for(var i=0;i<_2.length;i++){if(_1.exportFields.contains(_2[i].name))_3.add(_2[i])}
@@ -4168,7 +4192,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Core.js.gz has changed
--- a/isomorphic/system/development/ISC_DBConsole.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_DBConsole.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -53,7 +53,7 @@
 isc.DatabaseBrowser.create({autoCenter:true,canDragReposition:false,width:"90%",height:"90%",dbName:_1.dbName,closeClick:function(){this.destroy()}}).show()}
 ,isc.A.downloadServerProperties=function isc_DBConfigurator_downloadServerProperties(){var _1="/WEB-INF/classes/server.properties",_2=isc.DataSource.getDataSource("Filesystem"),_3=this;_2.fetchData({path:_1},function(_4){_3.downloadServerPropertiesReply(_4.data)},{operationId:"loadFile"})}
 ,isc.A.downloadServerPropertiesReply=function isc_DBConfigurator_downloadServerPropertiesReply(_1){if(isc.isAn.Array(_1))_1=_1[0];isc.DMI.callBuiltin({methodName:"downloadClientContent",arguments:[_1.contents,"server.properties","text"],requestParams:{transport:"hiddenFrame",downloadResult:true,showPrompt:false}})}
-,isc.A.getDefinedDatabases=function isc_DBConfigurator_getDefinedDatabases(){isc.DMI.call({appID:"isc_builtin",className:"com.isomorphic.tools.AdminConsole",methodName:"getDefinedDatabases",callback:this.getID()+".getDefinedDatabasesCallback(data)",requestParams:{prompt:"Please wait - getting list and status of configured database.",showPrompt:true}})}
+,isc.A.getDefinedDatabases=function isc_DBConfigurator_getDefinedDatabases(){isc.DMI.call({appID:"isc_builtin",className:"com.isomorphic.tools.AdminConsole",methodName:"getDefinedDatabases",callback:this.getID()+".getDefinedDatabasesCallback(data)",requestParams:{prompt:"Please wait - getting list and status of configured databases.",showPrompt:true}})}
 ,isc.A.getDefinedDatabasesCallback=function isc_DBConfigurator_getDefinedDatabasesCallback(_1){for(var i=0;i<_1.length;i++){if(_1[i].isDefault&&this.creator)this.creator.defaultDatabaseID=_1[i].dbName;if(_1[i]['driver.url']){_1[i].useURL=true;_1[i]["driver.serverName"]="Embedded in JDBC URL"}}
 this.dbList.setData(_1)}
 ,isc.A.setDefaultDB=function isc_DBConfigurator_setDefaultDB(_1){isc.DMI.call({appID:"isc_builtin",className:"com.isomorphic.tools.AdminConsole",methodName:"setDefaultDB",arguments:[_1],callback:this.getID()+".setDefaultDBCallback(data)"})}
@@ -74,7 +74,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_DBConsole.js.gz has changed
--- a/isomorphic/system/development/ISC_DSBrowser.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_DSBrowser.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -72,7 +72,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_DSBrowser.js.gz has changed
--- a/isomorphic/system/development/ISC_DataBinding.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_DataBinding.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -282,7 +282,7 @@
 ,isc.A.handleUpdate=function isc_c_DataSource_handleUpdate(_1,_2){if(!this.isUpdateOperation(_2.operationType))return;var _3=this.get(_2.dataSource);_3.updateCaches(_1,_2)}
 ,isc.A.isUpdateOperation=function isc_c_DataSource_isUpdateOperation(_1){if(_1=="add"||_1=="update"||_1=="remove"||_1=="replace"||_1=="delete"||_1=="insert")return true}
 ,isc.A.getUpdatedData=function isc_c_DataSource_getUpdatedData(_1,_2,_3){var _4=this.get(_1.dataSource);return _4.getUpdatedData(_1,_2,_3)}
-,isc.A.filterCriteriaForFormValues=function isc_c_DataSource_filterCriteriaForFormValues(_1){var _2={};for(var _3 in _1){var _4=_1[_3];if(_4==null||isc.is.emptyString(_4))continue;if(isc.isAn.Array(_4)){if(_4.length==0)continue;for(var i=0;i<_4.length;i++){var _6=_4[i];if(isc.isAn.emptyString(_6))continue}}
+,isc.A.filterCriteriaForFormValues=function isc_c_DataSource_filterCriteriaForFormValues(_1){if(isc.DS.isAdvancedCriteria(_1))return _1;var _2={};for(var _3 in _1){var _4=_1[_3];if(_4==null||isc.is.emptyString(_4))continue;if(isc.isAn.Array(_4)){if(_4.length==0)continue;for(var i=0;i<_4.length;i++){var _6=_4[i];if(isc.isAn.emptyString(_6))continue}}
 _2[_3]=_4}
 return _2}
 ,isc.A.checkEmptyCriteria=function isc_c_DataSource_checkEmptyCriteria(_1,_2){if((_2||this.isAdvancedCriteria(_1))&&_1.criteria){if(_1.criteria.length==0)return null;for(var i=_1.criteria.length;i>=0;i--){var _4=_1.criteria[i],_5=false;if(!_4)_5=true;else{if(!_4.criteria){if(isc.isA.emptyObject(_4))_5=true}else{var _6=this.checkEmptyCriteria(_4,true);if(_6)_1.criteria[i]=_6;else _5=true}}
@@ -311,8 +311,8 @@
 ,isc.A.getCachedResponse=function isc_c_DataSource_getCachedResponse(_1){if(isc.Offline){var _2=isc.Offline.serialize(isc.Offline.trimRequest(_1));return this.$78d.find("requestKey",_2)}
 return null}
 );isc.B._maxIndex=isc.C+31;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.addGlobalId=true;isc.A.dataFormat="iscServer";isc.A.callbackParam="callback";isc.A.preventHTTPCaching=true;isc.A.sendExtraFields=true;isc.A.transformResponseToJS=true;isc.A.supportsRequestQueuing=true;isc.A.copyLocalResults=true;isc.A.criteriaPolicy="dropOnShortening";isc.A.showPrompt=true;isc.A.autoDeriveTitles=true;isc.A.canMultiSort=true;isc.A.nullStringValue="";isc.A.nullIntegerValue=0;isc.A.nullFloatValue=0.0;isc.A.nullBooleanValue=false;isc.A.nullDateValue=new Date(0);isc.A.cacheMaxAge=60;isc.A.cacheLastFetchTime=0;isc.A.autoCacheAllData=false;isc.A.autoConvertRelativeDates=true;isc.B.push(isc.A.setCacheAllData=function isc_DataSource_setCacheAllData(_1){if(!_1){if(this.cacheAllData==true){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheAllData(false): clearing the cache and any "+"deferred requests","cacheAllData")}
-this.cacheAllData=false;this.invalidateCache();this.clearDeferredRequests()}}else{if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheAllData(true): invalidate the cache","cacheAllData")}
-this.cacheAllData=true;this.invalidateCache()}}
+this.cacheAllData=false;delete this.$85n;this.invalidateCache();this.clearDeferredRequests()}}else{if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheAllData(true): invalidate the cache","cacheAllData")}
+this.cacheAllData=true;this.$85n=isc.timestamp();this.invalidateCache()}}
 ,isc.A.cacheNeedsRefresh=function isc_DataSource_cacheNeedsRefresh(){var _1=new Date().getTime(),_2=((_1-this.cacheLastFetchTime)/1000),_3=(this.cacheLastFetchTime==0||_2>this.cacheMaxAge);if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("cacheNeedsRefresh returns "+_3,"cacheAllData")}
 return _3}
 ,isc.A.setCacheData=function isc_DataSource_setCacheData(_1,_2){if(this.cacheAllData||this.clientOnly){if(_2){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheData: invalidating the cache","cacheAllData")}
@@ -336,10 +336,10 @@
 if(this.logIsInfoEnabled("relativeDates")){this.logInfo("Returning from convertRelativeDates - result is:\n\n"+isc.echoFull(_6)+"\n\n"+"original criteria is: \n\n"+isc.echoFull(_1),"relativeDates")}
 return _6}
 ,isc.A.mapRelativeDate=function isc_DataSource_mapRelativeDate(_1,_2){var _3=isc.addProperties({},_1),_4,_5;_2=_2||new Date();var _6=_3.fieldName,_7=_6?this.getField(_6):null,_8=_7?_7.type:null;if(_3.value&&isc.isAn.Object(_3.value)&&_3.value._constructor=="RelativeDate")
-{_5=_3.value.value;_3.value=isc.RelativeDateItem.getAbsoluteDate(_5,_2,_8,_3.value.rangePosition)}else{if(_3.start&&isc.isAn.Object(_3.start)&&_3.start._constructor=="RelativeDate")
-{_5=_3.start.value;if(_5=="$today")_5="$startOfToday";_3.start=_4=isc.RelativeDateItem.getAbsoluteDate(_5,_2,_8,"start")}
+{_5=_3.value.value;_3.value=isc.DateUtil.getAbsoluteDate(_5,_2,_3.value.rangePosition)}else{if(_3.start&&isc.isAn.Object(_3.start)&&_3.start._constructor=="RelativeDate")
+{_5=_3.start.value;_3.start=_4=isc.DateUtil.getAbsoluteDate(_5,_2,"start")}
 if(_3.end&&isc.isAn.Object(_3.end)&&_3.end._constructor=="RelativeDate")
-{_5=_3.end.value;if(_5=="$today")_5="$endOfToday";_3.end=isc.RelativeDateItem.getAbsoluteDate(_5,_2,_8,"end")}}
+{_5=_3.end.value;_3.end=isc.DateUtil.getAbsoluteDate(_5,_2,"end")}}
 return _3}
 );isc.B._maxIndex=isc.C+10;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$41v="Action";isc.A.resultBatchSize=150;isc.A.$2j=[];isc.A.canExport=true;isc.A.defaultTitleFieldNames=["title","label","name","id"];isc.A.textContentProperty="xmlTextContent";isc.A.$dq="Defaults";isc.A.$dr="Properties";isc.A.$375="name";isc.A.$45t="type";isc.A.dropUnknownCriteria=true;isc.A.$45y="startsWith";isc.A.$19q="substring";isc.A.$50i="exact";isc.A.$50j="iscServer";isc.B.push(isc.A.init=function isc_DataSource_init(){if(this.serverType=="sql")this.dataFormat="iscServer";if(this.dataFormat=="iscServer"&&(this.serviceNamespace!=null||this.recordXPath!=null))this.dataFormat="xml";this.canQueueRequests=(this.dataFormat=="iscServer"||this.clientOnly);if(this.testData&&!this.cacheData)this.cacheData=this.testData;else if(this.clientOnly&&this.cacheData&&!this.testData)
 this.testData=this.cacheData;if(this.ID==null&&this.id!=null)this.ID=this.id;if(this.name==null)this.name=this.ID;var _1=isc.DS.get(this.ID);if(_1&&_1.builtinSchema)return _1;var _2=window[this.ID];if(this.addGlobalId&&this.addGlobalId!=isc.$ae&&(!_2||(!isc.isA.ClassObject(_2)&&isc.isA.DataSource(_2))))
@@ -389,7 +389,7 @@
 var _7=this.getDataProtocol(_1),_8=_7=="clientCustom";if(_8){return{dataProtocol:"clientCustom"}}else{delete this.$624[_1.requestId]}
 if(isc.isA.WebService(_3)){if(_1.wsOperation==null&&isc.isAn.Object(_4)){_1.wsOperation=_4.name}
 this.logInfo("web service: "+_3+", wsOperation: "+this.echoLeaf(_4),"xmlBinding")}
-var _9=this.getDataURL(_1);_9=_1.actionURL||_1.dataURL||_9;if(_1.useHttpProxy==null){_1.useHttpProxy=this.$du(_2.useHttpProxy,this.useHttpProxy)}
+_1.$85o=isc.timestamp();var _9=this.getDataURL(_1);_9=_1.actionURL||_1.dataURL||_9;if(_1.useHttpProxy==null){_1.useHttpProxy=this.$du(_2.useHttpProxy,this.useHttpProxy)}
 var _10,_11=_2.defaultParams||this.defaultParams,_12=_1.params;if(_11||_12){_10=isc.addProperties({},_11,_12)}
 var _13=_7=="getParams"||_7=="postParams";if(_13){_10=isc.addProperties(_10||{},_1.data)}
 if(_13){if(_10)_10=this.serializeFields(_10,_1);return{actionURL:_9,httpMethod:_1.httpMethod||(_7=="getParams"?"GET":"POST"),params:_10}}
@@ -603,7 +603,8 @@
 if(!_3){this.logError("fieldName not provided and no binary fields present in the"+" passed recordKeys")}
 if(_4.downloadResult==null)_4.downloadResult=true;if(_4.downloadToNewWindow==null)
 _4.downloadToNewWindow=_1=="viewFile"?true:false;if(_4.showPrompt==null)_4.showPrompt=false;if(!isc.isAn.Object(_2)){_2={};_2[this.getPrimaryKeyField()]=_2}
-var _7=this.filterPrimaryKeyFields(isc.clone(_2));_7.download_fieldname=_3;_4.download_filename=_2[_3+"_filename"];_7.download_filename=_4.download_filename;return this.performDSOperation(_1,_7,null,_4)}
+var _7=this.filterPrimaryKeyFields(isc.clone(_2));_7.download_fieldname=_3;var _8=this.getField(_3);var _9=_8&&_8.nativeName?_8.nativeName:_3
+_4.download_filename=_2[_9+"_filename"];_7.download_filename=_4.download_filename;return this.performDSOperation(_1,_7,null,_4)}
 ,isc.A.$625=function isc_DataSource__getNextRequestId(){if(!this.$626)this.$626=[this.getID(),"$627"];this.$626[2]=isc.DataSource.$625();return this.$626.join(isc.emptyString)}
 ,isc.A.performDSOperation=function isc_DataSource_performDSOperation(_1,_2,_3,_4){if(isc.$cv)arguments.$cw=this;var _5=isc.addProperties({operationType:_1,dataSource:this.ID,data:_2,callback:_3,requestId:this.$625()},_4);if(_5.sortBy!=null){if(!isc.isAn.Array(_5.sortBy))_5.sortBy=[_5.sortBy];if(isc.isAn.Object(_5.sortBy[0])){_5.sortBy=isc.DS.getSortBy(_5.sortBy)}
 for(var i=0;i<_5.sortBy.length;i++){var _7=_5.sortBy[i];if(!isc.isA.String(_7))continue;var _8=this.getField(_7.charAt(0)=="-"?_7.substring(1):_7);if(_8&&_8.canSortClientOnly)_5.sortBy[i]=null}
@@ -615,7 +616,7 @@
 if(_1.showPrompt==null){_1.showPrompt=this.showPrompt}
 if(!this.cacheAllData&&this.autoCacheAllData&&_1.downloadResult!=true&&_1.operationType=="fetch"&&_1.startRow==null&&_1.endRow==null&&(_1.data==null||isc.isAn.emptyObject(_1.data)))
 {if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("sendDSRequest: switching on cacheAllData","cacheAllData")}
-this.cacheAllData=true}
+this.cacheAllData=true;this.$85n=isc.timestamp()}
 if(this.fetchingClientOnlyData(_1))return;if(this.logIsDebugEnabled()){this.logDebug("Outbound DSRequest: "+this.echo(_1))}
 _1.$376=_1.callback;var _3=_1.operationType;if((_3=="update"||_3=="add")&&(this.sparseUpdates||this.noNullUpdates))
 {this.$79c(_1.data,_1.oldValues,_3,this)}
@@ -661,6 +662,8 @@
 ,isc.A.hasSuperDS=function isc_DataSource_hasSuperDS(){if(this.inheritsFrom)return true;return false}
 ,isc.A.superDS=function isc_DataSource_superDS(){if(this.hasSuperDS())return this.getSchema(this.inheritsFrom);return null}
 ,isc.A.getField=function isc_DataSource_getField(_1){if(isc.isAn.Object(_1))_1=_1.name;var _2=this.getFields();return _2?_2[_1]:null}
+,isc.A.getFieldByTitle=function isc_DataSource_getFieldByTitle(_1){var _2=isc.getValues(this.getFields());for(var i=0;i<_2.length;i++){var _4=_2[i],_5=_4.title||isc.DS.getAutoTitle(_2[i].name);if(_5==_1)return _4}
+return null}
 ,isc.A.getDisplayValue=function isc_DataSource_getDisplayValue(_1,_2){var _3=this.getField(_1);if(_3==null)return _2;if(isc.isAn.Object(_3.valueMap)&&!isc.isAn.Array(_3.valueMap)&&isc.propertyDefined(_3.valueMap,_2))
 {return _3.valueMap[_2]}
 return _2}
@@ -754,9 +757,11 @@
 ,isc.A.firstCacheAllDataRequest=function isc_DataSource_firstCacheAllDataRequest(_1){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: refreshing cache","cacheAllData")}
 this.$498=[_1];if(this.$839==null){var _2=this.transformRequest,_3=this.transformResponse,_4=this.$ba;if(_4){if(_4.transformRequest){_2=this[isc.$ah+"transformRequest"]}
 if(_4.transformResponse){_3=this[isc.$ah+"transformResponse"]}}
-this.transformServerRequest=_2;this.transformServerResponse=_3;this.addMethods({transformRequest:function(_1){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5)return _1;return this.transformServerRequest(_1)},transformResponse:function(_7,_1,_8){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5)return _7;return this.transformServerResponse(_7,_1,_8)}});this.$839=true}
-this.cacheResultSet=isc.ResultSet.create({dataSource:this,fetchMode:"local",allRows:this.cacheData?this.cacheData:null,cachingAllData:true,dataArrived:function(_7,_8){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("cacheAllData - cacheResultSet.dataArrived: startRow/endRow: "+_7+"/"+_8)}
-if(this.lengthIsKnown()){var _6=this.getDataSource();if(_6.cacheResultSet==null)return;_6.cacheLastFetchTime=new Date().getTime();if(_6.clientOnly)_6.testData=_6.cacheData=this.getAllRows();_6.processDeferredRequests()}}});if(!this.cacheData){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: issuing fetch","cacheAllData")}
+this.transformServerRequest=_2;this.transformServerResponse=_3;this.addMethods({transformRequest:function(_1){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5)return _1;return this.transformServerRequest(_1)},transformResponse:function(_9,_1,_10){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5){var _6=this.$85n,_7=_1.$85o;if(!_6||!_7||_7>=_6)
+return _9}
+return this.transformServerResponse(_9,_1,_10)}});this.$839=true}
+this.cacheResultSet=isc.ResultSet.create({dataSource:this,fetchMode:"local",allRows:this.cacheData?this.cacheData:null,cachingAllData:true,dataArrived:function(_9,_10){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("cacheAllData - cacheResultSet.dataArrived: startRow/endRow: "+_9+"/"+_10)}
+if(this.lengthIsKnown()){var _8=this.getDataSource();if(_8.cacheResultSet==null)return;_8.cacheLastFetchTime=new Date().getTime();if(_8.clientOnly)_8.testData=_8.cacheData=this.getAllRows();_8.processDeferredRequests()}}});if(!this.cacheData){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: issuing fetch","cacheAllData")}
 this.cacheResultSet.get(0);return true}else{if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: updating last fetch time","cacheAllData")}
 this.cacheLastFetchTime=new Date().getTime();if(this.clientOnly)this.testData=this.cacheData;this.processDeferredRequests()}}
 ,isc.A.fetchingClientOnlyData=function isc_DataSource_fetchingClientOnlyData(_1){if(_1.cachingAllData){return false}
@@ -787,9 +792,9 @@
 break;case"add":case"insert":var _16=isc.addProperties({},_1.data);_16=this.applySequenceFields(_16);_2.add(_16);_4.data=isc.addProperties({},_16);break;case"replace":case"update":var _15=this.findByKeys(_1.data,_2);if(_15==-1){this.logWarn("clientOnly update operation: Unable to find record matching criteria:"+this.echo(_1.data))}else{var _16=_2[_15];isc.addProperties(_16,_1.data);_4.data=isc.addProperties({},_16)}
 break;case"validate":default:break}
 return _4}
-,isc.A.getNextSequenceValue=function isc_DataSource_getNextSequenceValue(_1){var _2=this.testData,_3=0;for(var i=0;i<_2.length;i++){var _5=_2[i][_1.name];if(_5!=null&&_5>_3)_3=_5}
+);isc.evalBoundary;isc.B.push(isc.A.getNextSequenceValue=function isc_DataSource_getNextSequenceValue(_1){var _2=this.testData,_3=0;for(var i=0;i<_2.length;i++){var _5=_2[i][_1.name];if(_5!=null&&_5>_3)_3=_5}
 return _3+1}
-);isc.evalBoundary;isc.B.push(isc.A.applySequenceFields=function isc_DataSource_applySequenceFields(_1){if(!this.clientOnly){return}
+,isc.A.applySequenceFields=function isc_DataSource_applySequenceFields(_1){if(!this.clientOnly){return}
 var _2=this.getFields();for(var _3 in _2){var _4=_2[_3];if((_4.type=="sequence"||_4.primaryKey)&&_1[_3]==null){_1[_3]=this.getNextSequenceValue(_4)}}
 return _1}
 ,isc.A.initializeSequenceFields=function isc_DataSource_initializeSequenceFields(_1){if(!isc.isAn.Array(_1))return;var _2=this.getFields();var _3=[];for(var _4 in _2){if(_2[_4].type=="sequence"||_2[_4].primaryKey)_3.add(_4)}
@@ -840,7 +845,7 @@
 if(_6>0){_4.removeList(_5);for(var i=0;i<_4.length;i++){if(this.getField(_4[i])==null)return-1}
 return 1}
 return _7}
-);isc.B._maxIndex=isc.C+164;isc.A=isc.DataSource;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$628=0;isc.A.$71l={sum:function(_1,_2,_3){var _4=0;for(var i=0;i<_2.length;i++){var _6=_1[_2[i].name],_7=parseFloat(_6);if(isc.isA.Number(_7)&&_7==_6){_4+=_7}else{if(_6!=null&&_6!=isc.emptyString){return null}}}
+);isc.B._maxIndex=isc.C+165;isc.A=isc.DataSource;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$628=0;isc.A.$71l={sum:function(_1,_2,_3){var _4=0;for(var i=0;i<_2.length;i++){var _6=_1[_2[i].name],_7=parseFloat(_6);if(isc.isA.Number(_7)&&_7==_6){_4+=_7}else{if(_6!=null&&_6!=isc.emptyString){return null}}}
 return _4},avg:function(_1,_2,_3){var _4=0,_5=0;for(var i=0;i<_2.length;i++){var _7=_1[_2[i].name],_8=parseFloat(_7);if(isc.isA.Number(_8)&&(_8==_7)){_5+=1;_4+=_8}else{if(_7!=null&&_7!=isc.emptyString){return null}}}
 return _5>0?_4/ _5:null},max:function(_1,_2,_3){var _4,_5;for(var i=0;i<_2.length;i++){var _7=_1[_2[i].name];if(isc.isA.Date(_7)){if(_5)return null;if(_4==null)_4=_7.duplicate();else if(_4.getTime()<_7.getTime())_4=_7.duplicate()}else{_5=true;var _8=parseFloat(_7);if(isc.isA.Number(_8)&&(_8==_7)){if(_4==null)_4=_8;else if(_4<_7)_4=_8}else{if(_7!=null&&_7!=isc.emptyString){return null}}}}
 return _4},min:function(_1,_2,_3){var _4,_5
@@ -849,6 +854,7 @@
 return _4}};isc.B.push(isc.A.addSearchOperator=function isc_c_DataSource_addSearchOperator(_1){if(!_1||!_1.ID){isc.logWarn("Attempted to add null search operator, or operator with no ID");return}
 if(!isc.DataSource.$57z)isc.DataSource.$57z={};var _2=isc.DataSource.$57z,_3;if(_2[_1.ID]!==_3){isc.logWarn("Attempted to add existing operator "+_1.ID+" - replacing")}
 isc.DataSource.$57z[_1.ID]=_1}
+,isc.A.getSearchOperators=function isc_c_DataSource_getSearchOperators(){return isc.DataSource.$57z}
 ,isc.A.setTypeOperators=function isc_c_DataSource_setTypeOperators(_1,_2){if(!_2)return;if(!isc.isAn.Array(_2))_2=[_2];if(!isc.DataSource.$570)isc.DataSource.$570={};isc.DataSource.$570[_1||"_all_"]=_2}
 ,isc.A.$625=function isc_c_DataSource__getNextRequestId(){return this.$628++}
 ,isc.A.getAutoTitle=function isc_c_DataSource_getAutoTitle(_1,_2){_2=_2||/[_\$]/g;if(!_1)return"";if(!isc.isA.String(_1))_1=_1.toString();var _3;_4=_1.replace(_2," ");var _4=_4.replace(/^\s+|\s+$/g,"");if(_4==_4.toUpperCase()||_4==_4.toLowerCase()){_4=_4.toLowerCase();var _5=true;_3="";for(var i=0;i<_4.length;i++){var _7=_4.substr(i,1);if(_5){_7=_7.toUpperCase();_5=false}
@@ -890,7 +896,7 @@
 ,isc.A.registerRecordSummaryFunction=function isc_c_DataSource_registerRecordSummaryFunction(_1,_2){if(isc.isA.String(_2)){_2=isc.Func.expressionToFunction("record,fields,summaryField",_2)}
 this.$71l[_1]=_2}
 ,isc.A.exportClientData=function isc_c_DataSource_exportClientData(_1,_2){var _3=_2||{},_4=_3&&_3.exportAs?_3.exportAs:"csv",_5=_3&&_3.exportFilename?_3.exportFilename:"export",_6=_3&&_3.exportDisplay?_3.exportDisplay:"download";var _7={showPrompt:false,transport:"hiddenFrame",exportResults:true,downloadResult:true,downloadToNewWindow:(_6=="window"),download_filename:(_6=="window"?_5:null)};var _8={exportAs:_3.exportAs,exportDelimiter:_3.exportDelimiter,exportFields:_3.exportFields,exportHeader:_3.exportHeader,exportFooter:_3.exportFooter,exportTitleSeparatorChar:_3.exportTitleSeparatorChar,lineBreakStyle:_3.lineBreakStyle};isc.DMI.callBuiltin({methodName:"downloadClientExport",arguments:[_1,_4,_5,_6,_8],requestParams:_7})}
-);isc.B._maxIndex=isc.C+13;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.supportsAdvancedCriteria=function isc_DataSource_supportsAdvancedCriteria(){if(this.clientOnly||this.cacheData)return true;if(this.willHandleAdvancedCriteria!=null)return this.willHandleAdvancedCriteria;return false}
+);isc.B._maxIndex=isc.C+14;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.supportsAdvancedCriteria=function isc_DataSource_supportsAdvancedCriteria(){if(this.clientOnly||this.cacheData)return true;if(this.willHandleAdvancedCriteria!=null)return this.willHandleAdvancedCriteria;return false}
 ,isc.A.isAdvancedCriteria=function isc_DataSource_isAdvancedCriteria(_1){return isc.DS.isAdvancedCriteria(_1,this)}
 ,isc.A.addSearchOperator=function isc_DataSource_addSearchOperator(_1,_2){if(!_1||!_1.ID){isc.logWarn("Attempted to add null search operator, or operator with no ID");return}
 isc.DataSource.addSearchOperator(_1);if(!this.$570)this.$570={$58d:true};if(_2){for(var _3=0;_3<this.$570.length;_3++){this.$570[_3].remove(_1.ID)}
@@ -979,15 +985,15 @@
 if(_60.value.equals(_61.value)){return 0}
 if(!_62.negate&&_61.value.containsAll(_60.value)){return 1}
 if(_62.negate&&_60.value.containsAll(_61.value)){return 1}}
-return-1};var _58=function(_60,_61,_62){if(_60.value==_61.value&&_60.fieldName==_61.fieldName){return 0}else{return-1}};var _59=[{ID:"equals",titleProperty:"equalsTitle",negate:false,valueType:"fieldType",condition:_5,compareCriteria:_41,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"notEqual",titleProperty:"notEqualTitle",negate:true,valueType:"fieldType",condition:_5,compareCriteria:_41,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"greaterThan",titleProperty:"greaterThanTitle",lowerBounds:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"lessThan",titleProperty:"lessThanTitle",upperBounds:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"greaterOrEqual",titleProperty:"greaterOrEqualTitle",lowerBounds:true,inclusive:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"lessOrEqual",titleProperty:"lessOrEqualTitle",upperBounds:true,inclusive:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+return-1};var _58=function(_60,_61,_62){if(_60.value==_61.value&&_60.fieldName==_61.fieldName){return 0}else{return-1}};var _59=[{ID:"equals",titleProperty:"equalsTitle",negate:false,valueType:"fieldType",condition:_5,compareCriteria:_41,symbol:"==",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"notEqual",titleProperty:"notEqualTitle",negate:true,valueType:"fieldType",condition:_5,compareCriteria:_41,symbol:"!",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"greaterThan",titleProperty:"greaterThanTitle",lowerBounds:true,valueType:"fieldType",condition:_8,compareCriteria:_42,symbol:">",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"lessThan",titleProperty:"lessThanTitle",upperBounds:true,valueType:"fieldType",condition:_8,compareCriteria:_42,symbol:"<",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"greaterOrEqual",titleProperty:"greaterOrEqualTitle",lowerBounds:true,inclusive:true,valueType:"fieldType",condition:_8,compareCriteria:_42,symbol:">=",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"lessOrEqual",titleProperty:"lessOrEqualTitle",upperBounds:true,inclusive:true,valueType:"fieldType",condition:_8,compareCriteria:_42,symbol:"<=",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
 _19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"between",titleProperty:"betweenTitle",lowerBounds:true,upperBounds:true,hidden:true,valueType:"valueRange",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"betweenInclusive",titleProperty:"betweenInclusiveTitle",lowerBounds:true,upperBounds:true,valueType:"valueRange",inclusive:true,condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"iEquals",titleProperty:"iEqualsTitle",equals:true,caseInsensitive:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iContains",titleProperty:"iContainsTitle",caseInsensitive:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iStartsWith",titleProperty:"iStartsWithTitle",startsWith:true,caseInsensitive:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iEndsWith",titleProperty:"iEndsWithTitle",endsWith:true,caseInsensitive:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"contains",titleProperty:"containsTitle",hidden:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"startsWith",titleProperty:"startsWithTitle",startsWith:true,hidden:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"endsWith",titleProperty:"endsWithTitle",endsWith:true,hidden:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iNotEqual",titleProperty:"iNotEqualTitle",caseInsensitive:true,equals:true,negate:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iNotContains",titleProperty:"iNotContainsTitle",caseInsensitive:true,negate:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iNotStartsWith",titleProperty:"iNotStartsWithTitle",startsWith:true,caseInsensitive:true,negate:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iNotEndsWith",titleProperty:"iNotEndsWithTitle",endsWith:true,caseInsensitive:true,negate:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"notContains",titleProperty:"notContainsTitle",negate:true,hidden:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"notStartsWith",titleProperty:"notStartsWithTitle",startsWith:true,negate:true,hidden:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"notEndsWith",titleProperty:"notEndsWithTitle",endsWith:true,negate:true,hidden:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"isNull",titleProperty:"isNullTitle",valueType:"none",condition:_20,compareCriteria:_55},{ID:"notNull",titleProperty:"notNullTitle",negate:true,valueType:"none",condition:_20,compareCriteria:_55},{ID:"regexp",titleProperty:"regexpTitle",hidden:true,valueType:"custom",condition:_22,compareCriteria:_56},{ID:"iregexp",titleProperty:"iregexpTitle",hidden:true,caseInsensitive:true,valueType:"custom",condition:_22,compareCriteria:_56},{ID:"inSet",titleProperty:"inSetTitle",hidden:true,valueType:"valueSet",condition:_24,compareCriteria:_57},{ID:"notInSet",titleProperty:"notInSetTitle",negate:true,hidden:true,valueType:"valueSet",condition:_24,compareCriteria:_57},{ID:"equalsField",titleProperty:"equalsFieldTitle",valueType:"fieldName",condition:_27,compareCriteria:_58},{ID:"notEqualField",titleProperty:"notEqualFieldTitle",negate:true,valueType:"fieldName",condition:_27,compareCriteria:_58},{ID:"greaterThanField",titleProperty:"greaterThanFieldTitle",lowerBounds:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"lessThanField",titleProperty:"lessThanFieldTitle",upperBounds:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"greaterOrEqualField",titleProperty:"greaterOrEqualFieldTitle",lowerBounds:true,inclusive:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"lessOrEqualField",titleProperty:"lessOrEqualFieldTitle",upperBounds:true,inclusive:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"containsField",titleProperty:"containsFieldTitle",hidden:true,valueType:"fieldName",condition:_30,compareCriteria:_58},{ID:"startsWithField",titleProperty:"startsWithTitleField",startsWith:true,hidden:true,valueType:"fieldName",condition:_30,compareCriteria:_58},{ID:"endsWithField",titleProperty:"endsWithTitleField",endsWith:true,hidden:true,valueType:"fieldName",condition:_30,compareCriteria:_58},{ID:"and",titleProperty:"andTitle",isAnd:true,valueType:"criteria",condition:_1,compareCriteria:_31},{ID:"not",titleProperty:"notTitle",isNot:true,valueType:"criteria",condition:_1,compareCriteria:_31},{ID:"or",titleProperty:"orTitle",isOr:true,valueType:"criteria",condition:_1,compareCriteria:_31}];for(var _3=0;_3<_59.length;_3++){isc.DataSource.addSearchOperator(_59[_3])}
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"betweenInclusive",titleProperty:"betweenInclusiveTitle",lowerBounds:true,upperBounds:true,valueType:"valueRange",inclusive:true,condition:_8,compareCriteria:_42,symbol:"...",getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
+_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"iEquals",titleProperty:"iEqualsTitle",equals:true,caseInsensitive:true,valueType:"fieldType",condition:_17,symbol:"==",compareCriteria:_52},{ID:"iContains",titleProperty:"iContainsTitle",caseInsensitive:true,valueType:"fieldType",condition:_17,symbol:"~",compareCriteria:_52},{ID:"iStartsWith",titleProperty:"iStartsWithTitle",startsWith:true,caseInsensitive:true,valueType:"fieldType",condition:_17,symbol:"^",compareCriteria:_52},{ID:"iEndsWith",titleProperty:"iEndsWithTitle",endsWith:true,caseInsensitive:true,valueType:"fieldType",condition:_17,symbol:"|",compareCriteria:_52},{ID:"contains",titleProperty:"containsTitle",hidden:true,valueType:"fieldType",condition:_17,symbol:"~",compareCriteria:_52},{ID:"startsWith",titleProperty:"startsWithTitle",startsWith:true,hidden:true,valueType:"fieldType",condition:_17,symbol:"^",compareCriteria:_52},{ID:"endsWith",titleProperty:"endsWithTitle",endsWith:true,hidden:true,valueType:"fieldType",condition:_17,symbol:"|",compareCriteria:_52},{ID:"iNotEqual",titleProperty:"iNotEqualTitle",caseInsensitive:true,equals:true,negate:true,valueType:"fieldType",condition:_17,compareCriteria:_52},{ID:"iNotContains",titleProperty:"iNotContainsTitle",caseInsensitive:true,negate:true,valueType:"fieldType",condition:_17,symbol:"!~",compareCriteria:_52},{ID:"iNotStartsWith",titleProperty:"iNotStartsWithTitle",startsWith:true,caseInsensitive:true,negate:true,valueType:"fieldType",condition:_17,symbol:"!^",compareCriteria:_52},{ID:"iNotEndsWith",titleProperty:"iNotEndsWithTitle",endsWith:true,caseInsensitive:true,negate:true,valueType:"fieldType",condition:_17,symbol:"!@",compareCriteria:_52},{ID:"notContains",titleProperty:"notContainsTitle",negate:true,hidden:true,valueType:"fieldType",condition:_17,symbol:"!~",compareCriteria:_52},{ID:"notStartsWith",titleProperty:"notStartsWithTitle",startsWith:true,negate:true,hidden:true,valueType:"fieldType",condition:_17,symbol:"!^",compareCriteria:_52},{ID:"notEndsWith",titleProperty:"notEndsWithTitle",endsWith:true,negate:true,hidden:true,valueType:"fieldType",condition:_17,symbol:"!@",compareCriteria:_52},{ID:"isNull",titleProperty:"isNullTitle",valueType:"none",condition:_20,symbol:"#",compareCriteria:_55},{ID:"notNull",titleProperty:"notNullTitle",negate:true,valueType:"none",condition:_20,symbol:"!#",compareCriteria:_55},{ID:"regexp",titleProperty:"regexpTitle",hidden:true,valueType:"custom",condition:_22,symbol:"/regex/",compareCriteria:_56},{ID:"iregexp",titleProperty:"iregexpTitle",hidden:true,caseInsensitive:true,valueType:"custom",condition:_22,symbol:"/regex/",compareCriteria:_56},{ID:"inSet",titleProperty:"inSetTitle",hidden:true,valueType:"valueSet",condition:_24,compareCriteria:_57},{ID:"notInSet",titleProperty:"notInSetTitle",negate:true,hidden:true,valueType:"valueSet",condition:_24,compareCriteria:_57},{ID:"equalsField",titleProperty:"equalsFieldTitle",valueType:"fieldName",condition:_27,symbol:"=.",compareCriteria:_58,processValue:function(_60,_61){if(!_61)return _60;var _7=_61.getField(_60);if(_7)return _60;_7=_61.getFieldByTitle(_60);if(_7)return _7.name;return null}},{ID:"notEqualField",titleProperty:"notEqualFieldTitle",negate:true,valueType:"fieldName",condition:_27,compareCriteria:_58},{ID:"greaterThanField",titleProperty:"greaterThanFieldTitle",lowerBounds:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"lessThanField",titleProperty:"lessThanFieldTitle",upperBounds:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"greaterOrEqualField",titleProperty:"greaterOrEqualFieldTitle",lowerBounds:true,inclusive:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"lessOrEqualField",titleProperty:"lessOrEqualFieldTitle",upperBounds:true,inclusive:true,valueType:"fieldName",condition:_29,compareCriteria:_58},{ID:"containsField",titleProperty:"containsFieldTitle",hidden:true,valueType:"fieldName",condition:_30,compareCriteria:_58},{ID:"startsWithField",titleProperty:"startsWithTitleField",startsWith:true,hidden:true,valueType:"fieldName",condition:_30,compareCriteria:_58},{ID:"endsWithField",titleProperty:"endsWithTitleField",endsWith:true,hidden:true,valueType:"fieldName",condition:_30,compareCriteria:_58},{ID:"and",titleProperty:"andTitle",isAnd:true,valueType:"criteria",condition:_1,symbol:" and ",compareCriteria:_31},{ID:"not",titleProperty:"notTitle",isNot:true,valueType:"criteria",condition:_1,compareCriteria:_31},{ID:"or",titleProperty:"orTitle",isOr:true,valueType:"criteria",condition:_1,symbol:" or ",compareCriteria:_31}];for(var _3=0;_3<_59.length;_3++){isc.DataSource.addSearchOperator(_59[_3])}
 isc.DataSource.setTypeOperators(null,["equals","notEqual","lessThan","greaterThan","lessOrEqual","greaterOrEqual","between","betweenInclusive","isNull","notNull","inSet","notInSet","equalsField","notEqualField","greaterThanField","lessThanField","greaterOrEqualField","lessOrEqualField","and","or","not"]);isc.DataSource.setTypeOperators("text",["regexp","iregexp","contains","startsWith","endsWith","iEquals","iNotEqual","iContains","iStartsWith","iEndsWith","notContains","notStartsWith","notEndsWith","iNotContains","iNotStartsWith","iNotEndsWith","containsField","startsWithField","endsWithField"]);isc.DataSource.setTypeOperators("integer",["iContains","iStartsWith","iEndsWith","iNotContains","iNotStartsWith","iNotEndsWith","containsField","startsWithField","endsWithField"]);isc.DataSource.setTypeOperators("float",["iContains","iStartsWith","iEndsWith","iNotContains","iNotStartsWith","iNotEndsWith","containsField","startsWithField","endsWithField"])};isc.$571();isc.DataSource.create({ID:"Object",fields:{},addGlobalId:false});isc.DataSource.create({ID:"ValueMap",addGlobalId:false,builtinSchema:true,canBeArrayValued:true,fields:{},$cp:"ID",$450:"id",xmlToJS:function(_1,_2){if(_1==null||isc.xml.elementIsNil(_1))return null;var _3=isc.xml.getElementChildren(_1),_4=isc.xml.getAttributes(_1),_5=!isc.isAn.emptyObject(_4);for(var i=0;i<_3.length;i++){var _7=_3[i],_8=_1.getAttribute(this.$cp)||_1.getAttribute(this.$450),_9=isc.xml.getElementText(_7);if(_8!=null&&_9!=null){_5=true;_4[_8]=_9}else if(_8!=null){_4[_8]=_8}else if(_9!=null){_4[_9]=_9}else{_4[isc.emptyString]=isc.emptyString}}
 if(_5)return _4;return isc.getValues(_4)},xmlSerializeFields:function(_1,_2,_3){if(_1==null||isc.DS.isSimpleTypeValue(_1)){return this.Super("xmlSerializeFields",arguments)}
 var _4=isc.SB.create(),_3=(_3||"")+"    ";if(isc.isAn.Array(_1)){for(var i=0;i<_1.length;i++){var _6=_1[i];_4.append("\r",_3,"<value>",isc.makeXMLSafe(_6),"</value>")}}else{for(var _7 in _1){var _6=_1[_7];_4.append("\r",_3,"<value id=\"",isc.makeXMLSafe(_7),"\">",isc.makeXMLSafe(_6),"</value>")}}
@@ -1320,15 +1326,15 @@
 this.$39r+=1;var _4;if(this.context&&this.context.clientContext){this.context.clientContext.requestIndex=this.$39r}else{_4={requestIndex:this.$39r}}
 var _5=isc.addProperties({operation:this.getOperationId("fetch"),startRow:_2,endRow:_3,sortBy:this.$39x,resultSet:this,clientContext:_4},this.context);_5.clientContext.$69t=_5.willHandleError;_5.willHandleError=true;if(this.rowOrderInvalid()){this.logInfo("invalidating rows on fetch due to 'add'/'update' operation "+" with updatePartialCache");this.invalidateRows()}
 if(this.logIsDebugEnabled("fetchTrace")){this.logWarn("ResultSet server fetch with server criteria: "+this.echoFull(_1)+this.getStackTrace())}
-if(this.cachingAllData)_5.cachingAllData=true;this.getDataSource().fetchData(_1,{caller:this,methodName:"fetchRemoteDataReply"},_5);if(!this.isPaged())this.$39v=this.$39r}
-,isc.A.fetchRemoteDataReply=function isc_ResultSet_fetchRemoteDataReply(_1,_2,_3){var _4=_1.clientContext.requestIndex;if(!this.$39y)this.$39y=0;if(_4!=(this.$39y+1)&&!_1.isCachedResponse){this.logInfo("server returned out-of-sequence response for fetch remote data request "+" - delaying processing: last processed:"+this.$39y+", returned:"+_4);if(!this.$39z)this.$39z=[];this.$39z.add({dsResponse:_1,data:_2,request:_3});return}
-if(this.cachingAllData==true)delete this.cachingAllData;if(!this.isPaged()&&this.$39v==_4)delete this.$39v;var _5;var _6=_1.status<0;if(_6||_1.offlineResponse){_5=[]}else{_5=_1.data}
-var _7=_5.length;this.document=_1.document;this.logInfo("Received "+_7+" records from server");if(_1.startRow==null)_1.startRow=_3.startRow;if(_1.endRow==null)_1.endRow=_1.startRow+_7;if(_1.totalRows==null&&_1.endRow<_3.endRow)
-_1.totalRows=_1.endRow;if(this.transformData){var _8=this.transformData(_5,_1);_5=_8!=null?_8:_5;if(_5.length!=_7){this.logInfo("Transform applied, "+_5.length+" records resulted, from "+_1.startRow+" to "+_1.endRow);_1.endRow=_1.startRow+_5.length;if(_1.totalRows!=null&&_1.totalRows<_1.endRow){_1.totalRows=_1.endRow}}}
-if(!isc.isA.List(_5)){this.logWarn("Bad data returned, ignoring: "+this.echo(_5));return}
-if(_1.totalRows!=null&&_1.totalRows<_1.endRow){this.logWarn("fetchData callback: dsResponse.endRow set to:"+_1.endRow+". dsResponse.totalRows set to:"+_1.totalRows+". endRow cannot exceed total dataset size. "+"Clamping endRow to the end of the dataset ("+_1.totalRows+").");_1.endRow=_1.totalRows}
-var _9=_1.startRow,_10=_1.endRow;this.$521();this.$390(_5,_1);this.$522(_9,_10,_6);delete this.context.afterFlowCallback;this.$39y=_4;if(this.$39z&&this.$39z.length>0){for(var i=0;i<this.$39z.length;i++){var _12=this.$39z[i];if(_12==null)continue;var _13=_12.dsResponse.clientContext.requestIndex;if(_13==this.$39y+1){this.logInfo("Delayed out of sequence data response being processed now "+_13);this.$39z[i]=null;this.fetchRemoteDataReply(_12.dsResponse,_12.data,_12.request);break}}}
-var _14=_3.clientContext.$69t;if(!_14&&_6){isc.RPCManager.$a0(_1,_3)}}
+if(this.cachingAllData)_5.cachingAllData=true;this.getDataSource().fetchData(_1,{caller:this,methodName:"fetchRemoteDataReply"},_5);this.$39v=this.$39r}
+,isc.A.fetchRemoteDataReply=function(dsResponse,data,request){var index=dsResponse.clientContext.requestIndex;if(!this.$39y)this.$39y=0;if(index!=(this.$39y+1)&&!dsResponse.isCachedResponse){this.logInfo("server returned out-of-sequence response for fetch remote data request "+" - delaying processing: last processed:"+this.$39y+", returned:"+index);if(!this.$39z)this.$39z=[];this.$39z.add({dsResponse:dsResponse,data:data,request:request});return}
+if(this.cachingAllData==true)delete this.cachingAllData;if(this.$39v==index)delete this.$39v;var newData;var hasError=dsResponse.status<0;if(hasError||dsResponse.offlineResponse){newData=[]}else{newData=dsResponse.data}
+var numResults=newData.length;this.document=dsResponse.document;this.logInfo("Received "+numResults+" records from server");if(dsResponse.startRow==null)dsResponse.startRow=request.startRow;if(dsResponse.endRow==null)dsResponse.endRow=dsResponse.startRow+numResults;if(dsResponse.totalRows==null&&dsResponse.endRow<request.endRow)
+dsResponse.totalRows=dsResponse.endRow;if(this.transformData){var result=this.transformData(newData,dsResponse);newData=result!=null?result:newData;if(newData.length!=numResults){this.logInfo("Transform applied, "+newData.length+" records resulted, from "+dsResponse.startRow+" to "+dsResponse.endRow);dsResponse.endRow=dsResponse.startRow+newData.length;if(dsResponse.totalRows!=null&&dsResponse.totalRows<dsResponse.endRow){dsResponse.totalRows=dsResponse.endRow}}}
+if(!isc.isA.List(newData)){this.logWarn("Bad data returned, ignoring: "+this.echo(newData));return}
+if(dsResponse.totalRows!=null&&dsResponse.totalRows<dsResponse.endRow){this.logWarn("fetchData callback: dsResponse.endRow set to:"+dsResponse.endRow+". dsResponse.totalRows set to:"+dsResponse.totalRows+". endRow cannot exceed total dataset size. "+"Clamping endRow to the end of the dataset ("+dsResponse.totalRows+").");dsResponse.endRow=dsResponse.totalRows}
+var startRow=dsResponse.startRow,endRow=dsResponse.endRow;this.$521();this.$390(newData,dsResponse);this.$522(startRow,endRow,hasError);delete this.context.afterFlowCallback;this.$39y=index;if(this.$39z&&this.$39z.length>0){for(var i=0;i<this.$39z.length;i++){var reply=this.$39z[i];if(reply==null)continue;var requestIndex=reply.dsResponse.clientContext.requestIndex;if(requestIndex==this.$39y+1){this.logInfo("Delayed out of sequence data response being processed now "+requestIndex);this.$39z[i]=null;this.fetchRemoteDataReply(reply.dsResponse,reply.data,reply.request);break}}}
+var willHandleError=request.clientContext.$69t;if(!willHandleError&&hasError){isc.RPCManager.$a0(dsResponse,request)}}
 ,isc.A.$390=function isc_ResultSet__handleNewData(_1,_2){if(this.isLocal()){this.$78z(_1);this.filterLocalData();return}else if(!this.isPaged()){this.$ed();this.localData=_1;if(this.canSortOnClient()){this.$391()}
 if(this.allRowsCached()){this.$78z(this.localData,this.criteria)}
 this.$ee();return}
@@ -1546,8 +1552,7 @@
 return false},saveData:function(_1,_2,_3){if(this.selectionComponent!=null){var _4=this.$71d;if(_4&&this.selectionComponent.setRecordValues){this.selectionComponent.setRecordValues(_4,this.getValues())}
 return}
 if(this.dataSource==null){this.logWarn("saveData() called on a non-databound "+this.Class+". This is not supported. "+" for information on databinding of components look at the documentation"+" for the DataSource class.  "+"If this was intended to be a native HTML form submission, set the "+"canSubmit property to true on this form.");return}
-if(isc.ValuesManager&&isc.isA.ValuesManager(this.valuesManager)&&this.dataPath){var _5=this.getFields();for(var i=0;i<_5.length;i++){var _7=this.getValue(_5[i].name);var _8=_5[i].dataPath||_5[i].name
-this.valuesManager.$10y(_8,_7,this)}
+if(isc.ValuesManager&&isc.isA.ValuesManager(this.valuesManager)&&this.dataPath){var _5=this.getFields();for(var i=0;i<_5.length;i++){var _7=_5[i].dataPath||_5[i].name;var _8=this.getValue(_7);this.valuesManager.$10y(_7,_8,this)}
 return}
 if(isc.Offline&&isc.Offline.isOffline()&&!this.dataSource.clientOnly){isc.warn(this.offlineSaveMessage);return}
 if(_2==null&&isc.isAn.Object(_1)&&_1.methodName==null)
@@ -2052,7 +2057,9 @@
 return _2}
 ,isc.A.clearSchemaProperties=function isc_c_EditContext_clearSchemaProperties(_1){if(_1&&_1.initData&&isc.isA.FormItem(_1.liveObject)){delete _1.initData.schemaDataSource;delete _1.initData.serviceName;delete _1.initData.serviceNamespace;var _2=_1.liveObject.form;if(_2&&_2.inputSchemaDataSource&&isc.DataSource.get(_2.inputSchemaDataSource).ID==_1.initData.inputSchemaDataSource&&_2.inputServiceName==_1.initData.inputServiceName&&_2.inputServiceNamespace==_1.initData.inputServiceNamespace)
 {delete _1.initData.inputSchemaDataSource;delete _1.initData.inputServiceName;delete _1.initData.inputServiceNamespace}}}
-);isc.B._maxIndex=isc.C+12;isc.EditContext.addInterfaceMethods({addFromPaletteNode:function(_1,_2){var _3=this.makeEditNode(_1,_2);return this.addNode(_3,_2)},makeEditNode:function(_1){var _2=this.getDefaultPalette();return _2.makeEditNode(_1)},getDefaultPalette:function(){if(this.defaultPalette)return this.defaultPalette;return(this.defaultPalette=isc.HiddenPalette.create())},requestLiveObject:function(_1,_2,_3){var _4=this;if(_1.loadData&&!_1.isLoaded){_1.loadData(_1,function(_6){_6=_6||_1
+,isc.A.serializeInitData=function isc_c_EditContext_serializeInitData(_1){if(_1==null)return null;if(!isc.isAn.Array(_1))_1=[_1];var _2=isc.SB.create();isc.Comm.omitXSI=true;for(var i=0;i<_1.length;i++){var _4=isc.DS.getNearestSchema(_1[i]);_2.append(_4.xmlSerialize(_1[i]),"\n\n")}
+isc.Comm.omitXSI=null;return _2.toString()}
+);isc.B._maxIndex=isc.C+13;isc.EditContext.addInterfaceMethods({addFromPaletteNode:function(_1,_2){var _3=this.makeEditNode(_1,_2);return this.addNode(_3,_2)},makeEditNode:function(_1){var _2=this.getDefaultPalette();return _2.makeEditNode(_1)},getDefaultPalette:function(){if(this.defaultPalette)return this.defaultPalette;return(this.defaultPalette=isc.HiddenPalette.create())},requestLiveObject:function(_1,_2,_3){var _4=this;if(_1.loadData&&!_1.isLoaded){_1.loadData(_1,function(_6){_6=_6||_1
 _6.isLoaded=true;_6.dropped=_1.dropped;_4.fireCallback(_2,"node",[_6])},_3);return}
 if(_1.wizardConstructor){this.logInfo("creating wizard with constructor: "+_1.wizardConstructor);var _5=isc.ClassFactory.newInstance(_1.wizardConstructor,_1.wizardDefaults);_5.getResults(_1,function(_6){if(!_6.liveObject){_6=_3.makeEditNode(_6)}
 _4.fireCallback(_2,"node",[_6])},_3);return}
@@ -2149,14 +2156,13 @@
 ,isc.A.destroyComponent=function isc_EditTree_destroyComponent(_1){var _2=this.getLiveObject(_1);this.removeNode(_1);if(_2.destroy)_2.destroy()}
 ,isc.A.showParents=function isc_EditTree_showParents(_1){var _2=this.data.getParents(_1),_3=_2.findAll("type","Tab");if(_3){for(var i=0;i<_3.length;i++){var _5=_3[i],_6=this.data.getParent(_5),_7=this.getLiveObject(_5),_8=this.getLiveObject(_6);_8.selectTab(_7)}}}
 ,isc.A.serializeComponents=function isc_EditTree_serializeComponents(_1,_2){var _3=_2?[this.data.root]:this.data.getChildren(this.data.root).duplicate();return this.serializeEditNodes(_3,_1)}
-,isc.A.serializeEditNodes=function isc_EditTree_serializeEditNodes(_1,_2){var _3=isc.SB.create();this.serverless=_2;for(var i=0;i<_1.length;i++){var _5=_1[i]=isc.addProperties({},_1[i]),_6=isc.ClassFactory.getClass(_5.type),_7=_5.initData=isc.addProperties({},_5.initData);if(_6&&_6.isA("Canvas")&&_7&&_7.visibility!=isc.Canvas.HIDDEN&&_7.autoDraw!==false)
-{_7.autoDraw=true}}
-this.saveNodes=[];this.map("getSerializeableTree",_1);isc.Comm.omitXSI=true;for(var i=0;i<this.saveNodes.length;i++){var _5=this.saveNodes[i],_8=isc.DS.getNearestSchema(_5);_3.append(_8.xmlSerialize(_5),"\n\n")}
-isc.Comm.omitXSI=null;this.serverless=null;return _3.toString()}
-,isc.A.getSerializeableTree=function isc_EditTree_getSerializeableTree(_1,_2){var _3=_1.type,_4=isc.addProperties({},_1.initData);var _5=isc.ClassFactory.getClass(_3);this.logInfo("node: "+this.echoLeaf(_1)+" with type: "+_3);if(_5&&_5.isA("DataSource")){if(this.saveNodes){var _6=this.saveNodes.find("ID",_4.ID)||this.saveNodes.find("loadID",_4.ID);if(_6&&_6.$schemaId=="DataSource")return}
+,isc.A.serializeEditNodes=function isc_EditTree_serializeEditNodes(_1,_2){for(var i=0;i<_1.length;i++){var _4=_1[i]=isc.addProperties({},_1[i]),_5=isc.ClassFactory.getClass(_4.type),_6=_4.initData=isc.addProperties({},_4.initData);if(_5&&_5.isA("Canvas")&&_6&&_6.visibility!=isc.Canvas.HIDDEN&&_6.autoDraw!==false)
+{_6.autoDraw=true}}
+this.serverless=_2;this.initDataBlocks=[];this.map("getSerializeableTree",_1);this.serverless=null;var _7=isc.EditContext.serializeInitData(this.initDataBlocks);return _7}
+,isc.A.getSerializeableTree=function isc_EditTree_getSerializeableTree(_1,_2){var _3=_1.type,_4=isc.addProperties({},_1.initData);var _5=isc.ClassFactory.getClass(_3);this.logInfo("node: "+this.echoLeaf(_1)+" with type: "+_3);if(_5&&_5.isA("DataSource")){if(this.initDataBlocks){var _6=this.initDataBlocks.find("ID",_4.ID)||this.initDataBlocks.find("loadID",_4.ID);if(_6&&_6.$schemaId=="DataSource")return}
 if(!this.serverless){_4={_constructor:"DataSource",$schemaId:"DataSource",loadID:_4.ID}}else{var _7=_1.liveObject;_4=_7.getSerializeableFields();_4._constructor=_7.Class;_4.$schemaId="DataSource"}}
-this.convertActions(_1,_4,_5);var _8=this.data.getChildren(_1);if(!_8){if(this.saveNodes)this.saveNodes.add(_4);return}
-this.addChildData(_4,_8);if(_2)return _4;if(this.saveNodes)this.saveNodes.add(_4)}
+this.convertActions(_1,_4,_5);var _8=this.data.getChildren(_1);if(!_8){if(this.initDataBlocks)this.initDataBlocks.add(_4);return}
+this.addChildData(_4,_8);if(_2)return _4;if(this.initDataBlocks)this.initDataBlocks.add(_4)}
 ,isc.A.addChildData=function isc_EditTree_addChildData(_1,_2){var _3=isc.DS.get(_1._constructor);for(var i=0;i<_2.length;i++){var _5=_2[i],_6=_5.initData._constructor,_7=isc.addProperties({},_5.initData),_8=_7.parentProperty||_3.getObjectField(_6),_9=_3.getField(_8);this.logInfo("serializing: child of type: "+_6+" goes in parent field: "+_8,"editing");if((isc.isA.Canvas(_5.liveObject)&&!_5.liveObject._generated)||isc.isA.DataSource(_5.liveObject))
 {_7="ref:"+_7.ID;this.getSerializeableTree(_5)}else{_7=this.getSerializeableTree(_5,true)}
 var _10=_1[_8];if(_9.multiple){if(!_10)_10=_1[_8]=[];_10.add(_7)}else{_1[_8]=_7}}}
@@ -3208,7 +3214,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_DataBinding.js.gz has changed
--- a/isomorphic/system/development/ISC_DeveloperConsole.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_DeveloperConsole.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -198,7 +198,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_DeveloperConsole.js.gz has changed
--- a/isomorphic/system/development/ISC_DocViewer.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_DocViewer.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -391,7 +391,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_DocViewer.js.gz has changed
--- a/isomorphic/system/development/ISC_EBay.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_EBay.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -61,7 +61,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_EBay.js.gz has changed
--- a/isomorphic/system/development/ISC_ExampleViewer.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_ExampleViewer.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -55,7 +55,8 @@
 _2.add({dataSource:_1.dataSource,showSource:_1.showDataSource,canEdit:_4})}
 if(_1.tabs){for(var i=0;i<_1.tabs.length;i++){var _6=isc.addProperties({},_1.tabs[i]);_6.canEdit=_6.canEdit!="false"&&!_1.external&&!_1.iframe;if(_6.url&&_6.url.match(/\.css$/i)&&!_1.external&&!_1.iframe){_6.isCSS=true;_6=this.loadCSS(_6)}
 _2.add(_6)}}
-if(this.waitOnAnimation)this.$49i=true;if(_1.requiresModules){this.loadingModules=true;isc.FileLoader.loadModules(_1.requiresModules,this.getID()+".modulesLoaded()")}
+if(this.waitOnAnimation)this.$49i=true;if(_1.requiresModules&&!isc.FileLoader.moduleIsLoaded(_1.requiresModules))
+{this.loadingModules=true;isc.FileLoader.loadModules(_1.requiresModules,this.getID()+".modulesLoaded()")}
 if(!isc.hasOptionalModule("SCServer")){isc.RPCManager.sendRequest({actionURL:this.rpcURL,clientContext:{exampleFiles:_2},useSimpleHttp:true,params:{noSCServer:true,data:isc.Comm.xmlSerialize("data",{method:"loadFiles",exampleFiles:_2})},showPrompt:true,promptStyle:"cursor",serverOutputAsString:true,callback:this.getID()+".loadExampleFilesCallback(rpcRequest, rpcResponse, isc.eval(data));"})}else{isc.RPCManager.sendRequest({actionURL:this.rpcURL,clientContext:{exampleFiles:_2},data:{method:"loadFiles",exampleFiles:_2},showPrompt:true,promptStyle:"cursor",callback:this.getID()+".loadExampleFilesCallback(rpcRequest, rpcResponse, data);"})}
 if(this.exampleGlobals){isc.Class.destroyGlobals(this.exampleGlobals);delete this.exampleGlobals}
 if(this.isDrawn()||this.autoShow)this.show()}
@@ -198,7 +199,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_ExampleViewer.js.gz has changed
--- a/isomorphic/system/development/ISC_FileBrowser.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_FileBrowser.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -122,7 +122,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_FileBrowser.js.gz has changed
--- a/isomorphic/system/development/ISC_FileLoader.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_FileLoader.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -36,7 +36,7 @@
 var isc = window.isc ? window.isc : {};if(window.isc&&!window.isc.module_FileLoader){isc.module_FileLoader=1;isc._moduleStart=isc._FileLoader_start=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc._moduleEnd&&(!isc.Log||(isc.Log && isc.Log.logIsDebugEnabled('loadTime')))){isc._pTM={ message:'FileLoader load/parse time: ' + (isc._moduleStart-isc._moduleEnd) + 'ms', category:'loadTime'};
 if(isc.Log && isc.Log.logDebug)isc.Log.logDebug(isc._pTM.message,'loadTime')
 else if(isc._preLog)isc._preLog[isc._preLog.length]=isc._pTM
-else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-04-17/LGPL Development Only";isc.versionNumber="SC_SNAPSHOT-2011-04-17";isc.buildDate="2011-04-17";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
+else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-05-05/LGPL Development Only";isc.versionNumber="SC_SNAPSHOT-2011-05-05";isc.buildDate="2011-05-05";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
 return _1};isc.hasOptionalModules=function(_1){if(!_1)return true;_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++)if(!isc.hasOptionalModule(_1[i]))return false;return true};isc.getMissingModules=function(_1){var _2=[];_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++){var _4=_1[i];if(!isc.hasOptionalModule(_4))_2.add(isc.$41r[_4])}
 return _2};isc.hasOptionalModule=function(_1){var v=isc.$41r[_1];if(!v){if(isc.Log)isc.Log.logWarn("isc.hasOptionalModule - unknown module: "+_1);return false}
 return v.present=="true"||v.present.charAt(0)=="$"};isc.getOptionalModule=function(_1){return isc.$41r[_1]};isc.$a=window.isc_useSimpleNames;if(isc.$a==null)isc.$a=true;if(window.OpenAjax){isc.$b=isc.versionNumber.replace(/[a-zA-Z_]+/,".0");OpenAjax.registerLibrary("SmartClient","http://smartclient.com/SmartClient",isc.$b,{namespacedMode:!isc.$a,iscVersion:isc.version,buildDate:isc.buildDate,licenseType:isc.licenseType,licenseCompany:isc.licenseCompany,licenseSerialNumber:isc.licenseSerialNumber});OpenAjax.registerGlobals("SmartClient",["isc"])}
@@ -69,7 +69,8 @@
 var _8=this.$41a.exec(_5);if(!_8){this.logWarn("Couldn't split baseURL '"+_5+"' into basePath and extension - file will not be cached.");continue}
 var _9=_8[1];var _10=_8[2];for(var j=0;j<_2.length;j++){_3[_3.length]=_9+"_"+_2[j]+"."+_10+_7}}
 return _3},$409:function(_1){var _2;if(!_1)return[];if(this.isAString(_1))_1=_1.split(",");var _3=[];for(var i=0;i<_1.length;i++){var _5=_1[i];_3[i]=_5.replace(/\s+/g,"")}
-return _3},$408:function(_1,_2,_3,_4){_1=this.$409(_1);var _5=false,_6;for(var i=0;i<_1.length;i++){var _8=_1[i];if(_4.isModule){if(!_4.cacheOnly){var _9=_8;if(isc.$41r[_9]&&isc.$41r[_9].isFeature)continue;if(_9.indexOf("ISC_")==0)_9=_9.substring(4);if(isc["module_"+_9]){this.logWarn("Suppressed duplicate load of module: "+_9);continue}
+return _3},moduleIsLoaded:function(_1){if(_1==null)return true;if(!isc.isAn.Array(_1))_1=[_1];for(var i=0;i<_1.length;i++){var _3=_1[i];if(_3==null)continue;if(_3.indexOf("ISC_")==0)_3=_3.substring(4);if(isc["module_"+_3]==null)return false}
+return true},$408:function(_1,_2,_3,_4){_1=this.$409(_1);var _5=false,_6;for(var i=0;i<_1.length;i++){var _8=_1[i];if(_4.isModule){if(!_4.cacheOnly){var _9=_8;if(isc.$41r[_9]&&isc.$41r[_9].isFeature)continue;if(this.moduleIsLoaded(_9)){this.logWarn("Suppressed duplicate load of module: "+_9);continue}
 if(isc.$41r[_9]&&isc.$41r[_9].serverOnly)continue}
 if(_8.indexOf("ISC_")!=0&&_8.indexOf("/")==-1)_8="ISC_"+_8;if(_8.indexOf("/")==-1)_8=this.getIsomorphicDir()+this.modulesDir+_8+".js"}
 if(this.disableCaching&&!_4.cacheOnly){_8+=(_8.indexOf("?")!=-1?"&":"?")+"ts="+(new Date().getTime())}
@@ -110,7 +111,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_FileLoader.js.gz has changed
--- a/isomorphic/system/development/ISC_Forms.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Forms.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -153,7 +153,7 @@
 );isc.B._maxIndex=isc.C+20;isc.A=isc.DateChooser;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getSharedDateChooser=function isc_c_DateChooser_getSharedDateChooser(_1){if(!this.$8x){this.$8x=this.create(_1,{_generated:true,autoHide:true,showCancelButton:true});return this.$8x}
 isc.addProperties(this.$8x,_1);return this.$8x}
 );isc.B._maxIndex=isc.C+1;isc.ClassFactory.defineClass("Slider",isc.Canvas);isc.A=isc.Slider;isc.A.VERTICAL_SRC_PREFIX="v";isc.A.HORIZONTAL_SRC_PREFIX="h";isc.A.DOWN="down";isc.A.UP="";isc.A.EVENTNAME="sliderMove";isc.A=isc.Slider.getPrototype();isc.A.title="Set Value";isc.A.length=200;isc.A.vertical=true;isc.A.thumbThickWidth=23;isc.A.thumbThinWidth=17;isc.A.trackWidth=7;isc.A.skinImgDir="images/Slider/";isc.A.thumbSrc="thumb.gif";isc.A.trackSrc="track.gif";isc.A.trackCapSize=6;isc.A.trackImageType=isc.Img.STRETCH;isc.A.showTitle=true;isc.A.showRange=true;isc.A.showValue=true;isc.A.labelWidth=50;isc.A.labelHeight=20;isc.A.labelSpacing=5;isc.A.titleStyle="sliderTitle";isc.A.rangeStyle="sliderRange";isc.A.valueStyle="sliderValue";isc.A.value=1;isc.A.minValue=1;isc.A.maxValue=100;isc.A.roundValues=true;isc.A.roundPrecision=1;isc.A.flipValues=false;isc.A.canFocus=true;isc.A.stepPercent=5;isc.A.animateThumbTime=250;isc.A.animateThumbAcceleration="slowStartandEnd";isc.A.valueChangedOnDrag=true;isc.A.valueChangedOnRelease=true;isc.A.valueChangedOnClick=true;isc.A=isc.Slider.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.hValueLabelWidth=5;isc.B.push(isc.A.initWidget=function isc_Slider_initWidget(){this.Super("initWidget",arguments);if(!(this.minValue<=this.maxValue)){this.logWarn("Slider specified with minValue:"+this.minValue+", greater than maxValue:"+this.maxValue+" - reversing max and min value.");var _1=this.minValue;this.minValue=this.maxValue;this.maxValue=_1}
-this.setUpSize();this.$80();if(this.showTitle)this._titleLabel=this.addChild(this.$54());if(this.showRange){this.$50=this.addChild(this.$51("min"));this.$52=this.addChild(this.$51("max"))}
+if(this.minValue!=null)this.minValue=this.$85d(this.minValue);if(this.maxValue!=null)this.maxValue=this.$85d(this.maxValue);this.setUpSize();this.$80();if(this.showTitle)this._titleLabel=this.addChild(this.$54());if(this.showRange){this.$50=this.addChild(this.$51("min"));this.$52=this.addChild(this.$51("max"))}
 if(this.showValue){this._valueLabel=this._thumb.addPeer(this.$53());this._valueLabel.sendToBack();this.$81()}
 this.setValue(this.value,!(this.animateThumbInit==true))}
 ,isc.A.setUpSize=function isc_Slider_setUpSize(){var _1=this.$pn,_2=this.$po;if(this.vertical){if(_1==null){var _3=Math.max(this.thumbThickWidth,this.trackWidth);if(this.showValue)_3+=this.labelWidth+this.labelSpacing;if(this.showRange)_3+=this.labelWidth+this.labelSpacing;this.logInfo("defaulting width to "+_3+"px");this.setWidth(_3)}
@@ -190,14 +190,15 @@
 if(_1&&this.animateThumb){this.$87=this._thumb.animateMove(_2,this._thumb.getTop(),null,this.animateThumbTime,this.animateThumbAcceleration)}else{this._thumb.setLeft(_2)}
 _3=(this.flipValues?1-_6/ this.$8y:_6/ this.$8y)}
 if(this.maxValue==this.minValue){this.value=this.minValue}else{var _8=_3*(this.maxValue-this.minValue)+this.minValue
-if(this.roundValues)_8=Math.round(_8);else if(this.roundPrecision!=null){var _9=Math.pow(10,this.roundPrecision);_8=(Math.round(_8*_9))/_9}
-this.value=_8}
+_8=this.$85d(_8);this.value=_8}
 this.logDebug("slider value from drag-move:"+this.value);if(this.valueChangedOnDrag||!this.$86){this.valueChanged(this.value)}
 if(this.sliderTarget)isc.EventHandler.handleEvent(this.sliderTarget,isc.Slider.EVENTNAME,this)}
-,isc.A.$81=function isc_Slider__updateValueLabel(){var _1=this._valueLabel;if(_1==null)return;_1.setContents(this.getValue());var _2=this._thumb;if(this.vertical){_1.setTop(parseInt((_2.getTop()+_2.getHeight()/2)-_1.getHeight()/2))}else{if(_1.isDrawn())_1.redraw();var _3=_1.getVisibleWidth(),_4=parseInt((_2.getLeft()+_2.getWidth()/2)-_3/ 2);if(_4+_3>this.getWidth()){_4=this.getWidth()-_3}
+,isc.A.$85d=function isc_Slider__getRoundedValue(_1){if(this.roundValues)_1=Math.round(_1);else if(this.roundPrecision!=null){var _2=Math.pow(10,this.roundPrecision);_1=(Math.round(_1*_2))/_2}
+return _1}
+,isc.A.$81=function isc_Slider__updateValueLabel(){var _1=this._valueLabel;if(_1==null)return;_1.setContents(this.getValue());var _2=this._thumb;if(this.vertical){_1.setTop(parseInt((_2.getTop()+_2.getHeight()/2)-_1.getHeight()/2))}else{if(_1.isDrawn())_1.redraw("sizing label");var _3=_1.getVisibleWidth(),_4=parseInt((_2.getLeft()+_2.getWidth()/2)-_3/ 2);if(_4+_3>this.getWidth()){_4=this.getWidth()-_3}
 if(_4<0)_4=0;_1.setLeft(_4)}}
 ,isc.A.mouseUp=function isc_Slider_mouseUp(){isc.EventHandler.dragOffsetX=isc.EventHandler.dragOffsetY=Math.floor(this.thumbThinWidth/ 2);if(this.valueChangedOnClick)this.$85(true)}
-,isc.A.setValue=function isc_Slider_setValue(_1,_2,_3){var _4,_5;if(!isc.isA.Number(_1))return;_1=Math.max(this.minValue,(Math.min(_1,this.maxValue)));this.value=(this.roundValues?Math.round(_1):_1);if(this.minValue==this.maxValue)_4=1;else _4=(this.value-this.minValue)/(this.maxValue-this.minValue);_5=_4*this.$8y;var _6;if(this.vertical){_6=this._track.getTop()+parseInt(this.flipValues?_5:this.$8y-_5);if(this.animateThumb&&!_2){this.$87=this._thumb.animateMove(this._thumb.getLeft(),_6,null,this.animateThumbTime,this.animateThumbAcceleration)}else{this._thumb.setTop(_6)}}else{_6=this._track.getLeft()+parseInt(this.flipValues?this.$8y-_5:_5);if(this.animateThumb&&!_2){this.$87=this._thumb.animateMove(_6,this._thumb.getTop(),null,this.animateThumbTime,this.animateThumbAcceleration)}else{this._thumb.setLeft(_6)}}
+,isc.A.setValue=function isc_Slider_setValue(_1,_2,_3){var _4,_5;if(!isc.isA.Number(_1))return;_1=Math.max(this.minValue,(Math.min(_1,this.maxValue)));_1=this.$85d(_1);this.value=_1;if(this.minValue==this.maxValue)_4=1;else _4=(this.value-this.minValue)/(this.maxValue-this.minValue);_5=_4*this.$8y;var _6;if(this.vertical){_6=this._track.getTop()+parseInt(this.flipValues?_5:this.$8y-_5);if(this.animateThumb&&!_2){this.$87=this._thumb.animateMove(this._thumb.getLeft(),_6,null,this.animateThumbTime,this.animateThumbAcceleration)}else{this._thumb.setTop(_6)}}else{_6=this._track.getLeft()+parseInt(this.flipValues?this.$8y-_5:_5);if(this.animateThumb&&!_2){this.$87=this._thumb.animateMove(_6,this._thumb.getTop(),null,this.animateThumbTime,this.animateThumbAcceleration)}else{this._thumb.setLeft(_6)}}
 if(!_3)this.valueChanged(this.value);if(this.sliderTarget)isc.EventHandler.handleEvent(this.sliderTarget,isc.Slider.EVENTNAME,this)}
 ,isc.A.getValue=function isc_Slider_getValue(){return this.value}
 ,isc.A.valueChanged=function isc_Slider_valueChanged(_1){}
@@ -213,8 +214,8 @@
 return false}}
 if(this.keyPress){this.convertToMethod("keyPress");return this.keyPress(_1,_2)}}
 ,isc.A.setCanFocus=function isc_Slider_setCanFocus(_1){this.Super("canFocus",arguments);if(this._thumb!=null)this._thumb.setCanFocus(_1);if(this._track!=null)this._track.setCanFocus(_1)}
-,isc.A.setMinValue=function isc_Slider_setMinValue(_1){this.minValue=_1;if(this.$50)this.$50.setContents(_1);this.setValue(this.minValue)}
-,isc.A.setMaxValue=function isc_Slider_setMaxValue(_1){this.maxValue=_1;if(this.$52)this.$52.setContents(_1);this.setValue(this.minValue)}
+,isc.A.setMinValue=function isc_Slider_setMinValue(_1){_1=this.$85d(_1);this.minValue=_1;if(this.$50)this.$50.setContents(_1);this.setValue(this.minValue)}
+,isc.A.setMaxValue=function isc_Slider_setMaxValue(_1){_1=this.$85d(_1);this.maxValue=_1;if(this.$52)this.$52.setContents(_1);this.setValue(this.minValue)}
 ,isc.A.setNumValues=function isc_Slider_setNumValues(_1){this.numValues=_1;this.$8z=this.$8y/(this.numValues-1);this.setValue(this.minValue)}
 ,isc.A.setTitle=function isc_Slider_setTitle(_1){this._titleLabel.setContents(_1)}
 ,isc.A.setLength=function isc_Slider_setLength(_1){this.length=_1;this.setUpSize()}
@@ -238,7 +239,7 @@
 ,isc.A.setRoundPrecision=function isc_Slider_setRoundPrecision(_1){this.roundPrecision=_1;this.$74i()}
 ,isc.A.setFlipValues=function isc_Slider_setFlipValues(_1){this.flipValues=_1;this.$74i()}
 ,isc.A.setStepPercent=function isc_Slider_setStepPercent(_1){this.stepPercent=_1;this.$74i()}
-);isc.B._maxIndex=isc.C+44;isc.Slider.registerStringMethods({valueChanged:"value"})
+);isc.B._maxIndex=isc.C+45;isc.Slider.registerStringMethods({valueChanged:"value"})
 if(isc.ListGrid){isc.ClassFactory.defineClass("ScrollingMenu","ListGrid");isc.A=isc.ScrollingMenu.getPrototype();isc.A.useBackMask=true;isc.A.canFocus=true;isc.A.showHeader=false;isc.A.showEdges=false;isc.A.autoDraw=false;isc.A.className="scrollingMenu";isc.A.bodyStyleName="scrollingMenuBody";isc.A.selectionType="single";isc.A.showRollOver=false;isc.A.leaveScrollbarGap=false;isc.A.generateClickOnSpace=false;isc.A.generateDoubleClickOnEnter=false;isc.A.generateClickOnEnter=true;isc.A.showModal=true;isc.A.arrowKeyAction="focus";isc.A.enableSelectOnRowOver=true;isc.A.filterOnKeypress=true;isc.ScrollingMenu.changeDefaults("filterEditorDefaults",{backgroundColor:"white",editorKeyPress:function(_1,_2,_3){if(_2=="Arrow_Down"){this.sourceWidget.$318(1);return false}
 if(_2=="Arrow_Up"){this.sourceWidget.$318(-1);return false}
 if(_2=="Enter"){this.sourceWidget.$240();return}
@@ -257,11 +258,13 @@
 {this.selection.selectItem(0)}
 return _1}
 );isc.B._maxIndex=isc.C+10}
-isc.ClassFactory.defineClass("DynamicForm","Canvas","DataBoundComponent");isc.addGlobal("FormLayout",isc.DynamicForm);isc.A=isc.DynamicForm;isc.A.GET="GET";isc.A.POST="POST";isc.A.NORMAL="normal";isc.A.MULTIPART="multipart";isc.A.NORMAL_ENCODING="application/x-www-form-urlencoded";isc.A.MULTIPART_ENCODING="multipart/form-data";isc.A.$89="$89";isc.A.$9a="$9a";isc.A.$9b="$9b";isc.A.$9c="$9d";isc.A.$9e="$9f";isc.A.$9g="$9g";isc.A=isc.DynamicForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.flattenItems=false;isc.A.numCols=2;isc.A.fixedColWidths=false;isc.A.fixedRowHeights=false;isc.A.colWidths=null;isc.A.minColWidth=20;isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.cellBorder=0;isc.A.defaultRowHeight=22;isc.A.sectionVisibilityMode="multiple";isc.A.allowContentAndChildren=true;isc.A.separateContentInsertion=true;isc.A.$r9=true;isc.A.fieldIdProperty="name";isc.A.titleField="title";isc.A.showDetailFields=true;isc.A.longTextEditorThreshold=255;isc.A.longTextEditorType="textArea";isc.A.titlePrefix="";isc.A.rightTitlePrefix=":&nbsp;";isc.A.titleSuffix="&nbsp;:";isc.A.rightTitleSuffix="";isc.A.titleWidth=100;isc.A.showInlineErrors=true;isc.A.showErrorIcons=true;isc.A.showErrorText=false;isc.A.showErrorStyle=true;isc.A.errorOrientation="left";isc.A.errorItemDefaults={type:"blurb",wrap:true,showIf:function(){return!this.form.showInlineErrors&&this.form.hasErrors()},defaultDynamicValue:function(_1,_2,_3){return _2.getErrorsHTML(_2.getErrors())}};isc.A.errorItemCellStyle="formCellError";isc.A.errorsPreamble="The following errors were found.";isc.A.hiliteRequiredFields=true;isc.A.requiredTitlePrefix="<b>";isc.A.requiredRightTitlePrefix="<b>:&nbsp;";isc.A.requiredTitleSuffix="&nbsp;:</b>";isc.A.requiredRightTitleSuffix="</b>";isc.A.canHover=false;isc.A.itemHoverDelay=500;isc.A.itemHoverStyle="formHover";isc.A.overflow=isc.Canvas.VISIBLE;isc.A.defaultHeight=20;isc.A.validateOnChange=false;isc.A.implicitSaveDelay=2000;isc.A.synchronousValidation=false;isc.A.autoFocus=false;isc.A.selectOnFocus=false;isc.A.canFocus=true;isc.A._useNativeTabIndex=false;isc.A.$kn=false;isc.A.uniqueMatch=true;isc.A.browserSpellCheck=true;isc.A.cancelParamName="org.apache.struts.taglib.html.CANCEL";isc.A.cancelParamValue="cancel";isc.A.action="#";isc.A.method=isc.DynamicForm.POST;isc.A.encoding=isc.DynamicForm.NORMAL_ENCODING;isc.A.writeFormTag=true;isc.A.autoSendTargetFieldName="__target__";isc.A.useNativeSelectItems=false;isc.A.hideUsingDisplayNone=isc.Browser.isMoz&&isc.Browser.isMac;isc.A.operator="and";isc.A.nestedEditorType="NestedEditorItem";isc.A.nestedListEditorType="NestedListEditorItem";isc.A.canDropItems=false;isc.A.canAddColumns=true;isc.B.push(isc.A.hasInherentHeight=function isc_DynamicForm_hasInherentHeight(){if(this.inherentHeight!=null)return this.inherentHeight;return(this.overflow==isc.Canvas.VISIBLE||this.overflow==isc.Canvas.CLIP_H)}
-);isc.B._maxIndex=isc.C+1;isc.A=isc.DynamicForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$9i="upload";isc.A.$9j="mutex";isc.A.$9k=["name","editorType","readOnlyEditorType","type","valueMap","defaultValue","showTitle","left","top","width","height"];isc.A.dataArity="single";isc.A.$refPropName="__ref";isc.A.$70l="/";isc.A.$9l="form";isc.A.$9m="$9n";isc.A.$9o="$9p";isc.A.$9q="absolute";isc.A.$9r="showIf";isc.A.$9s="item,value,form,values";isc.A.$9t="</FORM>";isc.A.$9u="tablePolicy";isc.A.$9v="<COL WIDTH=";isc.A.$9w=(isc.Browser.isIE?"<TR STYLE='position:absolute'>":"<TR>");isc.A.$9y=(isc.Browser.isSafari?"</div></TD>":"</TD>");isc.A.$5u="<TD>";isc.A.$5v="</TD>";isc.A.$5s="<TR>";isc.A.$5t="</TR>";isc.A.$9z="<br>";isc.A.$90="</TABLE></FORM>";isc.A.$91=["<INPUT TYPE=HIDDEN NAME='",,"' VALUE='",,"'>"];isc.A.titleHeight=15;isc.A.$92="height:";isc.A.$93="width:";isc.A.$11j="max-width:";isc.A.$94="max-height:";isc.A.$92="height:";isc.A.$95="<NOBR>";isc.A.$96="</td></tr></TABLE>";isc.A.$97="</DIV>";isc.A.$98="</TD>";isc.A.$99=["<TD ",," CLASS='",,"' ALIGN='",,"' VALIGN='",,"'",,,">"];isc.A.$10a=["<DIV style='overflow:hidden;text-overflow:ellipsis;",,,,"'>"];isc.A.$63z="$428";isc.A.$10c=["<FORM ","ID","=",,," METHOD=",," ACTION='",,"' ENCTYPE=",,,,," ONSUBMIT='return ",,".$10d()' ONRESET='",,".resetValues(); return false;'",(isc.Browser.isSafari?" STYLE='display:inline;'":null)," STYLE='margin-bottom:0px;'>"];isc.A.$10e=" STYLE='position:absolute;left:0px;top:0px;'";isc.A.$10f=" TARGET='";isc.A.$10g=["<TABLE ID='",,"' ","WIDTH=",," CELLSPACING=",," CELLPADDING=",," BORDER=",,(isc.Browser.isMoz?"><TBODY>":">")];isc.A.$10h="table";isc.A.formSubmitFailedWarning="Form was unable to be submitted. The most likely cause for this is an "+"invalid value in an upload field.";isc.A.$10i="requiredIf";isc.A.$842="required";isc.A.$10j="Enter";isc.B.push(isc.A.initWidget=function isc_DynamicForm_initWidget(){if(isc.$cv)arguments.$cw=this;this.Super("initWidget",arguments);if(this.showComplexFieldsRecursively)this.showComplexFields=true;if(this.fields&&this.items==null)this.items=this.fields;if(this.defaultItems!=null&&this.items==null){this.items=[];for(var i=0;i<this.defaultItems.length;i++){this.items[i]=isc.addProperties({},this.defaultItems[i])}}
+isc.ClassFactory.defineClass("DynamicForm","Canvas","DataBoundComponent");isc.addGlobal("FormLayout",isc.DynamicForm);isc.A=isc.DynamicForm;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.GET="GET";isc.A.POST="POST";isc.A.NORMAL="normal";isc.A.MULTIPART="multipart";isc.A.NORMAL_ENCODING="application/x-www-form-urlencoded";isc.A.MULTIPART_ENCODING="multipart/form-data";isc.A.$89="$89";isc.A.$9a="$9a";isc.A.$9b="$9b";isc.A.$9c="$9d";isc.A.$9e="$9f";isc.A.$9g="$9g";isc.B.push(isc.A.buildOperatorIndex=function isc_c_DynamicForm_buildOperatorIndex(){var _1=isc.getValues(isc.DataSource.getSearchOperators());_1=_1.sortByProperties(["symbol"],[false],[function(_4,_5,_6){var _2=_4[_5],_3=isc.isA.String(_2)?_2.length:0;return _3}]);this.$85l=_1.makeIndex("symbol",true)}
+,isc.A.getOperatorIndex=function isc_c_DynamicForm_getOperatorIndex(){return this.$85l}
+);isc.B._maxIndex=isc.C+2;isc.A=isc.DynamicForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.flattenItems=false;isc.A.numCols=2;isc.A.fixedColWidths=false;isc.A.fixedRowHeights=false;isc.A.colWidths=null;isc.A.minColWidth=20;isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.cellBorder=0;isc.A.defaultRowHeight=22;isc.A.sectionVisibilityMode="multiple";isc.A.allowContentAndChildren=true;isc.A.separateContentInsertion=true;isc.A.$r9=true;isc.A.fieldIdProperty="name";isc.A.titleField="title";isc.A.showDetailFields=true;isc.A.longTextEditorThreshold=255;isc.A.longTextEditorType="textArea";isc.A.titlePrefix="";isc.A.rightTitlePrefix=":&nbsp;";isc.A.titleSuffix="&nbsp;:";isc.A.rightTitleSuffix="";isc.A.titleWidth=100;isc.A.showInlineErrors=true;isc.A.showErrorIcons=true;isc.A.showErrorText=false;isc.A.showErrorStyle=true;isc.A.errorOrientation="left";isc.A.errorItemDefaults={type:"blurb",wrap:true,showIf:function(){return!this.form.showInlineErrors&&this.form.hasErrors()},defaultDynamicValue:function(_1,_2,_3){return _2.getErrorsHTML(_2.getErrors())}};isc.A.errorItemCellStyle="formCellError";isc.A.errorsPreamble="The following errors were found.";isc.A.hiliteRequiredFields=true;isc.A.requiredTitlePrefix="<b>";isc.A.requiredRightTitlePrefix="<b>:&nbsp;";isc.A.requiredTitleSuffix="&nbsp;:</b>";isc.A.requiredRightTitleSuffix="</b>";isc.A.canHover=false;isc.A.itemHoverDelay=500;isc.A.itemHoverStyle="formHover";isc.A.overflow=isc.Canvas.VISIBLE;isc.A.defaultHeight=20;isc.A.validateOnChange=false;isc.A.implicitSaveDelay=2000;isc.A.synchronousValidation=false;isc.A.autoFocus=false;isc.A.selectOnFocus=false;isc.A.canFocus=true;isc.A._useNativeTabIndex=false;isc.A.$kn=false;isc.A.uniqueMatch=true;isc.A.browserSpellCheck=true;isc.A.cancelParamName="org.apache.struts.taglib.html.CANCEL";isc.A.cancelParamValue="cancel";isc.A.action="#";isc.A.method=isc.DynamicForm.POST;isc.A.encoding=isc.DynamicForm.NORMAL_ENCODING;isc.A.writeFormTag=true;isc.A.autoSendTargetFieldName="__target__";isc.A.useNativeSelectItems=false;isc.A.hideUsingDisplayNone=isc.Browser.isMoz&&isc.Browser.isMac;isc.A.operator="and";isc.A.nestedEditorType="NestedEditorItem";isc.A.nestedListEditorType="NestedListEditorItem";isc.A.canDropItems=false;isc.A.canAddColumns=true;isc.B.push(isc.A.hasInherentHeight=function isc_DynamicForm_hasInherentHeight(){if(this.inherentHeight!=null)return this.inherentHeight;return(this.overflow==isc.Canvas.VISIBLE||this.overflow==isc.Canvas.CLIP_H)}
+);isc.B._maxIndex=isc.C+1;isc.A=isc.DynamicForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$9i="upload";isc.A.$9j="mutex";isc.A.$9k=["name","editorType","readOnlyEditorType","type","valueMap","defaultValue","showTitle","left","top","width","height"];isc.A.dataArity="single";isc.A.$refPropName="__ref";isc.A.$70l="/";isc.A.$9l="form";isc.A.$9m="$9n";isc.A.$9o="$9p";isc.A.$9q="absolute";isc.A.$9r="showIf";isc.A.$9s="item,value,form,values";isc.A.$9t="</FORM>";isc.A.$9u="tablePolicy";isc.A.$9v="<COL WIDTH=";isc.A.$9w=(isc.Browser.isIE?"<TR STYLE='position:absolute'>":"<TR>");isc.A.$9y=(isc.Browser.isSafari?"</div></TD>":"</TD>");isc.A.$5u="<TD>";isc.A.$5v="</TD>";isc.A.$5s="<TR>";isc.A.$5t="</TR>";isc.A.$9z="<br>";isc.A.$90="</TABLE></FORM>";isc.A.$91=["<INPUT TYPE=HIDDEN NAME='",,"' VALUE='",,"'>"];isc.A.titleHeight=15;isc.A.$92="height:";isc.A.$93="width:";isc.A.$11j="max-width:";isc.A.$94="max-height:";isc.A.$92="height:";isc.A.$95="<NOBR>";isc.A.$96="</td></tr></TABLE>";isc.A.$97="</DIV>";isc.A.$98="</TD>";isc.A.$99=["<TD ",," CLASS='",,"' ALIGN='",,"' VALIGN='",,"'",,,">"];isc.A.$10a=["<DIV style='overflow:hidden;text-overflow:ellipsis;",,,,"'>"];isc.A.$63z="$428";isc.A.$10c=["<FORM ","ID","=",,," METHOD=",," ACTION='",,"' ENCTYPE=",,,,," ONSUBMIT='return ",,".$10d()' ONRESET='",,".resetValues(); return false;'",(isc.Browser.isSafari?" STYLE='display:inline;'":null)," STYLE='margin-bottom:0px;'>"];isc.A.$10e=" STYLE='position:absolute;left:0px;top:0px;'";isc.A.$10f=" TARGET='";isc.A.$10g=["<TABLE ID='",,"' ","WIDTH=",," CELLSPACING=",," CELLPADDING=",," BORDER=",,(isc.Browser.isMoz?"><TBODY>":">")];isc.A.$10h="table";isc.A.formSubmitFailedWarning="Form was unable to be submitted. The most likely cause for this is an "+"invalid value in an upload field.";isc.A.$10i="requiredIf";isc.A.$842="required";isc.A.$10j="Enter";isc.B.push(isc.A.initWidget=function isc_DynamicForm_initWidget(){if(isc.$cv)arguments.$cw=this;if(!isc.DynamicForm.$85l)isc.DynamicForm.buildOperatorIndex();this.setColWidths(this.colWidths);this.Super("initWidget",arguments);if(this.showComplexFieldsRecursively)this.showComplexFields=true;if(this.fields&&this.items==null)this.items=this.fields;if(this.defaultItems!=null&&this.items==null){this.items=[];for(var i=0;i<this.defaultItems.length;i++){this.items[i]=isc.addProperties({},this.defaultItems[i])}}
 if(this.values==null)this.values={};if(this.action!=isc.DynamicForm.getPrototype().action&&this.action!=null&&!isc.isA.emptyString(this.action))
 {this.setAction(this.action)}
-if(!this.dataSource){var _2=this.items||[];for(var i=0;i<_2.length;i++){if(this.dataPath||_2[i].dataPath){this.$834=isc.shallowClone(_2);break}}}
+if(!this.dataSource){var _2=this.items||[];for(var i=0;i<_2.length;i++){if(_2[i]==null)continue;if(this.dataPath||_2[i].dataPath){this.$834=isc.shallowClone(_2);break}}}
 this.setItems(this.items?this.items:[],true);if(this.isDisabled()){this.setDisabled(true)}
 this.setErrors(this.errors?this.errors:{});this.setValues(this.values,true);if(this.selectionComponent!=null)this.setSelectionComponent(this.selectionComponent,true);if(isc.isA.String(this.valuesManager))this.valuesManager=window[this.valuesManager]}
 ,isc.A.$10k=function isc_DynamicForm__destroyItems(_1){if(!_1)return;if(!isc.isA.FormItem(_1[0]))return;_1.map("destroy")}
@@ -373,9 +376,9 @@
 ,isc.A.getValues=function isc_DynamicForm_getValues(){this.updateFocusItemValue();return this.values}
 ,isc.A.updateFocusItemValue=function isc_DynamicForm_updateFocusItemValue(){var _1=this.getFocusSubItem();if(!this.$10u&&_1!=null&&_1.$10v()){_1.updateValue()}}
 ,isc.A.getData=function isc_DynamicForm_getData(){return this.getValues()}
-,isc.A.getValuesAsCriteria=function isc_DynamicForm_getValuesAsCriteria(_1,_2,_3){if(_1==null){_1=(this.operator!="and")||this.getItems().map("hasAdvancedCriteria").contains(true)||(this.$76u!=null)}
+,isc.A.getValuesAsCriteria=function isc_DynamicForm_getValuesAsCriteria(_1,_2,_3){if(_1==null){_1=(this.operator!="and")||this.getItems().map("hasAdvancedCriteria").contains(true)||this.allowExpressions||(this.$76u!=null)}
 if(!_1){var _4=this.$76v();if(_3)return _4;return isc.DataSource.filterCriteriaForFormValues(_4)}
-var _5=this.$76u?isc.clone(this.$76u):{operator:this.operator,_constructor:"AdvancedCriteria",criteria:[]};var _6=this.$76v(true,_2);_5.criteria.addList(_6);return isc.DS.checkEmptyCriteria(_5)||{}}
+var _5=this.$76u?isc.clone(this.$76u):{operator:this.operator,_constructor:"AdvancedCriteria",criteria:[]};var _6=this.$76v(true,_2);_6.removeEmpty();if(_6&&_6.length>0)_5.criteria.addList(_6);return isc.DS.checkEmptyCriteria(_5)||{}}
 ,isc.A.$76v=function isc_DynamicForm__getMappedCriteriaValues(_1,_2){var _3=isc.addProperties({},this.getValues()),_4={},_5=[];var _6=this.getFields();for(var i=0;i<_6.length;i++){if(!_6[i].shouldSaveValue)continue;var _8=_6[i],_9=_6[i].getFieldName(),_10=_6[i].getCriteriaFieldName();delete _3[_9];if(!_1){if(_10!=null){_4[_10]=_6[i].getCriteriaValue()}}else{var _11=_8.getCriterion(_2);if(_11!=null)_5.add(_11)}}
 if(!_1){return isc.addProperties(_3,_4)}else{for(var _12 in _3){if(_5.find("fieldName",_12))continue;if(_3[_12]==null)continue;_5.add({operator:isc.DataSource.getCriteriaOperator(_3[_12],_2),fieldName:_12,value:_3[_12]})}
 return _5}}
@@ -472,6 +475,10 @@
 if(_15!=null){_14=false;_12=_15}
 if(_14||(_16==null&&_5&&_11)){var _19;if(!_3)_8.clearValue();else if(_3&&_11&&_8._value!==_19){_8.saveValue(_8._value,true)}}else{if(_16!=null){_8.setCriterion(_16)}else{_8.setValue(_12,true)}}}}
 ,isc.A.$11e=function isc_DynamicForm__absPos(){return this.itemLayout==this.$9q}
+,isc.A.setColWidths=function isc_DynamicForm_setColWidths(_1){if(_1==null)return;if(isc.isA.String(_1)){var _2=_1.split(/[, ]+/);if(_2==null||_2.length==0){this.logWarn("ignoring invalid colWidths string: "+_1);if(_1==this.colWidths)this.colWidths=null;return}
+_1=_2}else if(isc.isAn.Array(_1)&&_1.length==1&&isc.isA.String(_1[0]))
+{var _2=_1[0].split(/[, ]+/);if(_2!=null||_2.length>1){_1=_2}}
+this.colWidths=_1;if(this.isDrawn())this.markForRedraw()}
 ,isc.A.getInnerHTML=function isc_DynamicForm_getInnerHTML(){if(this.autoDupMethods)this.duplicateMethod("getInnerHTML");var _1=isc.StringBuffer.create();if(this.writeFormTag&&!this.isPrinting)_1.append(this.getFormTagStartHTML());var _2=this.values,_3=this.items;var _4=false;for(var _5=0;_5<_3.length;_5++){var _6=_3[_5],_7=_6.visible;if(_6.showIf){isc.Func.replaceWithMethod(_6,this.$9r,this.$9s);var _8=_6.getValue();_7=(_6.showIf(_6,_8,this,_2)==true)}
 if(_7&&this.isPrinting){if(_6.shouldPrint!=null){_7=_6.shouldPrint}else if(_7&&this.currentPrintProperties.omitControls){var _9=this.currentPrintProperties.omitControls;for(var i=0;i<_9.length;i++){var _11=_9[i];if(isc.isA[_11]&&isc.isA[_11](_6)){_7=false}}}}
 if(_7!=_6.visible){_6.visible=_7;if(!_6.alwaysTakeSpace)_4=true}}
@@ -622,12 +629,12 @@
 return _6}
 ,isc.A.focusAtEnd=function isc_DynamicForm_focusAtEnd(_1){if(!this.items)return;var _2,_3,_4=this.items;for(var i=0;i<_4.length;i++){var _6=_4[i],_7=_6.getGlobalTabIndex();if(_7<0||!this.$11u(_6,true))continue;if((_3==null)||(_1&&_7<_3)||(!_1&&_7>=_3))
 {_2=_6;_3=_7}}
-if(_2&&this.$11u(_2,true))this.focusInItem(_2);else{var _8,_9=isc.EH.clickMaskRegistry;if(_9){for(var i=_9.length-1;i>=0;i--){if(isc.EH.isHardMask(_9[i])){_8=_9[i];break}}}
-this.$kf(_1,_8,true)}}
+if(_2&&this.$11u(_2,true))this.focusInItem(_2,!!_1);else{var _8,_9=isc.EH.clickMaskRegistry;if(_9){for(var i=_9.length-1;i>=0;i--){if(isc.EH.isHardMask(_9[i])){_8=_9[i];break}}}
+this.$kf(_1,_8)}}
 ,isc.A.$11u=function isc_DynamicForm__canFocusInItem(_1,_2){if(isc.isA.String(_1))_1=this.getItem(_1);return _1&&_1.$kk()&&_1.isDrawn()&&_1.isVisible()&&!_1.isDisabled()&&(!_2||_1.tabIndex!=-1)}
-,isc.A.focusInItem=function isc_DynamicForm_focusInItem(_1){if(_1!=null){var _2=this.getItem(_1)}else{var _2=this.getFocusSubItem()}
-if(!_2){if(_1!=null)this.logWarn("couldn't find focus item: "+_1);return}
-if(_2.$kk()){_2.focusInItem();this.setFocusItem(_2);if(this.$10u){var _3=this;isc.Page.setEvent("idle",function(){if(!_3.destroyed)_3.focusInItem()},isc.Page.FIRE_ONCE)}}else{this.logWarn("focusInItem: item cannot accept focus: "+_2)}}
+,isc.A.focusInItem=function isc_DynamicForm_focusInItem(_1,_2){if(_1!=null){var _3=this.getItem(_1)}else{var _3=this.getFocusSubItem()}
+if(!_3){if(_1!=null)this.logWarn("couldn't find focus item: "+_1);return}
+if(_3.$kk()){_3.focusInItem(_2);this.setFocusItem(_3);if(this.$10u){var _4=this;isc.Page.setEvent("idle",function(){if(!_4.destroyed)_4.focusInItem()},isc.Page.FIRE_ONCE)}}else{this.logWarn("focusInItem: item cannot accept focus: "+_3)}}
 ,isc.A.clearFocusItem=function isc_DynamicForm_clearFocusItem(){delete this.$10n}
 ,isc.A.blurFocusItem=function isc_DynamicForm_blurFocusItem(){var _1=this.getFocusSubItem();if(_1!=null){this.$11r(_1);this.clearFocusItem()}}
 ,isc.A.$11r=function isc_DynamicForm__blurItem(_1){if(_1!=null)_1.blurItem()}
@@ -673,16 +680,14 @@
 ,isc.A.elementChanged=function isc_DynamicForm_elementChanged(_1){var _2=this.bubbleItemHandler(_1,"elementChanged",_1);return(_2!=false)}
 ,isc.A.handleClick=function isc_DynamicForm_handleClick(_1,_2){var _3=this.$ne(_1);if(this.editingOn){if(!_3||!_3.item||(!_3.inactiveContext&&!_3.overTitle&&!_3.overIcon&&!_3.overElement&&!_3.overTextBox&&!_3.overControlTable)){var _4=false;if(_3&&_3.item&&_3.item.isA("SpacerItem")){_4=true}
 this.logWarn("No item clicked upon, passing the click to the DF","EventHandler");if(!_4)return this.Super("handleClick",arguments)}}
-if(_3&&_3.item){var _5=_3.item;if(_3.inactiveContext){this.logInfo("Bubbling inactive editor event for "+_5.ID,"EventHandler");return this.bubbleInactiveEditorEvent("click",_5,_3)}else{if(_3.overTitle){this.logInfo("Bubbling handleTitleClick event for "+_5.ID,"EventHandler");return this.bubbleItemHandler(_5,"handleTitleClick",_5)}else{var _6=(_3.overElement||_3.overTextBox||_3.overControlTable);_6=_6||_5.isA("SpacerItem");if(_3.overIcon&&(_5.form==this)){if(_5.$116(_3.overIcon)==false)
-return false;var _7=_5.getIcon(_3.overIcon);if(_7&&_7.writeIntoItem)
-_6=true}
-if(_6)this.logInfo("Bubbling handleClick event for "+_5.ID,"EventHandler");if(_6&&this.bubbleItemHandler(_5,"handleClick",_5)==false){return false}
-if(_6)this.logInfo("Bubbling handleCellClick event for "+_5.ID,"EventHandler");return this.bubbleItemHandler(_5,"handleCellClick",_5)}}}
-return this.Super("handleClick",arguments)}
-,isc.A.handleDoubleClick=function isc_DynamicForm_handleDoubleClick(_1,_2){var _3=this.$ne(_1);if(_3&&_3.item){var _4=_3.item;if(_3.inactiveContext){return this.bubbleInactiveEditorEvent(_4,"doubleClick",_3)}else if(_3.overTitle){return this.bubbleItemHandler(_4,"handleTitleDoubleClick",_4)}else{var _5=(_3.overElement||_3.overTextBox||_3.overControlTable);if(_3.overIcon){if(_4.$116(_3.overIcon)==false)return false;var _6=_4.getIcon(_3.overIcon);if(_6&&_6.writeIntoItem)_5=true}
-if(_5&&this.bubbleItemHandler(_4,"handleDoubleClick",_4)==false){return false}
-return this.bubbleItemHandler(_4,"handleCellDoubleClick",_4)}}
-return this.Super("handleDoubleClick",arguments)}
+var _5;if(_3&&_3.item){var _6=_3.item;if(_3.inactiveContext){this.logInfo("Bubbling inactive editor event for "+_6.ID,"EventHandler");_5=this.bubbleInactiveEditorEvent("click",_6,_3)}else{if(_3.overTitle){this.logInfo("Bubbling handleTitleClick event for "+_6.ID,"EventHandler");_5=this.bubbleItemHandler(_6,"handleTitleClick",_6)}else{var _7=(_3.overElement||_3.overTextBox||_3.overControlTable);_7=_7||_6.isA("SpacerItem");if(_3.overIcon&&(_6.form==this)){if(_6.$116(_3.overIcon)==false)
+return false;var _8=_6.getIcon(_3.overIcon);if(_8&&_8.writeIntoItem)
+_7=true}
+if(_7)this.logInfo("Bubbling handleClick event for "+_6.ID,"EventHandler");if(_7&&this.bubbleItemHandler(_6,"handleClick",_6)==false){_5=false}else{if(_7)this.logInfo("Bubbling handleCellClick event for "+_6.ID,"EventHandler");_5=this.bubbleItemHandler(_6,"handleCellClick",_6)}}}}
+if(_5==false||_5==isc.EH.STOP_BUBBLING)return _5;return this.Super("handleClick",arguments)}
+,isc.A.handleDoubleClick=function isc_DynamicForm_handleDoubleClick(_1,_2){var _3=this.$ne(_1);var _4;if(_3&&_3.item){var _5=_3.item;if(_3.inactiveContext){_4=this.bubbleInactiveEditorEvent(_5,"doubleClick",_3)}else if(_3.overTitle){_4=this.bubbleItemHandler(_5,"handleTitleDoubleClick",_5)}else{var _6=(_3.overElement||_3.overTextBox||_3.overControlTable);if(_3.overIcon){if(_5.$116(_3.overIcon)==false)return false;var _7=_5.getIcon(_3.overIcon);if(_7&&_7.writeIntoItem)_6=true}
+if(_6&&this.bubbleItemHandler(_5,"handleDoubleClick",_5)==false){_4=false}else{_4=this.bubbleItemHandler(_5,"handleCellDoubleClick",_5)}}}
+if(_4==false||_4==isc.EH.STOP_BUBBLING)return _4;return this.Super("handleDoubleClick",arguments)}
 ,isc.A.elementFocus=function isc_DynamicForm_elementFocus(_1,_2){if(!this.hasFocus)isc.EventHandler.focusInCanvas(this);var _3=this.getItemById(_2);this.setFocusItem(_3);var _4=true,_5=false;if(this.$11w!=null){if(this.$11x!=_3){delete this.$11w;delete this.$11x}else{_5=true;this.$11w-=1;if(this.$11w<0){delete this.$11w;delete this.$11x}}}
 _4=this.bubbleItemHandler(_2,"elementFocus",_5);return(_4!=false)}
 ,isc.A.elementBlur=function isc_DynamicForm_elementBlur(_1,_2){if(!isc.isA.FormItem(this.getItemById(_2)))return;var _3=true;if(this.$11v==null)_3=this.bubbleItemHandler(_2,"elementBlur");else{this.$11v-=1;if(this.$11v<0)delete this.$11v}
@@ -715,10 +720,10 @@
 if(_2=="T"){return this.getItemIndexAtTableLocation(_3.top-(_3.top==0?0:1),_3.left)}
 if(_2=="B"){var _5=_3.top+_3.height-1;var _6=this.getItemIndexAtTableLocation(_5+1,_3.left);if(_6==null){_6=this.items.length}
 return _6}}
-,isc.A.getItemIndexAtTableLocation=function isc_DynamicForm_getItemIndexAtTableLocation(_1,_2){var _3=this.items.$8j;if(!_3[_1])return;return _3[_1][_2]}
+);isc.evalBoundary;isc.B.push(isc.A.getItemIndexAtTableLocation=function isc_DynamicForm_getItemIndexAtTableLocation(_1,_2){var _3=this.items.$8j;if(!_3[_1])return;return _3[_1][_2]}
 ,isc.A.getItemAtPageOffset=function isc_DynamicForm_getItemAtPageOffset(_1,_2){this.items.$69e=this.getColumnWidths();var _3=this.items.$8j,_4=this.items.$69e,_5=this.items.$8s;var _6=this.inWhichPosition(_4,_1-this.getPageLeft()),_7=this.inWhichPosition(_5,_2-this.getPageTop());_6=_6==-1?0:_6==-2?_4.length:_6;_7=_7==-1?0:_7==-2?_5.length:_7;if(!_3[_7])return null;var _8=_3[_7][_6],_9=this.getItem(_8);if(_9!=null){_9.$69f=_7;_9.$69g=_6;_9.$69d=_8}
 return _9}
-);isc.evalBoundary;isc.B.push(isc.A.getNearestItem=function isc_DynamicForm_getNearestItem(_1,_2){var _3=9999999999,_4;this.logDebug("Computing nearest item to ("+_1+","+_2+")","formItemDragDrop");for(var i=0;i<this.items.length;i++){var _6=this.items[i];var _7=_6.getPageRect(true),_8=_7[0],_9=_7[1],_10=_7[2],_11=_7[3],_12=0,_13=0;if(_1>=_8&&_1<=_8+_10&&_2>=_9&&_2<=_9+_11)
+,isc.A.getNearestItem=function isc_DynamicForm_getNearestItem(_1,_2){var _3=9999999999,_4;this.logDebug("Computing nearest item to ("+_1+","+_2+")","formItemDragDrop");for(var i=0;i<this.items.length;i++){var _6=this.items[i];var _7=_6.getPageRect(true),_8=_7[0],_9=_7[1],_10=_7[2],_11=_7[3],_12=0,_13=0;if(_1>=_8&&_1<=_8+_10&&_2>=_9&&_2<=_9+_11)
 {return _6}
 if(_1>_8){if(_1>_8+_10){_12=_1-(_8+_10)}}else{_12=_8-_1}
 if(_2>_9){if(_2>_9+_11){_13=_2-(_9+_11)}}else{_13=_9-_2}
@@ -747,7 +752,7 @@
 ,isc.A.getSelectionChain=function isc_DynamicForm_getSelectionChain(){if(!this.selectionComponent)return[];var _1=[];var _2=this;while(_2.selectionComponent){_1.add(_2.selectionComponent);_2=_2.selectionComponent}
 var _3=[];for(var i=_1.length-1;i>=0;i--){_3.add(_1[i].getRecordIndex(_1[i].getSelectedRecord()))}
 return _3}
-);isc.B._maxIndex=isc.C+227;isc.A=isc.DynamicForm;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.defaultFieldType="text";isc.A.$12a="link";isc.A.$gx="text";isc.A.$12b="select";isc.A.$12c="checkbox";isc.A.$12d="staticText";isc.A.$g2="boolean";isc.A.$12e="binary";isc.A.$12f="blob";isc.A.$52w="multifile";isc.A.$12g="multiupload";isc.A.$9i="upload";isc.A.$52x="file";isc.A.$51x="base64Binary";isc.A.$12h="enum";isc.A.$12i="CycleItem";isc.A.$12j="selectOther";isc.A.$12k="relation";isc.A.$67f="NestedEditorItem";isc.A.$67g="NestedListEditorItem";isc.A.$677="imageFile";isc.A.$678="ViewFileItem";isc.A.$77j="section";isc.A.$77k="SectionItem";isc.A.$77l="button";isc.A.$77m="ButtonItem";isc.A.$450="id";isc.A.$refPropName="__ref";isc.B.push(isc.A.getEditorType=function isc_c_DynamicForm_getEditorType(_1,_2){if(_1._constructor==isc.FormItem.Class)_1._constructor=null;var _3=_2.getDataSource();var _4=this.canEditField(_1,_2),_5=this.defaultFieldType,_6=(_4==false&&_1.readOnlyEditorType)||_1.editorType||_1.formItemType||_1._constructor||_1.type||_5;if((_4==false&&_1.readOnlyEditorType)||_1.editorType||_1.formItemType||_1._constructor)
+);isc.B._maxIndex=isc.C+228;isc.A=isc.DynamicForm;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.defaultFieldType="text";isc.A.$12a="link";isc.A.$gx="text";isc.A.$12b="select";isc.A.$12c="checkbox";isc.A.$12d="staticText";isc.A.$g2="boolean";isc.A.$12e="binary";isc.A.$12f="blob";isc.A.$52w="multifile";isc.A.$12g="multiupload";isc.A.$9i="upload";isc.A.$52x="file";isc.A.$51x="base64Binary";isc.A.$12h="enum";isc.A.$12i="CycleItem";isc.A.$12j="selectOther";isc.A.$12k="relation";isc.A.$67f="NestedEditorItem";isc.A.$67g="NestedListEditorItem";isc.A.$677="imageFile";isc.A.$678="ViewFileItem";isc.A.$77j="section";isc.A.$77k="SectionItem";isc.A.$77l="button";isc.A.$77m="ButtonItem";isc.A.$450="id";isc.A.$refPropName="__ref";isc.B.push(isc.A.getEditorType=function isc_c_DynamicForm_getEditorType(_1,_2){if(_1._constructor==isc.FormItem.Class)_1._constructor=null;var _3=_2.getDataSource();var _4=this.canEditField(_1,_2),_5=this.defaultFieldType,_6=(_4==false&&_1.readOnlyEditorType)||_1.editorType||_1.formItemType||_1._constructor||_1.type||_5;if((_4==false&&_1.readOnlyEditorType)||_1.editorType||_1.formItemType||_1._constructor)
 {return _6}
 if(_6==this.$12a){if(!this.canEditField(_1,_2))_6=this.$12a;else _6=this.$gx}else if(!_4){if(_6==this.$12e||_6==this.$52x||_6==this.$677)
 _6=this.$678;else if(_6!=this.$77j&&_6!=this.$77k&&_6!=this.$77l&&_6!=this.$77m)
@@ -835,10 +840,12 @@
 this.$14t(this.$o5);this.$14t(this.$o6);this.$14t(this.$126);this.$14t(this.$127);this._value=this.getDefaultValue();this.$14u=true;this.$14v();if((!this.validateOnExit||!this.synchronousValidation)&&this.validators&&this.validators.length>0)
 {for(var i=0;i<this.validators.length;i++){if(this.validators[i].stopOnError){this.validateOnExit=true;this.synchronousValidation=true;break}}}
 if((!this.validateOnExit||!this.synchronousValidation)&&((this.stopOnError==null&&this.form&&this.form.stopOnError)||this.stopOnError))
-{this.validateOnExit=true;this.synchronousValidation=true}}
+{this.validateOnExit=true;this.synchronousValidation=true}
+this.onInit(this)}
+,isc.A.onInit=function isc_FormItem_onInit(_1){}
 ,isc.A.$14t=function isc_FormItem__convertRawToMeasure(_1){var _2=this[_1];if(_2==null||isc.isA.Number(_2)||_2==this.$pa)return _2;var _3=parseInt(_2);if(_3==_2){this[_1]=_3;return _2}
 return _2}
-,isc.A.destroy=function isc_FormItem_destroy(){if(this.isDrawn())this.cleared();var _1=this.pickList;this.pickList=null;if(_1!=null){if(_1.formItem==this)delete _1.formItem;if(_1.isVisible())_1.hide();if(!this.reusePickList())_1.destroy()}
+,isc.A.destroy=function isc_FormItem_destroy(){this.invalidateDisplayValueCache(true);if(this.isDrawn())this.cleared();var _1=this.pickList;this.pickList=null;if(_1!=null){if(_1.formItem==this)delete _1.formItem;if(_1.isVisible())_1.hide();if(!this.reusePickList())_1.destroy()}
 this.destroyed=true;this.form=null;this.$14x=null;var _2;isc.ClassFactory.dereferenceGlobalID(this);this.$63x();if(isc.EH.$52d==this)isc.EH.$52d=null}
 ,isc.A.clear=function isc_FormItem_clear(){if(this.picker)this.picker.clear()}
 ,isc.A.toString=function isc_FormItem_toString(){var _1=this.getFieldName(),_2=this.ID,_3="["+this.Class+" instance "+(_1!=null?" name ='"+_1+"', ":"")+"global ID="+_2+"]";return _3}
@@ -850,7 +857,7 @@
 ,isc.A.getDataPath=function isc_FormItem_getDataPath(){return this.dataPath}
 ,isc.A.getFullDataPath=function isc_FormItem_getFullDataPath(){var _1=this.getDataPath()||this.getFieldName();if(!_1){if(this.shouldSaveValue){this.logWarn("Encountered field with neither name nor dataPath: "+this.echo(this))}
 return}
-if(_1.startsWith(isc.Canvas.$70l))return _1;var _2=this.form.getFullDataPath();if(_2&&_2!=isc.Canvas.$70l){return _2+isc.Canvas.$70l+_1}
+if(!isc.isA.String(_1))_1=_1+"";if(_1.startsWith(isc.Canvas.$70l))return _1;var _2=this.form.getFullDataPath();if(_2&&_2!=isc.Canvas.$70l){return _2+isc.Canvas.$70l+_1}
 return _1}
 ,isc.A.getItemName=function isc_FormItem_getItemName(){return this.getFieldName()}
 ,isc.A.getElementName=function isc_FormItem_getElementName(){if(this.isInactiveHTML())return"";var _1=this.getFieldName();if(this.parentItem){var _2=this.parentItem.getElementName();if(_1==isc.emptyString)_1=_2;else _1=[_2,this.$bv,_1].join(isc.emptyString)}
@@ -1266,35 +1273,51 @@
 ,isc.A.$426=function isc_FormItem__displayFieldValueFromFormValues(){if(this.displayField!=null){var _1=this.form.getValues(),_2=_1[this.getFieldName()],_3=_1[this.displayField];if(_3!=null){var _4={};_4[_2]=_3}
 this.$43d=_4}}
 ,isc.A.getOptions=function isc_FormItem_getOptions(){return this.getValueMap()}
-,isc.A.getOptionDataSource=function isc_FormItem_getOptionDataSource(){var _1=this.optionDataSource;if(_1==null&&this.form.dataSource){if(this.foreignKey)_1=isc.DS.getForeignDSName(this,this.form.dataSource);else _1=this.form.dataSource}
+,isc.A.getOptionDataSource=function isc_FormItem_getOptionDataSource(){var _1=this.optionDataSource;if(_1==null&&this.form&&this.form.dataSource){if(this.foreignKey)_1=isc.DS.getForeignDSName(this,this.form.dataSource);else _1=this.form.dataSource}
 if(isc.isA.String(_1))_1=isc.DataSource.getDataSource(_1);return _1}
 ,isc.A.getValueMapTitle=function isc_FormItem_getValueMapTitle(_1){var _2=this.getValueMap();if(isc.isAn.Array(_2))return(_2.contains(_1)?_1:"");return _2[_1]}
 ,isc.A.saveValue=function isc_FormItem_saveValue(_1,_2){var _3;this._value=_1;this.$14u=_2;if(this.isDrawn()){if(this.$11d())this.$17e(_1)}
 if(_1==_3&&this.$17f){this.form.clearItemValue(this)}else{this.form.saveItemValue(this,_1)}}
 ,isc.A.$17e=function isc_FormItem__setHiddenDataElementValue(_1){var _2=this.$15b();if(_2)_2.value=_1}
-,isc.A.setValue=function isc_FormItem_setValue(_1,_2){this.$17g=true;if(this.$751!=null&&!this.compareValues(_1,this._value)){this.$78w()}
-var _3=(this.maintainSelectionOnTransform&&this.hasFocus&&(this.$17h()!=this.$14l));if(_3)this.rememberSelection();if(this.$17i!=null){isc.Timer.clearTimeout(this.$17i);this.$17i=null}
+,isc.A.setValue=function isc_FormItem_setValue(_1,_2){this.$17g=true;var _3=(this.maintainSelectionOnTransform&&this.hasFocus&&(this.$17h()!=this.$14l));if(_3)this.rememberSelection();if(this.$17i!=null){isc.Timer.clearTimeout(this.$17i);this.$17i=null}
 var _4;if(_1==null&&!_2){var _5=this.getDefaultValue();if(_5!=null){_4=true;_1=_5}}
 if(this.length!=null&&_1!=null&&isc.isA.String(_1)&&_1.length>this.length)
 {_1=_1.substring(0,this.length)}
-this.saveValue(_1,_4);if(_1!=null&&this.shouldFetchMissingValue(_1)){this.$43f(_1)}
+this.saveValue(_1,_4);if(_1!=null&&this.shouldFetchMissingValue(_1)){this.$78w();this.$43f(_1)}else{if(this.$78y==null||!this.compareValues(this.$78y,this._value))
+{this.$846()}}
 var _6=this.mapValueToDisplay(_1);this.setElementValue(_6,_1);if(_3)this.resetToLastSelection(true);return _1}
-,isc.A.shouldFetchMissingValue=function isc_FormItem_shouldFetchMissingValue(_1){if(this.fetchMissingValues==false)return false;if(this.getOptionDataSource()==null)return false;if(this.alwaysFetchMissingValues)return true;if(this.getDisplayFieldName()==null)return false;var _2=(this.$17b(_1,true)!=null);return(!_2&&(!this.$43e||!this.filterLocally))}
+,isc.A.shouldFetchMissingValue=function isc_FormItem_shouldFetchMissingValue(_1){if(this.fetchMissingValues==false)return false;if(this.getOptionDataSource()==null)return false;var _2=false;if(this.$847!=null&&(this.$43e||this.$847.find(this.getValueFieldName(),_1)!=null))
+{_2=true}
+if(_2)return false;if(this.alwaysFetchMissingValues)return true;if(this.getDisplayFieldName()==null)return false;var _3=(this.$17b(_1,true)!=null);return!_3}
 ,isc.A.setDefaultValue=function isc_FormItem_setDefaultValue(_1){var _2=this.defaultValue,_3;this.defaultValue=_1;if(this.isSetToDefaultValue()||(this._value==null&&_2===_3))
 this.clearValue()}
-,isc.A.$43f=function isc_FormItem__checkForDisplayFieldValue(_1){var _2=this.getOptionDataSource();if(_2&&(this.$78y==null||!this.compareValues(this.$78y,_1))&&(this.$63l==null||!this.$63l[_1]))
-{if(!this.$63l)this.$63l={};this.$63l[_1]=true;var _3=this.optionCriteria||{};if(!this.filterLocally){_3[this.getValueFieldName()]=_1}
-var _4=isc.addProperties({},this.optionFilterContext,{showPrompt:false,clientContext:{dataValue:_1},componentId:this.containerWidget.getID(),componentContext:this.getFieldName()});var _5;if(this.optionOperationId!==_5){_4.operationId=this.optionOperationId}
-_2.fetchData(_3,{target:this,methodName:"fetchMissingValueReply"},_4)}}
-,isc.A.fetchMissingValueReply=function isc_FormItem_fetchMissingValueReply(_1,_2,_3){var _4,_5=_1.clientContext.dataValue,_6=this.getDisplayFieldName(),_7=this.getValueFieldName();delete this.$63l[_5];if(_2)_4=_2.find(_7,_5);if(!_4){this.logInfo("Unable to retrieve display value for data value:"+_5+" from dataSource "+this.getOptionDataSource());if(!this.filterLocally)return}
-this.$78x(_4);if(this.$43d==null)this.$43d={};var _8=this.$43d;var _9;for(var i=0;i<_2.length;i++){_4=_2[i];var _11=_4[_7],_12=_4[_6];if(_8[_11]!==_9){if(_8[_11]!=_12){this.logWarn("Deriving valueMap for '"+_7+"' from dataSource based on displayField '"+_6+"'. This dataSource contains more than one record with "+_7+" set to "+_11+" with differing "+_6+" values."+" Derived valueMap is therefore unpredictable.")}
+,isc.A.$43f=function isc_FormItem__checkForDisplayFieldValue(_1){if(this.$63l==null||!this.$63l[_1]){if(!this.$63l)this.$63l={};this.$63l[_1]=true;var _2=this.optionCriteria||{};if(!this.filterLocally){_2[this.getValueFieldName()]=_1}
+var _3=isc.addProperties({},this.optionFilterContext,{showPrompt:false,clientContext:{dataValue:_1,filterLocally:this.filterLocally},componentId:this.containerWidget.getID(),componentContext:this.getFieldName()});var _4;if(this.optionOperationId!==_4){_3.operationId=this.optionOperationId}
+this.getOptionDataSource().fetchData(_2,{target:this,methodName:"fetchMissingValueReply"},_3)}}
+,isc.A.fetchMissingValueReply=function isc_FormItem_fetchMissingValueReply(_1,_2,_3){var _4,_5=_1.clientContext.dataValue,_6=_1.clientContext.filterLocally,_7=this.getDisplayFieldName(),_8=this.getValueFieldName();delete this.$63l[_5];if(_2)_4=_2.find(_8,_5);if(!_4){this.logInfo("Unable to retrieve display value for data value:"+_5+" from dataSource "+this.getOptionDataSource());if(!_6){if(_2!=null&&_2.getLength()>0){this.logWarn("FetchMissingValues - filterLocally is false yet optionDataSource "+"fetch included records that do not match our current data value. Ignoring "+"these values.","fetchMissingValues");this.logDebug("Data returned:"+this.echoAll(_2),"fetchMissingValues")}
+return}}
+this.$848(_2);if(_6)this.$43e=true;var _9=(this._value==_5)&&this.$849();this.updateDisplayValueMap(_9)}
+,isc.A.$848=function isc_FormItem__addDataToDisplayFieldCache(_1){if(this.$847==null){this.$847=[]}
+this.$847.addList(_1);var _2=this.getOptionDataSource();if(!this.isObserving(_2,"dataChanged")){this.observe(_2,"dataChanged","observer.dataSourceDataChanged(observed,dsRequest,dsResponse)")}}
+);isc.evalBoundary;isc.B.push(isc.A.$849=function isc_FormItem__refreshForDisplayValueChange(){return true}
+,isc.A.updateDisplayValueMap=function isc_FormItem_updateDisplayValueMap(_1){this.$846();var _2=this.$847,_3=this.getDisplayFieldName(),_4=this.getValueFieldName();var _5=this.$43d={};var _6;for(var i=0;i<_2.length;i++){var _8=_2[i];var _9=_8[_4],_10=_8[_3];if(_5[_9]!==_6){if(_5[_9]!=_10){this.logWarn("Deriving valueMap for '"+_4+"' from dataSource based on displayField '"+_3+"'. This dataSource contains more than one record with "+_4+" set to "+_9+" with differing "+_3+" values."+" Derived valueMap is therefore unpredictable.","fetchMissingValues")}
 continue}
-_8[_4[_7]]=_4[_6]}
-if(this.filterLocally)this.$43e=true;var _13=this.$82j(_5);this.updateValueMap(_13)}
-,isc.A.$82j=function isc_FormItem__refreshForFetchedValue(_1){return(this._value==_1)}
-,isc.A.getSelectedRecord=function isc_FormItem_getSelectedRecord(){if(this.$751&&(this.$78y==this._value)){return this.$751}}
-,isc.A.$78x=function isc_FormItem__storeSelectedRecord(_1){this.$751=_1;this.$78y=this._value}
-);isc.evalBoundary;isc.B.push(isc.A.$78w=function isc_FormItem__clearSelectedRecord(){delete this.$751;delete this.$78y}
+_5[_8[_4]]=_8[_3]}
+this.updateValueMap(_1)}
+,isc.A.invalidateDisplayValueCache=function isc_FormItem_invalidateDisplayValueCache(_1){this.$43d=null;this.$847=null;this.$78w();this.$43e=false;var _2=this.getOptionDataSource();if(_2!=null&&this.isObserving(_2,"dataChanged")){this.ignore(_2,"dataChanged")}
+if(_1)return;if(this.form.$425(this)){this.$426()}else if(this._value!=null&&this.shouldFetchMissingValue(this._value)){this.$78w();this.$43f(this._value)}
+this.updateValueMap()}
+,isc.A.dataSourceDataChanged=function isc_FormItem_dataSourceDataChanged(_1,_2,_3){var _4=this.logIsDebugEnabled("fetchMissingValues");if(_4){this.logDebug("dataSourceDataChanged is firing for request:"+this.echo(_2),"fetchMissingValues")}
+var _5=this.$847;if(_5==null)return;if(_3.invalidateCache){if(_4){this.logDebug("Request had invalidateCache set, dropping cached display values","fetchMissingValues")}
+this.invalidateDisplayValueCache()}else{var _6=this.getDisplayFieldName(),_7=this.getValueFieldName();var _8=_1.getUpdatedData(_2,_3,true),_9=_2.operationType=="add",_10=_2.operationType=="update",_11=_2.operationType=="remove";if(_4){this.logDebug("Operation type:"+_2.operationType+", updateData:"+this.echoAll(_8),"fetchMissingValues")}
+if(_8==null||(!_9&&!_11&&!_10))return;if(!isc.isAn.Array(_8)){_8=[_8]}
+var _12=false,_7=this.getValueFieldName();if(_9){_5.addList(_8);_12=_8.find(_7,this._value)!=null}else{var _13=_1.getPrimaryKeyFields();for(var i=0;i<_8.length;i++){var _15=_8[i],_16=isc.applyMask(_15,_13);var _17=_1.findByKeys(_16,_5);if(_17==-1){if(_11)continue;_5.add(_15)}else{if(_5[_17][_7]==this._value){_12=true}
+if(_11){_5.removeAt(_17)}else{_5[_17]=_15}}}}
+this.updateDisplayValueMap(_12&&this.$849())}}
+,isc.A.getSelectedRecord=function isc_FormItem_getSelectedRecord(){if(this.$78y!=null){if(!this.compareValues(this.$78y,this._value)){this.logInfo("getSelectedRecord - cached record doesn't match new value - dropping","fetchMissingValues");this.$78w()}}
+return this.$751}
+,isc.A.$846=function isc_FormItem__updateSelectedRecord(){if(this._value==null||this.$847==null){this.$78w()}else{var _1=this.getValueFieldName();this.$751=this.$847.find(_1,this._value);this.$78y=this._value}}
+,isc.A.$78w=function isc_FormItem__clearSelectedRecord(){delete this.$751;delete this.$78y}
 ,isc.A.clearValue=function isc_FormItem_clearValue(){this.$17f=true;this.setValue();delete this.$17f}
 ,isc.A.setElementValue=function isc_FormItem_setElementValue(_1,_2){if(!this.isDrawn())return;var _3;if(_2===_3){_2=this._value}
 if(this.hasDataElement()){var _4=this.getDataElement();if(_4!=null){this.$17j(_2);return _4.value=_1}}
@@ -1320,7 +1343,8 @@
 ,isc.A.isSetToDefaultValue=function isc_FormItem_isSetToDefaultValue(){return(this.$14u==true)}
 ,isc.A.updateValue=function isc_FormItem_updateValue(){if(!this.hasElement()||this.getDataElement()==null)return;var _1=this.getElementValue();return this.$10y(_1)}
 ,isc.A.$10y=function isc_FormItem__updateValue(_1){if(this.$17k){_1=this.$17l(_1)}
-_1=this.mapDisplayToValue(_1);if(this.compareValues(_1,this._value)){return true}
+_1=this.mapDisplayToValue(_1);return this.storeValue(_1)}
+,isc.A.storeValue=function isc_FormItem_storeValue(_1){if(this.compareValues(_1,this._value)){return true}
 if(this.$17m){if(this.compareValues(_1,this.$17n)){return true}}
 var _2=this.handleChange(_1,this._value);if(this.destroyed)return;_1=this.$17n;this.updateAppearance(_1);if(!this.compareValues(_1,this._value))this.saveValue(_1);delete this.$17n;this.handleChanged(this._value);return _2}
 ,isc.A.handleChanged=function isc_FormItem_handleChanged(_1){if(this.changed)this.changed(this.form,this,_1);if(this.form){if(this.form.itemChanged!=null)this.form.itemChanged(this,_1);if(this.implicitSave||this.form.implicitSave){var _2=this;this.awaitingImplicitSave=true;this.fireOnPause("fiImplicitSave",function(){if(_2.awaitingImplicitSave){_2.form.performImplicitSave(_2,true)}},this.form.implicitSaveDelay)}}}
@@ -1333,17 +1357,23 @@
 ,isc.A.isEditable=function isc_FormItem_isEditable(){return true}
 ,isc.A.getCriteriaFieldName=function isc_FormItem_getCriteriaFieldName(){return this.criteriaField||this.includeFrom||this.getFieldName()}
 ,isc.A.getCriteriaValue=function isc_FormItem_getCriteriaValue(){return this.getValue()}
-,isc.A.hasAdvancedCriteria=function isc_FormItem_hasAdvancedCriteria(){return this._value!=null&&this.operator!=null}
-,isc.A.getOperator=function isc_FormItem_getOperator(_1){if(this.operator){var _2=this.operator}else{if(this.valueMap||this.optionDataSource||isc.SimpleType.inheritsFrom(this.type,"enum")||isc.SimpleType.inheritsFrom(this.type,"boolean"))
+,isc.A.hasAdvancedCriteria=function isc_FormItem_hasAdvancedCriteria(){return this._value!=null&&this.operator!=null||this.$85m()}
+,isc.A.$85m=function isc_FormItem__shouldAllowExpressions(){var _1=this.allowExpressions;if(_1==null)_1=this.form.allowExpressions;return _1}
+,isc.A.getOperator=function isc_FormItem_getOperator(_1){if(this.operator){var _2=this.operator}else{if(this.valueMap||this.optionDataSource||isc.SimpleType.inheritsFrom(this.type,"enum")||isc.SimpleType.inheritsFrom(this.type,"boolean")||isc.SimpleType.inheritsFrom(this.type,"float")||isc.SimpleType.inheritsFrom(this.type,"integer"))
 {_2="equals"}else{if(_1==null)_1="substring";_2=isc.DataSource.getCriteriaOperator(null,_1)}}
 return _2}
-,isc.A.canEditCriterion=function isc_FormItem_canEditCriterion(_1,_2){if(_1.fieldName!=null&&_1.fieldName==this.getCriteriaFieldName()&&_1.operator==this.getOperator())
+,isc.A.canEditCriterion=function isc_FormItem_canEditCriterion(_1,_2){if(_1.fieldName!=null&&_1.fieldName==this.getCriteriaFieldName())
 {return true}
+if(this.$85m()&&isc.DS.isAdvancedCriteria(_1))
+{var _3=isc.DS.getCriteriaFields(_1,this.form.expressionDataSource||this.form.dataSource);return _3.contains(this.getCriteriaFieldName())}
 return false}
 ,isc.A.canEditSimpleCriterion=function isc_FormItem_canEditSimpleCriterion(_1){var _2=this.getCriteriaFieldName();return _2==_1}
-,isc.A.getCriterion=function isc_FormItem_getCriterion(_1){var _2=this.getCriteriaValue();if(_2==null||isc.is.emptyString(_2))return;if(isc.isAn.Array(_2)){if(_2.length==0||_2.contains(isc.emptyString))return}
-var _3=this.getOperator(_1);return{fieldName:this.getCriteriaFieldName(),operator:_3,value:_2}}
-,isc.A.setCriterion=function isc_FormItem_setCriterion(_1){this.setValue(_1.value)}
+,isc.A.getCriterion=function isc_FormItem_getCriterion(_1){var _2=this.getCriteriaValue();if(_2==null||isc.is.emptyString(_2))return;if(isc.isAn.Array(_2)){var _3=_2.getUniqueItems();if(_2.length==0||(_3.length==1&&isc.isA.String(_2[0])&&isc.is.emptyString(_2[0])))return}
+var _4=this.getOperator(_1),_5=this.getCriteriaFieldName();var _6={fieldName:_5,operator:_4,value:_2};if(this.$85m()){var _7=this.parseValueExpressions(_2,_5,_4);if(_7.criteria&&_7.criteria.length==0)_7.criteria.add(_6);_6=_7}
+return _6}
+,isc.A.setCriterion=function isc_FormItem_setCriterion(_1){var _2=this.$85m(),_3=_1?_1.value:null;if(_2){if(isc.DS.isAdvancedCriteria(_1)){_3=this.buildValueExpressions(_1)}else if(isc.isAn.Object(_1)&&_1.fieldName==this.getCriteriaFieldName())
+{_3=this.buildValueExpressions({_constructor:"AdvancedCriteria",operator:"and",criteria:[_1]})}else{}}
+this.setValue(_3)}
 ,isc.A.clearErrors=function isc_FormItem_clearErrors(){var _1=this.getFieldName();if(_1)this.form.clearFieldErrors(_1,true)}
 ,isc.A.setError=function isc_FormItem_setError(_1){var _2=this.getFieldName();if(_2)this.form.setError(_2,_1)}
 ,isc.A.hasErrors=function isc_FormItem_hasErrors(){if(this.parentItem!=null)return this.parentItem.hasErrors();var _1=this.getFieldName();if(_1&&this.form)return this.form.hasFieldErrors(_1);var _2=this.getDataPath();if(_2&&this.form)return this.form.hasFieldErrors(_2);return false}
@@ -1394,7 +1424,7 @@
 _5.moveStart(this.$14n)}}}
 return null}
 if(_5.compareEndPoints(this.$14o,_4)==0){_3[1]=_5.text.length}else{_5.setEndPoint(this.$14o,_4);_3[1]=_5.text.length}
-_5.setEndPoint(this.$14p,_4);_3[0]=_5.text.length;return _3}else if(isc.Browser.isMoz||isc.Browser.isSafari){return[_2.selectionStart,_2.selectionEnd]}}
+_5.setEndPoint(this.$14p,_4);_3[0]=_5.text.length;return _3}else if(isc.Browser.isMoz||isc.Browser.isSafari||isc.Browser.isOpera){return[_2.selectionStart,_2.selectionEnd]}}
 ,isc.A.$820=function isc_FormItem__hasNativeFocus(){var _1=this.getFocusElement(),_2=this.getActiveElement();return(_1==_2)}
 ,isc.A.getSelectedText=function isc_FormItem_getSelectedText(){if(!isc.isA.TextItem(this)&&!isc.isA.TextAreaItem(this)){return}
 if(isc.Browser.isIE){var _1=this.$17p();if(_1)return _1.text}else if(isc.Browser.isMoz||isc.Browser.isSafari){var _2=this.getElement();if(_2!=null){return _2.value.substring(_2.selectionStart,_2.selectionEnd)}}}
@@ -1515,7 +1545,7 @@
 ,isc.A.$12v=function isc_FormItem__nativeElementFocus(_1,_2){if(isc.EH.$lg==this)delete isc.EH.$lg
 isc.EH.$la(this,true);if(isc.Browser.isMoz&&!this.isVisible()){this.logWarn("calling element.blur() to correct focus in hidden item: "+this,"nativeFocus");_1.blur();return}
 this.hasFocus=true;this.$167=_1;var _3=this.form.elementFocus(_1,_2);return _3}
-,isc.A.$12x=function isc_FormItem__nativeElementBlur(_1,_2){if(isc.EH.$ld==this)delete isc.EH.$ld
+);isc.evalBoundary;isc.B.push(isc.A.$12x=function isc_FormItem__nativeElementBlur(_1,_2){if(isc.EH.$ld==this)delete isc.EH.$ld
 if(this.$17i!=null){isc.Timer.clearTimeout(this.$17i);this.$14r()}
 isc.EH.$la(this);this.hasFocus=false;delete this.$167;var _3=this.form.elementBlur(_1,_2);return _3}
 ,isc.A.elementFocus=function isc_FormItem_elementFocus(_1){if(this.prompt)this.form.showPrompt(this.prompt);if(this.showIconsOnFocus&&this.showIcons){this.showAllIcons(true)}else{if(this.icons)this.updateIconsForFocus(this.icons,true)}
@@ -1555,7 +1585,7 @@
 return false;return this.canSelectText!=false}
 ,isc.A.handleEditorExit=function isc_FormItem_handleEditorExit(){if(!this.$178)return;this.$178=null;var _1=this.getValue();if(!this.$843)this.$844(_1);if((this.implicitSave||this.form.implicitSave)&&this.awaitingImplicitSave){this.form.performImplicitSave(this,false)}
 if(this.editorExit)this.editorExit(this.form,this,_1)}
-);isc.evalBoundary;isc.B.push(isc.A.$844=function isc_FormItem__performValidateOnEditorExit(_1){if(this.validateOnExit||this.form.validateOnExit){if(this.$84r||this.form.isNewRecord()||!this.compareValues(_1,this.$75h))
+,isc.A.$844=function isc_FormItem__performValidateOnEditorExit(_1){if(this.validateOnExit||this.form.validateOnExit){if(this.$84r||this.form.isNewRecord()||!this.compareValues(_1,this.$75h))
 {this.validate()}
 this.$84r=null;this.$75h=null}}
 ,isc.A.handleEditorEnter=function isc_FormItem_handleEditorEnter(){if(this.$178)return;this.$178=true;var _1=this.getValue();if(this.validateOnExit||this.form.validateOnExit)this.$75h=_1;if(this.editorEnter)this.editorEnter(this.form,this,_1)}
@@ -1626,7 +1656,22 @@
 ,isc.A.setEditMode=function isc_FormItem_setEditMode(_1,_2,_3){if(_1==null)_1=true;if(this.editingOn==_1)return;this.editingOn=_1;if(this.editingOn){this.editContext=_2}
 this.editNode=_3}
 ,isc.A.editClick=function isc_FormItem_editClick(){var _1=this.getTitlePageLeft(),_2=this.getVisibleTitleWidth(),_3,_4,_5,_6;_4=this.getTitlePageTop();_6=this.getTitleVisibleHeight();_5=this.getVisibleHeight();_3=(_6==_5)?_4:_4+((_6-_5)/2);isc.EditContext.manageTitleEditor(this,_1,_2,_3,null)}
-);isc.B._maxIndex=isc.C+398;isc.FormItem.registerStringMethods({showIf:"item,value,form,values",defaultDynamicValue:"item,form,values",focus:"form,item",blur:"form,item",editorEnter:"form,item,value",editorExit:"form,item,value",click:"form,item",doubleClick:"form,item",iconClick:"form,item,icon",iconKeyPress:"keyName,character,form,item,icon",change:"form,item,value,oldValue",changed:"form,item,value",transformInput:"form,item,value,oldValue",cellClick:"form,item",cellDoubleClick:"form,item",titleClick:"form,item",titleDoubleClick:"form,item",mouseMove:"form,item",mouseOver:"form,item",mouseOut:"form,item",titleMove:"form,item",titleOver:"form,item",titleOut:"form,item",itemHover:"item,form",titleHover:"item,form",keyPress:"item, form, keyName, characterValue",keyDown:"item,form,keyName",keyUp:"item,form,keyName",getValueIcon:"value",formSaved:"request,response,data",formatValue:"value,record,form,item",formatEditorValue:"value,record,form,item",parseEditorValue:"value,form,item"});isc.FormItem.getPrototype().toString=function(){return"["+this.Class+" ID:"+this.ID+(this.name!=null?" name:"+this.name:"")+"]"};isc.ClassFactory.defineClass("FormItemFactory");isc.A=isc.FormItemFactory;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$gx="text";isc.A.$18n="Item";isc.A.$18o="TextareaItem";isc.A.$679="TextAreaItem";isc.A.$68a="DatetimeItem";isc.A.$68b="DateTimeItem";isc.A.$18p={};isc.B.push(isc.A.getItemClassName=function isc_c_FormItemFactory_getItemClassName(_1,_2,_3,_4){if(_2==null)_2=_1.editorType||_1.formItemType||_1.type;if(isc.isA.String(_2)){var _5=_2.toLowerCase();if(_5.contains(isc.DynamicForm.$12b)){if(_5=="selectother"||_5=="selectotheritem"){_5="select";if(!_4)_1.isSelectOther=true}
+,isc.A.parseValueExpressions=function isc_FormItem_parseValueExpressions(_1,_2){var _3=this.type,_4=(isc.SimpleType.inheritsFrom(_3,"integer")||isc.SimpleType.inheritsFrom(_3,"float")||isc.SimpleType.inheritsFrom(_3,"date")),_5=isc.DynamicForm.getOperatorIndex(),_6=isc.getKeys(_5),_7={_constructor:"AdvancedCriteria",operator:"and",criteria:[]},_8=_7.criteria,_9=[],_10=this.$85m(),_11=this.form.expressionDataSource||this.form.dataSource;if(!_1)_1=this.getValue();if(!_1)return;if(!isc.isA.String(_1))_1+="";var _12=this.getOperator();if(_12)_6.add(_12);var _13=_12.caseInsensitive;if(_4&&_1.contains(" and ")){_9=_1.split(" and ")}else if(_4&&_1.contains(" or ")){_9=_1.split(" or ");_7.operator="or"}else if(_1.contains("...")){_9=_1.split("...");if(_9.length==2){var _14=_5["..."][0];var _15=_11?_11.getField(_2):null;if(_15&&isc.SimpleType.inheritsFrom(_15.type,"date")){_9[0]=new Date(Date.parse(_9[0]));_9[1]=new Date(Date.parse(_9[1]))}
+var _16={fieldName:_2,operator:_14.ID,start:_9[0],end:_9[1]};_7.criteria.add(_16);return _7}}else{_9=[_1]}
+var _17=[" and "," or ","..."];for(var i=0;i<_9.length;i++){var _19=_9[i].trim(),_20={fieldName:_2}
+_15=_11?_11.getField(_2):null;for(var _21 in _5){if(!_21)continue;var _22=_5[_21],_23;if(_22&&_22.length){_23=_22.find("insensitive",_13);if(!_23)_23=_22[0]}
+if(!_23||!_23.symbol||_17.contains(_23.symbol))continue;if(_6.contains(_23.symbol)&&_19.startsWith(_23.symbol)){_19=_19.substring(_23.symbol.length).trim();if(_15&&isc.SimpleType.inheritsFrom(_15.type,"date")){_19=new Date(Date.parse(_19))}
+if(_23.processValue){var _11=this.form.expressionDataSource||this.form.dataSource;_19=_23.processValue(_19,_11)}
+_20.operator=_23.ID;_20.value=_19;break}}
+if(_20.operator)_7.criteria.add(_20)}
+if(_7.criteria.length==1)_7=_7.criteria[0];return _7}
+,isc.A.buildValueExpressions=function isc_FormItem_buildValueExpressions(_1){var _2=_1,_3=" "+_2.operator+" ",_4=[],_5="";var _6=isc.DynamicForm.getOperatorIndex(),_7=isc.getKeys(_6),_8=this.validOperators;if(!_8){_8=[];for(var j=0;j<_7.length;j++){var _10=_6[_7[j]];_8.addList(_10.getProperty("ID"))}}
+var _11=this.getOperator();if(_11)_8.add(_11);var _12=_11.caseInsensitive;if(!_2.criteria){var _13=[_2];_2={criteria:_13}}
+for(var i=0;i<_2.criteria.length;i++){var _15=_2.criteria[i],_16=_15.operator,_17=_15.value;for(var j=0;j<_7.length;j++){var _10=_6[_7[j]];var _18=_10.find({"ID":_16,insensitive:_12});if(_18){_16=_18;break}}
+if(_16.ID=="betweenInclusive"){_3="...";_4.addList([_15.start,_15.end])}else if(_8.contains(_16.ID)){var _19=_16;if(_19.ID!=_11)_17=(_19&&_19.symbol?_19.symbol:"")+_17;_4.add(_17)}else if(_16.ID.startsWith("i")){var _20=_16.ID.substring(1),_21=_20.charAt(0);_20=_21.toLowerCase()+_20.substring(1)
+if(_8.contains(_20)){var _22=_7.find("ID",_20);if(_22.ID!=_11)_17=(_19&&_19.symbol?_19.symbol:"")+_17;_4.add(_17)}}}
+_5=_4.join((_4.length>1?_3:""));return _5.length>0?_5:null}
+);isc.B._maxIndex=isc.C+407;isc.FormItem.registerStringMethods({showIf:"item,value,form,values",defaultDynamicValue:"item,form,values",focus:"form,item",blur:"form,item",editorEnter:"form,item,value",editorExit:"form,item,value",click:"form,item",doubleClick:"form,item",iconClick:"form,item,icon",iconKeyPress:"keyName,character,form,item,icon",change:"form,item,value,oldValue",changed:"form,item,value",transformInput:"form,item,value,oldValue",cellClick:"form,item",cellDoubleClick:"form,item",titleClick:"form,item",titleDoubleClick:"form,item",mouseMove:"form,item",mouseOver:"form,item",mouseOut:"form,item",titleMove:"form,item",titleOver:"form,item",titleOut:"form,item",itemHover:"item,form",titleHover:"item,form",keyPress:"item, form, keyName, characterValue",keyDown:"item,form,keyName",keyUp:"item,form,keyName",getValueIcon:"value",formSaved:"request,response,data",formatValue:"value,record,form,item",formatEditorValue:"value,record,form,item",parseEditorValue:"value,form,item"});isc.FormItem.getPrototype().toString=function(){return"["+this.Class+" ID:"+this.ID+(this.name!=null?" name:"+this.name:"")+"]"};isc.ClassFactory.defineClass("FormItemFactory");isc.A=isc.FormItemFactory;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$gx="text";isc.A.$18n="Item";isc.A.$18o="TextareaItem";isc.A.$679="TextAreaItem";isc.A.$68a="DatetimeItem";isc.A.$68b="DateTimeItem";isc.A.$18p={};isc.B.push(isc.A.getItemClassName=function isc_c_FormItemFactory_getItemClassName(_1,_2,_3,_4){if(_2==null)_2=_1.editorType||_1.formItemType||_1.type;if(isc.isA.String(_2)){var _5=_2.toLowerCase();if(_5.contains(isc.DynamicForm.$12b)){if(_5=="selectother"||_5=="selectotheritem"){_5="select";if(!_4)_1.isSelectOther=true}
 if(_5=="select"||_5=="selectitem"){_3=_1.form||_3;var _6=(!isc.ListGrid||(_1.multiple&&_1.multipleAppearance=="grid")||(_3?_3.useNativeSelectItems:false));if(_6)_2="NativeSelectItem"
 else _2="SelectItem"}}
 if(_5==isc.DynamicForm.$52w)_2="MultiFileItem";else if(_5==isc.DynamicForm.$12g)_2="MultiUploadItem";else if(_5==isc.DynamicForm.$51x.toLowerCase())_2="SOAPUploadItem"}
@@ -1776,20 +1821,25 @@
 return this.$18l(_1)}
 ,isc.A.getVisibleWidth=function isc_ContainerItem_getVisibleWidth(){var _1=this.$11o();if(_1==null)return this.Super("getVisibleWidth",arguments);return _1.offsetWidth}
 ,isc.A.getVisibleHeight=function isc_ContainerItem_getVisibleHeight(){var _1=this.$11o();if(_1==null)return this.Super("getVisibleHeight",arguments);return _1.offsetHeight}
-);isc.B._maxIndex=isc.C+25;isc.ClassFactory.defineClass("CanvasItem","FormItem");isc.A=isc.CanvasItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.width="*";isc.A.height=null;isc.A.shouldSaveValue=false;isc.B.push(isc.A.$18v=function isc_CanvasItem__canvas_resized(_1,_2,_3){this.Super("resized",arguments);if(!this.dragResizing()){this.canvasItem.canvasResized(_1,_2,_3)}}
+);isc.B._maxIndex=isc.C+25;isc.ClassFactory.defineClass("CanvasItem","FormItem");isc.A=isc.CanvasItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.width="*";isc.A.height=null;isc.A.shouldSaveValue=false;isc.B.push(isc.A.setElementValue=function isc_CanvasItem_setElementValue(_1,_2){var _3;if(_2===_3){_2=this._value}
+this.showValue(_1,_2)}
+,isc.A.showValue=function isc_CanvasItem_showValue(_1,_2){}
+,isc.A.$18v=function isc_CanvasItem__canvas_resized(_1,_2,_3){this.Super("resized",arguments);if(!this.dragResizing()){this.canvasItem.canvasResized(_1,_2,_3)}}
 ,isc.A.$18w=function isc_CanvasItem__canvas_dragResized(){this.canvasItem.canvasResized(1,1);return this.Super("dragResized",arguments)}
 ,isc.A.$18x=function isc_CanvasItem__canvas_focusInNextTabElement(_1,_2){if(isc.isA.DynamicForm(this)){return this.Super("$kf",arguments)}else
 return this.canvasItem.form.$kf(_1,_2)}
-);isc.B._maxIndex=isc.C+3;isc.A=isc.CanvasItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.init=function isc_CanvasItem_init(){this.Super("init",arguments);this.$18y()}
+);isc.B._maxIndex=isc.C+5;isc.A=isc.CanvasItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.init=function isc_CanvasItem_init(){this.Super("init",arguments);this.$18y()}
 ,isc.A.isEditable=function isc_CanvasItem_isEditable(){return false}
 ,isc.A.$kk=function isc_CanvasItem__canFocus(){var _1=this.canvas;if(_1&&_1.$kk)return _1.$kk();return this.canFocus||false}
 ,isc.A.$18y=function isc_CanvasItem__createCanvas(){if(this.createCanvas!=null){var _1=this.canvas;this.canvas=this.fireCallback("createCanvas");if(this.canvas==null)this.canvas=_1}
 if(!isc.isAn.Object(this.canvas)&&!this.canvasProperties&&!window[this.canvas]){if(isc.designTime)return;this.logWarn("CanvasItem: "+(this.getFieldName()?this.getFieldName():this.getID())+" defined with no canvas property - creating a default "+"canvas for this item.")}
 if(!isc.isAn.Object(this.canvas)&&isc.isA.Canvas(window[this.canvas])){this.canvas=window[this.canvas]}
-var _2={_redrawWithParent:false,$so:true,tabIndex:-1,canvasItem:this,disabled:this.isDisabled()};_2.resized=this.$18v;_2.dragResized=this.$18w;_2.$kf=this.$18x;if(this.dataSource)_2.dataSource=this.dataSource;if(this.prompt)_2.prompt=this.prompt;if(this.overflow!=null)_2.overflow=this.overflow;if(this.accessKey!=null)_2.accessKey=this.accessKey;if(this.showFocused!=null)_2.showFocused=this.showFocused;if(this.showFocusedAsOver!=null)_2.showFocusedAsOver=this.showFocusedAsOver;if(isc.isA.String(this.canvas)&&window[this.canvas])this.canvas=window[this.canvas];if(!isc.isA.Canvas(this.canvas)){isc.addProperties(_2,this.canvas);if(_2.ID==null)_2.ID=null;this.autoDestroy=true;this.addAutoChild("canvas",_2,isc.Canvas,this.containerWidget)}else{this.canvas.setTabIndex(-1);this.canvas.setPrompt(this.prompt);this.canvas.setAccessKey(this.accessKey);isc.addProperties(this.canvas,_2);if(_2.dataSource)this.canvas.bindToDataSource();this.canvas.setDisabled(this.isDisabled());this.containerWidget.addChild(this.canvas)}
+var _2={_redrawWithParent:false,$so:true,tabIndex:-1,canvasItem:this,disabled:this.isDisabled()};_2.resized=this.$18v;_2.dragResized=this.$18w;_2.handleClick=function(){this.Super("handleClick",arguments);if(this.canvasItem)this.canvasItem.handleClick()}
+_2.handleDoubleClick=function(){this.Super("handleDoubleClick",arguments);if(this.canvasItem)this.canvasItem.handleDoubleClick()}
+_2.$kf=this.$18x;if(this.dataSource)_2.dataSource=this.dataSource;if(this.prompt)_2.prompt=this.prompt;if(this.overflow!=null)_2.overflow=this.overflow;if(this.accessKey!=null)_2.accessKey=this.accessKey;if(this.showFocused!=null)_2.showFocused=this.showFocused;if(this.showFocusedAsOver!=null)_2.showFocusedAsOver=this.showFocusedAsOver;if(isc.isA.String(this.canvas)&&window[this.canvas])this.canvas=window[this.canvas];if(!isc.isA.Canvas(this.canvas)){isc.addProperties(_2,this.canvas);if(_2.ID==null)_2.ID=null;this.autoDestroy=true;this.addAutoChild("canvas",_2,isc.Canvas,this.containerWidget)}else{this.canvas.setTabIndex(-1);this.canvas.setPrompt(this.prompt);this.canvas.setAccessKey(this.accessKey);isc.addProperties(this.canvas,_2);if(_2.dataSource)this.canvas.bindToDataSource();this.canvas.setDisabled(this.isDisabled());this.containerWidget.addChild(this.canvas)}
 if(this.containerWidget!=this.form){if(isc.EH.clickMaskUp()){var _3=isc.EH.getAllClickMaskIDs();for(var i=_3.length-1;i>=0;i--){var _5=isc.EH.targetIsMasked(this.containerWidget,_3[i]);if(!_5){isc.EH.addUnmaskedTarget(this.canvas,_3[i]);break}}}}
-if(this.canvas)this.observe(this.canvas,"$lf","observer.canvasFocusChanged()")}
-,isc.A.setCanvas=function isc_CanvasItem_setCanvas(_1){if(isc.isA.Canvas(this.canvas)&&this.canvas!=_1){this.ignore(this.canvas,"$lf")}
+if(this.canvas)this.observe(this.canvas,"$lf","observer.canvasFocusChanged()");if(isc.isA.DynamicForm(this.canvas)){this.observe(this.canvas,"setFocusItem","observer.nestedFormSetFocusItem()")}}
+,isc.A.setCanvas=function isc_CanvasItem_setCanvas(_1){if(isc.isA.Canvas(this.canvas)&&this.canvas!=_1){this.ignore(this.canvas,"$lf");if(isc.isA.DynamicForm(this.canvas))this.ignore(this.canvas,"setFocusItem")}
 if(_1)this.canvas=_1;this.$18y()}
 ,isc.A.destroy=function isc_CanvasItem_destroy(){if(this.canvas){delete this.canvas.canvasItem;if(this.autoDestroy)this.canvas.destroy(true);else if(this.canvas.visibility!=isc.Canvas.HIDDEN)this.canvas.hide()}
 return this.Super("destroy",arguments)}
@@ -1819,16 +1869,18 @@
 ,isc.A.updateDisabled=function isc_CanvasItem_updateDisabled(){this.Super("updateDisabled",arguments);this.canvas.setDisabled(this.isDisabled())}
 ,isc.A.$173=function isc_CanvasItem__setElementTabIndex(_1){this.$182(_1)}
 ,isc.A.$182=function isc_CanvasItem__setCanvasTabIndex(_1){var _2=this.canvas;if(_2){_2.$rp();_2.$vk(_1,false)}}
-,isc.A.focusInItem=function isc_CanvasItem_focusInItem(){if(this.canvas)this.canvas.focus();return this.Super("focusInItem",arguments)}
+,isc.A.focusInItem=function isc_CanvasItem_focusInItem(_1){if(this.canvas){if(_1!=null){this.canvas.focusAtEnd(_1)}else{this.canvas.focus()}}
+return this.Super("focusInItem",arguments)}
 ,isc.A.blurItem=function isc_CanvasItem_blurItem(){if(this.canvas)this.canvas.blur();return this.Super("blurItem",arguments)}
-,isc.A.canvasFocusChanged=function isc_CanvasItem_canvasFocusChanged(){if(this.canvas.hasFocus)this.elementFocus();else this.elementBlur()}
+,isc.A.canvasFocusChanged=function isc_CanvasItem_canvasFocusChanged(){if(this.canvas.hasFocus){this.form.setFocusItem(this);this.elementFocus()}else this.elementBlur()}
+,isc.A.nestedFormSetFocusItem=function isc_CanvasItem_nestedFormSetFocusItem(){this.form.setFocusItem(this)}
 ,isc.A.hasAdvancedCriteria=function isc_CanvasItem_hasAdvancedCriteria(){return isc.isA.DynamicForm(this.canvas)}
 ,isc.A.canEditCriterion=function isc_CanvasItem_canEditCriterion(_1){if(isc.isA.DynamicForm(this.canvas)&&_1.operator==this.canvas.operator){for(var i=0;i<_1.criteria;i++){var _3=this.canvas.getItems(),_4;for(var _5=0;_5<_3.length;_5++){if(_3[_5].canEditCriterion(_1.criteria[i])){_4=true;break}}
 if(!_4)return false}
 return true}}
 ,isc.A.getCriterion=function isc_CanvasItem_getCriterion(){if(isc.isA.DynamicForm(this.canvas)){return this.canvas.getValuesAsAdvancedCriteria()}else return this.Super("getCriterion",arguments)}
 ,isc.A.setCriterion=function isc_CanvasItem_setCriterion(_1){if(isc.isA.DynamicForm(this.canvas)){this.canvas.setValuesAsCriteria(_1,true)}}
-);isc.B._maxIndex=isc.C+28;isc.CanvasItem.registerStringMethods({createCanvas:""});isc.ClassFactory.defineClass("TextItem","FormItem");isc.A=isc.TextItem;isc.A.DEFAULT="default";isc.A.UPPER="upper";isc.A.LOWER="lower";isc.A.$713={'0':{charFilter:"[0-9+\\-]"},'#':{charFilter:"[0-9]"},'9':{charFilter:"[0-9 ]"},'L':{charFilter:"[A-Za-z]"},'?':{charFilter:"[A-Za-z ]"},'a':{charFilter:"[0-9A-Za-z]"},'A':{charFilter:"[0-9A-Za-z]"},'C':{charFilter:"."}};isc.A=isc.TextItem.getPrototype();isc.A.width=150;isc.A.height=isc.Browser.isSafari?22:19;isc.A.textBoxStyle="textItem";isc.A.length=null;isc.A.canAutoComplete=true;isc.A.$183="TEXT";isc.A.$125=true;isc.A.$15i=true;isc.A.emptyStringValue=null;isc.A.redrawOnShowIcon=false;isc.A.clipValue=true;isc.A.$16b={onmousedown:(isc.Browser.isIE?function(){var _1=this,_2=isc.DynamicForm.$mu(_1),_3=_2.item;if(_3)_3.$179()}:null)};isc.A.printFullText=false;isc.A=isc.TextItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$186=[,"<INPUT TYPE=",," NAME='",,"' ID='",,"' handleNativeEvents=false"];isc.A.$14f=" TABINDEX=";isc.A.$oa=">";isc.A.$pi=" DISABLED ";isc.A.$187="native";isc.A.$188=" AUTOCOMPLETE=OFF ";isc.A.$14e=" ACCESSKEY=";isc.A.$19a=[" CLASS='",,"' STYLE='",,,,,,,,,,,,,,,,(isc.Browser.isMoz?"-moz-user-focus:":null),,"' "];isc.A.$93="WIDTH:";isc.A.$38="px;";isc.A.$92="HEIGHT:";isc.A.$14c="text-align:";isc.A.$39=";";isc.A.$19b="normal;";isc.A.$19c="ignore;";isc.A.$78v="margin-top:-1px;margin-bottom:-1px;";isc.A.applyStaticTypeFormat=false;isc.A.characterCasing=isc.TextItem.DEFAULT;isc.A.maskPadChar=" ";isc.A.maskPromptChar="_";isc.B.push(isc.A.$43h=function isc_TextItem__handleCutPaste(){if(this.changeOnKeypress)this.$18c()}
+);isc.B._maxIndex=isc.C+29;isc.CanvasItem.registerStringMethods({createCanvas:"",showValue:"displayValue,dataValue"});isc.ClassFactory.defineClass("TextItem","FormItem");isc.A=isc.TextItem;isc.A.DEFAULT="default";isc.A.UPPER="upper";isc.A.LOWER="lower";isc.A.$713={'0':{charFilter:"[0-9+\\-]"},'#':{charFilter:"[0-9]"},'9':{charFilter:"[0-9 ]"},'L':{charFilter:"[A-Za-z]"},'?':{charFilter:"[A-Za-z ]"},'a':{charFilter:"[0-9A-Za-z]"},'A':{charFilter:"[0-9A-Za-z]"},'C':{charFilter:"."}};isc.A=isc.TextItem.getPrototype();isc.A.width=150;isc.A.height=isc.Browser.isSafari?22:19;isc.A.textBoxStyle="textItem";isc.A.length=null;isc.A.canAutoComplete=true;isc.A.$183="TEXT";isc.A.$125=true;isc.A.$15i=true;isc.A.emptyStringValue=null;isc.A.redrawOnShowIcon=false;isc.A.clipValue=true;isc.A.$16b={onmousedown:(isc.Browser.isIE?function(){var _1=this,_2=isc.DynamicForm.$mu(_1),_3=_2.item;if(_3)_3.$179()}:null)};isc.A.printFullText=false;isc.A=isc.TextItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$186=[,"<INPUT TYPE=",," NAME='",,"' ID='",,"' handleNativeEvents=false"];isc.A.$14f=" TABINDEX=";isc.A.$oa=">";isc.A.$pi=" DISABLED ";isc.A.$187="native";isc.A.$188=" AUTOCOMPLETE=OFF ";isc.A.$14e=" ACCESSKEY=";isc.A.$19a=[" CLASS='",,"' STYLE='",,,,,,,,,,,,,,,,(isc.Browser.isMoz?"-moz-user-focus:":null),,"' "];isc.A.$93="WIDTH:";isc.A.$38="px;";isc.A.$92="HEIGHT:";isc.A.$14c="text-align:";isc.A.$39=";";isc.A.$19b="normal;";isc.A.$19c="ignore;";isc.A.$78v="margin-top:-1px;margin-bottom:-1px;";isc.A.applyStaticTypeFormat=false;isc.A.characterCasing=isc.TextItem.DEFAULT;isc.A.maskPadChar=" ";isc.A.maskPromptChar="_";isc.B.push(isc.A.$43h=function isc_TextItem__handleCutPaste(){if(this.changeOnKeypress)this.$18c()}
 ,isc.A.$429=function isc_TextItem__willHandleInput(){return!isc.Browser.isIE}
 ,isc.A.getTextBoxCellCSS=function isc_TextItem_getTextBoxCellCSS(){return this.$136}
 ,isc.A.getElementHTML=function isc_TextItem_getElementHTML(_1,_2){var _3=this.$xq(_2);if(this.showValueIconOnly)return _3;var _4;if(this.$68y()&&this.printFullText){_4=isc.StringBuffer.concat("<SPAN ",this.getElementStyleHTML(),">",_2==null?"&nbsp;":_2.asHTML(),"</SPAN>")}else{var _5=this.$186,_6=this.form,_7=_6.getID(),_8=this.getItemID();_5[0]=_3;_5[2]=this.$183;_5[4]=this.getElementName();_5[6]=this.getDataElementId();_5[8]=this.$155();if(isc.Browser.isMoz||isc.Browser.isSafari){if(this.getBrowserSpellCheck())_5[_5.length]=" spellcheck=true";else _5[_5.length]=" spellcheck=false"}
@@ -1945,7 +1997,7 @@
 break}}}}
 ,isc.A.$72k=function isc_TextItem__shiftMaskBufferRight(_1){for(var i=_1,c=this.maskPromptChar;i<this.$718;i++){var _4=this.$72i[i];if(_4){if(_4.casing){c=this.$72j(c,_4.casing)}
 var j=this.$72h(i);var t=this.$72l[i];this.$72l[i]=c;if(j<this.$718&&this.$72i[j].filter.test(t)){c=t}else{break}}}}
-);isc.B._maxIndex=isc.C+37;isc.ClassFactory.defineClass("BlurbItem","FormItem");isc.A=isc.BlurbItem.getPrototype();isc.A.shouldSaveValue=false;isc.A.height=null;isc.A.showTitle=false;isc.A.colSpan="*";isc.A.startRow=true;isc.A.endRow=true;isc.A.textBoxStyle="staticTextItem";isc.A.emptyDisplayValue="&nbsp;";isc.ClassFactory.defineClass("ButtonItem","CanvasItem");isc.A=isc.ButtonItem.getPrototype();isc.A.canFocus=true;isc.A.shouldSaveValue=false;isc.A.height=null;isc.A.width=null;isc.A.titleStyle=null;isc.A.showTitle=false;isc.A.startRow=true;isc.A.endRow=true;isc.A.buttonConstructor=isc.Button;isc.A.autoFit=true;isc.A.buttonDefaults={click:function(){return this.canvasItem.handleClick()},doubleClick:function(){return this.canvasItem.handleDoubleClick()},getTitle:function(){return this.canvasItem.getTitle()}};isc.A.autoDestroy=true;isc.A=isc.ButtonItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$19d={width:true,height:true,icon:true};isc.B.push(isc.A.getTitleHTML=function isc_ButtonItem_getTitleHTML(){return this.getTitle()}
+);isc.B._maxIndex=isc.C+37;isc.ClassFactory.defineClass("BlurbItem","FormItem");isc.A=isc.BlurbItem.getPrototype();isc.A.shouldSaveValue=false;isc.A.height=null;isc.A.showTitle=false;isc.A.colSpan="*";isc.A.startRow=true;isc.A.endRow=true;isc.A.textBoxStyle="staticTextItem";isc.A.emptyDisplayValue="&nbsp;";isc.ClassFactory.defineClass("ButtonItem","CanvasItem");isc.A=isc.ButtonItem.getPrototype();isc.A.canFocus=true;isc.A.shouldSaveValue=false;isc.A.height=null;isc.A.width=null;isc.A.titleStyle=null;isc.A.showTitle=false;isc.A.startRow=true;isc.A.endRow=true;isc.A.buttonConstructor=isc.Button;isc.A.autoFit=true;isc.A.buttonDefaults={getTitle:function(){return this.canvasItem.getTitle()}};isc.A.autoDestroy=true;isc.A=isc.ButtonItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$19d={width:true,height:true,icon:true};isc.B.push(isc.A.getTitleHTML=function isc_ButtonItem_getTitleHTML(){return this.getTitle()}
 ,isc.A.setTitle=function isc_ButtonItem_setTitle(_1){this.title=_1;if(this.canvas)this.canvas.setTitle(_1)}
 ,isc.A.$18y=function isc_ButtonItem__createCanvas(){var _1={canFocus:this.$kk(),disabled:this.isDisabled(),width:this.width};if(this.height!=null)_1.height=this.height;if(this.icon)_1.icon=this.icon;if(this.titleStyle)_1.titleStyle=this.titleStyle;if(this.baseStyle)_1.baseStyle=this.baseStyle;if(this.autoFit!=null)_1.autoFit=this.autoFit;this.canvas=this.createAutoChild("button",_1,this.buttonConstructor);this.Super("$18y",arguments)}
 ,isc.A.$602=function isc_ButtonItem__setCanvasSize(_1,_2,_3,_4){if(_1==null&&_2==null)return;return this.invokeSuper(isc.ButtonItem,"$602",_1,_2,_3,_4)}
@@ -2026,18 +2078,19 @@
 return true},getFirstOptionValue:function(){var _1;if(this.$19m()){var _2=this.pickList||(this.reusePickList()?this.getSharedPickList():null);if(_2&&!this.$61x(_2)){var _3=_2.data.get(0);if(_3==null||Array.isLoading(_3)){_1=null}else{_1=_3[this.getValueFieldName()]}}else{this.fetchData(null,null,true)}}else{var _4=this.valueMap;if(isc.isAn.Array(_4))_1=_4[0];else if(isc.isAn.Object(_4)){for(var _5 in _4){_1=_5;break}}}
 return _1},getClientPickListData:function(){return isc.PickList.optionsFromValueMap(this)},$19h:function(){if(this.pickListHidden)this.pickListHidden()},$19j:function(){if(this.pickListShown)this.pickListShown()},selectDefaultItem:function(){return this.selectItemFromValue(this.getValue())},selectItemFromValue:function(_1){if(!isc.isAn.Array(_1))_1=[_1];var _2=this.pickList.getSelection(),_3=this.getValueFieldName(),_4=true,_5;for(var i=0;i<_1.length;i++){var _7=_1[i],_8;if(_2.find(_3,_7))continue;var _9=this.pickList.getData();if(isc.ResultSet&&isc.isA.ResultSet(_9)){var _10=_9.localData;if(_10)_8=_10.find(_3,_7)}else{_8=_9.find(_3,_7)}
 if(_8&&_8!=Array.LOADING){if(this.pickList.allowMultiSelect)this.pickList.selectRecord(_8);else this.pickList.selection.selectSingle(_8);_5=_9.indexOf(_8)}else{_4=false}}
-if(_5!=null)this.pickList.scrollRecordIntoView(_5);return _4},filterComplete:function(_1,_2,_3){if(_3!=null&&_3.clientContext!=null){var _4=this.$84p,_5=_3.clientContext.fetchID;if(_4==null||_4<_5){this.$84p=_5}else{this.logWarn("Server returned out of order responses for databound fetch requests."+" Ignoring superceded request results");return}}
-this.$43j=false;this.$82n(_1,_2,_3);this.$82o(_1,_2,_3);var _6=(_3&&_3.clientContext?_3.clientContext.$03:null);if(_6){this.fireCallback(_6,"item,dsResponse,data,dsRequest",[this,_1,_2,_3])}},$82n:function(_1,_2,_3){var _4=this.pickList;if(!_4||_4.destroyed)return;var _5=_4.hasFocus||(_4.body&&_4.body.hasFocus);var _2=_4.getData();if(_2.getLength()==0&&_4.isVisible()&&_4.isDrawn()){if(this.hideEmptyPickList){_4.hide();if(_5)this.focusInItem()}else{var _6=this.getPickListPosition();if(this.allowPickListToClip)_4.setRect([_6[0],_6[1]]);else _4.placeNear(_6[0],_6[1])}}else{if(this.$19i)this.$19l();else if(_4.isVisible()&&_4.isDrawn())this.placePickList();delete this.$19i}},$82o:function(_1,_2,_3){this.selectDefaultItem();if(this.$43k){delete this.$43k;this.$43f(this._value)}
+if(_5!=null)this.pickList.scrollRecordIntoView(_5);return _4},filterComplete:function(_1,_2,_3,_4){if(!_4&&_3!=null&&_3.clientContext!=null){var _5=this.$84p,_6=_3.clientContext.fetchID;if(_5==null||_5<_6){this.$84p=_6}else{this.logWarn("Server returned out of order responses for databound fetch requests."+" Ignoring superceded request results");return}}
+this.$43j=false;this.$82n(_1,_2,_3);this.$82o(_1,_2,_3);var _7=(_3&&_3.clientContext?_3.clientContext.$03:null);if(_7){this.fireCallback(_7,"item,dsResponse,data,dsRequest",[this,_1,_2,_3])}},$82n:function(_1,_2,_3){var _4=this.pickList;if(!_4||_4.destroyed)return;var _5=_4.hasFocus||(_4.body&&_4.body.hasFocus);var _2=_4.getData();if(_2.getLength()==0&&_4.isVisible()&&_4.isDrawn()){if(this.hideEmptyPickList){_4.hide();if(_5)this.focusInItem()}else{var _6=this.getPickListPosition();if(this.allowPickListToClip)_4.setRect([_6[0],_6[1]]);else _4.placeNear(_6[0],_6[1])}}else{if(this.$19i)this.$19l();else if(_4.isVisible()&&_4.isDrawn())this.placePickList();delete this.$19i}},$82o:function(_1,_2,_3){this.selectDefaultItem();if(this.$43k){delete this.$43k;this.$43f(this._value)}
 this.$19v()},$19v:function(){if(this.isDrawn()&&this.getValueFieldName()!=null&&this.$19m())
 {if(this.isA("ComboBoxItem")){if(this.addUnknownValues==true){this.updateValue()}
 if(this.hasFocus)return}
 var _1;if(!this.$10v())_1=this.getValue();else{if(this.isA("SelectItem"))_1=this.$19w;else _1=this.mapDisplayToValue(this.getElementValue())}
-var _2=this.getSelectedRecord();if(_2){var _3=this.mapValueToDisplay(_1);if(this.$19z!=_3){this.setElementValue(_3)}}}},$84q:0,filterDataBoundPickList:function(_1,_2){if(isc.$cv)arguments.$cw=this;var _3=this.getPickListFilterCriteria(),_4={textMatchStyle:this.textMatchStyle,fetchID:this.$84q++,showPrompt:false};if(this.optionFilterContext!=null)isc.addProperties(_4,this.optionFilterContext);if(this.optionOperationId!=null)_4.operationId=this.optionOperationId;if(_1!=null){isc.addProperties(_4,_1)}
-var _5=false;var _6=this.pickList.originalData||this.pickList.data;if(_6&&isc.ResultSet&&isc.isA.ResultSet(_6)){if(_2){_6.$394()}else if(_6.lengthIsKnown()&&(_6.getLength()==0||_6.rowIsLoaded(0))&&!_6.willFetchData(_3,this.textMatchStyle))
-{_5=true}}
-this.pickList.filterData(_3,{target:this,methodName:"filterComplete"},_4);if(_5&&this.pickList.data.getLength()>0&&!this.pickList.data.rowIsLoaded(0))
-{this.logInfo("filterData with new criteria caused async fetch even though "+"data.willFetchData() returned false.","pickListFilter");_5=false}
-if(_5)this.filterComplete();else this.$43j=true},handleDataArrived:function(_1,_2,_3){if(this.defaultToFirstOption&&this.getValue()==null&&_1==0){this.setToDefaultValue()}
+var _2=this.getSelectedRecord();if(_2){var _3=this.mapValueToDisplay(_1);if(this.$19z!=_3){this.setElementValue(_3)}}}},$84q:0,filterDataBoundPickList:function(_1,_2){if(isc.$cv)arguments.$cw=this;var _3=this.getPickListFilterCriteria(),_4={textMatchStyle:this.textMatchStyle,showPrompt:false};if(this.optionFilterContext!=null)isc.addProperties(_4,this.optionFilterContext);if(this.optionOperationId!=null)_4.operationId=this.optionOperationId;if(_1!=null){isc.addProperties(_4,_1)}
+var _5=false,_6=false;var _7=this.pickList.originalData||this.pickList.data;if(_7&&isc.ResultSet&&isc.isA.ResultSet(_7)){if(_2){_7.$394()}else{if(!_7.willFetchData(_3,this.textMatchStyle)){if(!_7.lengthIsKnown()||(_7.getLength()!=0&&!_7.rowIsLoaded(0))){_5=true;if(this.pickList.$85a!=this.getID()){if(!this.isObserving(_7,"fetchRemoteDataReply")){this.observe(_7,"fetchRemoteDataReply","observer.$85b(observed, dsResponse, data, request)");this.$85c=_7.$39v}}}else{_6=true}}}
+if(!_5){_4.fetchID=this.$84q++;if(this.isObserving(_7,"fetchRemoteDataReply")){this.ignore(_7,"fetchRemoteDataReply")}}}
+this.pickList.filterData(_3,{target:this,methodName:"filterComplete"},_4);if(_6&&this.pickList.data.getLength()>0&&!this.pickList.data.rowIsLoaded(0))
+{this.logInfo("filterData with new criteria caused async fetch even though "+"data.willFetchData() returned false.","pickListFilter");_6=false}
+if(_6)this.filterComplete();else{this.$43j=true;if(!_5){this.pickList.$85a=this.getID()}}},$85b:function(_1,_2,_3,_4){if(this.$85c!=_4.clientContext.requestIndex){return}
+this.ignore(_1,"fetchRemoteDataReply");this.filterComplete(_2,_3,_4,true)},handleDataArrived:function(_1,_2,_3){if(this.defaultToFirstOption&&this.getValue()==null&&_1==0){this.setToDefaultValue()}
 this.$19v();if(this.dataArrived)this.dataArrived(_1,_2,_3)},dataArrived:function(_1,_2,_3){},textMatchStyle:"startsWith",$19q:"substring",separatorRows:[{isSeparator:true}],filterClientPickListData:function(){var _1=this.getClientPickListData();var _2=this.getPickListFilterCriteria();if(_2==null||isc.isA.emptyObject(_2))return _1;var _3=[],_4;if(this.showAllOptions)_4=this.separatorRows.duplicate();var _5=false;for(var _6 in _2){var _7=_2[_6];if(!_7||isc.isA.emptyString(_7))continue;_5=true;if(!isc.isAn.Array(_7))_7=[_7];for(var _8=0;_8<_7.length;_8++){var _9=_7[_8];if(!isc.isA.String(_9))_9+=isc.emptyString;_9=_9.toLowerCase();var _10=_1.getLength(),_11=this.getValueFieldName();for(var i=0;i<_10;i++){var _13=_1[i][_6];if(this.filterDisplayValue&&_6==_11){_13=this.mapValueToDisplay(_13)}
 if(!isc.isA.String(_13))_13+="";_13=_13.toLowerCase();if((this.textMatchStyle==this.$19q&&!_13.contains(_9))||(this.textMatchStyle!=this.$19q&&!isc.startsWith(_13,_9)))
 {if(this.showAllOptions)_4.add(_1[i])}else{_3.add(_1[i])}}}}
@@ -2128,7 +2181,7 @@
 ,isc.A.$17b=function isc_SelectItem__mapKey(_1,_2,_3,_4,_5,_6){var _7=this.invokeSuper(isc.SelectItem,"$17b",_1,true,_3,_4,_5,_6);if(_7==null&&this.getDisplayFieldName()!=null)
 _7=this.$19o(_1,false);if(_7==null&&!_2)_7=_1;return _7}
 ,isc.A.$43f=function isc_SelectItem__checkForDisplayFieldValue(_1,_2){var _3=(this.$17b(_1,true)!=null);if(_3)return;if(this.$43j){this.$43k=true;return}
-this.invokeSuper(isc.ComboBoxItem,"$43f",_1)}
+this.invokeSuper(isc.SelectItem,"$43f",_1)}
 ,isc.A.getClientPickListData=function isc_SelectItem_getClientPickListData(){if(this.$192)return this.$192;var _1=isc.PickList.optionsFromValueMap(this),_2=this.getValueFieldName();if(this.allowEmptyValue&&(_1.find(_2,null)==null)){var _3={};_3[_2]=null;_1.addAt(_3,0)}
 var _4=this.getValue();if(_4!=null&&!isc.isAn.Array(_4)&&_1.find(_2,_4)==null){var _5={};_5[_2]=_4;_1.addAt(_5,0)}
 if(this.isSelectOther){var _6={},_7={};_6[_2]=this.separatorValue;_7[_2]=this.otherValue;_1.addListAt([_6,_7],_1.length)}
@@ -2283,7 +2336,7 @@
 if(isc.isA.String(_6)&&_7){_6=_6.asHTML()}
 return _6}
 ,isc.A.isEditable=function isc_StaticTextItem_isEditable(){return false}
-);isc.B._maxIndex=isc.C+2;isc.ClassFactory.defineClass("LinkItem","StaticTextItem");isc.A=isc.LinkItem.getPrototype();isc.A.wrap=false;isc.A.canFocus=true;isc.A=isc.LinkItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$14g=["<DIV ID='",,"' "+isc.DynamicForm.$89+"='",,"' "+isc.DynamicForm.$9a+"='"+isc.DynamicForm.$9c,"' CLASS='",,"' STYLE='",,"' onclick='if(window.",,") return ",,".$30i(event);","'>",,"</DIV>"];isc.B.push(isc.A.$15m=function isc_LinkItem__writeOutFocusProxy(){return false}
+);isc.B._maxIndex=isc.C+2;isc.ClassFactory.defineClass("LinkItem","StaticTextItem");isc.A=isc.LinkItem.getPrototype();isc.A.wrap=false;isc.A.canFocus=true;isc.A=isc.LinkItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$14g=["<DIV ID='",,"' "+isc.DynamicForm.$89+"='",,,"' CLASS='",,"' STYLE='",,"'>",,"</DIV>"];isc.B.push(isc.A.$15m=function isc_LinkItem__writeOutFocusProxy(){return false}
 ,isc.A.$20i=function isc_LinkItem__getLinkElement(){if(!this.isDrawn())return null;return(isc.Element.get(this.getID()+"$20j"))}
 ,isc.A.getFocusElement=function isc_LinkItem_getFocusElement(){return this.$20i()}
 ,isc.A.$30i=function isc_LinkItem__linkClicked(_1){var _2=(this.destroyed||!this.isDrawn()||!this.isVisible());if(!_2){_2=isc.EH.targetIsMasked(this.containerWidget);if(_2&&(this.form!=this.containerWidget)){_2=isc.EH.targetIsMasked(this.form)}}
@@ -2291,10 +2344,9 @@
 if(_2){if(!isc.Browser.isIE){_1.preventDefault()}
 return false}
 return true}
-,isc.A.getElementHTML=function isc_LinkItem_getElementHTML(_1){var _2=this.getLinkHTML(_1);var _3=this.$14g;_3[1]=this.$15g();_3[3]=this.getID();_3[6]=this.getTextBoxStyle();_3[8]=this.getTextBoxCSS();_3[10]=this.getID();_3[12]=this.getID();_3[15]=_2;return _3.join(isc.emptyString)}
+,isc.A.getElementHTML=function isc_LinkItem_getElementHTML(_1){var _2=this.getLinkHTML(_1);var _3=this.$14g;_3[1]=this.$15g();_3[3]=this.getID();_3[6]=this.getTextBoxStyle();_3[8]=this.getTextBoxCSS();_3[10]=_2;return _3.join(isc.emptyString)}
 ,isc.A.getLinkHTML=function isc_LinkItem_getLinkHTML(_1){var _2=this.$xq(this._value);if(this.showValueIconOnly)return _2;if(_1!=null)_1=isc.iscToLocaleString(_1);if(_1==null)_1=isc.emptyString;var _3=this.linkTitle;if(_3==null)_3=_1;var _4=this.target;if(_4=="javascript"){_1="javascript:void"}
-_1=isc.Canvas.linkHTML(_1,_3,_4,(this.getID()+"$20j"),this.getGlobalTabIndex(),this.accessKey)
-if(_2!=null)_1=_2+_1;return _1}
+_1=isc.Canvas.linkHTML(_1,_3,_4,(this.getID()+"$20j"),this.getGlobalTabIndex(),this.accessKey," onclick='if(window."+this.getID()+") return "+this.getID()+".$30i(event);' "+isc.DynamicForm.$9a+"='"+isc.DynamicForm.$9c+"'");if(_2!=null)_1=_2+_1;return _1}
 ,isc.A.setElementValue=function isc_LinkItem_setElementValue(_1){if(this.isDrawn()){var _2=this.$15h();if(_2)_2.innerHTML=this.getLinkHTML(_1);this.$159()}}
 ,isc.A.setLinkTitle=function isc_LinkItem_setLinkTitle(_1){this.linkTitle=_1;this.redraw()}
 );isc.B._maxIndex=isc.C+8;isc.ClassFactory.defineClass("PasswordItem","TextItem");isc.A=isc.PasswordItem.getPrototype();isc.A.$183="PASSWORD";isc.ClassFactory.defineClass("RadioGroupItem","ContainerItem");isc.A=isc.RadioGroupItem.getPrototype();isc.A.itemHeight=20;isc.A.vertical=true;isc.A.prompt=null;isc.A.textBoxStyle="labelAnchor";isc.A=isc.RadioGroupItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.init=function isc_RadioGroupItem_init(){if(this.disabledValues!=null){this.$821={};for(var i=0;i<this.disabledValues.length;i++){var _2=this.disabledValues[i];this.$821[_2]=true}}
@@ -2527,7 +2579,8 @@
 ,isc.A.setElementValue=function isc_UploadItem_setElementValue(_1){if(_1==null||isc.isAn.emptyString(_1)){if(isc.Browser.isIE){this.redraw();return}
 return this.Super("setElementValue",arguments)}
 this.logInfo("Attempting to set the value for an upload form item. This is disallowed "+"for security reasons - returning the current value of the form item");return this.getElementValue()}
-);isc.B._maxIndex=isc.C+7;if(isc.Browser.isSafari){isc.A=isc.UploadItem.getPrototype();isc.A.colSpan="*";isc.A.startRow=true;isc.A.endRow=true;isc.A.width=300}
+,isc.A.refreshDisplayValue=function isc_UploadItem_refreshDisplayValue(){}
+);isc.B._maxIndex=isc.C+8;if(isc.Browser.isSafari){isc.A=isc.UploadItem.getPrototype();isc.A.colSpan="*";isc.A.startRow=true;isc.A.endRow=true;isc.A.width=300}
 isc.defineClass("ComboBoxItem","TextItem","PickList");isc.A=isc.ComboBoxItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoSizePickList=true;isc.A.showPickerIcon=true;isc.A.pickerIconWidth=15;isc.A.pickerIconSrc="[SKIN]/DynamicForm/ComboBoxItem_PickButton_icon.gif";isc.A.pickerIconProperties={tabIndex:-1,showOver:true};isc.A.modalPickList=false;isc.A.showPickListOnKeypress=true;isc.A.$20s="Arrow_Up";isc.A.$20t="Arrow_Down";isc.A.$20u="Page_Up";isc.A.$20v="Page_Down";isc.A.$20w="Escape";isc.A.$10j="Enter";isc.A.$jf="Tab";isc.A.addUnknownValues=true;isc.A.filterDisplayValue=true;isc.A.autoFetchData=false;isc.B.push(isc.A.drawn=function isc_ComboBoxItem_drawn(_1,_2,_3,_4){this.invokeSuper(isc.ComboBoxItem,"drawn",_1,_2,_3,_4);if(this.autoFetchData&&this.$19m()){this.filterWithValue=false;this.fetchData(null,null,true)}}
 ,isc.A.pickListShown=function isc_ComboBoxItem_pickListShown(){if(this.pickList.isVisible()){this.$20x=this.ns.Page.setEvent("mouseDown",this,null,"$20y")}}
 ,isc.A.$20y=function isc_ComboBoxItem__clickOutside(){var _1=this.pickList;if(!_1||!_1.isVisible())return;var _2=isc.EH.lastEvent.target;if(!_1.contains(_2,true))_1.hide();if(!this.$43l){this.$43l=this.ns.Page.setEvent("mouseUp",this,isc.Page.FIRE_ONCE,"$20z")}
@@ -2573,14 +2626,15 @@
 ,isc.A.$82u=function isc_ComboBoxItem__markNotPending(){if(!this.$82t)return;this.$82t=null;this.$824=null;this.updateState()}
 ,isc.A.getTextBoxStyle=function isc_ComboBoxItem_getTextBoxStyle(){if(this.pendingTextBoxStyle==null||!this.$82t||this.$68y()){return this.Super("getTextBoxStyle",arguments)}
 return this.pendingTextBoxStyle}
-,isc.A.$10y=function isc_ComboBoxItem__updateValue(_1,_2){var _3=!_2&&!this.$201&&this.addUnknownValues==false;if(!_3){this.explicitChoice=this.$201;this.$82u();return this.Super("$10y",arguments)}else{this.refreshPickList(_1)}}
+,isc.A.$10y=function isc_ComboBoxItem__updateValue(_1,_2){var _3=!_2&&!this.$201&&this.addUnknownValues==false;if(!_3){this.$82u();var _4=this.mapDisplayToValue(_1);if(this.compareValues(_4,this._value)){return true}
+this.explicitChoice=this.$201;return this.Super("$10y",arguments)}else{this.refreshPickList(_1)}}
 ,isc.A.handleChanged=function isc_ComboBoxItem_handleChanged(_1,_2){var _3=this.Super("handleChanged",arguments);this.refreshPickList(this.getEnteredValue());return _3}
 ,isc.A.refreshPickList=function isc_ComboBoxItem_refreshPickList(_1){var _2=(!_1||_1==isc.emptyString);if(!_2)delete this.$200;var _3=this.pickList,_4=(_3?_3.isVisible():false);if(_2&&!this.$200){if(_4)_3.hide()}else if(this.showPickListOnKeypress||_4){if(!this.$201&&this.hasFocus){if(!this.filterWithValue&&(this.$84k!=_1)){this.filterWithValue=true;delete this.$84k}
 this.showPickList(true,true)}}}
 ,isc.A.selectDefaultItem=function isc_ComboBoxItem_selectDefaultItem(){if(this.pickList==null||this.pickList.destroyed)return;var _1=this.pickList.selection;if(this.pickList.selection.anySelected()){if(this.optionDataSource){var _2=this.getSelectedRecord();if(_2){this.pickList.clearLastHilite();this.delayCall("selectItemFromValue",[_2[this.valueField]])}}
 return}
 var _2=this.pickList.getRecord(0);if(_2==null||Array.isLoading(_2)||_2[this.pickList.isSeparatorProperty])return;_1.selectSingle(_2);this.pickList.clearLastHilite();this.pickList.scrollRecordIntoView(0)}
-,isc.A.getSelectedRecord=function isc_ComboBoxItem_getSelectedRecord(){var _1=this.Super("getSelectedRecord",arguments);if(_1==null&&this._value!=null&&this.getOptionDataSource()){if(this.pickList==null||this.pickList.destroyed)this.makePickList(false);if(this.pickList&&this.pickList.data){_1=this.pickList.data.find(this.getValueFieldName(),this._value);if(_1!=null)this.$78x(_1)}}
+,isc.A.getSelectedRecord=function isc_ComboBoxItem_getSelectedRecord(){var _1=this.Super("getSelectedRecord",arguments);if(_1==null&&this._value!=null&&this.getOptionDataSource()){if(this.pickList==null||this.pickList.destroyed)this.makePickList(false);if(this.pickList&&this.pickList.data){_1=this.pickList.data.find(this.getValueFieldName(),this._value);if(_1!=null){this.$848([_1]);this.$846()}}}
 return _1}
 ,isc.A.getPickListFilterOperator=function isc_ComboBoxItem_getPickListFilterOperator(){return(this.textMatchStyle=="startsWith"?"iStartsWith":this.textMatchStyle=="exact"?"iEquals":"iContains")}
 ,isc.A.getPickListFilterCriteria=function isc_ComboBoxItem_getPickListFilterCriteria(){var _1=this.optionCriteria,_2=this.pickListCriteria;if(_2!=null){if(_1==null)_1=_2;else{_1=isc.DataSource.combineCriteria(_1,_2)}}
@@ -2589,7 +2643,7 @@
 for(var i=0;i<_3.length;i++){_5.criteria.add({fieldName:_3[i],value:_4,operator:this.getPickListFilterOperator()})}}
 if(_1==null)_1=_5;else _1=isc.DataSource.combineCriteria(_1,_5)}
 return _1||{}}
-,isc.A.$82j=function isc_ComboBoxItem__refreshForFetchedValue(_1){return this.Super("$82j",arguments)&&!this.hasFocus}
+,isc.A.$849=function isc_ComboBoxItem__refreshForDisplayValueChange(){return!this.hasFocus}
 ,isc.A.elementBlur=function isc_ComboBoxItem_elementBlur(){this.Super("elementBlur",arguments);var _1=this.pickList,_2=isc.EH,_3=_2.lastEvent;if(this.$84z()||(isc.Browser.isIE&&this.getActiveElement()==this.getDataElement()))
 {return}
 delete this.$19i;delete this.$43i;if(!_1||!_1.isVisible()||_1.formItem!=this)return;_1.hide()}
@@ -2874,11 +2928,13 @@
 this.rememberValues()}
 ,isc.A.destroy=function isc_ValuesManager_destroy(){var _1=this.members;if(_1){for(var i=_1.length-1;i>=0;i--){this.removeMember(_1[i])}}
 window[this.getID()]=null}
+,isc.A.$49z=function isc_ValuesManager__saveDataReply(_1,_2,_3){if(!this.suppressServerDataSync&&_2&&_2.status>=0&&_3!=null){if(isc.isAn.Array(_3))_3=_3[0];if(_1.data)_1.data=isc.shallowClone(_1.data);this.setValues(_3)}
+this.$491={request:_1,response:_2,data:_3};this.formSavedComplete()}
 ,isc.A.$71e=function isc_ValuesManager__updateMultipleMemberValue(_1,_2,_3,_4){_2=(_2!=null)?this.$702(_1,_2):_1;return this.$10y(_2,_3,_4)}
 ,isc.A.$10y=function isc_ValuesManager__updateValue(_1,_2,_3){if(this.$835)return;if(isc.isA.DynamicForm(_3)&&_3.getItem(_1)==null){this.$66q(_3,_1);return}
 var _4;var _5=_3.getFullDataPath();if(isc.isA.String(_1)&&_1.startsWith(isc.Canvas.$70l)){_4=true}else if(_5){_1=(_1!=null)?this.$702(_5,_1):_5;_4=true}else{_4=_1.contains(isc.Canvas.$70l)}
 if(!_4){this.values[_1]=_2}else{isc.DynamicForm.$70n(_1,_2,this.values,_3,true)}
-if(_4){this.$835=true;var _6=_1.split(isc.Canvas.$70l);if(parseInt(_6[_6.length-1])==_6[_6.length-1]){for(var i=0;i<this.members.length;i++){if(this.members[i].selectionComponent==_3){this.$707(this.members[i])}}}else{var _8=this.getFieldsForDataPath(_1);for(var i=0;i<_8.length;i++){if(_8[i].form==_3)continue;_8[i].saveValue()}}
+if(_4){this.$835=true;var _6=_1.split(isc.Canvas.$70l);if(parseInt(_6[_6.length-1])==_6[_6.length-1]){for(var i=0;i<this.members.length;i++){if(this.members[i].selectionComponent==_3){this.$707(this.members[i])}}}else{var _8=this.getFieldsForDataPath(_1);for(var i=0;i<_8.length;i++){if(_8[i].form==_3)continue;_8[i].saveValue(_2)}}
 delete this.$835}}
 ,isc.A.$702=function isc_ValuesManager__combineDataPaths(_1,_2){return isc.DynamicForm.$702(_1,_2)}
 ,isc.A.$66q=function isc_ValuesManager__itemlessValueWarning(_1,_2){this.logWarn("Member Form: "+_1+" has explicitly specified value for field[s] '"+_2+"', but has"+" no item associated with this fieldName. Ignoring this value. "+"Values may be set for fields with no associated form item directly "+"on the valuesManager via valuesManager.setValues(), but not on "+"member forms. See ValuesManager documentation for more info.")}
@@ -2901,11 +2957,12 @@
 ,isc.A.getMembers=function isc_ValuesManager_getMembers(){return this.members}
 ,isc.A.getMember=function isc_ValuesManager_getMember(_1){var _2=window[_1];if(this.members&&this.members.contains(_2))return _2;return null}
 ,isc.A.getMemberForField=function isc_ValuesManager_getMemberForField(_1,_2){return this.$706(_1,false,_2)}
-,isc.A.$706=function isc_ValuesManager__findMemberByField(_1,_2,_3){if(!this.members||_1==null||isc.isAn.emptyString(_1))return null;_1=_1.trim(isc.Canvas.$70l);var _4=_1.split(isc.Canvas.$70l);var _5=_3?[]:null;for(var i=0;i<this.members.length;i++){var _7=this.members[i],_8=_7.getFullDataPath();if(_8==isc.Canvas.$70l||isc.isAn.emptyString(_8)){_8=null}else if(_8!=null){_8=_8.trim(isc.Canvas.$70l)}
-if(_4&&_4.length>0&&_8!=null){var _9=null;for(var _10=0;_10<_4.length;_10++){_9=!_9?_4[_10]:(_9+isc.Canvas.$70l+_4[_10]);if(_8.endsWith(isc.Canvas.$70l)){_8=_8.substring(0,_8.length-1)}
-if(_8==_9){if(!_2&&(_10==_4.length-1)){if(!_3)return _7;_5.add(_7);break}
-if(_7.getField){var _11=_4.slice(_10+1).join(isc.Canvas.$70l);var _12=_7.getField(_11);if(_12){if(_2){if(!isc.isA.FormItem(_12))_12=null;if(_3){if(_12)_5.add(_12)}else{return _12}}else{if(_3)_5.add(_7);else return _7}}}}}}else{if(_1.startsWith(isc.Canvas.$70l))_1=_1.substring(1);if(this.members[i].getItem){var _13=this.members[i].getField(_1);if(_13){if(_2){if(!isc.isA.FormItem(_13))_13=null;if(_3){if(_13)_5.add(_13)}else{return _13}}else{if(_3)_5.add(_7);else return _7}}}}}
-return _3?_5:null}
+,isc.A.$706=function isc_ValuesManager__findMemberByField(_1,_2,_3){if(!this.members||_1==null||isc.isAn.emptyString(_1))return null;var _4=_1.trim(isc.Canvas.$70l);var _5=_4.split(isc.Canvas.$70l);var _6=_3?[]:null;for(var i=0;i<this.members.length;i++){var _8=this.members[i],_9=_8.getFullDataPath();if(_9==isc.Canvas.$70l||isc.isAn.emptyString(_9)){_9=null}else if(_9!=null){_9=_9.trim(isc.Canvas.$70l)}
+if(_5&&_5.length>0&&_9!=null){var _10=null;for(var _11=0;_11<_5.length;_11++){_10=!_10?_5[_11]:(_10+isc.Canvas.$70l+_5[_11]);if(_9.endsWith(isc.Canvas.$70l)){_9=_9.substring(0,_9.length-1)}
+if(_9==_10){if(!_2&&(_11==_5.length-1)){if(!_3)return _8;_6.add(_8);break}
+if(_8.getField){var _12=_5.slice(_11+1).join(isc.Canvas.$70l);var _13=_8.getField(_12);if(_13){if(_2){if(!isc.isA.FormItem(_13))_13=null;if(_3){if(_13)_6.add(_13)}else{return _13}}else{if(_3)_6.add(_8);else return _8}}}}}}else{if(this.members[i].getItem){var _14=this.members[i].getField(_1);if(!_14){if(_1.startsWith(isc.Canvas.$70l)){_14=this.members[i].getField(_1.substring(1))}}
+if(_14){if(_2){if(!isc.isA.FormItem(_14))_14=null;if(_3){if(_14)_6.add(_14)}else{return _14}}else{if(_3)_6.add(_8);else return _8}}}}}
+return _3?_6:null}
 ,isc.A.getFileItemForm=function isc_ValuesManager_getFileItemForm(){if(!this.members)return;var _1=false,_2;for(var i=0;i<this.members.length;i++){if(this.members[i].getFileItemForm==null)continue;var _4=this.members[i].getFileItemForm();if(_4){if(_1){this.logWarn("ValuesManager defined with more than one member form "+" containing a FileItem. This is not supported - binary data may "+"only be uploaded from one FileItem when saving ValuesManager data")}else{_2=_4;_1=true}}}
 return _2}
 ,isc.A.validate=function isc_ValuesManager_validate(){if(this.disableValidation)return true;if(this.dataSource&&this.dataSource.useLocalValidators!=null&&this.useLocalValidators==false)return true;this.clearHiddenErrors();var _1=true,_2=this.dataSource?isc.addProperties({},this.getDataSource().getFields()):null,_3={},_4={},_5=false;this.buildDataPathsRecursively(_4,"",this.getDataSource());if(this.members){for(var i=0;i<this.members.length;i++){if(!isc.isA.DynamicForm(this.members[i]))continue;var _7=this.members[i],_8=_7.disableValidation,_9=this.members[i].getItems();if(!_8){if(_7.handleHiddenValidationErrors!=null){this.logInfo("form level 'handleHiddenValidationErrors' method suppressed "+"in favor of valuesManager level handler","validation");_7.$43q=_7.handleHiddenValidationErrors}
@@ -2920,7 +2977,9 @@
 if(!this.processValidator(_16,_18,_17,null,_13)){if(_14[_11]==null)_14[_11]=[];var _19=_18.errorMessage||this.unknownErrorMessage;_14[_11].add(_19)}}}
 if(_14[_11]&&_14[_11].length==1)_14[_11]=_14[_11][0]}
 this.addHiddenErrors(_14);this.$21z(true);if(isc.getKeys(_14).length>0)_1=false;return _1}
-,isc.A.buildDataPathsRecursively=function isc_ValuesManager_buildDataPathsRecursively(_1,_2,_3){if(!isc.isA.DataSource(_3))return;var _4=_3.getFields();for(var _5 in _4){_1[_2+_5]=_4[_5];if(_3.fieldIsComplexType(_5)){var _6=_3.getSchema(_4[_5].type);this.buildDataPathsRecursively(_1,_2+_5+isc.Canvas.$70l,_6)}}}
+,isc.A.buildDataPathsRecursively=function isc_ValuesManager_buildDataPathsRecursively(_1,_2,_3){if(!isc.isA.DataSource(_3))return;if(_3.$85e){this.logWarn("detected ds loop at: "+_2+", refusing to recurse further");return}
+_3.$85e=true;var _4=_3.getFields();for(var _5 in _4){_1[_2+_5]=_4[_5];if(_3.fieldIsComplexType(_5)){var _6=_3.getSchema(_4[_5].type);this.buildDataPathsRecursively(_1,_2+_5+isc.Canvas.$70l,_6)}}
+delete _3.$85e}
 ,isc.A.getValidatedValues=function isc_ValuesManager_getValidatedValues(){if(!this.validate())return null;return this.getValues()}
 ,isc.A.$43r=function isc_ValuesManager__handleHiddenFormErrors(_1){var _2=this.valuesManager;_2.addHiddenErrors(_1,this);return false}
 ,isc.A.clearHiddenErrors=function isc_ValuesManager_clearHiddenErrors(){delete this.hiddenErrors}
@@ -2989,12 +3048,12 @@
 this.$708(this.$10s,_1,null,true);return this.$10s}
 ,isc.A.getOldValues=function isc_ValuesManager_getOldValues(){var _1={};isc.addProperties(_1,this.$10s);return _1}
 ,isc.A.getChangedValues=function isc_ValuesManager_getChangedValues(){return this.valuesHaveChanged(true)}
-,isc.A.$708=function isc_ValuesManager__cloneValues(_1,_2,_3,_4){if(isc.isAn.Array(_2)){for(var i=0;i<_2.length;i++){var _6=_2[i];if(isc.isA.Function(_6))continue;if(isc.isAn.Instance(_2[_9])||isc.isA.Class(_2[_9]))continue;if(_6==null||isc.isA.String(_6)||isc.isA.Boolean(_6)||isc.isA.Number(_6))
+,isc.A.$708=function isc_ValuesManager__cloneValues(_1,_2,_3,_4){if(_2==null)return;if(isc.isAn.Array(_2)){for(var i=0;i<_2.length;i++){var _6=_2[i];if(isc.isA.Function(_6))continue;if(isc.isAn.Instance(_2[_9])||isc.isA.Class(_2[_9]))continue;if(_6==null||isc.isA.String(_6)||isc.isA.Boolean(_6)||isc.isA.Number(_6))
 {_1[_1.length]=_6}else if(isc.isA.Date(_6)){_1[_1.length]=new Date(_6.getTime())}else if(isc.isA.Object(_6)){var _7;if(isc.isAn.Array(_6)){_7=_1[_1.length]=[]}else{_7=_1[_1.length]={}}
 this.$708(_7,_6,(_4?_3:null),_4)}}
 return}
 if(_2.$42c!=null){_2=isc.JSONEncoder.$42b(_2)}
-var _8="__ref";for(var _9 in _2){if(isc.isA.Function(_2[_9]))continue;if(_9==_8)continue;if(isc.isAn.Instance(_2[_9])||isc.isA.Class(_2[_9]))continue;var _10;if(_4){if(_3){_10=_3+_9}else{_10=_9}
+var _8={__ref:true,$81y:true,$29a:true};for(var _9 in _2){if(isc.isA.Function(_2[_9]))continue;if(_8[_9]==true)continue;if(isc.isAn.Instance(_2[_9])||isc.isA.Class(_2[_9]))continue;var _10;if(_4){if(_3){_10=_3+_9}else{_10=_9}
 var _11=this.getItem(_10);if(_11&&_11.isSetToDefaultValue()){this.$10t.add(_10)}}
 var _12=_2[_9];if(isc.isA.Date(_12)){_1[_9]=_12.duplicate()}else if(isc.isAn.Object(_12)&&!isc.isAn.Array(_12)){_1[_9]={};this.$708(_1[_9],_12,_4?(_10+isc.Canvas.$70l):null,_4)}else if(isc.isAn.Array(_12)){_1[_9]=[];this.$708(_1[_9],_12,_4?(_10+isc.Canvas.$70l):null,_4)}else{_1[_9]=_2[_9]}}}
 ,isc.A.resetValues=function isc_ValuesManager_resetValues(){var _1={};for(var _2 in this.$10s){if(this.$10t.contains(_2))continue;if(isc.isA.Date(this.$10s[_2])){var _3=this.getValue(_2);if(isc.isA.Date(_3)){_3.setTime(this.$10s[_2].getTime())
@@ -3006,7 +3065,7 @@
 if(!_3){if(_2===_5){isc.DynamicForm.$70m(_1,this.values)}else{isc.DynamicForm.$70n(_1,_2,this.values)}}
 var _9=this.$706(_1,false,true);if(_9){for(var i=0;i<_9.length;i++){if(_4&&_4.setData){var _10=_1;if(_1.indexOf(isc.Canvas.$70l)!=-1){_10=_1.substring(0,_1.lastIndexOf(isc.Canvas.$70l));_4.setData(isc.DynamicForm.$70o(_10,this.values))}}}}}
 ,isc.A.clearValue=function isc_ValuesManager_clearValue(_1){this.setValue(_1)}
-,isc.A.addMember=function isc_ValuesManager_addMember(_1,_2){if(isc.isA.String(_1))_1=window[_1];if(!isc.isA.Canvas(_1)){this.logWarn("addMember() passed invalid object: "+this.echo(_1)+" - this should be a DynamicForm instance");return}
+,isc.A.addMember=function isc_ValuesManager_addMember(_1,_2){if(isc.isA.String(_1))_1=window[_1];if(!isc.isA.Canvas(_1)){this.logWarn("addMember() passed invalid object: "+this.echo(_1)+" - this should be a Canvas instance");return}
 if(_1.valuesManager!=null)_1.valuesManager.removeMember(_1);if(this.members==null)this.members=[];var _3=_1.getDataSource();if(_3!=null&&!_2&&_3!=this.getDataSource()){this.logWarn("addMember(): mismatched DataSources; new member form "+_1+" has dataSource: '"+_3.ID+"', valuesManager has DataSource "+(this.getDataSource()!=null?"'"+this.getDataSource().ID+"'":"[NONE]"))}
 if(this.getDataSource()!=null&&_1.isMultipart&&_1.isMultipart()&&_1.isMultipart())
 {this.logWarn("addMember(): new member form "+_1+" is flagged as using multipart encoding. Multipart forms require direct form "+"submission to transfer uploaded files to the server - any uploaded files from "+"this member form will be dropped when saving values from this ValuesManager to "+"the server.")}
@@ -3028,7 +3087,7 @@
 ,isc.A.$709=function isc_ValuesManager__findItemlessFormValues(_1,_2,_3,_4,_5){if(_2==null)_2=_1.getValues();if(_4==null)_4=[];for(var _6 in _2){var _7=_3?this.$702(_3,_6):_6;if(!_1.getItem(_7)){var _8=_2[_6];if(!isc.isAn.Object(_8)||isc.isA.Date(_8)||isc.isAn.Array(_8)){_4.add(_7);_1.clearValue(_7)}else{this.$709(_1,_8,_3,_4,true)}}}
 if(!_5&&_4.length>0){this.$66q(_1,_4)}}
 ,isc.A.addMembers=function isc_ValuesManager_addMembers(_1){if(!isc.isAn.Array(_1))this.addMember(_1);else{for(var i=0;i<_1.length;i++){this.addMember(_1[i])}}}
-,isc.A.removeMember=function isc_ValuesManager_removeMember(_1){if(isc.isA.String(_1)){_1=isc.Class.getArrayItem(_1,this.members);if(_1==null)return}else if(!this.members.contains(_1))return;this.members.remove(_1);delete _1.valuesManager}
+,isc.A.removeMember=function isc_ValuesManager_removeMember(_1){if(isc.isA.String(_1)){_1=isc.Class.getArrayItem(_1,this.members);if(_1==null)return}else if(this.members&&!this.members.contains(_1))return;if(this.members)this.members.remove(_1);delete _1.valuesManager}
 ,isc.A.removeMembers=function isc_ValuesManager_removeMembers(_1){if(!isc.isAn.Array(_1))this.removeMember(_1);else{for(var i=0;i<_1.length;i++){this.removeMember(_1[i])}}}
 ,isc.A.getPrintHTML=function isc_ValuesManager_getPrintHTML(){var _1=this.getValues(),_2=isc.StringBuffer.create();_2.append("<TABLE border=1><TR><TD align='center' style='font-weight:bold;'>Field</TD>","<TD align='center' style='font-weight:bold;'>Value</TD>");for(var _3 in _1){_2.append("<TR><TD>",_3,"</TD><TD>",_1[_3],"</TD></TR>")}
 _2.append("</TABLE>");return _2.toString()}
@@ -3037,7 +3096,7 @@
 return _4}
 if(isc.isA.DataBoundComponent(_1))_2.add(_1);var _5=_1.children;if(!_5)return _2;for(var i=0;i<_5.length;i++){var _1=_5[i];if(isc.isA.DataBoundComponent(_1))_2.add(_1);_2.addAll(this.getAllDBCs(_1))}
 return _2}
-);isc.B._maxIndex=isc.C+71;isc.ValuesManager.registerStringMethods({handleHiddenValidationErrors:"errors",submitValues:"values,valuesManager"});isc.ClassFactory.defineClass("RecordScrollbar","Scrollbar");isc.A=isc.RecordScrollbar.getPrototype();isc.A.position=0;isc.A=isc.RecordScrollbar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_RecordScrollbar_initWidget(){this.setData();this.Super(this.$oc);this.$210=true;this.moveThumb()}
+);isc.B._maxIndex=isc.C+72;isc.ValuesManager.registerStringMethods({handleHiddenValidationErrors:"errors",submitValues:"values,valuesManager"});isc.ClassFactory.defineClass("RecordScrollbar","Scrollbar");isc.A=isc.RecordScrollbar.getPrototype();isc.A.position=0;isc.A=isc.RecordScrollbar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_RecordScrollbar_initWidget(){this.setData();this.Super(this.$oc);this.$210=true;this.moveThumb()}
 ,isc.A.setData=function isc_RecordScrollbar_setData(_1){if(this.data!=null&&this.isObserving(this.data,"dataChanged")){this.ignore(this.data,"dataChanged")}
 if(_1!=null)this.data=_1;this.observe(this.data,"dataChanged","observer.setThumb()");this.setThumb()}
 ,isc.A.setThumb=function isc_RecordScrollbar_setThumb(){if(!this.$210)return;if(this.isDrawn()&&this.thumb.isDrawn())this.thumb.moveAbove(this);var _1=this.trackSize();if(this.data!=null&&this.data.getLength()>0){_1=_1/ this.data.getLength();_1=Math.max(this.thumbMinSize,Math.round(_1))}
@@ -3212,7 +3271,7 @@
 ,isc.A.setValue=function isc_ViewFileItem_setValue(_1){var _2=this.form,_3=_2.getValues();if(this.type=="imageFile"&&this.showFileInline!=false){this.canvas.setHeight("*");this.canvas.setWidth("*");this.canvas.setContents(this.getImageHTML()||"&nbsp;")}else{if(this.showFileInline==true){this.logWarn("setValue(): Unsupported field-type for showFileInline: "+this.type)}
 this.canvas.setHeight(20);this.canvas.setWidth("*");this.canvas.setContents(this.getViewDownloadHTML(_1,_3)||"&nbsp;")}
 this.Super("setValue",arguments)}
-,isc.A.getViewDownloadHTML=function isc_ViewFileItem_getViewDownloadHTML(_1,_2){if(isc.isA.String(_1))return _1;if(_2==null)return null;var _3=_2[this.name+"_filename"];if(_3==null||isc.isA.emptyString(_3))return this.emptyCellValue;var _4=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".viewFile()'");var _5=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".downloadFile()'");return"<nobr>"+_4+"&nbsp;"+_5+"&nbsp;"+_3+"</nobr>"}
+,isc.A.getViewDownloadHTML=function isc_ViewFileItem_getViewDownloadHTML(_1,_2){if(isc.isA.String(_1))return _1;if(_2==null)return null;var _3=this.nativeName||this.name,_4=_2[_3+"_filename"];if(_4==null||isc.isA.emptyString(_4))return this.emptyCellValue;var _5=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".viewFile()'");var _6=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".downloadFile()'");return"<nobr>"+_5+"&nbsp;"+_6+"&nbsp;"+_4+"</nobr>"}
 ,isc.A.getImageHTML=function isc_ViewFileItem_getImageHTML(){var _1=this.form.getValues(),_2=this.form.getField(this.name),_3=this.name+"$68c",_4;if(!_1[_3]){var _5=isc.Canvas.getFieldImageDimensions(_2,_1);_4=_1[_3]=isc.Canvas.imgHTML(this.form.getDataSource().streamFile(_1,_2.name),_5.width,_5.height)}else
 _4=_1[_3];return _4}
 ,isc.A.viewFile=function isc_ViewFileItem_viewFile(){isc.DS.get(this.form.dataSource).viewFile(this.form.getValues(),this.name)}
@@ -3301,35 +3360,16 @@
 if(this.form.saveProperties){this.form.saveProperties(this.dataPathProps,this.form.currentComponent)}}
 ,isc.A.clearFormValues=function isc_DataPathItem_clearFormValues(){for(var i=0;i<this.managedProperties.length;i++){this.form.setValue(this.managedProperties[i],null)}
 if(this.form.saveProperties){this.form.saveProperties(this.dataPathProps,this.form.currentComponent)}}
-);isc.B._maxIndex=isc.C+9;if(isc.ListGrid){isc.defineClass("RelativeDateItem","CanvasItem");isc.A=isc.RelativeDateItem;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.mapRelativeDateShortcut=function isc_c_RelativeDateItem_mapRelativeDateShortcut(_1,_2){switch(_1){case"$now":return"+0MS";case"$today":case"$startOfToday":return"-0D";case"$endOfToday":return"+0D";case"$yesterday":case"$startOfYesterday":return"-1D";case"$endOfYesterday":return"-1ms[-0D]";case"$tomorrow":if(_2=="end"){return"-1ms[+1D]"}else{return"+1ms[+1D]"}
-case"$startOfTomorrow":return"+1ms[D]";case"$endOfTomorrow":return"+1D";case"$startOfWeek":return"-0W";case"$endOfWeek":return"+0W";case"$startOfMonth":return"-0M";case"$endOfMonth":return"+0M";case"$startOfYear":return"-0Y";case"$endOfYear":return"+0Y"}
-return _1}
-,isc.A.getAbsoluteDate=function isc_c_RelativeDateItem_getAbsoluteDate(_1,_2,_3,_4){var _5=isc.RelativeDateItem,_6=_1,_7=new Date();if(_5.isRelativeDate(_1)){if(!_4)_4=_1.rangePosition;_1=_1.value}
-_6=_5.mapRelativeDateShortcut(_1,_4);var _8=_5.getRelativeDateParts(_6);var _9;_2=_2||new Date();_7.setTime(_2.getTime());if(_8.qualifier){_8.qualifier=_8.qualifier.toUpperCase();var _10=_5.getRelativeDateParts(_8.qualifier);var _11=["S","MN","H","D","W","M","Q","Y"];if(_11.contains(_10.period)){_7=_5.dateAdd(_7,_10.period,_10.countValue,(_10.direction=="+"?1:-1),_4)}else{isc.logWarn("Invalid date-offset qualifier provided: "+_10.period+".  Valid "+"options are: S, MN, H, D, W, M, Q and Y.")}}
-_9=_5.dateAdd(_7,_8.period,_8.countValue,(_8.direction=="+"?1:-1),_4);if(isc.isA.Date(_9)){if(_3&&!
+);isc.B._maxIndex=isc.C+9;if(isc.ListGrid){isc.defineClass("RelativeDateItem","CanvasItem");isc.A=isc.RelativeDateItem;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$85j={ms:"millisecond",s:"second",mn:"minute",h:"hour",d:"day",w:"week",m:"month",q:"quarter",y:"year",dc:"decade",c:"century"};isc.B.push(isc.A.getAbsoluteDate=function isc_c_RelativeDateItem_getAbsoluteDate(_1,_2,_3,_4){var _5=isc.DateUtil.getAbsoluteDate(_1,_2,_4);if(isc.isA.Date(_5)){if(_3&&!
 (isc.SimpleType.inheritsFrom(_3,"datetime")||isc.SimpleType.inheritsFrom(_3,"time")))
 {}}
-return _9}
-,isc.A.getRelativeDateParts=function isc_c_RelativeDateItem_getRelativeDateParts(_1){var _2=_1,_3=_2.substring(0,1),_4=_2.indexOf("["),_5=(_4>0?_2.substring(_4):null),_6=(_5!=null?_2.substring(1,_4):_2.substring(1)),_7=parseInt(_6),_8=_6.replace(_7,"");return{direction:(_3=="+"||_3=="-"?_3:"+"),qualifier:_5?_5.replace("[","").replace("]","").replace(",",""):null,countValue:isc.isA.Number(_7)?_7:0,period:_8?_8:_3}}
-,isc.A.isRelativeDate=function isc_c_RelativeDateItem_isRelativeDate(_1){if(isc.isA.Date(_1))return false;if(isc.isAn.Object(_1)&&_1._constructor=="RelativeDate")return true;return false}
-,isc.A.getPeriodName=function isc_c_RelativeDateItem_getPeriodName(_1){var _2=_1.toLowerCase();switch(_2){case"ms":return"Millisecond";case"s":return"Second";case"mn":return"Minute";case"h":return"Hour";case"d":return"Day";case"w":return"Week";case"m":return"Month";case"q":return"Quarter";case"y":return"Year";case"dc":return"Decade";case"c":return"Century"}}
-,isc.A.dateAdd=function isc_c_RelativeDateItem_dateAdd(_1,_2,_3,_4,_5){var _6=isc.RelativeDateItem,_7=_1;switch(_2){case"MS":case"ms":_7.setMilliseconds(_1.getMilliseconds()+(_3*_4));break;case"S":case"s":_7.setSeconds(_1.getSeconds()+(_3*_4));if(_2=="S"||_5=="end"){_7=_6.getEndOf(_7,"S");break}
-break;case"MN":case"mn":_7.setMinutes(_1.getMinutes()+(_3*_4));if(_2=="MN"||_5=="end"){_7=_6.getEndOf(_7,"MN");break}
-break;case"H":case"h":_7.setHours(_1.getHours()+(_3*_4));if(_2=="H"||_5=="end"){_7=_6.getEndOf(_7,"H");break}
-break;case"D":case"d":_7.setDate(_1.getDate()+(_3*_4));if(_2=="D"||_5=="end"){_7=_6.getEndOf(_7,"D")}else if(_5=="start"){_7=_6.getStartOf(_7,"D")}
-break;case"W":case"w":_7.setDate(_1.getDate()+((_3*7)*_4));if(_2=="W"||_5=="end"){_7=_6.getEndOf(_7,"W")}
-break;case"M":case"m":_7.setMonth(_1.getMonth()+(_3*_4));if(_2=="M"||_5=="end"){_7=_6.getEndOf(_7,"M")}
-break;case"Q":case"q":_7.setMonth(_1.getMonth()+((_3*3)*_4));if(_2=="Q"||_5=="end"){_7=_6.getEndOf(_7,"Q")}
-break;case"Y":case"y":_7.setFullYear(_1.getFullYear()+(_3*_4));if(_2=="Y"||_5=="end"){_7=_6.getEndOf(_7,"Y")}
-break;case"DC":case"dc":_7.setFullYear(_1.getFullYear()+((_3*10)*_4));if(_2=="DC"||_5=="end"){_7=_6.getEndOf(_7,"DC")}
-break;case"C":case"c":_7.setFullYear(_1.getFullYear()+((_3*100)*_4));if(_2=="C"||_5=="end"){_7=_6.getEndOf(_7,"C")}
-break}
-return _7}
-,isc.A.getStartOf=function isc_c_RelativeDateItem_getStartOf(_1,_2){var _3=_1;switch(_2){case"s":case"S":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),_3.getSeconds(),0);case"mn":case"MN":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),0,0);case"h":case"H":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),0,0,0);case"d":case"D":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),0,0,0,0);case"w":case"W":_3.setDate(_1.getDate()-_1.getDay());return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),0,0,0,0);case"m":case"M":return new Date(_1.getFullYear(),_1.getMonth(),1,0,0,0,0);case"q":case"Q":var _4=Math.floor((_1.getMonth()+1)/3)*3;return new Date(_1.getFullYear(),_4-1,1,0,0,0,0);case"y":case"Y":return new Date(_1.getFullYear(),0,1,0,0,0,0);case"dc":case"DC":var _5=Math.floor(_1.getFullYear()/10)*10;return new Date(_5,0,1,0,0,0,0);case"c":case"C":var _6=Math.floor(_1.getFullYear()/100)*100;return new Date(_6,0,1,0,0,0,0)}
-return _3}
-,isc.A.getEndOf=function isc_c_RelativeDateItem_getEndOf(_1,_2){var _3=_1;switch(_2){case"s":case"S":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),_3.getSeconds(),999);case"mn":case"MN":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),59,999);case"h":case"H":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),59,59,999);case"d":case"D":return new Date(_1.getFullYear(),_1.getMonth(),_1.getDate(),23,59,59,999);case"w":case"W":_3.setDate(_1.getDate()+(6-_1.getDay()));return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),23,59,59,999);case"m":case"M":_3=new Date(_1.getFullYear(),_1.getMonth()+1,1,23,59,59,999);_3.setDate(_3.getDate()-1);return _3;case"q":case"Q":var _4=Math.floor((_1.getMonth()+4)/3)*3;_3=new Date(_1.getFullYear(),_4,1,23,59,59,999);_3.setDate(_3.getDate()-1);return _3;case"y":case"Y":return new Date(_1.getFullYear(),11,31,23,59,59,999);case"dc":case"DC":var _5=((_1.getFullYear()/10)*10)+9;return new Date(_5,11,1,23,59,59,999);case"c":case"C":var _6=(Math.floor(_1.getFullYear()/100)*100)+99;return new Date(_6,11,1,23,59,59,999)}
-return _3}
-);isc.B._maxIndex=isc.C+8;isc.A=isc.RelativeDateItem.getPrototype();isc.A.height=20;isc.A.cellHeight=20;isc.A.canFocus=true;isc.A.timeUnitOptions=["day","week","month"];isc.A.todayTitle="Today";isc.A.millisecondsAgoTitle="N milliseconds ago";isc.A.secondsAgoTitle="N seconds ago";isc.A.minutesAgoTitle="N minutes ago";isc.A.hoursAgoTitle="N hours ago";isc.A.daysAgoTitle="N days ago";isc.A.weeksAgoTitle="N weeks ago";isc.A.monthsAgoTitle="N months ago";isc.A.yearsAgoTitle="N years ago";isc.A.millisecondsFromNowTitle="N milliseconds from now";isc.A.secondsFromNowTitle="N seconds from now";isc.A.minutesFromNowTitle="N minutes from now";isc.A.hoursFromNowTitle="N hours from now";isc.A.daysFromNowTitle="N days from now";isc.A.weeksFromNowTitle="N weeks from now";isc.A.monthsFromNowTitle="N months from now";isc.A.yearsFromNowTitle="N years from now";isc.A.defaultValue="$today";isc.A.operator="greaterThan";isc.A.presetOptions={"$today":"Today","$yesterday":"Yesterday","$tomorrow":"Tomorrow","-1w":"Current day of last week","+1w":"Current day of next week","-1m":"Current day of last month","+1m":"Current day of next month"};isc.A.valueFieldDefaults={type:"ComboBoxItem",name:"valueField",showTitle:false,shouldSaveValue:false,validateOnChange:false};isc.A.defaultQuantity=1;isc.A.quantityFieldDefaults={type:"SpinnerItem",name:"quantityField",width:60,min:0,step:1,showTitle:false,shouldSaveValue:false,selectOnFocus:true};isc.A.showChooserIcon=true;isc.A.pickerIconDefaults={name:"chooserIcon",showOver:false,showFocused:false,showFocusedWithItem:false,neverDisable:true,width:16,height:16,src:"[SKIN]/DynamicForm/DatePicker_icon.gif"};isc.A.iconVAlign="center";isc.A.pickerIconPrompt="Show Date Chooser";isc.A.pickerConstructor="DateChooser";isc.A.showCalculatedDateField=true;isc.A.calculatedDateFieldDefaults={type:"BlurbItem",name:"calculatedDateField",border:"1px solid black;",width:"*",startRow:false,showTitle:false,shouldSaveValue:false};isc.A.startDate=isc.DateItem.DEFAULT_START_DATE;isc.A.endDate=isc.DateItem.DEFAULT_END_DATE;isc.A.centuryThreshold=isc.DateItem.DEFAULT_CENTURY_THRESHOLD;isc.A.shouldSaveValue=true;isc.A.editorConstructor="DynamicForm";isc.A.editorDefaults={numCols:4,width:290,cellPadding:0,colWidths:[130,"*","*"],itemChanged:function(_1,_2){this.creator.updateValue()}};isc.A.useSharedPicker=false;isc.A.pickerDefaults={width:isc.DateItem.chooserWidth,height:isc.DateItem.chooserHeight,showCancelButton:true,autoHide:true};isc.A=isc.RelativeDateItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.validators=[{type:"isDate"}];isc.B.push(isc.A.init=function isc_RelativeDateItem_init(){this.$67h();this.Super("init",arguments)}
+return _5}
+,isc.A.getPeriodName=function isc_c_RelativeDateItem_getPeriodName(_1){var _2=_1.toLowerCase();return this.$85j[_2]||_2}
+,isc.A.getPeriodKey=function isc_c_RelativeDateItem_getPeriodKey(_1){if(this.$85k==null){this.$85k=isc.makeReverseMap(this.$85j)}
+_1=_1.toLowerCase();return this.$85k[_1]||_1}
+,isc.A.getRelativeDateParts=function isc_c_RelativeDateItem_getRelativeDateParts(_1){return isc.DateUtil.getRelativeDateParts(_1)}
+,isc.A.isRelativeDate=function isc_c_RelativeDateItem_isRelativeDate(_1){return isc.DateUtil.isRelativeDate(_1)}
+);isc.B._maxIndex=isc.C+5;isc.A=isc.RelativeDateItem.getPrototype();isc.A.height=20;isc.A.cellHeight=20;isc.A.canFocus=true;isc.A.timeUnitOptions=["day","week","month"];isc.A.showPastOptions=true;isc.A.showFutureOptions=true;isc.A.rangeRoundingGranularity={"year":"day","month":"day","week":"day","day":"day","hour":"minute","minute":"second","second":"second"};isc.A.millisecondsAgoTitle="N milliseconds ago";isc.A.secondsAgoTitle="N seconds ago";isc.A.minutesAgoTitle="N minutes ago";isc.A.hoursAgoTitle="N hours ago";isc.A.daysAgoTitle="N days ago";isc.A.weeksAgoTitle="N weeks ago";isc.A.monthsAgoTitle="N months ago";isc.A.yearsAgoTitle="N years ago";isc.A.millisecondsFromNowTitle="N milliseconds from now";isc.A.secondsFromNowTitle="N seconds from now";isc.A.minutesFromNowTitle="N minutes from now";isc.A.hoursFromNowTitle="N hours from now";isc.A.daysFromNowTitle="N days from now";isc.A.weeksFromNowTitle="N weeks from now";isc.A.monthsFromNowTitle="N months from now";isc.A.yearsFromNowTitle="N years from now";isc.A.defaultValue="$today";isc.A.operator="greaterThan";isc.A.presetOptions={"$today":"Today","$yesterday":"Yesterday","$tomorrow":"Tomorrow","$weekAgo":"Current day of last week","$weekFromNow":"Current day of next week","$monthAgo":"Current day of last month","$monthFromNow":"Current day of next month"};isc.A.valueFieldDefaults={type:"ComboBoxItem",name:"valueField",showTitle:false,shouldSaveValue:false,validateOnChange:false};isc.A.defaultQuantity=1;isc.A.quantityFieldDefaults={type:"SpinnerItem",name:"quantityField",width:60,min:0,step:1,showTitle:false,shouldSaveValue:false,selectOnFocus:true};isc.A.showChooserIcon=true;isc.A.pickerIconDefaults={name:"chooserIcon",showOver:false,showFocused:false,showFocusedWithItem:false,neverDisable:true,width:16,height:16,src:"[SKIN]/DynamicForm/DatePicker_icon.gif"};isc.A.iconVAlign="center";isc.A.pickerIconPrompt="Show Date Chooser";isc.A.pickerConstructor="DateChooser";isc.A.showCalculatedDateField=true;isc.A.calculatedDateFieldDefaults={type:"BlurbItem",name:"calculatedDateField",border:"1px solid black;",width:"*",startRow:false,showTitle:false,shouldSaveValue:false};isc.A.startDate=isc.DateItem.DEFAULT_START_DATE;isc.A.endDate=isc.DateItem.DEFAULT_END_DATE;isc.A.centuryThreshold=isc.DateItem.DEFAULT_CENTURY_THRESHOLD;isc.A.shouldSaveValue=true;isc.A.editorConstructor="DynamicForm";isc.A.editorDefaults={numCols:4,width:290,cellPadding:0,colWidths:[130,"*","*"],itemChanged:function(_1,_2){this.creator.updateValue()},itemKeyPress:function(_1,_2,_3){var _1=this.canvasItem;if(_1&&_1.form){return _1.$18d(_1,_1.form,_2,_3)}}};isc.A.useSharedPicker=false;isc.A.pickerDefaults={width:isc.DateItem.chooserWidth,height:isc.DateItem.chooserHeight,showCancelButton:true,autoHide:true};isc.A=isc.RelativeDateItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.validators=[{type:"isDate"}];isc.B.push(isc.A.init=function isc_RelativeDateItem_init(){this.$67h();this.Super("init",arguments)}
 ,isc.A.isEditable=function isc_RelativeDateItem_isEditable(){return true}
 ,isc.A.$67h=function isc_RelativeDateItem__createEditor(){var _1;var _2={$76z:true};this.addAutoChild("editor",_2);this.canvas=this.editor;var _3=this,_4=[],_5=2;_4[0]=isc.addProperties({},this.valueFieldDefaults,this.valueFieldProperties,{valueMap:this.getValueFieldOptions()});_4[1]=isc.addProperties({},this.quantityFieldDefaults,this.quantityFieldProperties,{defaultValue:this.defaultQuantity});if(this.showChooserIcon){_5=3;_4[2]={name:"iconPlaceholder",type:"staticText",width:1,showTitle:false,iconVAlign:"center",icons:[isc.addProperties({prompt:this.pickerIconPrompt},this.pickerIconDefaults,this.pickerIconProperties,{click:function(){_3.showPicker()}})]}}
 this.baseDate=this.baseDate||new Date();if(this.showCalculatedDateField){_4[_5]=isc.addProperties({},this.calculatedDateFieldDefaults,this.calculatedDateFieldProperties,{cellStyle:this.getHintStyle()})}
@@ -3337,10 +3377,11 @@
 this.calculatedDateField=this.canvas.getField("calculatedDateField");if(this.showChooserIcon){this.iconPlaceholder=this.canvas.getField("iconPlaceholder");this.pickerIcon=this.iconPlaceholder.icons.find("name","chooserIcon")}
 this.setValue(this.value||this.defaultValue)}
 ,isc.A.updateEditor=function isc_RelativeDateItem_updateEditor(){if(!this.valueField||!this.quantityField)return;var _1,_2,_3=false;if(this.valueField.hasFocus){_1=this.valueField;_2=this.valueField.getSelectionRange()}else if(this.quantityField.hasFocus){_1=this.quantityField;_2=this.quantityField.getSelectionRange()}
-var _4=this.valueField.getValue(),_5=this.quantityField.getValue();var _6=(_4&&isc.isA.String(_4)&&this.relativePresets[_4]);if(!_6){if(this.quantityField.isVisible())_3=true;this.quantityField.hide()}else{if(!this.quantityField.isVisible())_3=true;this.quantityField.show()}
+var _4=this.valueField.getValue(),_5=this.quantityField.getValue();var _6=(_4&&isc.isA.String(_4)&&this.relativePresets[_4]);if(!_6){if(this.quantityField.isVisible()){_3=true;this.quantityField.hide()}}else{if(!this.quantityField.isVisible()){_3=true;this.quantityField.show()}}
 if(this.calculatedDateField){var _4=this.getAbsoluteDate();this.calculatedDateField.setValue(!_4?"":"("+this.formatDate(_4)+")")}
 if(_3&&_1!=null){if(!_6&&_1==this.quantityField){this.valueField.focusInItem()}else{if(_2){_1.delayCall("setSelectionRange",[_2[0],_2[1]])}}}}
-,isc.A.getValueFieldOptions=function isc_RelativeDateItem_getValueFieldOptions(){var _1=isc.clone(this.presetOptions);this.relativePresets={};for(var i=0;i<this.timeUnitOptions.length;i++){var _3=this.timeUnitOptions[i];_1[_3+"_ago"]=this[_3+"sAgoTitle"];_1[_3+"_fromNow"]=this[_3+"sFromNowTitle"];this.relativePresets[_3+"_ago"]=true;this.relativePresets[_3+"_fromNow"]=true}
+,isc.A.getValueFieldOptions=function isc_RelativeDateItem_getValueFieldOptions(){var _1=isc.addProperties({},this.presetOptions);this.relativePresets={};for(var i=0;i<this.timeUnitOptions.length;i++){var _3=this.timeUnitOptions[i];if(this.showPastOptions){_1[_3+"_ago"]=this[_3+"sAgoTitle"];this.relativePresets[_3+"_ago"]=true}
+if(this.showFutureOptions){_1[_3+"_fromNow"]=this[_3+"sFromNowTitle"];this.relativePresets[_3+"_fromNow"]=true}}
 return _1}
 ,isc.A.setValue=function isc_RelativeDateItem_setValue(_1,_2){if(!this.valueField)return this.Super("setValue",arguments);if(isc.isA.Date(_1)&&_1.$84l!=null&&this.compareValues(this.$84m,_1.$84l))
 {if(_1.getTime()==_1.$84n){_1=_1.$84l}}
@@ -3353,8 +3394,8 @@
 return _3}
 ,isc.A.getAbsoluteDate=function isc_RelativeDateItem_getAbsoluteDate(){return this.getDataValue(true)}
 ,isc.A.getRelativeDate=function isc_RelativeDateItem_getRelativeDate(){var _1=this.valueField.getValue(),_2=this.quantityField.getValue();if(!_1||!isc.isA.String(_1))return null;var _3=_1.substring(0,1);if(_3=="+"||_3=="-"||_3=="$"){return this.getRelativeDateObject(_1)}
-var _4=_1.indexOf("_");if(_4>=0){var _5=_1.substring(0,_4),_6=(_1.substring(_4+1)=="ago"?"-":"+"),_7;switch(_5){case"millisecond":_7="ms";break;case"second":_7="s";break;case"minute":_7="mn";break;case"hour":_7="h";break;case"day":_7="d";break;case"week":_7="w";break;case"month":_7="m";break;case"quarter":_7="q";break;case"year":_7="y";break;case"decade":_7="dc";break;case"century":_7="c";break;default:_7=null}
-if(_7){_1=_6+_2+_7;return this.getRelativeDateObject(_1)}}
+var _4=_1.indexOf("_");if(_4>=0){var _5=_1.substring(0,_4),_6=(_1.substring(_4+1)=="ago"),_7=isc.RelativeDateItem.getPeriodKey(_5);if(_7){var _8=(_6?"-":"+")+_2+_7;var _9=this.rangePosition=="end"?"+":"-",_10=this.rangeRoundingGranularity[_5];if(_10!=null&&_10.toLowerCase()!="millisecond"){_10=isc.RelativeDateItem.getPeriodKey(_10).toUpperCase();_8+="["+_9+"0"+_10+"]"}
+return this.getRelativeDateObject(_8)}}
 return null}
 ,isc.A.getRelativeDateObject=function isc_RelativeDateItem_getRelativeDateObject(_1){var _2={_constructor:"RelativeDate",value:_1};if(this.rangePosition)_2.rangePosition=this.rangePosition;return _2}
 ,isc.A.getDataValue=function isc_RelativeDateItem_getDataValue(_1){var _2=this.valueField.getValue(),_3;if(_2==null||isc.isAn.emptyString(_2)){_3=null}else{var _4=this.getRelativeDate();if(_4){if(_1){_3=this.$84o(_4)}else{_3=_4}}else{_3=this.parseDate(_2,this.getInputFormat())}
@@ -3372,14 +3413,14 @@
 _1.startYear=this.getStartDate().getFullYear();_1.endYear=this.getEndDate().getFullYear();return this.Super("showPicker",arguments)}
 ,isc.A.getPickerRect=function isc_RelativeDateItem_getPickerRect(){var _1=this.getPageLeft(),_2=this.getPageTop(),_3=isc.DateItem.chooserWidth+3,_4=isc.DateItem.chooserHeight+3,_5=this.canvas,_6;_6=_5.getItem("iconPlaceholder");_1+=_6.getLeft();_1+=Math.round((_6.getVisibleWidth()-(this.getPickerIconWidth()/2))-
 (_3/ 2));_2+=Math.round((this.getPickerIconHeight()/2)-(_4/ 2));return[_1,_2]}
-,isc.A.pickerDataChanged=function isc_RelativeDateItem_pickerDataChanged(_1){var _2=_1.getData();var _3=_2.getFullYear(),_4=_2.getMonth(),_5=_2.getDate();this.$20l=true;this.valueField.setValue(this.formatDate(_2));this.$20l=false;this.updateValue();if(!this.hasFocus)this.focusInItem()}
+,isc.A.pickerDataChanged=function isc_RelativeDateItem_pickerDataChanged(_1){var _2=_1.getData();if(this.rangePosition=="end")_2=isc.DateUtil.getEndOf(_2,"D");this.$20l=true;this.valueField.setValue(this.formatDate(_2));this.$20l=false;this.updateValue();if(!this.hasFocus)this.focusInItem()}
 ,isc.A.getStartDate=function isc_RelativeDateItem_getStartDate(){var _1=this.parseDate(this.startDate);if(!isc.isA.Date(_1)){this.logWarn("startDate was not in valid date format - using default start date");_1=isc.DateItem.DEFAULT_START_DATE}
 return _1}
 ,isc.A.getEndDate=function isc_RelativeDateItem_getEndDate(){var _1=this.parseDate(this.endDate);if(!isc.isA.Date(_1)){this.logWarn("endDate was not in valid date format - using default end date");_1=isc.DateItem.DEFAULT_END_DATE}
 return _1}
 ,isc.A.parseDate=function isc_RelativeDateItem_parseDate(_1,_2){if(_2==null)_2=this.getInputFormat();return Date.parseInput(_1,_2,this.centuryThreshold,true,this.useCustomTimezone)}
-,isc.A.formatDate=function isc_RelativeDateItem_formatDate(_1){return isc.isA.Date(_1)?_1.toShortDate(this.displayFormat,this.useCustomTimezone):_1}
-,isc.A.getInputFormat=function isc_RelativeDateItem_getInputFormat(){if(this.inputFormat)return this.inputFormat;if(this.displayFormat){return Date.mapDisplayFormatToInputFormat(this.displayFormat)}
+,isc.A.formatDate=function isc_RelativeDateItem_formatDate(_1){var _2=this.dateFormatter;if(_2==null)_2=this.displayFormat;var _3=false,_4=this.type;if(_4!=null&&isc.SimpleType.inheritsFrom(_4,"datetime"))_3=true;return isc.isA.Date(_1)?_3?_1.toShortDateTime(_2,this.useCustomTimezone):_1.toShortDate(_2,this.useCustomTimezone):_1}
+,isc.A.getInputFormat=function isc_RelativeDateItem_getInputFormat(){if(this.inputFormat)return this.inputFormat;var _1=this.dateFormatter||this.displayFormat;if(_1){return Date.mapDisplayFormatToInputFormat(_1)}
 return null}
 ,isc.A.getValue=function isc_RelativeDateItem_getValue(){var _1=this.Super("getValue",arguments);return _1||this.valueField.getValue()}
 );isc.B._maxIndex=isc.C+25}
@@ -3397,7 +3438,7 @@
 return true}else if(_1.fieldName==_2){if(_1.operator!="greaterThan"&&_1.operator!="greaterOrEqual"&&_1.operator!="lessThan"&&_1.operator!="lessOrEqual"){this.logWarn("DynamicForm editing Advanced criteria. Includes criterion for "+"field "+_2+". A dateRange editor is showing for this field but "+"the existing criteria has operator:"+_1.operator+". DateRange "+"items can only edit criteria greaterThan/greaterOrEqual or lessThan/lessOrEqual "+"so leaving this unaltered.");return false}
 return true}
 return false}
-,isc.A.setCriterion=function isc_DateRangeItem_setCriterion(_1){var _2,_3;if(_1.operator=="and"){_2=_1.criteria.find("operator","greaterThan");if(!_2)_2=_1.criteria.find("operator","greaterOrEqual");_3=_1.criteria.find("operator","lessThan");if(!_3)_3=_1.criteria.find("operator","lessOrEqual")}else{if(_1.operator=="greaterThan")_2=_1;else if(_1.operator=="greaterOrEqual")_2=_1;else if(_1.operator=="lessThan")_3=_1;else if(_1.operator=="lessOrEqual")_3=_1}
+,isc.A.setCriterion=function isc_DateRangeItem_setCriterion(_1){if(!_1)return;var _2,_3;if(_1.operator=="and"){_2=_1.criteria.find("operator","greaterThan");if(!_2)_2=_1.criteria.find("operator","greaterOrEqual");_3=_1.criteria.find("operator","lessThan");if(!_3)_3=_1.criteria.find("operator","lessOrEqual")}else{if(_1.operator=="greaterThan")_2=_1;else if(_1.operator=="greaterOrEqual")_2=_1;else if(_1.operator=="lessThan")_3=_1;else if(_1.operator=="lessOrEqual")_3=_1}
 if(_2!=null){this.fromField.setValue(_2.value)}
 if(_3!=null){this.toField.setValue(_3.value)}}
 );isc.B._maxIndex=isc.C+6;isc.A=isc.DateRangeItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.init=function isc_DateRangeItem_init(){this.$67h();this.Super("init",arguments)}
@@ -3412,7 +3453,7 @@
 ,isc.A.getValue=function isc_DateRangeItem_getValue(){if(!this.fromField||!this.toField)return;var _1=this.allowRelativeDates,_2=_1&&this.fromField.getRelativeDate()?this.fromField.getRelativeDate():this.fromField.getValue(),_3=_1&&this.toField.getRelativeDate()?this.toField.getRelativeDate():this.toField.getValue(),_4={_constructor:"DateRange"};if(_2==null&&_3==null)return null;if(_2!=null)_4.start=_2;if(_3!=null)_4.end=_3;return _4}
 ,isc.A.updateValue=function isc_DateRangeItem_updateValue(_1){this.$10y(_1)}
 );isc.B._maxIndex=isc.C+7;if(isc.Window){isc.defineClass("DateRangeDialog","Window");isc.A=isc.DateRangeDialog;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.askForRange=function isc_c_DateRangeDialog_askForRange(_1,_2,_3,_4){var _5=isc.DateRangeDialog.create({allowRelativeDates:_1!=null?_1:true,rangeItemProperties:_2,callback:_4},_3);_5.show()}
-);isc.B._maxIndex=isc.C+1;isc.A=isc.DateRangeDialog.getPrototype();isc.A.isModal=true;isc.A.showModalMask=true;isc.A.dismissOnEscape=true;isc.A.autoCenter=true;isc.A.width=380;isc.A.height=140;isc.A.vertical="true";isc.A.showMinimizeButton=false;isc.A.headerIconProperties={src:"[SKIN]/DynamicForm/DatePicker_icon.gif"};isc.A.returnCriterion=false;isc.A.headerTitle="Select Date Range";isc.A.mainLayoutDefaults={_constructor:"VLayout",width:"100%",height:"100%",layoutMargin:5};isc.A.rangeFormDefaults={_constructor:"DynamicForm",numCols:1,width:"100%",height:"100%",autoParent:"mainLayout"};isc.A.rangeItemDefaults={_constructor:"DateRangeItem",allowRelativeDates:true,showTitle:false};isc.A.buttonLayoutDefaults={_constructor:"HLayout",width:"100%",height:22,align:"right",membersMargin:5,autoParent:"mainLayout"};isc.A.clearButtonTitle="Clear";isc.A.clearButtonDefaults={_constructor:"IButton",height:22,width:80,autoParent:"buttonLayout",click:function(){this.creator.clear()}};isc.A.okButtonTitle="OK";isc.A.okButtonDefaults={_constructor:"IButton",height:22,width:80,autoParent:"buttonLayout",click:function(){this.creator.accept()}};isc.A.cancelButtonTitle="Cancel";isc.A.cancelButtonDefaults={_constructor:"IButton",height:22,width:80,autoParent:"buttonLayout",click:function(){this.creator.cancel()}};isc.A.destroyOnClose=true;isc.A=isc.DateRangeDialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_DateRangeDialog_initWidget(){this.title=this.headerTitle;this.Super("initWidget",arguments);this.addAutoChild("mainLayout");this.addAutoChild("rangeForm",{$76z:true,items:[isc.addProperties({},this.rangeItemDefaults,this.rangeItemProperties,{name:"rangeItem",fromDate:this.fromDate,toDate:this.toDate,dateDisplayFormat:this.dateDisplayFormat})]});this.rangeItem=this.rangeForm.getField("rangeItem");this.rangeItem.canvas.numCols=1;this.addAutoChild("buttonLayout");this.addAutoChild("clearButton",{title:this.clearButtonTitle});this.addAutoChild("okButton",{title:this.okButtonTitle});this.addAutoChild("cancelButton",{title:this.cancelButtonTitle});this.addItem(this.mainLayout)}
+);isc.B._maxIndex=isc.C+1;isc.A=isc.DateRangeDialog.getPrototype();isc.A.isModal=true;isc.A.showModalMask=true;isc.A.dismissOnEscape=true;isc.A.autoCenter=true;isc.A.width=380;isc.A.height=140;isc.A.vertical="true";isc.A.showMinimizeButton=false;isc.A.headerIconProperties={src:"[SKIN]/DynamicForm/DatePicker_icon.gif"};isc.A.returnCriterion=false;isc.A.headerTitle="Select Date Range";isc.A.mainLayoutDefaults={_constructor:"VLayout",width:"100%",height:"100%",layoutMargin:5};isc.A.rangeFormDefaults={_constructor:"DynamicForm",numCols:1,width:"100%",height:"100%",autoParent:"mainLayout"};isc.A.rangeItemDefaults={_constructor:"DateRangeItem",allowRelativeDates:true,showTitle:false};isc.A.buttonLayoutDefaults={_constructor:"HLayout",width:"100%",height:22,align:"right",membersMargin:5,autoParent:"mainLayout"};isc.A.clearButtonTitle="Clear";isc.A.clearButtonDefaults={_constructor:"IButton",height:22,width:80,canFocus:true,autoParent:"buttonLayout",click:function(){this.creator.clear()}};isc.A.okButtonTitle="OK";isc.A.okButtonDefaults={_constructor:"IButton",height:22,width:80,canFocus:true,autoParent:"buttonLayout",click:function(){this.creator.accept()}};isc.A.cancelButtonTitle="Cancel";isc.A.cancelButtonDefaults={_constructor:"IButton",height:22,width:80,canFocus:true,autoParent:"buttonLayout",click:function(){this.creator.cancel()}};isc.A.destroyOnClose=true;isc.A=isc.DateRangeDialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_DateRangeDialog_initWidget(){this.title=this.headerTitle;this.Super("initWidget",arguments);this.addAutoChild("mainLayout");this.addAutoChild("rangeForm",{$76z:true,items:[isc.addProperties({},this.rangeItemDefaults,this.rangeItemProperties,{name:"rangeItem",fromDate:this.fromDate,toDate:this.toDate,dateDisplayFormat:this.dateDisplayFormat})]});this.rangeItem=this.rangeForm.getField("rangeItem");this.rangeItem.canvas.numCols=1;this.addAutoChild("buttonLayout");this.addAutoChild("clearButton",{canFocus:true,title:this.clearButtonTitle});this.addAutoChild("okButton",{canFocus:true,title:this.okButtonTitle});this.addAutoChild("cancelButton",{canFocus:true,title:this.cancelButtonTitle});this.addItem(this.mainLayout)}
 ,isc.A.clear=function isc_DateRangeDialog_clear(){this.rangeItem.setValue(null)}
 ,isc.A.accept=function isc_DateRangeDialog_accept(){this.finished(this.rangeItem.returnCriterion?this.rangeItem.getCriterion():this.rangeItem.getValue())}
 ,isc.A.cancel=function isc_DateRangeDialog_cancel(){this.hide();if(this.destroyOnClose)this.markForDestroy()}
@@ -3523,7 +3564,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Forms.js.gz has changed
--- a/isomorphic/system/development/ISC_Foundation.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Foundation.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -733,7 +733,8 @@
 ,isc.A.setSrc=function isc_StretchImg_setSrc(_1){if(_1==null||this.src==_1)return;this.src=_1;this.markForRedraw()}
 ,isc.A.inWhichPart=function isc_StretchImg_inWhichPart(){if(this.vertical){var _1=this.inWhichPosition(this.$5x,this.getOffsetY())}else{var _1=this.inWhichPosition(this.$5x,this.getOffsetX(),this.getTextDirection())}
 var _2=this.items[_1];return(_2?_2.name:null)}
-);isc.B._maxIndex=isc.C+16;isc.defineClass("Label","Button");isc.A=isc.Label.getPrototype();isc.A.align=isc.Canvas.LEFT;isc.A.wrap=true;isc.A.showTitle=false;isc.A.height=null;isc.A.width=null;isc.A.overflow="visible";isc.A.canFocus=false;isc.A.styleName="normal";isc.A.baseStyle=null;isc.A.cursor="default";isc.A.showRollOver=false;isc.A.showFocus=false;isc.A.showDown=false;isc.A.showDisabled=false;isc.A.useContents=true;isc.ClassFactory.defineClass("Progressbar","StretchImg");isc.A=isc.Progressbar.getPrototype();isc.A.percentDone=0;isc.A.length=100;isc.A.breadth=20;isc.A.vertical=false;isc.A.skinImgDir="images/Progressbar/";isc.A.src="[SKIN]progressbar.gif";isc.A.cacheImageSizes=false;isc.A.backgroundColor="CCCCCC";isc.A.verticalItems=[{name:"v_empty_end",size:3},{name:"v_empty_stretch",size:0},{name:"v_empty_start",size:3},{name:"v_end",size:3},{name:"v_stretch",size:0},{name:"v_start",size:3}];isc.A.horizontalItems=[{name:"h_start",size:3},{name:"h_stretch",size:0},{name:"h_end",size:3},{name:"h_empty_start",size:3},{name:"h_empty_stretch",size:0},{name:"h_empty_end",size:3}];isc.A=isc.Progressbar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_Progressbar_initWidget(){if(this.vertical){this.setWidth(this.breadth);this.setHeight(this.length);this.items=this.verticalItems}else{this.setWidth(this.length);this.setHeight(this.breadth);this.items=this.horizontalItems}
+);isc.B._maxIndex=isc.C+16;isc.defineClass("Label","Button");isc.A=isc.Label.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.align=isc.Canvas.LEFT;isc.A.wrap=true;isc.A.showTitle=false;isc.A.height=null;isc.A.width=null;isc.A.overflow="visible";isc.A.canFocus=false;isc.A.styleName="normal";isc.A.baseStyle=null;isc.A.cursor="default";isc.A.showRollOver=false;isc.A.showFocus=false;isc.A.showDown=false;isc.A.showDisabled=false;isc.A.useContents=true;isc.B.push(isc.A.setStyleName=function isc_Label_setStyleName(_1){this.setBaseStyle(_1)}
+);isc.B._maxIndex=isc.C+1;isc.ClassFactory.defineClass("Progressbar","StretchImg");isc.A=isc.Progressbar.getPrototype();isc.A.percentDone=0;isc.A.length=100;isc.A.breadth=20;isc.A.vertical=false;isc.A.skinImgDir="images/Progressbar/";isc.A.src="[SKIN]progressbar.gif";isc.A.cacheImageSizes=false;isc.A.backgroundColor="CCCCCC";isc.A.verticalItems=[{name:"v_empty_end",size:3},{name:"v_empty_stretch",size:0},{name:"v_empty_start",size:3},{name:"v_end",size:3},{name:"v_stretch",size:0},{name:"v_start",size:3}];isc.A.horizontalItems=[{name:"h_start",size:3},{name:"h_stretch",size:0},{name:"h_end",size:3},{name:"h_empty_start",size:3},{name:"h_empty_stretch",size:0},{name:"h_empty_end",size:3}];isc.A=isc.Progressbar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_Progressbar_initWidget(){if(this.vertical){this.setWidth(this.breadth);this.setHeight(this.length);this.items=this.verticalItems}else{this.setWidth(this.length);this.setHeight(this.breadth);this.items=this.horizontalItems}
 this.Super(this.$oc)}
 ,isc.A.resizeImages=function isc_Progressbar_resizeImages(){var _1=this.getLength(),_2=this.items,_3=this.$5x=[],_4=this.percentDone;if(this.vertical){_3[0]=(_4<100?_2[0].size:0);_3[2]=(_4<100?_2[2].size:0);_3[3]=(_4>0?_2[3].size:0);_3[5]=(_4>0?_2[5].size:0)}else{_3[0]=(_4>0?_2[0].size:0);_3[2]=(_4>0?_2[2].size:0);_3[3]=(_4<100?_2[3].size:0);_3[5]=(_4<100?_2[5].size:0)}
 _1-=_3[0]+_3[2]+_3[3]+_3[5];if(this.vertical){_3[4]=Math.ceil(_1*_4/ 100);_3[1]=Math.floor(_1*(100-_4)/100)}else{_3[1]=Math.ceil(_1*_4/ 100);_3[4]=Math.floor(_1*(100-_4)/100)}}
@@ -1224,7 +1225,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Foundation.js.gz has changed
--- a/isomorphic/system/development/ISC_Grids.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Grids.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -315,7 +315,7 @@
 ,isc.A.outputItem=function isc_DetailViewer_outputItem(_1,_2,_3){var _4=(_2.type?_2.type:"value"),_5="output_"+_4,_6="";if(!this[_5])_5="output_value";_6+="<TR"+(this.rowClass!=null?" CLASS='"+this.rowClass+"'":"")+">";_6+=this[_5](_1,_2,_3);_6+="</TR>\r";return _6}
 ,isc.A.output_blob=function isc_DetailViewer_output_blob(_1,_2,_3){return this.output_binary(_1,_2,_3)}
 ,isc.A.output_upload=function isc_DetailViewer_output_upload(_1,_2,_3){return this.output_binary(_1,_2,_3)}
-,isc.A.output_binary=function isc_DetailViewer_output_binary(_1,_2,_3){var _4="<TD WIDTH=10% CLASS='"+(this.isPrinting?this.printLabelStyle||this.labelStyle:this.labelStyle)+"' ALIGN=RIGHT"+(this.wrapLabel?">":" NOWRAP><NOBR>")+this.labelPrefix+(_2.title?_2.title:_2[this.fieldIdProperty])+this.labelSuffix+"<\/NOBR><\/TD>";for(var i=0;i<_3.getLength();i++){var _6=_3.get(i);var _7=this.getData().indexOf(_6);var _8=_6[_2.name+"_filename"];var _9=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".viewRow("+_7+")'");var _10=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".downloadRow("+_7+")'");var _11=_9+"&nbsp;"+_10+"&nbsp;"+_8;_4+="<TD CLASS='"+this.getCellStyle(_11,_2,_6,this)+"'>"+_11+"<\/TD>"}
+,isc.A.output_binary=function isc_DetailViewer_output_binary(_1,_2,_3){var _4="<TD WIDTH=10% CLASS='"+(this.isPrinting?this.printLabelStyle||this.labelStyle:this.labelStyle)+"' ALIGN=RIGHT"+(this.wrapLabel?">":" NOWRAP><NOBR>")+this.labelPrefix+(_2.title?_2.title:_2[this.fieldIdProperty])+this.labelSuffix+"<\/NOBR><\/TD>";for(var i=0;i<_3.getLength();i++){var _6=_3.get(i),_7=this.getData().indexOf(_6),_8=_2.nativeName||_2.name,_9=_6[_8+"_filename"],_10=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".viewRow("+_7+")'"),_11=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".downloadRow("+_7+")'"),_12=_10+"&nbsp;"+_11+"&nbsp;"+_9;_4+="<TD CLASS='"+this.getCellStyle(_12,_2,_6,this)+"'>"+_12+"<\/TD>"}
 return _4}
 ,isc.A.viewRow=function isc_DetailViewer_viewRow(_1){isc.DS.get(this.dataSource).viewFile(this.getData().get(_1))}
 ,isc.A.downloadRow=function isc_DetailViewer_downloadRow(_1){isc.DS.get(this.dataSource).downloadFile(this.getData().get(_1))}
@@ -339,7 +339,7 @@
 if(_2){if(_2.userFormula)_3=this.getFormulaFieldValue(_2,_1);else if(_2.userSummary)_3=this.getSummaryFieldValue(_2,_1);else if(_2.type=="imageFile"){if(_2.showFileInline!=false){if(!_1[_2[this.fieldIdProperty]+"$68c"]){var _4=isc.Canvas.getFieldImageDimensions(_2,_1),_5=this.getDataSource().streamFile(_1);_3=_1[_2[this.fieldIdProperty]+"$68c"]=this.imgHTML(_5,_4.width,_4.height)}else
 _3=_1[_2[this.fieldIdProperty]+"$68c"]}else{_3=this.getViewDownloadHTML(_2,_1)}}else if(_2.showFileInline==true){this.logWarn("getCellValue(): Unsupported field-type for showFileInline: "+_2.type)}}
 var _6=this.getFieldHilites(_1,_2);if(_6!=null)_3=this.applyHiliteHTML(_6,_3);return _3}
-,isc.A.getViewDownloadHTML=function isc_DetailViewer_getViewDownloadHTML(_1,_2){if(_2==null)return null;var _3=_2[_1.name+"_filename"];if(_3==null||isc.isA.emptyString(_3))return"&nbsp;";var _4=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".viewFile("+_2+","+_1+")'");var _5=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='alert('running');"+this.getID()+".downloadFile("+_2+","+_1+")'");return"<nobr>"+_4+"&nbsp;"+_5+"&nbsp;"+_3+"</nobr>"}
+,isc.A.getViewDownloadHTML=function isc_DetailViewer_getViewDownloadHTML(_1,_2){if(_2==null)return null;var _3=_1.nativeName||_1.name,_4=_2[_3+"_filename"];if(_4==null||isc.isA.emptyString(_4))return"&nbsp;";var _5=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+this.getID()+".viewFile("+_2+","+_1+")'");var _6=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='alert('running');"+this.getID()+".downloadFile("+_2+","+_1+")'");return"<nobr>"+_5+"&nbsp;"+_6+"&nbsp;"+_4+"</nobr>"}
 ,isc.A.viewFile=function isc_DetailViewer_viewFile(_1,_2){isc.DS.get(this.dataSource).viewFile(_1,_2.name)}
 ,isc.A.downloadFile=function isc_DetailViewer_downloadFile(_1,_2){isc.DS.get(this.dataSource).downloadFile(_1,_2.name)}
 ,isc.A.$17c=function isc_DetailViewer__formatDataType(_1,_2,_3){var _4=_2.type,_5=(_4!=null?isc.SimpleType.getBaseType(_4):null),_6=_4&&_4.toLowerCase()=="datetime",_7;if(_5==this.$g4){if(_6){_7=_2.formatter||this.datetimeFormatter}else{_7=(_2.dateFormatter||_2.formatter||this.dateFormatter)}}
@@ -582,7 +582,7 @@
 if(_8&&(_3==-1||_4==-1)){_8=false}
 if(_8){this.placeEmbeddedComponent(_1)}else{this.markForRedraw("added embedded component")}
 return _1}
-);isc.evalBoundary;isc.B.push(isc.A.$80d=function isc_GridRenderer__handleEmbeddedComponentResize(_1,_2,_3){this.logWarn("AND we're observing a resize...:"+[_1,_2,_3]);var _4=_1.embeddedPosition;if(_4!=this.$57l){if(_3!=null&&_3!=0)this.markForRedraw('embedded component resized')}else{this.placeEmbeddedComponent(_1)}}
+);isc.evalBoundary;isc.B.push(isc.A.$80d=function isc_GridRenderer__handleEmbeddedComponentResize(_1,_2,_3){var _4=_1.embeddedPosition;if(_4!=this.$57l){if(_3!=null&&_3!=0)this.markForRedraw('embedded component resized')}else{this.placeEmbeddedComponent(_1)}}
 ,isc.A.updateEmbeddedComponentCoords=function isc_GridRenderer_updateEmbeddedComponentCoords(_1,_2,_3,_4){_1.setProperty("$289",_3)}
 ,isc.A.placeEmbeddedComponent=function isc_GridRenderer_placeEmbeddedComponent(_1){var _2=_1.$289;if(_2==null||_2<this.$252||_2>this.$253){if(_1.isDrawn())_1.clear();return}
 var _3=_1.embeddedRecord,_4=_1.embeddedPosition,_5=_1.$57n,_6=this.getRowTop(_2),_7=_5!=null?this.getColumnLeft(_5):0,_8=(_5!=null&&_5>=0)?this.getColumnWidth(_5):Math.min(this.getInnerWidth()+this.getScrollLeft(),this.$26a.sum());if(_4==this.$57l){var _9=this.getEmbeddedComponentSnapTo(_1,_3,_2,_5),_10=_1.snapEdge||_9;var _11=this.getRowSize(_2),_12=_1._percent_width,_13=_1._percent_height,_14,_15;if(_1.snapOffsetLeft)_8-=_1.snapOffsetLeft;if(isc.isA.String(_12)&&_12.endsWith("%")){_14=Math.round((parseInt(_12)*_8)/100)}
@@ -998,9 +998,9 @@
 ,isc.A.$30p=function isc_ListGrid__formatTimeCellValue(_1,_2,_3,_4,_5,_6){var _7=_1;if(isc.isA.String(_7)){_7=isc.Time.parseInput(_7,true)}
 if(_7!=null){var _8=_3.$30o(_2);return isc.Time.toTime(_7,_8)}
 return _1}
-,isc.A.$30q=function isc_ListGrid__formatBinaryCellValue(_1,_2,_3,_4,_5,_6){if(isc.isA.String(_1))return _1;if(_4==null)return null;var _7=_2.name,_8=_4[_7+"_filename"],_1;if(_2.type=="imageFile"&&_2.showFileInline==true){var _9=_7+"$68c";if(!_4[_9]){var _10=isc.Canvas.getFieldImageDimensions(_2,_4),_11=_3.getDataSource().streamFile(_4,_2.name);_10.width=_10.width||_3.imageSize;_10.height=_10.height||_3.imageSize;_1=_4[_9]=isc.Canvas.imgHTML(_11,_10.width,_10.height)}else
-_1=_4[_9]}else{if(_2.showFileInline==true){this.logWarn("$30q(): Unsupported field-type for showFileInline: "+_2.type)}
-if(_8==null||isc.isA.emptyString(_8))return this.emptyCellValue;var _12=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+_3.getID()+".viewRow("+_5+")'");var _13=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+_3.getID()+".downloadRow("+_5+")'");_1=_12+"&nbsp;"+_13+"&nbsp;"+_8}
+,isc.A.$30q=function isc_ListGrid__formatBinaryCellValue(_1,_2,_3,_4,_5,_6){if(isc.isA.String(_1))return _1;if(_4==null)return null;var _7=_2.name,_8=_2.nativeName||_7,_9=_4[_8+"_filename"],_1;if(_2.type=="imageFile"&&_2.showFileInline==true){var _10=_7+"$68c";if(!_4[_10]){var _11=isc.Canvas.getFieldImageDimensions(_2,_4),_12=_3.getDataSource().streamFile(_4,_2.name);_11.width=_11.width||_3.imageSize;_11.height=_11.height||_3.imageSize;_1=_4[_10]=isc.Canvas.imgHTML(_12,_11.width,_11.height)}else
+_1=_4[_10]}else{if(_2.showFileInline==true){this.logWarn("$30q(): Unsupported field-type for showFileInline: "+_2.type)}
+if(_9==null||isc.isA.emptyString(_9))return this.emptyCellValue;var _13=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+_3.getID()+".viewRow("+_5+")'");var _14=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+_3.getID()+".downloadRow("+_5+")'");_1=_13+"&nbsp;"+_14+"&nbsp;"+_9}
 return _1}
 ,isc.A.$30r=function isc_ListGrid__formatLinkCellValue(_1,_2,_3,_4,_5,_6){if(_1==null||isc.is.emptyString(_1))return _1;var _7=_2.target?_2.target.replaceAll(_3.$ob,_3.$30j):_3.$30k;var _8=_2.linkTextProperty?_2.linkTextProperty:_3.linkTextProperty;var _9=(_4&&_4[_8])?_4[_8]:_2.linkText||_1;var _10=_1;if(_2.linkURLPrefix)_10=_2.linkURLPrefix+_10;if(_2.linkURLSuffix)_10=_10+_2.linkURLSuffix;_10=_10.replaceAll(_3.$ob,_3.$30j);if(_7=="javascript"){_10="javascript:void"}
 var _11=_3.$30h;_11[1]=_10;_11[3]=_7;var _12=_3.getID();_11[5]=_12;_11[7]=_12;_11[9]=_5;_11[11]=_6;_11[13]=_9;return _11.join(isc.emptyString)}
@@ -1055,7 +1055,7 @@
 _2=this.getExpansionComponent(_1);var _5=this.createAutoChild("expansionLayout",{layoutLeftMargin:this.embeddedComponentIndent,members:[_2]});_5.isExpansionComponent=true;this.addEmbeddedComponent(_5,_1,this.data.indexOf(_1));_1.expanded=true;_1.hasExpansionComponent=true;this.$74a++;if(!this.canExpandMultipleRecords)this.$74b=_1}
 this.delayCall("markForRedraw",["Expanded Record"]);this.refreshRow(_3)}
 ,isc.A.collapseRecord=function isc_ListGrid_collapseRecord(_1){var _2=_1?_1.$29a.find("isExpansionComponent",true):null;if(isc.isA.Layout(_2)){var _3=_2.getMember(0);if(isc.isA.DynamicForm(_3)&&_3.valuesHaveChanged()){if(this.autoSaveEdits==true){var _4=this;if(this.expansionEditorShowSaveDialog){isc.confirm(this.expansionEditorSaveDialogPrompt,function(_8){if(_8){_4.saveExpansionDetail(_3,_2,_1)}else{_4.$84t(_1,_2)}})}else{this.saveExpansionDetail(_3,_2,_1)}
-return}else{var _5=_3.getChangedValues(),_6=this.getRecordIndex(_1),_4=this;if(this.expansionEditorShowSaveDialog){isc.confirm("You have unsaved changes - do you want to save them now?",function(_8){if(_8){for(var _7 in _5){alert(_7);_4.setEditValue(_6,_7,_5[_7])}
+return}else{var _5=_3.getChangedValues(),_6=this.getRecordIndex(_1),_4=this;if(this.expansionEditorShowSaveDialog){isc.confirm("You have unsaved changes - do you want to save them now?",function(_8){if(_8){for(var _7 in _5){_4.setEditValue(_6,_7,_5[_7])}
 _4.$84t(_1,_2)}else{_4.$84t(_1,_2)}});return}else{for(var _7 in _5){this.setEditValue(_6,_7,_5[_7])}
 this.$84t(_1,_2);return}}}}
 this.$84t(_1,_2)}
@@ -1284,7 +1284,8 @@
 _25=isc.getKeys(_25);if(_25.length>0){this.logInfo("'setFields()' removed the following fields which had pending edit "+"values for some row[s]: '"+_25.join("', '")+"'.\n"+"Edit values for these fields have been dropped.","gridEdit")}}
 if(_4){if(_19){this.showInlineEditor(_5,_18,false,false,true);if(_20)_7.$11b(_30)}else{this.$31u(_5,_18,!_20)}
 if(_20){var _30=this.getEditFieldName();if(_30==_8){_7.$11b(_30)}else{_7.focusInItem(_30)}}}
-if(this.$60z()!=null&&this.canSort)this.resort();if(this.filterEditor!=null)this.filterEditor.setFields(this.completeFields.duplicate());if(this.summaryRow&&this.showGridSummary){this.summaryRow.setFields(this.completeFields.duplicate());this.summaryRow.recalculateSummaries()}}
+if(this.$60z()!=null&&this.canSort)this.resort();if(this.filterEditor!=null){this.filterEditor.updateDataSource(this.getDataSource());this.filterEditor.setFields(this.completeFields.duplicate())}
+if(this.summaryRow&&this.showGridSummary){this.summaryRow.setFields(this.completeFields.duplicate());this.summaryRow.recalculateSummaries()}}
 ,isc.A.addField=function isc_ListGrid_addField(_1,_2){return this.Super("addField",[_1,_2,this.completeFields],arguments)}
 ,isc.A.removeField=function isc_ListGrid_removeField(_1){return this.Super("removeField",[_1,this.completeFields],arguments)}
 ,isc.A.shouldShowCheckboxField=function isc_ListGrid_shouldShowCheckboxField(){return(this.selectionAppearance==this.$12c&&this.selectionType!=this.$27r&&!isc.isA.TreeGrid(this))}
@@ -1519,7 +1520,7 @@
 ,isc.A.setRecordValues=function isc_ListGrid_setRecordValues(_1,_2){if(!this.shouldSaveLocally()){this.logWarn("setRecordValues() not supported for grids where saveLocally is false");return}
 if(!this.data)return;var _3=this.data.indexOf(_1),_4=this.data.get(_3);isc.combineObjects(_4,_2);this.calculateRecordSummaries([_4]);if(this.useCellRecords){_3=this.findRowNum(_4);var _5=this.findColNum(_4);this.refreshCell(_3,_5)}else{this.refreshRow(_3)}
 if(this.valuesManager!=null){this.valuesManager.$71e(_3,null,_4,this)}}
-,isc.A.setRawCellValue=function isc_ListGrid_setRawCellValue(_1,_2,_3,_4){var _5=this.fields[_3];if(!_1||!_5)return;if(_5.setRawCellValue){isc.Func.replaceWithMethod(_5,"setRawCellValue","viewer,record,recordNum,field,fieldNum,value");_5.setRawCellValue(this,_1,_2,_5,_3,_4)}else{if(_5.dataPath){isc.Canvas.$70n(_5.dataPath,_4,_1)}else{_1[_5[this.fieldIdProperty]]=_4}}
+,isc.A.setRawCellValue=function isc_ListGrid_setRawCellValue(_1,_2,_3,_4){var _5=this.fields[_3];if(!_1||!_5)return;if(_5.setRawCellValue){isc.Func.replaceWithMethod(_5,"setRawCellValue","viewer,record,recordNum,field,fieldNum,value");_5.setRawCellValue(this,_1,_2,_5,_3,_4)}else{if(_5.dataPath){isc.Canvas.$70n(_5.dataPath,_4,_1,this)}else{_1[_5[this.fieldIdProperty]]=_4}}
 this.data.dataChanged()}
 ,isc.A.getCellBooleanProperty=function isc_ListGrid_getCellBooleanProperty(_1,_2,_3,_4){var _5=false,_6=this[_1];if(_6==false||_6==this.$18r)return false;var _7=this.fields[_3][_1];if(_7==false||_7==this.$18r)return false;if(_4!=null){var _8=this.getRecord(_2,_3),_9=(_8!=null?_8[_4]:false);if(_9==false||_9==this.$18r)return false;if(_9==true||_9==this.$18q)return true}
 return(_6==true)||(_7==true)||(_6==this.$18q)||(_7==this.$18q)}
@@ -1806,7 +1807,7 @@
 this.summaryRow.moveAbove(this);this.$wi(this.summaryRow,isc.Canvas.BOTTOM);if(this.isDrawn()){this.clear();this.draw()}}
 ,isc.A.setShowFilterEditor=function isc_ListGrid_setShowFilterEditor(_1){if(this.showFilterEditor==_1)return;this.showFilterEditor=_1;if(_1){if(this.isDrawn())this.makeFilterEditor()}else if(this.filterEditor){this.filterEditor.destroy();this.filterEditor=null}
 if(this.isDrawn()){this.clear();this.draw()}}
-,isc.A.makeFilterEditor=function isc_ListGrid_makeFilterEditor(){this.filterEditor=isc.RecordEditor.create({autoDraw:false,warnOnReusedFields:false,$67b:function(){},top:this.getTop()+this.getTopMargin(),left:this.getLeft()+this.getLeftMargin(),height:this.filterEditorHeight,disabled:this.disabled,sourceWidget:this,ID:this.getID()+"filterEditor",actionType:"filter",actionButtonProperties:this.filterButtonProperties,destroy:function(){this.sourceWidget.$wj(this,isc.Canvas.TOP);this.Super("destroy",arguments)},fetchDelay:this.fetchDelay},this.filterEditorDefaults,this.filterEditorProperties);this.addPeer(this.filterEditor);this.filterEditor.moveAbove(this);this.$wi(this.filterEditor,isc.Canvas.TOP)}
+,isc.A.makeFilterEditor=function isc_ListGrid_makeFilterEditor(){this.filterEditor=isc.RecordEditor.create({autoDraw:false,warnOnReusedFields:false,$67b:function(){},top:this.getTop()+this.getTopMargin(),left:this.getLeft()+this.getLeftMargin(),height:this.filterEditorHeight,disabled:this.disabled,sourceWidget:this,ID:this.getID()+"filterEditor",actionType:"filter",actionButtonProperties:this.filterButtonProperties,destroy:function(){this.sourceWidget.$wj(this,isc.Canvas.TOP);this.Super("destroy",arguments)},fetchDelay:this.fetchDelay,allowFilterExpressions:this.allowFilterExpressions,expressionDataSource:this.getDataSource()},this.filterEditorDefaults,this.filterEditorProperties);this.addPeer(this.filterEditor);this.filterEditor.moveAbove(this);this.$wi(this.filterEditor,isc.Canvas.TOP)}
 ,isc.A.getFilterEditorValueMap=function isc_ListGrid_getFilterEditorValueMap(_1){return _1.filterEditorValueMap||_1.valueMap}
 ,isc.A.getFilterEditorType=function isc_ListGrid_getFilterEditorType(_1){if(_1.filterEditorType!=null)return _1.filterEditorType;if(isc.SimpleType.inheritsFrom(_1.type,"date")&&this.getDataSource()&&this.getDataSource().supportsAdvancedCriteria())
 {return"MiniDateRangeItem"}
@@ -1825,7 +1826,7 @@
 ,isc.A.clearFilterValues=function isc_ListGrid_clearFilterValues(){this.$32d=null;this.updateFilterEditor()}
 ,isc.A.handleFilterEditorSubmit=function isc_ListGrid_handleFilterEditorSubmit(_1,_2){if(this.filterEditorSubmit!=null&&this.filterEditorSubmit(_1)==false)return;this.filterData(_1,null,_2)}
 ,isc.A.getInitialCriteria=function isc_ListGrid_getInitialCriteria(){var _1={},_2,_3=this.getFields(),_4;for(var i=0;i<_3.length;i++){if(_3[i].defaultFilterValue!==_4){_2=true;var _6=this.getFieldName(_3[i]);_1[_6]=_3[i].defaultFilterValue}}
-if(!_2){_1=this.initialCriteria}else{isc.addProperties(_1,this.initialCriteria)}
+if(!_2){_1=this.initialCriteria||this.getCriteria()}else{isc.addProperties(_1,this.initialCriteria||this.getCriteria())}
 return _1}
 ,isc.A.$v6=function isc_ListGrid__adjustSpecialPeers(_1){if(this.filterEditor!=null)this.filterEditor.setZIndex(_1-1);return this.Super("$v6",arguments)}
 ,isc.A.canEditCell=function isc_ListGrid_canEditCell(_1,_2){if(_2<0||_2>=this.fields.length)return false;var _3=this.getCellRecord(_1,_2);if(_3!=null){if(!this.recordIsEnabled(_1,_2))return false;if(this.$32o==_3)return false}
@@ -1923,7 +1924,7 @@
 ,isc.A.makeEditForm=function isc_ListGrid_makeEditForm(_1,_2){var _3=this.getCellRecord(_1,_2),_4=this.getEditDisplayValues(_1,_2),_5;if(this.updateEditorItemsInPlace&&this.$286!=null){_5=true;var _6=this.editByCell?[this.getField(_2)]:this.getDrawnFields();if(_6){if(_6.length!=this.$286.getItems().length){_5=false}else{for(var i=0;i<_6.length;i++){var _8=_6[i],_9=this.getEditorName(_1,_8),_10=this.$286.getItem(_9);if(_10==null||(this.getEditorType(_8,_4)!=this.$286.getEditorType(_10)))
 {_5=false;break}}}}
 if(_5&&_6){var _11=this.getDrawnFieldWidths(_3,_6);for(var i=0;i<_6.length;i++){var _8=_6[i],_12=this.getColNum(_8),_9=this.getEditorName(_1,_8),_10=this.$286.getItem(_9),_3=this.getRecord(_1),_13=this.getEditedRecord(_1),_14=this.getEditItem(_8,_3,_13,_1,_12,_11[i],true);_10.setProperties(_14);_10.$8t=null;if(_8.frozen){_10.containerWidget=this.frozenBody}else{_10.containerWidget=this.body}}}else{var _15=this.getEditRowItems(_3,_1,_2,this.editByCell);this.$286.setItems(_15)}
-this.$286.setValues(_4)}else{var _15=this.getEditRowItems(_3,_1,_2,this.editByCell);this.$286=isc.DynamicForm.create(this.editFormDefaults,{grid:this,locatorParent:this,showErrorIcons:this.showErrorIcons,tabIndex:this.getTabIndex(),dataSource:this.dataSource,autoComplete:this.autoComplete,uniqueMatch:this.uniqueMatch,autoFocus:false,items:_15,values:_4})}
+this.$286.setValues(_4)}else{var _15=this.getEditRowItems(_3,_1,_2,this.editByCell);this.$286=isc.DynamicForm.create(this.editFormDefaults,{grid:this,locatorParent:this,showErrorIcons:this.showErrorIcons,tabIndex:this.getTabIndex(),dataSource:this.dataSource,autoComplete:this.autoComplete,uniqueMatch:this.uniqueMatch,autoFocus:false,items:_15,values:_4},this.editFormProperties)}
 if(this.logIsDebugEnabled()){this.logDebug("editRowForm created with values: "+this.echo(this.$286.getValues()),"gridEdit")}
 return!_5}
 ,isc.A.getEditForm=function isc_ListGrid_getEditForm(){return this.$30a?this.$286:null}
@@ -1950,7 +1951,7 @@
 if(_14==null)continue;_9[_9.length]=_14}}
 return _9}
 ,isc.A.getDrawnFields=function isc_ListGrid_getDrawnFields(){if(!this.body)return null;var _1=[],_2=this.body;var _3=this.frozenFields,_4=this.freezeLeft();if(_3&&_4){_1.addList(_3)}
-var _5,_6;if((_2.$254==null)||_2.isDirty()||_2.$58p){var _7=_2.getDrawArea();_5=_7[2];_6=_7[3]}else{_5=_2.$254;_6=_2.$255}
+var _5,_6;if((_2.$254==null)||!_2.isDrawn()||_2.isDirty()||_2.$58p){var _7=_2.getDrawArea();_5=_7[2];_6=_7[3]}else{_5=_2.$254;_6=_2.$255}
 if(_3&&_4){_5+=_3.length;_6+=_3.length}
 for(var i=_5;i<=_6;i++){_1.add(this.fields[i])}
 if(_3&&!_4){_1.addList(_3)}
@@ -2086,8 +2087,8 @@
 this.setRowEditFieldName(_1,_6);if(!isc.isA.Number(_1)){_2=this.getEditSessionColNum(_1);_1=this.getEditSessionRowNum(_1)}else if(!isc.isA.Number(_2)){_2=this.getFieldNum(_2)}
 var _13={};_13[_6]=_3;this.$50r(_1,_2,_13)}
 ,isc.A.$33l=function isc_ListGrid__storeEditValue(_1,_2,_3,_4,_5){var _6=true,_7=false,_8,_9,_10,_11;_8=this.getEditSession(_1,_2)
-if(_8!=null){_9=_8.$31x;_10=isc.Canvas.$70o(_3,_9)}else{this.logInfo("creating new edit values for row: "+_1,"gridEdit");this.initializeEditValues(_1,_2,true);_8=this.getEditSession(_1,_2);_9=_8.$31x}
-if(_10===_11){var _12=this.getCellRecord(_1,_2);_10=_12?isc.Canvas.$70o(_3,_12):null}else _7=true;var _13=this.getField(_3);if(this.fieldValuesAreEqual(_13,_10,_4))_6=false;if(_4===_11){isc.Canvas.$70m(_3,_9)}else if(_7||_6){isc.Canvas.$70n(_3,_4,_9)}
+if(_8!=null){_9=_8.$31x;_10=isc.Canvas.$70o(_3,_9,this)}else{this.logInfo("creating new edit values for row: "+_1,"gridEdit");this.initializeEditValues(_1,_2,true);_8=this.getEditSession(_1,_2);_9=_8.$31x}
+if(_10===_11){var _12=this.getCellRecord(_1,_2);_10=_12?isc.Canvas.$70o(_3,_12,this):null}else _7=true;var _13=this.getField(_3);if(this.fieldValuesAreEqual(_13,_10,_4))_6=false;if(_4===_11){isc.Canvas.$70m(_3,_9,this)}else if(_7||_6){isc.Canvas.$70n(_3,_4,_9,this)}
 if(_6&&!_5){this.$33m(_1,_2,_4,_10)}
 return _6}
 ,isc.A.setRowEditFieldName=function isc_ListGrid_setRowEditFieldName(_1,_2){var _3=this.getEditSession(_1);if(!_3){var _4=this.getColNum(_2);this.setEditValues([_1,_4],null,true);_3=this.getEditSession(_1)}
@@ -2098,7 +2099,7 @@
 if(isc.isA.String(_2))_2=this.getColNum(_2);if(this.$30a&&(this.getEditRow()==_1)&&(this.getEditCol()==_2))
 {this.storeUpdatedEditorValue()}
 return this.$30y(_1,_3)}
-,isc.A.$30y=function isc_ListGrid__getEditValue(_1,_2){var _3=this.$300(_1,_2);if(_3==null)return;if(!isc.isA.String(_2))_2=this.getEditorName(_1,_2,true);return isc.Canvas.$70o(_2,_3)}
+,isc.A.$30y=function isc_ListGrid__getEditValue(_1,_2){var _3=this.$300(_1,_2);if(_3==null)return;if(!isc.isA.String(_2))_2=this.getEditorName(_1,_2,true);return isc.Canvas.$70o(_2,_3,this)}
 ,isc.A.clearEditValue=function isc_ListGrid_clearEditValue(_1,_2,_3,_4){var _5=(isc.isA.Number(_1)?_1:this.getEditSessionRowNum(_1));var _6=_2;if(isc.isA.Number(_6))_6=this.getEditorName(_5,_6);else _2=this.getColNum(_6);if(this.$30a){if(this.getEditRow()==_5&&this.getEditFieldName()==_6){this.storeUpdatedEditorValue(true)}}
 var _7=this.getEditSession(_1,_2);if(_7==null)return;var _8=_7.$31x,_9=false,_10=_7.$33e,_11=_7.$33o,_12=_11&&_11[_6],_5=_7.$24t;if(_8!=null){var _13=this.getRecord(_5);_9=isc.propertyDefined(_8,_6)&&((_5==null||_13==null)||!this.fieldValuesAreEqual(this.getField(_6),_8[_6],_13[_6]));delete _8[_6];if(_10)delete _10[_6];if(_11!=null)delete _11[_6];if(!_4&&isc.isAn.emptyObject(_8)){this.logDebug("no edit values left for row, discarding editSession","gridEdit");return this.$321(_1,_2,_3)}}
 var _14=this.getField(_6);if(_14&&this.$425(_14)&&(_14.displayField!=_6)){this.clearEditValue(_1,_14.displayField,_3,_4)}
@@ -2273,7 +2274,7 @@
 return this.$336(_8,_7)}
 if(isc.Offline&&isc.Offline.isOffline()&&!this.dataSource.clientOnly){isc.warn(this.offlineSaveMessage);return false}
 var _17=this.getID()+".$337(dsResponse, dsRequest)",_18={operation:(_4==null?this.addOperation:this.updateOperation)||this.saveOperation,application:this.application,willHandleError:true,showPrompt:this.shouldWaitForSave(),oldValues:_4,$52s:this.getRecord(_1,_2),clientContext:{saveCallback:_7,newValues:_3,editInfo:_8},componentId:this.ID};this.$338(_3,_4);if(this.$31o==null)this.$31o={};this.$31o[_8.editValuesID]=true;var _10=isc.DS.get(this.dataSource);if(_4==null){var _19=isc.addProperties({},_4,_3);_10.addData(_19,_17,_18)}else{var _20=isc.DS.get(this.dataSource).filterPrimaryKeyFields(_4),_21=isc.addProperties({},_20,_3);_10.updateData(_21,_17,_18)}}
-,isc.A.$336=function isc_ListGrid__saveLocally(_1,_2){var _3=_1.rowNum,_4=_1.colNum,_5=_1.oldValues,_6=_1.values;var _7=this.getCellRecord(_3,_4),_8=(_7==null);if(_8){var _9=this.getData();var _10=this.getEditSession(_3);_10.$33b=this.getPrimaryKeys(_6);delete _10.$33i;_9.add(_6);_9.dataChanged()}else{var _11,_12;for(var i=0;i<this.fields.length;i++){var _14=this.getEditorName(this.fields[i],i,true);_11=isc.Canvas.$70o(_14,_6);if(_11!==_12)this.setRawCellValue(_7,_3,i,_11)}}
+,isc.A.$336=function isc_ListGrid__saveLocally(_1,_2){var _3=_1.rowNum,_4=_1.colNum,_5=_1.oldValues,_6=_1.values;var _7=this.getCellRecord(_3,_4),_8=(_7==null);if(_8){var _9=this.getData();var _10=this.getEditSession(_3);_10.$33b=this.getPrimaryKeys(_6);delete _10.$33i;_9.add(_6);_9.dataChanged()}else{var _11,_12;for(var i=0;i<this.fields.length;i++){var _14=this.getEditorName(this.fields[i],i,true);_11=isc.Canvas.$70o(_14,_6,this);if(_11!==_12)this.setRawCellValue(_7,_3,i,_11)}}
 this.$338(_6,_5);this.$339(_1,_2);if(this.valuesManager!=null){this.valuesManager.$71e(_3,null,_7,this)}}
 ,isc.A.remoteValidationForLocalSaveComplete=function isc_ListGrid_remoteValidationForLocalSaveComplete(_1,_2,_3){var _4=_1.clientContext,_5=_4.editInfo;if(this.$31o&&this.$31o[_5.editValuesID]){delete this.$31o[_5.editValuesID];if(isc.isAn.emptyObject(this.$31o))delete this.$31o}
 if(_1.status<0&&_1.status!=isc.RPCResponse.STATUS_VALIDATION_ERROR){isc.logWarn("Server-side validation failed: "+_1.data);isc.RPCManager.handleError(_1,_3);return}
@@ -2375,10 +2376,10 @@
 if(_2==-1)return;if(this.showErrorIcons){this.refreshCell(_1,_2,null,true)}else{this.body.$29h(null,_1,_2)}}
 ,isc.A.assembleErrorMessage=function isc_ListGrid_assembleErrorMessage(_1,_2){var _3=false,_4="Validation Errors occurred:\r\n";for(var _5 in _1){if(_2&&!_2.contains(_1))continue;var _6=this.$34b(_5,_1[_5]);if(_6!=null){_3=true;_4+=_6}}
 return(_3?_4:null)}
-,isc.A.$34b=function isc_ListGrid__createFieldErrorString(_1,_2){var _3,_4,_5=this.getField(_1),_6=_5&&_5.title?_5.title:_1;for(var i=0;i<_2.length;i++){var _8=_2[i];if(_8!=null){if(_4==null){_4="<br>Field '"+_6+"':"}
+);isc.evalBoundary;isc.B.push(isc.A.$34b=function isc_ListGrid__createFieldErrorString(_1,_2){var _3,_4,_5=this.getField(_1),_6=_5&&_5.title?_5.title:_1;for(var i=0;i<_2.length;i++){var _8=_2[i];if(_8!=null){if(_4==null){_4="<br>Field '"+_6+"':"}
 _4+="<br>* "+_8}}
 return _4}
-);isc.evalBoundary;isc.B.push(isc.A.displayRowErrorMessages=function isc_ListGrid_displayRowErrorMessages(_1){if(this.stopOnErrors)isc.warn(_1,"var LG="+this.getID()+";if(LG.$286)LG.$286.focus()")}
+,isc.A.displayRowErrorMessages=function isc_ListGrid_displayRowErrorMessages(_1){if(this.stopOnErrors)isc.warn(_1,"var LG="+this.getID()+";if(LG.$286)LG.$286.focus()")}
 ,isc.A.$609=function isc_ListGrid__removeRecordClick(_1,_2){if(_2==null)return;this.delayCall("removeRecord",[_1,_2])}
 ,isc.A.removeRecord=function isc_ListGrid_removeRecord(_1,_2){if(_2==null)_2=this.data.get(_1);else _1=(this.data?this.data.indexOf(_2):null)
 if(_2==null||_1==null||_1==-1||!this.data)return;if(isc.Offline&&isc.Offline.isOffline()&&this.dataSource&&!this.dataSource.clientOnly){isc.warn(this.offlineSaveMessage);return}
@@ -2445,7 +2446,12 @@
 ,isc.A.getSpecifiedField=function isc_ListGrid_getSpecifiedField(_1){var _2=this.completeFields;if(_2==null)_2=this.fields;if(_2==null)return;if(isc.isAn.Object(_1)){if(_2.contains(_1))return _1;return null}else if(isc.isA.String(_1))return _2.find(this.fieldIdProperty,_1);else return(_2[_1])}
 ,isc.A.getFieldName=function isc_ListGrid_getFieldName(_1){var _2=this.getField(_1);return _2?_2[this.fieldIdProperty]:null}
 ,isc.A.getField=function isc_ListGrid_getField(_1){if(this.fields==null||_1==null)return null;var _2;if(this.$81g){_2=this.fields[_1];if(_2!=null)return _2}else{if(isc.isA.Number(_1))return this.fields[_1]}
-if(_1.$81f||isc.isAn.Object(_1))return _1;if(isc.isA.String(_1))return this.fields.find(this.fieldIdProperty,_1);return null}
+if(_1.$81f||isc.isAn.Object(_1))return _1;if(isc.isA.String(_1)){var _3=_1.contains(isc.Canvas.$70l);if(!_3){return this.fields.find(this.fieldIdProperty,_1)}else{var _4,_5,_6,_7=_1.trim(isc.Canvas.$70l),_8,_9,_10,_11;if(_1.startsWith(isc.Canvas.$70l)){_5=_1.substring(1);if(_1.endsWith(isc.Canvas.$70l)){_6=_1.substring(0,_1.length)}else{_4=_1+"/"}}else{if(_1.endsWith(isc.Canvas.$70l)){_6=_1.substring(0,_1.length);_4="/"+_1}else{_4="/"+_1+"/"}
+_8="/"+_1}
+var _12=_7.lastIndexOf(isc.Canvas.$70l);if(_12!=-1){_9=_7.substring(_12+1);_10=_9+"/"}
+for(var i=0;i<this.fields.length;i++){var _14=this.fields[i].dataPath;if(!_14)continue;if(_14==_1||(_5&&_14==_5)||(_6&&_14==_6)||(_7&&_14==_7)||(_8&&_14==_8)||(_4&&_14==_4)||(_9&&_14==_9)||(_10&&_14==_10))
+{return this.fields[i]}}}}
+return null}
 ,isc.A.getColNum=function isc_ListGrid_getColNum(_1){return this.getFieldNum(_1)}
 ,isc.A.getFieldTitle=function isc_ListGrid_getFieldTitle(_1){var _2;if(isc.isAn.Object(_1))_2=_1;else _2=this.fields[_1];if(!_2)return"Unknown field";if(_2.getFieldTitle){isc.Func.replaceWithMethod(_2,"getFieldTitle","viewer,fieldNum");return _2.getFieldTitle(this,_1)}
 return _2.title||_2.name}
@@ -2546,9 +2552,10 @@
 ,isc.A.makeRollOverCanvas=function isc_ListGrid_makeRollOverCanvas(){this.rollOverCanvas=this.createAutoChild("rollOverCanvas",{eventProxy:this.body,percentSource:this,percentBox:"custom",bubbleMouseEvents:true,destroyOnUnEmbed:false,grid:this,autoDraw:false});this.rollUnderCanvas=this.createAutoChild("rollUnderCanvas",{eventProxy:this.body,percentSource:this,percentBox:"custom",bubbleMouseEvents:true,destroyOnUnEmbed:false,grid:this,autoDraw:false})}
 ,isc.A.getRollOverCanvas=function isc_ListGrid_getRollOverCanvas(_1,_2){if(!this.rollOverCanvas)this.makeRollOverCanvas();return this.rollOverCanvas}
 ,isc.A.getRollUnderCanvas=function isc_ListGrid_getRollUnderCanvas(_1,_2){if(!this.rollUnderCanvas)this.makeRollOverCanvas();return this.rollUnderCanvas}
-,isc.A.updateRollOverCanvas=function isc_ListGrid_updateRollOverCanvas(_1,_2,_3){if(_3||!this.showRollOverCanvas||_1==-1){if(this.rollOverCanvas){this.removeEmbeddedComponent(this.rollOverCanvas.embeddedRecord,this.rollOverCanvas);this.removeEmbeddedComponent(this.rollUnderCanvas.embeddedRecord,this.rollUnderCanvas)}
+,isc.A.updateRollOverCanvas=function isc_ListGrid_updateRollOverCanvas(_1,_2,_3){var _4=false,_5;if(_3||!this.showRollOverCanvas||_1==-1){_4=true}else{var _5=this.getCellRecord(_1,_2);if(_5==null||Array.isLoading(_5)){_4=true}}
+if(_4){if(this.rollOverCanvas){this.removeEmbeddedComponent(this.rollOverCanvas.embeddedRecord,this.rollOverCanvas);this.removeEmbeddedComponent(this.rollUnderCanvas.embeddedRecord,this.rollUnderCanvas)}
 return}
-var _4=this.getCellRecord(_1,_2);if(!this.useCellRollOvers)_2=null;var _5=this.rollOverCanvas=this.getRollOverCanvas(_1,_2),_6=this.rollUnderCanvas=this.getRollUnderCanvas(_1,_2);_5.record=_4;_6.record=_4;this.addEmbeddedComponent(_5,_4,_1,_2,"within");this.addEmbeddedComponent(_6,_4,_1,_2,"within")}
+if(!this.useCellRollOvers)_2=null;var _6=this.rollOverCanvas=this.getRollOverCanvas(_1,_2),_7=this.rollUnderCanvas=this.getRollUnderCanvas(_1,_2);_6.record=_5;_7.record=_5;this.addEmbeddedComponent(_6,_5,_1,_2,"within");this.addEmbeddedComponent(_7,_5,_1,_2,"within")}
 ,isc.A.updateEmbeddedComponentZIndex=function isc_ListGrid_updateEmbeddedComponentZIndex(_1){if(!_1)return;if(this.selectionCanvas==_1){var _2=this.body.getTableZIndex();this.selectionCanvas.setZIndex(_2+50)}
 if(this.selectionUnderCanvas==_1){var _2=this.body.getTableZIndex();this.selectionUnderCanvas.setZIndex(_2-100)}
 if(this.rollOverCanvas==_1){var _2=this.body.getTableZIndex();_1.setZIndex(_2+100)}
@@ -2595,11 +2602,11 @@
 return this.Super("getChildFromLocatorSubstring",arguments)}},_1);if(this.headerButtonConstructor!=null)
 _3.buttonConstructor=this.headerButtonConstructor;var _19=this.createAutoChild("header",_3,isc.Toolbar);if(_19.canReorderItems&&!_19.dontObserve){this.observe(_19,"itemDragReordered","observer.headerDragReordered(itemNum,newPosition,this)")}
 if(_19.canResizeItems&&!_19.dontObserve)this.$62l(_19);if(this.headerSpans)this.$60x(_1.buttons,_19);return _19}
-,isc.A.$60x=function isc_ListGrid__addHeaderSpans(_1,_2){var _3=[],_4=_1.getProperty(this.fieldIdProperty);for(var i=0;i<this.headerSpans.length;i++){var _6=this.headerSpans[i];if(_4.intersect(_6.fields).length){_3.add(_6)}}
+);isc.evalBoundary;isc.B.push(isc.A.$60x=function isc_ListGrid__addHeaderSpans(_1,_2){var _3=[],_4=_1.getProperty(this.fieldIdProperty);for(var i=0;i<this.headerSpans.length;i++){var _6=this.headerSpans[i];if(_4.intersect(_6.fields).length){_3.add(_6)}}
 for(var i=0;i<_3.length;i++){var _6=_3[i];var _7=this,_8=_6.liveObject;if(_8==null||_8.destroyed||_8.destroying||_8.$65i){var _9=isc.addProperties(this.getButtonProperties(),{_constructor:_2.buttonConstructor,height:this.headerSpanHeight,align:"center",valign:this.headerSpanVAlign,showRollOver:false,showContextMenu:function(){return _7.headerSpanContextClick(this)}},_6);_8=_6.liveObject=this.createAutoChild("headerSpan",_9);_8.$55j=this.headerSpanHeight==null;if(_8.$55j){var _10=_6.height||(this.headerSpanProperties?this.headerSpanProperties.height:null)||(this.headerSpanDefaults?this.headerSpanDefaults:null);if(_10!=null)_8.$55j=false}}
 _8.$55k={};for(var _11=0;_11<_6.fields.length;_11++){_8.$55k[_6.fields[_11]]=true}
 _8.$82y=null;_2.addSpan(_8,_8.fields)}}
-);isc.evalBoundary;isc.B.push(isc.A.$82z=function isc_ListGrid__removeHeaderSpans(_1,_2){var _3=[],_4=_1.getProperty(this.fieldIdProperty);for(var i=0;i<this.headerSpans.length;i++){var _6=this.headerSpans[i];if(_4.intersect(_6.fields).length){var _7=_6.liveObject;if(_7)_7.$82y=null}}}
+,isc.A.$82z=function isc_ListGrid__removeHeaderSpans(_1,_2){var _3=[],_4=_1.getProperty(this.fieldIdProperty);for(var i=0;i<this.headerSpans.length;i++){var _6=this.headerSpans[i];if(_4.intersect(_6.fields).length){var _7=_6.liveObject;if(_7)_7.$82y=null}}}
 ,isc.A.dirtyHeader=function isc_ListGrid_dirtyHeader(){if(this.header)this.header.markForRedraw()}
 ,isc.A.updateHeader=function isc_ListGrid_updateHeader(){var _1=this.frozenHeader?this.headerLayout:this.header;if(_1){_1.markForDestroy();_1.clear();if(this.showHeader){var _2=[this.frozenHeader,this.header];for(var i=0;i<_2.length;i++){if(_2[i]==null)continue;if(_2[i].$55h!=null){for(var _4=0;_4<_2[i].$55h.length;_4++){var _5=_2[i].$55h[_4];if(_5)_5.deparent()}}}}
 _1.clearIDs()}
@@ -2790,11 +2797,11 @@
 ,isc.A.sortData=function isc_ListGrid_sortData(){if(!this.data||!this.fields)return;var _1=this.fields[this.$60z()],_2=null;if(_1==null){this.$600(0);_1=this.fields[0]}
 if(_1.sortNormalizer){_2=_1.sortNormalizer}else if(_1.valueMap){_2=_1.valueMap;if(isc.isA.String(_1.valueMap))_2=this.getGlobalReference(_1.valueMap)}else if(_1.type!=null){_2=_1.type}
 this.data.sortByProperty(_1[this.fieldIdProperty],_1.sortDirection,_2,this)}
-,isc.A.getEmbeddedComponentCount=function isc_ListGrid_getEmbeddedComponentCount(_1){var _2=this.body?this.body.$29a:null;if(this.frozenBody&&this.frozenBody.$29a!=null){_2=(_2?_2.duplicate():[]).addList(this.frozenBody.$29a)}
+);isc.evalBoundary;isc.B.push(isc.A.getEmbeddedComponentCount=function isc_ListGrid_getEmbeddedComponentCount(_1){var _2=this.body?this.body.$29a:null;if(this.frozenBody&&this.frozenBody.$29a!=null){_2=(_2?_2.duplicate():[]).addList(this.frozenBody.$29a)}
 if(!_2)return 0;if(_1=="recordComponent"){_2=_2.findAll("isRecordComponent",true)}else if(_1=="backgroundComponent"){_2=_2.findAll("isBackgroundComponent",true)}
 return _2==null?0:_2.length}
 ,isc.A.addEmbeddedComponent=function isc_ListGrid_addEmbeddedComponent(_1,_2,_3,_4,_5){var _6=this.getFieldBody(_4),_4=this.getLocalFieldNum(_4),_3=(_3!=null?_3:this.getRecordIndex(_2));_6.addEmbeddedComponent(_1,_2,_3,_4,_5);if(this.frozenBody!=null){var _7=_6==this.frozenBody?this.body:this.frozenBody;if(_3>=0&&_7.isDrawn()&&!_7.isDirty()){var _8=_7.getRowHeight(_2,_3);if(_8!=_6.getRowSize(_3)){_7.markForRedraw()}}}}
-);isc.evalBoundary;isc.B.push(isc.A.removeEmbeddedComponent=function isc_ListGrid_removeEmbeddedComponent(_1,_2,_3){var _4;if(isc.isA.Canvas(_1)){_2=_1;_1=_2.embeddedRecord}
+,isc.A.removeEmbeddedComponent=function isc_ListGrid_removeEmbeddedComponent(_1,_2,_3){var _4;if(isc.isA.Canvas(_1)){_2=_1;_1=_2.embeddedRecord}
 if(isc.isA.Number(_2)){_4=this.getFieldBody(_2);_2=this.getLocalFieldNum(_2)}else{if(!_2){if(!_1.$29a||_1.$29a.length==0)return;_2=_1.$29a[0]}
 _4=isc.Canvas.getById(_2.$669)}
 if(_4==null){return}
@@ -2910,7 +2917,7 @@
 if(this.$34q==null){this.$34q=["<td style='",,";"+isc.Canvas.$42a+"' class='",,"'>"+(isc.Browser.isSafari||isc.Browser.isIE?"<nobr>":""),,,,(isc.Browser.isSafari?"</nobr>":"")+"</td><td style='",,";"+isc.Canvas.$42a+"padding-left:",,"px;' class='",,"'>",,,"</td>"]}
 return this.$34q}
 ,isc.A.$82a=function isc_c_TreeGrid__doublingStringsChanged(){this.$34p=null;this.$34q=null}
-);isc.B._maxIndex=isc.C+3;isc.A=isc.TreeGrid.getPrototype();isc.A.autoFetchTextMatchStyle="exact";isc.A.cascadeSelection=false;isc.A.showPartialSelection=false;isc.A.treeFieldTitle="Name";isc.A.autoAssignTreeField=true;isc.A.showRoot=false;isc.A.displayNodeType=isc.Tree.FOLDERS_AND_LEAVES;isc.A.canDragRecordsOut=false;isc.A.dragDataAction=isc.ListGrid.MOVE;isc.A.openDropFolderDelay=600;isc.A.parentAlreadyContainsChildMessage="This item already contains a child item with that name.";isc.A.cantDragIntoSelfMessage="You can't drag an item into itself.";isc.A.cantDragIntoChildMessage="You can't drag an item into one of it's children.";isc.A.fixedFieldWidths=true;isc.A.wrapCells=false;isc.A.showHiliteInCells=false;isc.A.indentSize=20;isc.A.extraIconGap=2;isc.A.iconSize=16;isc.A.skinImgDir="images/TreeGrid/";isc.A.folderIcon="[SKIN]/folder.gif";isc.A.dropIconSuffix="drop";isc.A.openIconSuffix="open";isc.A.closedIconSuffix="closed";isc.A.nodeIcon="[SKIN]/file.gif";isc.A.showOpenIcons=true;isc.A.showDropIcons=true;isc.A.customIconProperty="icon";isc.A.customIconOpenProperty="showOpenIcon";isc.A.customIconDropProperty="showDropIcon";isc.A.showCustomIconOpen=false;isc.A.showCustomIconDrop=false;isc.A.manyItemsImage="[SKIN]folder_file.gif";isc.A.showConnectors=false;isc.A.showFullConnectors=true;isc.A.showOpener=true;isc.A.openerImage="[SKIN]opener.gif";isc.A.connectorImage="[SKIN]connector.gif";isc.A.offlineNodeMessage="This data not available while offline";isc.A.indentRecordComponents=true;isc.A.canGroupBy=false;isc.A.ignoreEmptyCriteria=false;isc.A.drawAllMaxCells=0;isc.A.drawAheadRatio=1.0;isc.A.$34l="open_icon_";isc.A.$349="extra_icon_";isc.A.$34n="icon_";isc.A.$34o="nodeTitle";isc.A=isc.TreeGrid.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.bodyConstructor="TreeGridBody";isc.A.iconPadding=3;isc.A.$64o="</tr></table>";isc.A.$39=";";isc.A.$12c="checkbox";isc.A.$34r="absmiddle";isc.A.$76g=["style='margin-right:",,"px;'"];isc.A.$4s={};isc.B.push(isc.A.initWidget=function isc_TreeGrid_initWidget(){this.invokeSuper(isc.TreeGrid,this.$oc);if(!this.dataSource&&this.data!=null&&this.data.dataSource){this.dataSource=this.data.dataSource}
+);isc.B._maxIndex=isc.C+3;isc.A=isc.TreeGrid.getPrototype();isc.A.autoFetchTextMatchStyle="exact";isc.A.cascadeSelection=false;isc.A.showPartialSelection=false;isc.A.treeFieldTitle="Name";isc.A.autoAssignTreeField=true;isc.A.showRoot=false;isc.A.displayNodeType=isc.Tree.FOLDERS_AND_LEAVES;isc.A.canDragRecordsOut=false;isc.A.dragDataAction=isc.ListGrid.MOVE;isc.A.openDropFolderDelay=600;isc.A.parentAlreadyContainsChildMessage="This item already contains a child item with that name.";isc.A.cantDragIntoSelfMessage="You can't drag an item into itself.";isc.A.cantDragIntoChildMessage="You can't drag an item into one of it's children.";isc.A.fixedFieldWidths=true;isc.A.wrapCells=false;isc.A.showHiliteInCells=false;isc.A.indentSize=20;isc.A.extraIconGap=2;isc.A.iconSize=16;isc.A.skinImgDir="images/TreeGrid/";isc.A.folderIcon="[SKIN]/folder.gif";isc.A.dropIconSuffix="drop";isc.A.openIconSuffix="open";isc.A.closedIconSuffix="closed";isc.A.nodeIcon="[SKIN]/file.gif";isc.A.showOpenIcons=true;isc.A.showDropIcons=true;isc.A.customIconProperty="icon";isc.A.customIconOpenProperty="showOpenIcon";isc.A.customIconDropProperty="showDropIcon";isc.A.showCustomIconOpen=false;isc.A.showCustomIconDrop=false;isc.A.manyItemsImage="[SKIN]folder_file.gif";isc.A.showConnectors=false;isc.A.showFullConnectors=true;isc.A.showOpener=true;isc.A.openerImage="[SKIN]opener.gif";isc.A.connectorImage="[SKIN]connector.gif";isc.A.offlineNodeMessage="This data not available while offline";isc.A.indentRecordComponents=true;isc.A.canGroupBy=false;isc.A.ignoreEmptyCriteria=false;isc.A.drawAllMaxCells=50;isc.A.drawAheadRatio=1.0;isc.A.$34l="open_icon_";isc.A.$349="extra_icon_";isc.A.$34n="icon_";isc.A.$34o="nodeTitle";isc.A=isc.TreeGrid.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.bodyConstructor="TreeGridBody";isc.A.iconPadding=3;isc.A.$64o="</tr></table>";isc.A.$39=";";isc.A.$12c="checkbox";isc.A.$34r="absmiddle";isc.A.$76g=["style='margin-right:",,"px;'"];isc.A.$4s={};isc.B.push(isc.A.initWidget=function isc_TreeGrid_initWidget(){this.invokeSuper(isc.TreeGrid,this.$oc);if(!this.dataSource&&this.data!=null&&this.data.dataSource){this.dataSource=this.data.dataSource}
 if(!this.fields||this.fields.length==0){this.fields=[isc.TreeGrid.TREE_FIELD]}}
 ,isc.A.setDataSource=function isc_TreeGrid_setDataSource(_1,_2){if(_2==null||_2.length==0){_2=[isc.TreeGrid.TREE_FIELD]}
 return this.Super("setDataSource",[_1,_2])}
@@ -3119,14 +3126,17 @@
 if(this.isAFilterEditor())this.setValuesAsCriteria(_3);else this.setEditValues(0,_3);var _7=_1[1];this.$31u(0,_7)}
 this.Super("draw",arguments);this.$35i.bringToFront()}
 ,isc.A.setFields=function isc_RecordEditor_setFields(){this.Super("setFields",arguments);var _1=this.findNextEditCell(0,0,1,true,true);if(_1==null)_1=[0,0];if(this.isDrawn()&&!this.$30a)this.$31u(0,_1[1])}
-,isc.A.createChildren=function isc_RecordEditor_createChildren(){this.Super("createChildren",arguments);if(!this.$35i)this.makeActionButton()}
+,isc.A.createChildren=function isc_RecordEditor_createChildren(){this.Super("createChildren",arguments);var _1=this.getEditForm();if(_1!=null&&this.$789){_1.setValuesAsCriteria(this.$789);delete this.$789;if(this.isAFilterEditor())_1.isSearchForm=true}
+if(!this.$35i)this.makeActionButton()}
 ,isc.A.makeActionButton=function isc_RecordEditor_makeActionButton(){var _1;if(this.isAFilterEditor()){_1=this.filterImg}else{_1=this.saveImg}
 this.$35i=isc.Button.create({recordEditor:this,left:this.getInnerWidth()-this.getScrollbarSize(),width:this.getScrollbarSize(),autoDraw:false,baseStyle:this.actionButtonStyle,skinImgDir:this.skinImgDir,icon:_1.src,showRollOverIcon:_1.showOver,showFocusedIcon:_1.showFocused,showFocusedAsOver:false,click:function(){this.recordEditor.performAction()}},this.actionButtonDefaults,this.actionButtonProperties);this.addChild(this.$35i);this.$35i.$sq(this)}
 ,isc.A.performAction=function isc_RecordEditor_performAction(_1){if(this.isAFilterEditor())this.performFilter(_1);else this.performSave(_1)}
 ,isc.A.setValuesAsCriteria=function isc_RecordEditor_setValuesAsCriteria(_1,_2){var _3=this.getEditForm();if(_3==null){this.$789=_1;return}
 _3.setValuesAsCriteria(_1);if(_2)this.refreshRow(0)}
-,isc.A.makeEditForm=function isc_RecordEditor_makeEditForm(){var _1=this.getEditForm(),_2;if(_1==null){_2=this.$789}else{_2=_1.getValuesAsCriteria()}
-this.Super("makeEditForm",arguments);_1=this.getEditForm();if(_1!=null){_1.setValuesAsCriteria(_2);delete this.$789;if(this.isAFilterEditor())_1.isSearchForm=true}}
+,isc.A.makeEditForm=function isc_RecordEditor_makeEditForm(){var _1=this.editFormProperties=this.editFormProperties||{};if(_1.allowExpressions==null&&this.allowFilterExpressions!=null)
+_1.allowExpressions=this.allowFilterExpressions;_1.expressionDataSource=this.expressionDataSource;var _2=this.getEditForm(),_3;if(_2==null){_3=this.$789}else{_3=_2.getValuesAsCriteria();_2.expressionDataSource=this.expressionDataSource}
+this.Super("makeEditForm",arguments);_2=this.getEditForm();if(_2!=null){_2.setValuesAsCriteria(_3);delete this.$789;if(this.isAFilterEditor())_2.isSearchForm=true}}
+,isc.A.updateDataSource=function isc_RecordEditor_updateDataSource(_1){this.expressionDataSource=_1;var _2=this.getEditForm();if(_2)_2.expressionDataSource=this.expressionDataSource}
 ,isc.A.getEditDisplayValue=function isc_RecordEditor_getEditDisplayValue(_1,_2,_3){if(this.isAFilterEditor()&&this.$286!=null){var _4=this.getFieldName(_2);return this.$286.getValue(_4)}
 return this.Super("getEditDisplayValue",arguments)}
 ,isc.A.performFilter=function isc_RecordEditor_performFilter(_1){var _2=this.$74n(this.sourceWidget.autoFetchTextMatchStyle);var _3={};if(_1)_3.showPrompt=false;_3.textMatchStyle=this.sourceWidget.autoFetchTextMatchStyle;var _4=this.sourceWidget.data;if(isc.isA.ResultSet(_4)&&_4.willFetchData(_2,_3.textMatchStyle)){this.fireOnPause("performFilter",{target:this.sourceWidget,methodName:"handleFilterEditorSubmit",args:[_2,_3]},this.fetchDelay)}else{this.sourceWidget.handleFilterEditorSubmit(_2,_3)}}
@@ -3175,7 +3185,7 @@
 ,isc.A.rebuildForFreeze=function isc_RecordEditor_rebuildForFreeze(){}
 ,isc.A.rowClick=function isc_RecordEditor_rowClick(){}
 ,isc.A.rowDoubleClick=function isc_RecordEditor_rowDoubleClick(){}
-);isc.B._maxIndex=isc.C+38;isc.ClassFactory.defineClass("Menu","ListGrid");isc.A=isc.Menu;isc.A.standardFields={icon:"ICON_FIELD",title:"TITLE_FIELD",key:"KEY_FIELD",subMenu:"SUBMENU_FIELD"};isc.A.ICON_FIELD={name:"icon",width:25,getCellValue:function(_1,_2){return _1.getIcon(_2)}};isc.A.TITLE_FIELD={name:"title",width:"*",getCellValue:function(_1,_2){return _1.getItemTitle(_2)}};isc.A.KEY_FIELD={name:"keys",width:35,getCellValue:function(_1,_2){return _1.getKeyTitle(_2)}};isc.A.SUBMENU_FIELD={name:"submenu",width:18,getCellValue:function(_1,_2){return _1.getSubmenuImage(_2)}};isc.A.$kc=[];isc.A.SHIFT=(isc.Browser.isWin?"Shift+":"shift-");isc.A.CTRL=(isc.Browser.isWin?"Ctrl+":"ctrl-");isc.A.ALT=(isc.Browser.isWin?"Alt+":"option-");isc.A.META=(isc.Browser.isWin?"Windows+":"command-");isc.A=isc.Menu.getPrototype();isc.A.fixedIconWidth=true;isc.A.styleName="normal";isc.A.bodyStyleName="normal";isc.A.submenuDelay=200;isc.A.submenuOffset=-4;isc.A.defaultWidth=150;isc.A.defaultHeight=20;isc.A.enforceMaxHeight=true;isc.A.maxHeight=null;isc.A.backgroundColor=null;isc.A.overflow=isc.Canvas.VISIBLE;isc.A.bodyOverflow=isc.Canvas.VISIBLE;isc.A.arrowKeyAction="focus";isc.A.selectionType=isc.Selection.NONE;isc.A.autoDraw=false;isc.A.tableStyle="menuTable";isc.A.showRollOver=true;isc.A.showFocusOutline=false;isc.A.showAllRecords=true;isc.A.fixedFieldWidths=false;isc.A.fixedRecordHeights=false;isc.A.leaveScrollbarGap=false;isc.A.baseStyle="menu";isc.A.alternateRecordStyles=false;isc.A.showHeader=false;isc.A.showSortArrow=isc.ListGrid.NONE;isc.A.canDrag=false;isc.A.canAcceptDrop=false;isc.A.canReorderRecords=false;isc.A.useKeys=true;isc.A.showKeys=true;isc.A.showIcons=true;isc.A.showSubmenus=true;isc.A.submenuDirection="right";isc.A.showFieldsSeparately=false;isc.A.emptyMessage="[Empty menu]";isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.iconWidth=16;isc.A.iconHeight=16;isc.A.autoSetDynamicItems=true;isc.A.skinImgDir="images/Menu/";isc.A.submenuImage={src:"[SKIN]submenu.gif",width:7,height:7};isc.A.submenuDisabledImage={src:"[SKIN]submenu_disabled.gif",width:7,height:7};isc.A.checkmarkImage={src:"[SKIN]check.gif",width:9,height:9};isc.A.checkmarkDisabledImage={src:"[SKIN]check_disabled.gif",width:9,height:9};isc.A.useBackMask=true;isc.A.submenuInheritanceMask=["submenuConstructor","$35k","className","submenuDelay","submenuOffset","defaultWidth","backgroundColor","tableStyle","showRollOver","baseStyle","emptyMessage","canDrag","canAcceptDrop","canReorderRecords","useKeys","showKeys","showIcons","showSubmenus","submenuDirection","cellPadding","iconWidth","iconHeight","autoSetDynamicItems","skinImgDir","submenuImage","submenuDisabledImage","checkmarkImage","checkmarkDisabledImage","bodyDefaults","itemClick","canSelectParentItems","childrenProperty","inheritedProperties"];isc.A.mergeSingleParent=true;isc.A.autoDismiss=true;isc.A.cascadeAutoDismiss=true;isc.A.autoDismissOnBlur=true;isc.A.fetchSubmenus=true;isc.A=isc.Menu.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$oz="left";isc.A.$o1="right";isc.B.push(isc.A.initWidget=function isc_Menu_initWidget(){this.$35l();this.position=isc.Canvas.ABSOLUTE;if(this.dataSource!=null&&!this.hasFlatDataSource()){var _1=this.createResultTree(null,null,{showPrompt:false,dataProperties:{autoOpenRoot:false}});if(this.items)_1.addList(this.items,_1.getRoot());if(this.loadDataOnDemand==false){_1.loadChildren(_1.getRoot(),{caller:this,methodName:"treeDataLoaded"})}
+);isc.B._maxIndex=isc.C+39;isc.ClassFactory.defineClass("Menu","ListGrid");isc.A=isc.Menu;isc.A.standardFields={icon:"ICON_FIELD",title:"TITLE_FIELD",key:"KEY_FIELD",subMenu:"SUBMENU_FIELD"};isc.A.ICON_FIELD={name:"icon",width:25,getCellValue:function(_1,_2){return _1.getIcon(_2)}};isc.A.TITLE_FIELD={name:"title",width:"*",getCellValue:function(_1,_2){return _1.getItemTitle(_2)}};isc.A.KEY_FIELD={name:"keys",width:35,getCellValue:function(_1,_2){return _1.getKeyTitle(_2)}};isc.A.SUBMENU_FIELD={name:"submenu",width:18,getCellValue:function(_1,_2){return _1.getSubmenuImage(_2)}};isc.A.$kc=[];isc.A.SHIFT=(isc.Browser.isWin?"Shift+":"shift-");isc.A.CTRL=(isc.Browser.isWin?"Ctrl+":"ctrl-");isc.A.ALT=(isc.Browser.isWin?"Alt+":"option-");isc.A.META=(isc.Browser.isWin?"Windows+":"command-");isc.A=isc.Menu.getPrototype();isc.A.fixedIconWidth=true;isc.A.styleName="normal";isc.A.bodyStyleName="normal";isc.A.submenuDelay=200;isc.A.submenuOffset=-4;isc.A.defaultWidth=150;isc.A.defaultHeight=20;isc.A.enforceMaxHeight=true;isc.A.maxHeight=null;isc.A.backgroundColor=null;isc.A.overflow=isc.Canvas.VISIBLE;isc.A.bodyOverflow=isc.Canvas.VISIBLE;isc.A.arrowKeyAction="focus";isc.A.selectionType=isc.Selection.NONE;isc.A.autoDraw=false;isc.A.tableStyle="menuTable";isc.A.showRollOver=true;isc.A.showFocusOutline=false;isc.A.showAllRecords=true;isc.A.fixedFieldWidths=false;isc.A.fixedRecordHeights=false;isc.A.leaveScrollbarGap=false;isc.A.baseStyle="menu";isc.A.alternateRecordStyles=false;isc.A.showHeader=false;isc.A.showSortArrow=isc.ListGrid.NONE;isc.A.canDrag=false;isc.A.canAcceptDrop=false;isc.A.canReorderRecords=false;isc.A.useKeys=true;isc.A.showKeys=true;isc.A.showIcons=true;isc.A.showSubmenus=true;isc.A.submenuDirection="right";isc.A.showFieldsSeparately=false;isc.A.emptyMessage="[Empty menu]";isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.iconWidth=16;isc.A.iconHeight=16;isc.A.autoSetDynamicItems=true;isc.A.skinImgDir="images/Menu/";isc.A.submenuImage={src:"[SKIN]submenu.gif",width:7,height:7};isc.A.submenuDisabledImage={src:"[SKIN]submenu_disabled.gif",width:7,height:7};isc.A.checkmarkImage={src:"[SKIN]check.gif",width:9,height:9};isc.A.checkmarkDisabledImage={src:"[SKIN]check_disabled.gif",width:9,height:9};isc.A.useBackMask=true;isc.A.submenuInheritanceMask=["submenuConstructor","$35k","className","submenuDelay","submenuOffset","defaultWidth","backgroundColor","tableStyle","showRollOver","baseStyle","emptyMessage","canDrag","canAcceptDrop","canReorderRecords","useKeys","showKeys","showIcons","showSubmenus","submenuDirection","cellPadding","iconWidth","iconHeight","autoSetDynamicItems","skinImgDir","submenuImage","submenuDisabledImage","checkmarkImage","checkmarkDisabledImage","bodyDefaults","itemClick","canSelectParentItems","childrenProperty","inheritedProperties"];isc.A.mergeSingleParent=true;isc.A.autoDismiss=true;isc.A.cascadeAutoDismiss=true;isc.A.autoDismissOnBlur=true;isc.A.fetchSubmenus=true;isc.A=isc.Menu.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$oz="left";isc.A.$o1="right";isc.B.push(isc.A.initWidget=function isc_Menu_initWidget(){this.$35l();this.position=isc.Canvas.ABSOLUTE;if(this.dataSource!=null&&!this.hasFlatDataSource()){var _1=this.createResultTree(null,null,{showPrompt:false,dataProperties:{autoOpenRoot:false}});if(this.items)_1.addList(this.items,_1.getRoot());if(this.loadDataOnDemand==false){_1.loadChildren(_1.getRoot(),{caller:this,methodName:"treeDataLoaded"})}
 this.data=_1}else if(this.dataSource!=null){var _2=isc.DataSource.get(this.dataSource);_2.fetchData(null,{caller:this,methodName:"flatDataLoaded"})}
 if(this.data==null&&this.items!=null)this.data=this.items;if(isc.Tree&&isc.isA.Tree(this.data)){this.$35k=this.data;this.childrenProperty=this.data.childrenProperty;var _3=this.data.getChildren(),_4=this.mergeSingleParent&&!isc.isA.ResultTree(this.$35k)&&_3.length==1&&this.data.hasChildren(_3[0]);if(_4){var _5=_3[0];this.data=this.data.getChildren(_5).duplicate();this.data.add({isSeparator:true});var _6={};isc.addProperties(_6,_5);_6[this.childrenProperty]=null;this.data.add(_6)}else{this.data=null}}
 this.Super(this.$oc);if(!this.fields){this.$51r=true;this.fields=[];var _7=(this.submenuDirection==this.$oz);if(_7&&this.showSubmenus)this.fields.add(isc.Menu.SUBMENU_FIELD);if(this.showIcons)this.fields.add(isc.Menu.ICON_FIELD);this.fields.add(isc.Menu.TITLE_FIELD);if(this.showKeys)this.fields.add(isc.Menu.KEY_FIELD);if(!_7&&this.showSubmenus)this.fields.add(isc.Menu.SUBMENU_FIELD)}else{this.$51r=false;for(var i=0;i<this.fields.length;i++){var _9=this.fields[i];if(isc.isA.String(_9)){if(isc.Menu.standardFields[_9]!=null){this.fields[i]=isc.Menu[isc.Menu.standardFields[_9]]}else{this.logWarn("Menu field specified as :"+_9+". This is not a recognized standard field name");this.fields.removeAt(i);i-=1}}}}
@@ -3677,8 +3687,8 @@
 ,isc.A.getCellCSSText=function isc_DOMGrid_getCellCSSText(_1,_2,_3){var _4=this.data.getElement(_1);if(_4==null)return null;var _5=_4.tagName;if(_5==null)return null;if(this.$36k[_5]){_5=this.$36k[_5]}else{this.$36k=_5=_5.toLowerCase()}
 if(this.colorMap[_5]!=null){return isc.SB.concat(this.colorPrefix,this.colorMap[_5],isc.semi)}}
 );isc.B._maxIndex=isc.C+11;isc.ClassFactory.defineClass("MenuBar","Toolbar");isc.addGlobal("Menubar",isc.MenuBar);isc.A=isc.MenuBar.getPrototype();isc.A.overflow=isc.Canvas.VISIBLE;isc.A.defaultHeight=22;isc.A.menuConstructor="Menu";isc.A.buttonConstructor="MenuBarButton";isc.A.tabIndex=-1;isc.A.tabWithinToolbar=false;isc.A.buttonDefaults={showDown:false,showRollOver:true,showFocused:true,showFocusedAsOver:true};isc.A=isc.MenuBar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.initWidget=function isc_MenuBar_initWidget(){this.Super("initWidget",arguments)}
-,isc.A.setButtons=function isc_MenuBar_setButtons(_1){_1=[];for(var i=0;i<this.menus.length;i++){var _3=this.menus[i];_1[i]=this.$36o(_3,i)}
-return this.Super("setButtons",[_1])}
+,isc.A.setButtons=function isc_MenuBar_setButtons(){newButtons=[];if(this.menus){for(var i=0;i<this.menus.length;i++){var _2=this.menus[i];newButtons[i]=this.$36o(_2,i)}}
+return this.Super("setButtons",[newButtons],arguments)}
 ,isc.A.$36o=function isc_MenuBar__getButtonProperties(_1,_2){return{title:_1.title,width:(_1.menuButtonWidth?_1.menuButtonWidth:_1.width),menuNum:_2,focusChanged:function(_3){if(isc.Browser.isMoz&&_3)this.bringToFront()}}}
 ,isc.A.setMenus=function isc_MenuBar_setMenus(_1){if(!isc.isAn.Array(_1))_1=[_1];for(var i=0;i<this.members.length;i++){var _3=this.members[i],_4=this.menus[_3.menuNum];if(_3.isObserving(_4,"hide")){_3.ignore(_4,"hide")}}
 this.menus=_1;this.setButtons(_1)}
@@ -4018,7 +4028,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Grids.js.gz has changed
--- a/isomorphic/system/development/ISC_History.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_History.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -36,7 +36,7 @@
 var isc = window.isc ? window.isc : {};if(window.isc&&!window.isc.module_History){isc.module_History=1;isc._moduleStart=isc._History_start=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc._moduleEnd&&(!isc.Log||(isc.Log && isc.Log.logIsDebugEnabled('loadTime')))){isc._pTM={ message:'History load/parse time: ' + (isc._moduleStart-isc._moduleEnd) + 'ms', category:'loadTime'};
 if(isc.Log && isc.Log.logDebug)isc.Log.logDebug(isc._pTM.message,'loadTime')
 else if(isc._preLog)isc._preLog[isc._preLog.length]=isc._pTM
-else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-04-17/LGPL Development Only";isc.versionNumber="SC_SNAPSHOT-2011-04-17";isc.buildDate="2011-04-17";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
+else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-05-05/LGPL Development Only";isc.versionNumber="SC_SNAPSHOT-2011-05-05";isc.buildDate="2011-05-05";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
 return _1};isc.hasOptionalModules=function(_1){if(!_1)return true;_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++)if(!isc.hasOptionalModule(_1[i]))return false;return true};isc.getMissingModules=function(_1){var _2=[];_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++){var _4=_1[i];if(!isc.hasOptionalModule(_4))_2.add(isc.$41r[_4])}
 return _2};isc.hasOptionalModule=function(_1){var v=isc.$41r[_1];if(!v){if(isc.Log)isc.Log.logWarn("isc.hasOptionalModule - unknown module: "+_1);return false}
 return v.present=="true"||v.present.charAt(0)=="$"};isc.getOptionalModule=function(_1){return isc.$41r[_1]};isc.$a=window.isc_useSimpleNames;if(isc.$a==null)isc.$a=true;if(window.OpenAjax){isc.$b=isc.versionNumber.replace(/[a-zA-Z_]+/,".0");OpenAjax.registerLibrary("SmartClient","http://smartclient.com/SmartClient",isc.$b,{namespacedMode:!isc.$a,iscVersion:isc.version,buildDate:isc.buildDate,licenseType:isc.licenseType,licenseCompany:isc.licenseCompany,licenseSerialNumber:isc.licenseSerialNumber});OpenAjax.registerGlobals("SmartClient",["isc"])}
@@ -83,7 +83,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_History.js.gz has changed
--- a/isomorphic/system/development/ISC_Kapow.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Kapow.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -43,7 +43,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Kapow.js.gz has changed
--- a/isomorphic/system/development/ISC_PluginBridges.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_PluginBridges.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -98,7 +98,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_PluginBridges.js.gz has changed
--- a/isomorphic/system/development/ISC_RichTextEditor.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_RichTextEditor.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -249,7 +249,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_RichTextEditor.js.gz has changed
--- a/isomorphic/system/development/ISC_SQLBrowser.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_SQLBrowser.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -203,7 +203,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_SQLBrowser.js.gz has changed
--- a/isomorphic/system/development/ISC_SalesForce.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_SalesForce.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -4599,7 +4599,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_SalesForce.js.gz has changed
--- a/isomorphic/system/development/ISC_Scheduler.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Scheduler.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -189,7 +189,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Scheduler.js.gz has changed
--- a/isomorphic/system/development/ISC_SyntaxHiliter.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_SyntaxHiliter.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -60,7 +60,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_SyntaxHiliter.js.gz has changed
--- a/isomorphic/system/development/ISC_Tools.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/development/ISC_Tools.js	Thu May 05 22:40:54 2011 +0200
@@ -2,7 +2,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
@@ -350,7 +350,7 @@
 /*
 
   SmartClient Ajax RIA system
-  Version SC_SNAPSHOT-2011-04-17/LGPL Development Only (2011-04-17)
+  Version SC_SNAPSHOT-2011-05-05/LGPL Development Only (2011-05-05)
 
   Copyright 2000 and beyond Isomorphic Software, Inc. All rights reserved.
   "SmartClient" is a trademark of Isomorphic Software, Inc.
Binary file isomorphic/system/development/ISC_Tools.js.gz has changed
--- a/isomorphic/system/helpers/Log.html	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/helpers/Log.html	Thu May 05 22:40:54 2011 +0200
@@ -36,23 +36,23 @@
 </SCRIPT>
 <!--  -->
 
-<SCRIPT src=../development/ISC_FileLoader.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
+<SCRIPT src=../development/ISC_FileLoader.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
 <SCRIPT>isc.FileLoader.modulesDir = "system/development/";</SCRIPT>
-<SCRIPT src=../development/ISC_Core.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-<SCRIPT src=../development/ISC_Foundation.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-<SCRIPT src=../development/ISC_Containers.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-<SCRIPT src=../development/ISC_Grids.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-<SCRIPT src=../development/ISC_Forms.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-<SCRIPT src=../development/ISC_DataBinding.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
-<SCRIPT src=../development/ISC_Tools.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
+<SCRIPT src=../development/ISC_Core.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+<SCRIPT src=../development/ISC_Foundation.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+<SCRIPT src=../development/ISC_Containers.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+<SCRIPT src=../development/ISC_Grids.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+<SCRIPT src=../development/ISC_Forms.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+<SCRIPT src=../development/ISC_DataBinding.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
+<SCRIPT src=../development/ISC_Tools.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
 <!--  -->
-<SCRIPT src=../../skins/Enterprise/load_skin.js?isc_version=SC_SNAPSHOT-2011-04-17.js></SCRIPT>
+<SCRIPT src=../../skins/Enterprise/load_skin.js?isc_version=SC_SNAPSHOT-2011-05-05.js></SCRIPT>
 <SCRIPT>
 
 
 
 if (!(isc.loadSkin || window.loadSkin)) {
-	document.write("<script src="+window.opener.isc.Page.getSkinDir()+"load_skin.js?isc_version=SC_SNAPSHOT-2011-04-17.js></"+"script>");
+	document.write("<script src="+window.opener.isc.Page.getSkinDir()+"load_skin.js?isc_version=SC_SNAPSHOT-2011-05-05.js></"+"script>");
 }
 </SCRIPT>
 <SCRIPT>isc.deferAutoDraw = true;</SCRIPT>
--- a/isomorphic/system/modules/ISC_Calendar.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/modules/ISC_Calendar.js	Thu May 05 22:40:54 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -86,31 +86,35 @@
 ,isc.A.$53g=function isc_Calendar__getEventsInRange(_1,_2){var _3=[];var _4=Date.getWeekendDays();for(var i=0;i<this.data.getLength();i++){var _6=this.data.get(i);if(!_6||!_6[this.startDateField])return[];if(_6[this.startDateField].getTime()>=_1.getTime()&&_6[this.startDateField].getTime()<=_2.getTime()&&(this.showWeekends||!_4.contains(_6[this.startDateField].getDay()))){_3.add(_6)}}
 return _3}
 ,isc.A.$64h=function isc_Calendar__getEventsTouchingRange(_1,_2,_3){var _4=[],_5=Date.getWeekendDays(),_6=_1.getTime(),_7=this.getDayEnd(_1),_8=_2.getHours()!=0?_2.getTime():_7.getTime(),_9=_6,_10=_8,_11=false;var _12=(_2.getHours()==0||Date.compareDates(_1,_2)<0)?_7:_2;while(!_11){for(var i=0;i<this.data.getLength();i++){var _14=this.data.get(i);var _15=_14[this.startDateField],_16=_14[this.endDateField];if(_16.getHours()==0||_16<_15){_16=_7}
-if(!_15)return[];if((_15.getTime()>=_6&&_15.getTime()<_8&&_15.getDay()==_1.getDay())||(_16.getTime()>_6&&_16.getTime()<=_8&&_16.getDay()==_2.getDay())||(_15.getTime()<_6&&_16.getTime()>_8&&(_15.getDay()==_1.getDay()||_16.getDay()==_2.getDay()))&&(this.showWeekends||!_5.contains(_15.getDay())))
+if(!_15)return[];var _17=_15.getTime(),_18=_15.getDay(),_19=_16.getTime(),_20=_16.getDay();var _21=(_17>=_6&&_17<_8&&_18==_1.getDay());var _22=(_19>_6&&_19<=_8&&_20==_1.getDay());var _23=(_17<=_6)&&(_19>=_8)&&(_18==_1.getDay());if((_21||_22||_23)&&(this.showWeekends||!_5.contains(_15.getDay())))
 {_4.add(_14);if(_3){if(_15.getTime()<_9){_9=_15.getTime()}
 if(_16.getTime()>_10){_10=_16.getTime()}}}}
 if(!_3||(_9==_6&&_10==_8)){_11=true}else{_6=_9;_8=_10;_4.clear()}}
 return _4}
 ,isc.A.$64i=function isc_Calendar__findEventWindow(_1,_2){var _3=(_2?this.weekView:this.dayView);if(!_3.body||!_3.body.children)return;var _4=_3.body.children;if(this.dataSource)this.$53s=isc.DataSource.get(this.dataSource).getLocalPrimaryKeyFields();for(var i=0;i<_4.length;i++){if(isc.isAn.EventWindow(_4[i])&&_3.areSame(_4[i].event,_1)&&_4[i].$53i==_2){return _4[i]}}
 return false}
-,isc.A.$64j=function isc_Calendar__prepareAutoArrangeOffsets(_1,_2){var _3=[],_4=0,_5=60/this.eventSnapGap,_6=24*_5;for(var i=0;i<_6;i++){_3.add({usedCol:0,assignedCol:0,exactTime:0})}
-for(var i=0;i<_1.getLength();i++){var _8=_1.get(i);var _9=_8[this.startDateField].getHours(),_10=_8[this.startDateField].getMinutes(),_11=_10%this.eventSnapGap;if(_11){_10=_10-_11}
-if(_9==24)_9=0;var _12=_8[this.endDateField].getHours(),_13=_8[this.endDateField].getMinutes(),_14=_13%this.eventSnapGap;if(_14){_13=_13+(this.eventSnapGap-_14);if(_13==60){_13=0;_12++}}
-_8.$64k=0;_8.$64l=0;var _15=(_9*_5)+(_10/ this.eventSnapGap),_16=(_12*_5)+(_13/ this.eventSnapGap);for(var _17=_15;_17<_16;_17++){var _18=_3[_17].usedCol;var _19=_3[_17].assignedCol;var _20=_3[_17].exactTime;if(_17==_15){var _21=_19!=0;_8.$64k=_19;if(this.eventOverlap){if(!this.eventOverlapIdenticalStartTimes){_8.$64m=_20==0}else{_8.$64m=true}
-_20=1}
-_19++;if(_19>_4){_4=_19}
-if(!_21&&_18!=0){_8.$64l=_18;_19=_18+1}else{if(_19<=_18){_8.$64l=_18;_19=_18+1}else{_8.$64l=_4}}}else{if(_21){if(_19==0){if(_18==0){_18=_8.$64k}}else{if(_18==0){if(_8.$64k>_19){_18=_8.$64k}else{_19=_8.$64k+1}}else if(_19<_18){_19=_18+1}}}else{if(_19+1<_18){_19++}else{_19=_18+1}}}
-_3[_17].usedCol=_18;_3[_17].assignedCol=_19;_3[_17].exactTime=_20}}
-return _4}
+,isc.A.$64j=function isc_Calendar__prepareAutoArrangeOffsets(_1,_2){var _3=[],_4=60/this.eventSnapGap,_5=24*_4,_6=[new Array(_5),new Array(_5),new Array(_5),new Array(_5),new Array(_5),new Array(_5),new Array(_5)];for(var i=0;i<_5;i++){_3.add({usedCol:[0,0,0,0,0,0,0],assignedCol:[0,0,0,0,0,0,0],exactTime:[0,0,0,0,0,0,0]})}
+for(var i=0;i<_1.getLength();i++){var _8=_1.get(i);var _9=_8[this.startDateField].getDay();var _10=_8[this.startDateField].getHours(),_11=_8[this.startDateField].getMinutes(),_12=_11%this.eventSnapGap;if(_12){_11=_11-_12}
+if(_10==24)_10=0;var _13=_8[this.endDateField].getDay(),_14=_8[this.endDateField].getHours(),_15=_8[this.endDateField].getMinutes(),_16=_15%this.eventSnapGap;if(_13>_9){_14=24;_15=0;_16=0}
+if(_16){_15=_15+(this.eventSnapGap-_16);if(_15==60){_15=0;_14++}}
+var _17=(_10*_4)+(_11/ this.eventSnapGap),_18=(_14*_4)+(_15/ this.eventSnapGap);_8.$64k=0;_8.$64l=0;_8.$85h=_17;_8.$85i=_18;for(var _19=_17;_19<_18;_19++){var _20=_3[_19];var _21=_3[_19].usedCol[_9];var _22=_3[_19].assignedCol[_9];var _23=_3[_19].exactTime[_9];if(_6[_9][_19]==null)_6[_9][_19]=0;if(_19==_17){var _24=_22!=0;_8.$64k=_22;if(this.eventOverlap){if(!this.eventOverlapIdenticalStartTimes){_8.$64m=_23==0}else{_8.$64m=true}
+_23=1}
+_22++;if(_22>_6[_9][_19]){_6[_9][_19]=_22}
+if(!_24&&_21!=0){_8.$64l=_21;_22=_21+1}else{if(_22<=_21){_8.$64l=_21;_22=_21+1}else{_8.$64l=_6[_9][_19]}}}else{if(_24){if(_22==0){if(_21==0){_21=_8.$64k}}else{if(_21==0){if(_8.$64k>_22){_21=_8.$64k}else{_22=_8.$64k+1}}else if(_22<_21){_22=_21+1}}}else{if(_22+1<_21){_22++}else{_22=_21+1}}}
+_3[_19].usedCol[_9]=_21;_3[_19].assignedCol[_9]=_22;_3[_19].exactTime[_9]=_23}}
+return _6}
 ,isc.A.getDayEnd=function isc_Calendar_getDayEnd(_1){return new Date(_1.getFullYear(),_1.getMonth(),_1.getDate(),23,59,59)}
 ,isc.A.$64n=function isc_Calendar__renderEventRange(_1,_2,_3){var _4=(_1?this.weekView:this.dayView);if(!_4.isDrawn())return;var _5=_4.getRowHeight(1),_6=_4.getColumnWidth(_4.isLabelCol(0)?1:0);var _7=_2,_8=_3;if(Date.compareDates(_7,_8)<0||(_8.getHours()==0)){_8=this.getDayEnd(_7)}
-var _9=this.$64h(_7,_8,true);_9.sortByProperties([this.startDateField,this.endDateField],[true,false]);var _10=this.$64j(_9,_4);if(_10==0)_10=1;_9.unsort();_9.sortByProperties(["$64k"],[true]);var _11=_6/ _10;for(var i=0;i<_9.getLength();i++){var _13=_9.get(i);if(_13.$64l==0)_13.$64l=1;var _14=this.getEventLeft(_13,_1);_14+=(_13.$64k*_11);var _15=(_13.$64l-_13.$64k)*_11;if(this.eventOverlap&&_13.$64m){if(_13.$64k>0){_14-=_11*(this.eventOverlapPercent/ 100);_15+=_11*(this.eventOverlapPercent/ 100)}}
-var _16=_13[this.endDateField].getHours();if(_16==0&&_13[this.endDateField].getMinutes()==0)_16=24;var _17=false;if(_2.getDate()>_3.getDate()){_17=true;_16=24}
-var _18=(_16-_13[this.startDateField].getHours())*(_5*2)
-if(this.weekEventBorderOverlap&&_4.$53i)_15+=1;if(_13[this.startDateField].getMinutes()>0){_18-=this.$54g(_13[this.startDateField].getMinutes(),_5)}
-if(_13[this.endDateField].getMinutes()>0&&!_17){_18+=this.$54g(_13[this.endDateField].getMinutes(),_5)}
-var _19=_13[this.startDateField].getHours()*(_5*2);if(_13[this.startDateField].getMinutes()>0){_19+=this.$54g(_13[this.startDateField].getMinutes(),_5)}
-var _20=this.$64i(_13,_1);if(_20){_20.renderEvent(_19,_14,_15,_18)}}}
+var _9=this.$64h(_7,_8,true);_9.sortByProperties([this.startDateField,this.endDateField],[true,false]);var _10=this.$64j(_9,_4);for(var i=0;i<_10.length;i++){for(var j=0;j<_10[i].length;j++){if(_10[i][j]==0)_10[i][j]=1}}
+_9.unsort();_9.sortByProperties(["$64k"],[true]);for(var i=0;i<_9.getLength();i++){var _13=_9.get(i),_14=_13[this.startDateField],_15=_13[this.endDateField];var _16=_14.getDay();var _17=_10[_16];var _18=this.getTimeSlotsTouchedByEventRange(_13);var _19=_6/
+Math.max(1,_17.max(_18.min,_18.max-1));if(_13.$64l==0)_13.$64l=1;var _20=this.getEventLeft(_13,_1);_20+=(_13.$64k*_19);var _21=(_13.$64l-_13.$64k)*_19;if(this.eventOverlap&&_13.$64m){if(_13.$64k>0){_20-=_19*(this.eventOverlapPercent/ 100);_21+=_19*(this.eventOverlapPercent/ 100)}}
+var _22=_15.getHours(),_23=_15.getMinutes();if(_22==0&&(_23==0||_15.getDate()!=_14.getDate())){_22=24;_23=0}
+var _24=(_22-_14.getHours())*(_5*2)
+if(this.weekEventBorderOverlap&&_4.$53i)_21+=1;if(_14.getMinutes()>0){_24-=this.$54g(_14.getMinutes(),_5)}
+if(_23>0){_24+=this.$54g(_23,_5)}
+var _25=_14.getHours()*(_5*2);if(_14.getMinutes()>0){_25+=this.$54g(_14.getMinutes(),_5)}
+var _26=this.$64i(_13,_1);if(_26){_26.renderEvent(_25,_20,_21,_24)}}}
+,isc.A.getTimeSlotsTouchedByEventRange=function isc_Calendar_getTimeSlotsTouchedByEventRange(_1){var _2=this.$64h(_1[this.startDateField],_1[this.endDateField],true);var _3=_2.getProperty("$85h").min();var _4=_2.getProperty("$85i").max();return{min:_3,max:_4}}
 ,isc.A.$529=function isc_Calendar__setChosenWeek(){var _1=this.chosenWeekStart=new Date(this.year,this.month,this.chosenDate.getDate()
 -this.chosenDate.getDay()+this.firstDayOfWeek);if(Date.compareDates(this.chosenDate,_1)==1){this.chosenWeekStart.setDate(this.chosenWeekStart.getDate()-7)}
 this.chosenWeekEnd=new Date(_1.getFullYear(),_1.getMonth(),_1.getDate()+6,23,59);if(Date.compareDates(this.chosenDate,this.chosenWeekEnd)==-1){this.chosenWeekStart.setDate(this.chosenWeekStart.getDate()+7);this.chosenWeekEnd.setDate(this.chosenWeekEnd.getDate()+7)}}
@@ -209,7 +213,7 @@
 ,isc.A.getActiveDay=function isc_Calendar_getActiveDay(){var _1=this.getActiveTime();if(_1)return _1.getDay()}
 ,isc.A.getActiveTime=function isc_Calendar_getActiveTime(){var _1=this.ns.EH,_2=this.getSelectedView();var _3=_2.getEventColumn();var _4=_2.getEventRow();return this.$53m(_4,_3)}
 ,isc.A.setTimelineRange=function isc_Calendar_setTimelineRange(_1,_2,_3,_4,_5){if(this.timelineView)this.timelineView.setTimelineRange(_1,_2,_3,_4);if(_5)this.fireCallback(_5)}
-);isc.B._maxIndex=isc.C+80;isc.ClassFactory.defineClass("DaySchedule","ListGrid");isc.DaySchedule.changeDefaults("bodyProperties",{childrenSnapToGrid:true,snapToCells:true,redrawOnResize:true});isc.A=isc.DaySchedule.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoDraw=false;isc.A.canSort=false;isc.A.canResizeFields=false;isc.A.canReorderFields=false;isc.A.showHeader=false;isc.A.showHeaderContextMenu=false;isc.A.showAllRecords=true;isc.A.fixedRecordHeights=true;isc.A.labelColumnWidth=60;isc.A.labelColumnAlign="right";isc.A.showLabelColumn=true;isc.A.labelColumnPosition="left";isc.A.labelColumnBaseStyle="labelColumn";isc.A.showRollOver=true;isc.A.useCellRollOvers=true;isc.A.canSelectCells=true;isc.B.push(isc.A.initWidget=function isc_DaySchedule_initWidget(){this.fields=[];var _1={width:this.labelColumnWidth,name:"label",title:" ",cellAlign:"right",formatCellValue:function(_9,_10,_11,_12,_13){if(_11%2==0){var _2=(_11/ 2);var _3=isc.Time.parseInput(_2);return isc.Time.toTime(_3,_13.creator.timeFormatter)}
+);isc.B._maxIndex=isc.C+81;isc.ClassFactory.defineClass("DaySchedule","ListGrid");isc.DaySchedule.changeDefaults("bodyProperties",{childrenSnapToGrid:true,snapToCells:true,redrawOnResize:true});isc.A=isc.DaySchedule.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoDraw=false;isc.A.canSort=false;isc.A.canResizeFields=false;isc.A.canReorderFields=false;isc.A.showHeader=false;isc.A.showHeaderContextMenu=false;isc.A.showAllRecords=true;isc.A.fixedRecordHeights=true;isc.A.labelColumnWidth=60;isc.A.labelColumnAlign="right";isc.A.showLabelColumn=true;isc.A.labelColumnPosition="left";isc.A.labelColumnBaseStyle="labelColumn";isc.A.showRollOver=true;isc.A.useCellRollOvers=true;isc.A.canSelectCells=true;isc.B.push(isc.A.initWidget=function isc_DaySchedule_initWidget(){this.fields=[];var _1={width:this.labelColumnWidth,name:"label",title:" ",cellAlign:"right",formatCellValue:function(_9,_10,_11,_12,_13){if(_11%2==0){var _2=(_11/ 2);var _3=isc.Time.parseInput(_2);return isc.Time.toTime(_3,_13.creator.timeFormatter)}
 else{return""}}}
 if(this.showLabelColumn&&this.labelColumnPosition=="left"){this.fields.add(_1)}
 this.fields.add({name:"day1",align:"center"});if(this.$53i){var _4=8;for(var i=2;i<_4;i++){this.fields.add({name:"day"+i,align:"center"})}
@@ -437,7 +441,7 @@
 );isc.B._maxIndex=isc.C+46;isc.Calendar.registerStringMethods({getDayBodyHTML:"date,events,calendar,rowNum,colNum",getDayHeaderHTML:"date,events,calendar,rowNum,colNum",dayBodyClick:"date,events,calendar,rowNum,colNum",dayHeaderClick:"date,events,calendar,rowNum,colNum",eventClick:"event,viewName",eventChanged:"event",eventMoved:"newDate,event",eventResized:"newDate,event"});isc.A=isc.DaySchedule;isc.A.$53o=[{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""},{label:"",day1:"",day2:"",day3:"",day4:"",day5:"",day6:"",day7:""}];isc.AutoTest.customizeCalendar();isc._moduleEnd=isc._Calendar_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('Calendar module init time: ' + (isc._moduleEnd-isc._moduleStart) + 'ms','loadTime');delete isc.definingFramework;}else{if(window.isc && isc.Log && isc.Log.logWarn)isc.Log.logWarn("Duplicate load of module 'Calendar'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
Binary file isomorphic/system/modules/ISC_Calendar.js.gz has changed
--- a/isomorphic/system/modules/ISC_ClassBrowser.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/modules/ISC_ClassBrowser.js	Thu May 05 22:40:54 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -53,7 +53,7 @@
 );isc.B._maxIndex=isc.C+5;isc._moduleEnd=isc._ClassBrowser_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('ClassBrowser module init time: ' + (isc._moduleEnd-isc._moduleStart) + 'ms','loadTime');delete isc.definingFramework;}else{if(window.isc && isc.Log && isc.Log.logWarn)isc.Log.logWarn("Duplicate load of module 'ClassBrowser'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
Binary file isomorphic/system/modules/ISC_ClassBrowser.js.gz has changed
--- a/isomorphic/system/modules/ISC_Containers.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/modules/ISC_Containers.js	Thu May 05 22:40:54 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -67,7 +67,7 @@
 );isc.B._maxIndex=isc.C+26;isc.ClassFactory.defineClass("Window","Layout");isc.A=isc.Window.getPrototype();isc.A.styleName="windowBackground";isc.A.skinImgDir="images/Window/";isc.A.backgroundColor="#DDDDDD";isc.A.layoutMargin=2;isc.A.membersMargin=2;isc.A.orientation="vertical";isc.A.dragStartDistance=1;isc.A.canDragReposition=true;isc.A.dragAppearance=isc.EventHandler.OUTLINE;isc.A.canDragResize=false;isc.A.resizeFrom=["R","B","BR"];isc.A.minWidth=100;isc.A.minHeight=100;isc.A.useBackMask=isc.Browser.isIE&&isc.Browser.minorVersion>=5.5;isc.A.isModal=false;isc.A.modalMaskOpacity=50;isc.A.modalMaskStyle="modalMask";isc.A.modalMaskConstructor="ScreenSpan";isc.A.dismissOnOutsideClick=false;isc.A.showBody=true;isc.A.bodyStyle="windowBody";isc.A.bodyColor="#FFFFFF";isc.A.hiliteBodyColor="#EEEEEE";isc.A.contentsType="page";isc.A.bodyDefaults={layoutMargin:0};isc.A.contentLayout="vertical";isc.A.autoSize=false;isc.A.showHeader=true;isc.A.headerConstructor="HLayout";isc.A.showHeaderBackground=!(isc.Browser.isIE&&!isc.Browser.isStrict&&isc.Browser.minorVersion>=5.5);isc.A.headerBackgroundConstructor="Img";isc.A.headerBackgroundDefaults={width:"100%",height:"100%",addAsChild:true,vertical:false,capSize:10};isc.A.headerStyle="windowHeader";isc.A.headerSrc=(!(isc.Browser.isIE&&!isc.Browser.isStrict&&isc.Browser.minorVersion>=5.5)?"[SKIN]Window/headerGradient.gif":null);isc.A.headerDefaults={height:18,layoutMargin:1,membersMargin:2,overflow:isc.Canvas.HIDDEN};isc.A.headerControls=["headerIcon","headerLabel","minimizeButton","maximizeButton","closeButton"];isc.A.hiliteHeaderStyle="windowHeaderHilite";isc.A.hiliteHeaderSrc=(!(isc.Browser.isIE&&isc.Browser.minorVersion>=5.5)?"[SKIN]Window/headerGradient_hilite.gif":null);isc.A.showTitle=true;isc.A.title="Untitled Window";isc.A.headerLabelConstructor="Label";isc.A.headerLabelDefaults={wrap:false,align:isc.Canvas.LEFT,styleName:"windowHeaderText",width:10,inherentWidth:true};isc.A.showHeaderIcon=true;isc.A.headerIconConstructor="Img";isc.A.headerIconDefaults={width:16,height:16,layoutAlign:"center",src:"[SKIN]/Window/headerIcon.gif"};isc.A.canFocusInHeaderButtons=false;isc.A.showCloseButton=true;isc.A.closeButtonConstructor="ImgButton";isc.A.closeButtonDefaults={width:16,height:14,layoutAlign:"center",src:"[SKIN]/Window/close.gif",click:function(){return this.creator.$7e()}};isc.A.showMinimizeButton=true;isc.A.minimizeButtonConstructor="ImgButton";isc.A.minimizeButtonDefaults={width:16,height:14,layoutAlign:"center",src:"[SKIN]/Window/minimize.gif",click:function(){if(!this.creator.onMinimizeClick||(this.creator.onMinimizeClick()!=false)){this.creator.minimize()}
 return false}};isc.A.minimized=false;isc.A.defaultMinimizeHeight=16;isc.A.restoreButtonDefaults={width:16,height:14,src:"[SKIN]/Window/restore.gif",layoutAlign:"center",click:function(){if(!this.creator.onRestoreClick||(this.creator.onRestoreClick()!=false)){this.creator.restore()}
 return false}};isc.A.minimized=false;isc.A.showMaximizeButton=false;isc.A.maximizeButtonConstructor="ImgButton";isc.A.maximizeButtonDefaults={width:16,height:14,src:"[SKIN]/Window/maximize.gif",layoutAlign:"center",click:function(){if(!this.creator.onMaximizeClick||(this.creator.onMaximizeClick()!=false)){this.creator.maximize()}
-return false}};isc.A.showFooter=true;isc.A.footerConstructor="HLayout";isc.A.footerHeight=18;isc.A.footerControls=["spacer","resizer"];isc.A.showStatusBar=true;isc.A.statusBarConstructor="Canvas";isc.A.statusBarDefaults={overflow:isc.Canvas.HIDDEN,styleName:"windowStatusBar",addAsChild:true,width:"100%",wrap:false,leftPadding:5};isc.A.showResizer=true;isc.A.resizerConstructor="Img";isc.A.resizerDefaults={canDragResize:true,getEventEdge:function(){return"BR"},src:"[SKIN]/Window/resizer.gif",width:16,height:16};isc.A.showToolbar=false;isc.A.toolbarConstructor="Toolbar";isc.A.toolbarDefaults={height:40,layoutMargin:10,membersMargin:5,overflow:"visible"};isc.A.customEdges=["T","B"];isc.A.overflow="hidden";isc.A=isc.Window.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoChildParentMap={resizer:"footer",statusBar:"footer",headerBackground:"header",headerIcon:"header",headerLabel:"header",minimizeButton:"header",maximizeButton:"header",closeButton:"header",toolbar:"body"};isc.B.push(isc.A.initWidget=function isc_Window_initWidget(){if(this.minimized&&this.maximized){this.logWarn("Window initialized with maximized and minimized both set to true. "+"This is unsupported. The Window will be rendered minimized.");this.maximized=false}
+return false}};isc.A.showFooter=true;isc.A.footerConstructor="HLayout";isc.A.footerHeight=18;isc.A.footerControls=["spacer","resizer"];isc.A.showStatusBar=true;isc.A.statusBarConstructor="Canvas";isc.A.statusBarDefaults={overflow:isc.Canvas.HIDDEN,styleName:"windowStatusBar",addAsChild:true,width:"100%",wrap:false,leftPadding:5};isc.A.showResizer=true;isc.A.resizerConstructor="Img";isc.A.resizerDefaults={canDragResize:true,getEventEdge:function(){if(this.creator.resizeFrom.contains("BR")){return"BR"}else if(this.creator.resizeFrom.contains("B")){return"B"}else if(this.creator.resizeFrom.contains("R")){return"R"}},src:"[SKIN]/Window/resizer.gif",width:16,height:16};isc.A.showToolbar=false;isc.A.toolbarConstructor="Toolbar";isc.A.toolbarDefaults={height:40,layoutMargin:10,membersMargin:5,overflow:"visible"};isc.A.customEdges=["T","B"];isc.A.overflow="hidden";isc.A=isc.Window.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.autoChildParentMap={resizer:"footer",statusBar:"footer",headerBackground:"header",headerIcon:"header",headerLabel:"header",minimizeButton:"header",maximizeButton:"header",closeButton:"header",toolbar:"body"};isc.B.push(isc.A.initWidget=function isc_Window_initWidget(){if(this.minimized&&this.maximized){this.logWarn("Window initialized with maximized and minimized both set to true. "+"This is unsupported. The Window will be rendered minimized.");this.maximized=false}
 if(this.minimized){this.minimized=null;this.minimize()}else if(this.maximized){this.maximized=null;this.maximize()}
 if(this.autoSize){this.vPolicy="none";this.overflow="visible"}
 this.Super(this.$oc);if(!this.$7f&&this.items!=null){for(var i=0;i<this.items.length;i++){if(isc.isA.Canvas(this.items[i])&&this.items[i].isDrawn())this.items[i].clear()}}}
@@ -214,39 +214,63 @@
 ,isc.A.closeClick=function isc_Window_closeClick(){this.returnValue(null);this.hide();return false}
 );isc.B._maxIndex=isc.C+72;isc.Window.registerStringMethods({onMaximizeClick:"",onMinimizeClick:"",onRestoreClick:"",onCloseClick:""})
 if(isc.definePrintWindow)isc.definePrintWindow();isc.Window.registerDupProperties("items");isc.defineClass("Portlet","Window");isc.A=isc.Portlet.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showShadow=false;isc.A.animateMinimize=true;isc.A.dragAppearance="outline";isc.A.canDrop=true;isc.A.dragType="Portlet";isc.A.resizeFrom=null;isc.A.showMaximizeButton=true;isc.A.headerControls=["headerLabel","minimizeButton","maximizeButton","closeButton"];isc.A.dragOpacity=30;isc.A.showCloseConfirmationMessage=true;isc.A.closeConfirmationMessage="Close portlet?";isc.B.push(isc.A.closeClick=function isc_Portlet_closeClick(){if(this.showCloseConfirmationMessage){isc.confirm(this.closeConfirmationMessage,{target:this,methodName:"confirmedClosePortlet"})}else{this.confirmedClosePortlet(true)}}
-,isc.A.confirmedClosePortlet=function isc_Portlet_confirmedClosePortlet(_1){if(!_1)return;var _2=this.parentElement,_3=_2?_2.parentElement:null,_4=_3?_3.parentElement:null;if(!isc.isA.PortalLayout(_4))this.clear();else _4.removePortlet(this)}
+,isc.A.confirmedClosePortlet=function isc_Portlet_confirmedClosePortlet(_1){if(!_1)return;var _2=this.parentElement;if(_2.removePortlets){_2.removePortlets(this)}else{this.clear()}}
 ,isc.A.maximize=function isc_Portlet_maximize(){var _1=this.getVisibleWidth(),_2=this.getVisibleHeight(),_3=this.getPageLeft(),_4=this.getPageTop();this.$55d=isc.Canvas.create({width:this.getVisibleWidth(),height:this.getVisibleHeight()});this.masterLayout=this.parentElement;this.masterLayout.portletMaximizing=true;this.masterLayout.replaceMember(this,this.$55d,false);this.masterLayout.portletMaximizing=false;this.setWidth(_1);this.setHeight(_2);this.moveTo(_3,_4);this.bringToFront();this.draw();this.delayCall("doMaximize")}
 ,isc.A.completeRestore=function isc_Portlet_completeRestore(){this.Super("completeRestore",arguments);this.masterLayout.portletMaximizing=true;this.masterLayout.replaceMember(this.$55d,this);this.masterLayout.portletMaximizing=false;this.$55d.destroy();delete this.$55e;delete this.masterLayout}
 ,isc.A.doMaximize=function isc_Portlet_doMaximize(){this.Super("maximize",arguments)}
-);isc.B._maxIndex=isc.C+5;isc.defineClass("PortalColumnHeader","HLayout");isc.A=isc.PortalColumnHeader.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.height=20;isc.A.noResizer=true;isc.A.border="1px solid #CCCCCC";isc.A.canDragReposition=true;isc.B.push(isc.A.initWidget=function isc_PortalColumnHeader_initWidget(){this.Super("initWidget",arguments);this.dragTarget=this.portalColumn;this.addMember(isc.LayoutSpacer.create());this.menu=this.getMenuConstructor().create({width:150,portalColumn:this.portalColumn,data:[{title:"Remove Column",click:"menu.portalColumn.destroy()"},{title:"Add Column",click:"menu.portalColumn.addNewColumn()"}]});this.addMember(isc.MenuButton.create({title:"Column Properties",width:150,menu:this.menu}));this.addMember(isc.LayoutSpacer.create())}
-);isc.B._maxIndex=isc.C+1;isc.defineClass("PortalRow","Layout");isc.A=isc.PortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.defaultResizeBars="marked";isc.A.vertical=false;isc.A.overflow="hidden";isc.A.layoutMargin=3;isc.A.canAcceptDrop=true;isc.A.dropTypes=["Portlet"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.hDropOffset=15;isc.B.push(isc.A.isHDrop=function isc_PortalRow_isHDrop(){var _1=this.getDropPosition();var _2=this.getMember(_1==0?0:_1-1);if(!_2.containsEvent()&&_1<this.members.length){_2=this.getMember(_1)}
+);isc.B._maxIndex=isc.C+5;isc.defineClass("PortalColumnHeader","HLayout");isc.A=isc.PortalColumnHeader.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.height=20;isc.A.noResizer=true;isc.A.border="1px solid #CCCCCC";isc.A.canDragReposition=true;isc.B.push(isc.A.initWidget=function isc_PortalColumnHeader_initWidget(){this.Super("initWidget",arguments);this.dragTarget=this.creator;this.addMember(isc.LayoutSpacer.create());this.menu=this.getMenuConstructor().create({width:150,portalColumn:this.creator,data:[{title:"Remove Column",click:"menu.portalColumn.destroy()"},{title:"Add Column",click:"menu.portalColumn.addNewColumn()"}]});this.addMember(isc.MenuButton.create({title:"Column Properties",width:150,menu:this.menu}));this.addMember(isc.LayoutSpacer.create())}
+);isc.B._maxIndex=isc.C+1;isc.defineClass("PortalRow","Layout");isc.A=isc.PortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.defaultResizeBars="marked";isc.A.vertical=false;isc.A.overflow="hidden";isc.A.layoutMargin=3;isc.A.canAcceptDrop=true;isc.A.dropTypes=["Portlet"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.hDropOffset=15;isc.B.push(isc.A.initWidget=function isc_PortalRow_initWidget(){this.Super("initWidget",arguments);if(this.portlets)this.addPortlets(this.portlets);this.portlets=null}
+,isc.A.isHDrop=function isc_PortalRow_isHDrop(){var _1=this.getDropPosition();var _2=this.getMember(_1==0?0:_1-1);if(!_2.containsEvent()&&_1<this.members.length){_2=this.getMember(_1)}
 var _3=_2.getOffsetX();if(_3<this.hDropOffset||_3>_2.getVisibleWidth()-this.hDropOffset){return true}else{return false}}
 ,isc.A.dropMove=function isc_PortalRow_dropMove(){if(this.isHDrop()){this.Super("dropMove",arguments);this.parentElement.hideDropLine();return isc.EH.STOP_BUBBLING}else{this.hideDropLine()}}
 ,isc.A.dropOver=function isc_PortalRow_dropOver(){if(this.isHDrop()){this.Super("dropOver",arguments);this.parentElement.hideDropLine();return isc.EH.STOP_BUBBLING}else{this.hideDropLine()}}
 ,isc.A.drop=function isc_PortalRow_drop(){if(this.isHDrop()){this.Super("drop",arguments);this.parentElement.hideDropLine();this.hideDropLine();return isc.EH.STOP_BUBBLING}else{this.hideDropLine()}}
 ,isc.A.membersChanged=function isc_PortalRow_membersChanged(){if(this.members.length==0&&!this.portletMaximizing)this.destroy()}
-);isc.B._maxIndex=isc.C+5;isc.defineClass("PortalColumn","Layout");isc.A=isc.PortalColumn.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.defaultResizeBars="marked";isc.A.layoutMargin=3;isc.A.dragAppearance="outline";isc.A.canAcceptDrop=true;isc.A.canDrop=true;isc.A.dragType="PortalColumn";isc.A.dropTypes=["Portlet"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.showColumnHeader=true;isc.A.rowConstructor="PortalRow";isc.B.push(isc.A.initWidget=function isc_PortalColumn_initWidget(){this.Super("initWidget",arguments);if(this.showColumnHeader){this.columnHeader=isc.PortalColumnHeader.create({title:"Column",portalColumn:this});this.addMember(this.columnHeader)}}
+,isc.A.addPortlets=function isc_PortalRow_addPortlets(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;_1.map(function(_5){var _4=_5.$po;if(_4!=null){_5.setHeight("100%");_3.setHeight(_4)}});this.addMembers(_1,_2)}
+,isc.A.addPortlet=function isc_PortalRow_addPortlet(_1,_2){this.addPortlets(_1,_2)}
+,isc.A.removePortlets=function isc_PortalRow_removePortlets(_1){this.removeMembers(_1)}
+,isc.A.removePortlet=function isc_PortalRow_removePortlet(_1){this.removeMembers(_1)}
+,isc.A.getPortlets=function isc_PortalRow_getPortlets(){return this.getMembers()}
+);isc.B._maxIndex=isc.C+11;isc.defineClass("PortalColumnBody","Layout");isc.A=isc.PortalColumnBody.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.layoutMargin=3;isc.A.defaultResizeBars="marked";isc.A.canAcceptDrop=true;isc.A.dropTypes=["Portlet"];isc.A.canDrag=false;isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.B.push(isc.A.getDropComponent=function isc_PortalColumnBody_getDropComponent(_1,_2){this.creator.addPortlet(_1,_2)}
+);isc.B._maxIndex=isc.C+1;isc.defineClass("PortalColumn","Layout");isc.A=isc.PortalColumn.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.layoutMargin=3;isc.A.dragAppearance="outline";isc.A.canAcceptDrop=false;isc.A.canDrop=true;isc.A.dragType="PortalColumn";isc.A.showColumnHeader=true;isc.A.columnHeaderConstructor="PortalColumnHeader";isc.A.columnHeaderDefaults={title:"Column"};isc.A.bodyConstructor="PortalColumnBody";isc.A.bodyDefaults={height:"100%"};isc.A.portalRowConstructor="PortalRow";isc.B.push(isc.A.initWidget=function isc_PortalColumn_initWidget(){this.Super("initWidget",arguments);this.addAutoChild("columnHeader");this.addAutoChild("body");if(this.portalRows)this.addPortalRows(this.portalRows);this.portalRows=null}
 ,isc.A.addNewColumn=function isc_PortalColumn_addNewColumn(){this.portalLayout.addColumnAfter(this)}
-,isc.A.getDropComponent=function isc_PortalColumn_getDropComponent(_1,_2){this.addPortlet(_1,this.getDropPosition())}
-,isc.A.addPortlet=function isc_PortalColumn_addPortlet(_1,_2){if(this.showColumnHeader)_2+=1;var _3=this.getMembers();if(_3==null)_2=0;else if(_2>_3.length)_2=_3.length;var _4=_1.$po;if(_4!=null){_1.setHeight("100%")}
-var _5={showResizeBar:this.canResizeRows};if(_4!=null){_5.height=_4}
-var _6=this.createAutoChild("row",_5);this.addMember(_6,_2);_6.addMember(_1)}
-,isc.A.addPortletToExistingRow=function isc_PortalColumn_addPortletToExistingRow(_1,_2,_3){if(this.showColumnHeader)_2+=1;var _4=this.getMembers();if(_4==null||_4.length<=_2){this.addPortlet(_1)}else{var _5=this.getMember(_2);_5.addMember(_1,_3)}}
-,isc.A.getDropPosition=function isc_PortalColumn_getDropPosition(){var _1=this.Super("getDropPosition",arguments);if(_1==0)_1=1;return _1}
-);isc.B._maxIndex=isc.C+6;isc.defineClass("PortalLayout","Layout");isc.A=isc.PortalLayout.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=false;isc.A.numColumns=2;isc.A.showColumnMenus=true;isc.A.columnBorder="1px solid gray";isc.A.canResizeColumns=false;isc.A.canResizeRows=false;isc.A.canAcceptDrop=true;isc.A.dropTypes=["PortalColumn"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.columnConstructor="PortalColumn";isc.B.push(isc.A.getNumColumns=function isc_PortalLayout_getNumColumns(){return this.getMembers().length}
+,isc.A.makePortalRow=function isc_PortalColumn_makePortalRow(_1){if(_1==null)_1={};var _2={showResizeBar:this.canResizeRows};var _3;if(isc.isA.PortalRow(_1)){_1.setProperties(_2);_3=_1}else{isc.addProperties(_1,_2);_3=this.createAutoChild("portalRow",_1)}
+return _3}
+,isc.A.setCanResizeRows=function isc_PortalColumn_setCanResizeRows(_1){this.canResizeRows=_1;this.getPortalRows().map(function(_2){_2.setShowResizeBar(_1)})}
+,isc.A.addPortalRows=function isc_PortalColumn_addPortalRows(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;_1=_1.map(function(_4){return _3.makePortalRow(_4)});this.body.addMembers(_1,_2)}
+,isc.A.addPortalRow=function isc_PortalColumn_addPortalRow(_1,_2){this.addPortalRows(_1,_2)}
+,isc.A.removePortalRows=function isc_PortalColumn_removePortalRows(_1){this.body.removeMembers(_1)}
+,isc.A.removePortalRow=function isc_PortalColumn_removePortalRow(_1){this.removePortalRows(_1)}
+,isc.A.getPortalRows=function isc_PortalColumn_getPortalRows(){return this.body.getMembers()}
+,isc.A.addPortlets=function isc_PortalColumn_addPortlets(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;var _4=_1.map(function(_5){return _3.makePortalRow({portlets:_5})});this.addPortalRows(_4,_2)}
+,isc.A.addPortlet=function isc_PortalColumn_addPortlet(_1,_2){this.addPortlets(_1,_2)}
+,isc.A.addPortletToExistingRow=function isc_PortalColumn_addPortletToExistingRow(_1,_2,_3){var _4=this.body.getMembers();if(_4==null||_4.length<=_2){this.addPortlet(_1)}else{var _5=this.body.getMember(_2);_5.addPortlets(_1,_3)}}
+);isc.B._maxIndex=isc.C+12;isc.defineClass("PortalLayout","Layout");isc.A=isc.PortalLayout.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=false;isc.A.numColumns=2;isc.A.showColumnMenus=true;isc.A.columnBorder="1px solid gray";isc.A.canResizeColumns=false;isc.A.canResizeRows=false;isc.A.canAcceptDrop=true;isc.A.dropTypes=["PortalColumn"];isc.A.dropLineThickness=2;isc.A.dropLineProperties={backgroundColor:"blue"};isc.A.portalColumnConstructor="PortalColumn";isc.B.push(isc.A.getNumColumns=function isc_PortalLayout_getNumColumns(){return this.getMembers().length}
 ,isc.A.setColumnBorder=function isc_PortalLayout_setColumnBorder(_1){this.columnBorder=_1;var _2=this.members||[];for(var i=0;i<_2.length;i++){_2[i].setBorder(_1)}}
-,isc.A.initWidget=function isc_PortalLayout_initWidget(){this.Super("initWidget",arguments);for(var i=0;i<this.numColumns;i++)this.addMember(this.makePortalColumn())}
-,isc.A.makePortalColumn=function isc_PortalLayout_makePortalColumn(_1){if(_1==null)_1={};isc.addProperties(_1,{portalLayout:this,showColumnHeader:this.showColumnMenus,border:this.columnBorder,showResizeBar:this.canResizeColumns,canResizeRows:this.canResizeRows});var _2=this.createAutoChild("column",_1);return _2}
-,isc.A.addColumn=function isc_PortalLayout_addColumn(_1){this.addMember(this.makePortalColumn({}),_1)}
+,isc.A.setCanResizeColumns=function isc_PortalLayout_setCanResizeColumns(_1){this.canResizeColumns=_1;this.getPortalColumns().map(function(_2){_2.setShowResizeBar(_1)})}
+,isc.A.setCanResizeRows=function isc_PortalLayout_setCanResizeRows(_1){this.canResizeRows=_1;this.getPortalColumns().map(function(_2){_2.setCanResizeRows(_1)})}
+,isc.A.initWidget=function isc_PortalLayout_initWidget(){this.Super("initWidget",arguments);if(this.portalColumns){this.addPortalColumns(this.portalColumns);this.portalColumns=null}else{if(this.numColumns){for(var x=0;x<this.numColumns;x++){this.addPortalColumns(this.makePortalColumn())}}}}
+,isc.A.getPortalColumns=function isc_PortalLayout_getPortalColumns(){return this.getMembers()}
+,isc.A.makePortalColumn=function isc_PortalLayout_makePortalColumn(_1){if(_1==null)_1={};var _2={portalLayout:this,showColumnHeader:this.showColumnMenus,border:this.columnBorder,showResizeBar:this.canResizeColumns,canResizeRows:this.canResizeRows}
+var _3;if(isc.isA.PortalColumn(_1)){_1.setProperties(_2);_3=_1}else{isc.addProperties(_1,_2);_3=this.createAutoChild("portalColumn",_1)}
+return _3}
+,isc.A.addPortalColumns=function isc_PortalLayout_addPortalColumns(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];var _3=this;_1=_1.map(function(_4){return _3.makePortalColumn(_4)});this.addMembers(_1,_2)}
+,isc.A.addPortalColumn=function isc_PortalLayout_addPortalColumn(_1,_2){this.addPortalColumns(_1,_2)}
+,isc.A.removePortalColumns=function isc_PortalLayout_removePortalColumns(_1){if(!isc.isAn.Array(_1))_1=[_1];this.removeMembers(_1);_1.map(function(_2){if(_2!=null)_2.destroy()})}
+,isc.A.removePortalColumn=function isc_PortalLayout_removePortalColumn(_1){this.removePortalColumn(_1)}
+,isc.A.getPortalColumns=function isc_PortalLayout_getPortalColumns(){return this.getMembers()}
+,isc.A.addColumn=function isc_PortalLayout_addColumn(_1){this.addPortalColumn({},_1)}
 ,isc.A.removeColumn=function isc_PortalLayout_removeColumn(_1){var _2=this.members[_1];if(_2!=null)_2.destroy()}
 ,isc.A.addColumnAfter=function isc_PortalLayout_addColumnAfter(_1){var _2=this.getMemberNumber(_1)+1;this.addColumn(_2)}
 ,isc.A.addPortlet=function isc_PortalLayout_addPortlet(_1,_2,_3){if(_3==null)_3=0;if(_2==null)_2=0;var _4=this.getMember(_2);if(_4!=null)_4.addPortlet(_1,_3)}
-,isc.A.getColumn=function isc_PortalLayout_getColumn(_1){return this.getMember(_1)}
+,isc.A.getPortalColumn=function isc_PortalLayout_getPortalColumn(_1){return this.getMember(_1)}
+,isc.A.getPortalColumnNumber=function isc_PortalLayout_getPortalColumnNumber(_1){return this.getMemberNumber(_1)}
+,isc.A.getColumn=function isc_PortalLayout_getColumn(_1){return this.getPortalColumn(_1)}
 ,isc.A.removePortlet=function isc_PortalLayout_removePortlet(_1){if(!this.contains(_1))return;_1.deparent()}
-);isc.B._maxIndex=isc.C+10;isc.defineClass("EditModePortalRow","PortalRow");isc.ClassFactory.mixInInterface("EditModePortalRow","EditContext");isc.A=isc.EditModePortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getDropComponent=function isc_EditModePortalRow_getDropComponent(_1,_2){if(!isc.isA.Palette(_1))return _1;var _3=_1.transferDragData(),_4=(isc.isAn.Array(_3)?_3[0]:_3);var _5=isc.Portlet.create({autoDraw:false,title:_4.title,items:[_4.liveObject],confirmedClosePortlet:function(_6){this.Super("closePortlet",arguments);if(_6)this.destroy()}});return _5}
-);isc.B._maxIndex=isc.C+1;isc.defineClass("EditModePortalColumn","PortalColumn");isc.ClassFactory.mixInInterface("EditModePortalColumn","EditContext");isc.A=isc.EditModePortalColumn.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.rowConstructor="EditModePortalRow";isc.B.push(isc.A.getDropComponent=function isc_EditModePortalColumn_getDropComponent(_1,_2){var _3;if(!isc.isA.Palette(_1))_3=_1;else{var _4=_1.transferDragData(),_5=(isc.isAn.Array(_4)?_4[0]:_4);var _6=isc.Portlet.create({autoDraw:false,title:_5.title,items:[_5.liveObject],confirmedClosePortlet:function(_7){this.Super("closePortlet",arguments);if(_7)this.destroy()}});_3=_6}
-this.addPortlet(_3,this.getDropPosition())}
-);isc.B._maxIndex=isc.C+1;isc.A=isc.PortalLayout.getPrototype();isc.A.columnConstructor="EditModePortalColumn";isc.ClassFactory.defineClass("Dialog","Window");isc.A=isc.Dialog;isc.A.$76=[];isc.A.OK_BUTTON_TITLE="OK";isc.A.APPLY_BUTTON_TITLE="Apply";isc.A.YES_BUTTON_TITLE="Yes";isc.A.NO_BUTTON_TITLE="No";isc.A.CANCEL_BUTTON_TITLE="Cancel";isc.A.DONE_BUTTON_TITLE="Done";isc.A.CONFIRM_TITLE="Confirm";isc.A.SAY_TITLE="Note";isc.A.WARN_TITLE="Note";isc.A.ASK_TITLE="Question";isc.A.ASK_FOR_VALUE_TITLE="Please enter a value";isc.A.LOGIN_TITLE="Please log in";isc.A.USERNAME_TITLE="Username";isc.A.PASSWORD_TITLE="Password";isc.A.LOGIN_BUTTON_TITLE="Log in";isc.A.LOGIN_ERROR_MESSAGE="Invalid username or password";isc.A.OK={getTitle:function(){return isc.Dialog.OK_BUTTON_TITLE},width:75,click:function(){this.topElement.okClick()}};isc.A.APPLY={getTitle:function(){return isc.Dialog.APPLY_BUTTON_TITLE},width:75,click:function(){this.topElement.applyClick()}};isc.A.YES={getTitle:function(){return isc.Dialog.YES_BUTTON_TITLE},width:75,click:function(){this.topElement.yesClick()}};isc.A.NO={getTitle:function(){return isc.Dialog.NO_BUTTON_TITLE},width:75,click:function(){this.topElement.noClick()}};isc.A.CANCEL={getTitle:function(){return isc.Dialog.CANCEL_BUTTON_TITLE},width:75,click:function(){this.topElement.cancelClick()}};isc.A.DONE={getTitle:function(){return isc.Dialog.DONE_BUTTON_TITLE},width:75,click:function(){this.topElement.doneClick()}};isc.A=isc.Dialog.getPrototype();isc.A.styleName="dialogBackground";isc.A.skinImgDir="images/Dialog/";isc.A.canDragReposition=false;isc.A.canDragResize=false;isc.A.autoCenter=true;isc.A.bodyStyle="dialogBody";isc.A.bodyColor="#DDDDDD";isc.A.hiliteBodyColor="#FFFFFF";isc.A.messageStyle="normal";isc.A.headerStyle="dialogHeader";isc.A.hiliteHeaderStyle="dialogHeaderHilite";isc.A.headerLabelDefaults=isc.addProperties({},isc.Window.getInstanceProperty("headerLabelDefaults"),{styleName:"dialogHeaderText"});isc.A.showHeaderIcon=false;isc.A.showMinimizeButton=false;isc.A.showMaximizeButton=false;isc.A.showFooter=false;isc.A.showToolbar=true;isc.A.askIcon="[SKIN]ask.png";isc.A.sayIcon="[SKIN]say.png";isc.A.warnIcon="[SKIN]warn.png";isc.A.confirmIcon="[SKIN]confirm.png";isc.A.notifyIcon="[SKIN]notify.png";isc.A.errorIcon="[SKIN]error.png";isc.A.stopIcon="[SKIN]stop.png";isc.A=isc.Dialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.namedLocatorChildren=["okButton","applyButton","yesButton","noButton","cancelButton","doneButton"];isc.B.push(isc.A.saveData=function isc_Dialog_saveData(){}
+);isc.B._maxIndex=isc.C+20;isc.defineClass("EditModePortalRow","PortalRow");isc.ClassFactory.mixInInterface("EditModePortalRow","EditContext");isc.A=isc.EditModePortalRow.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getDropComponent=function isc_EditModePortalRow_getDropComponent(_1,_2){if(!isc.isA.Palette(_1))return _1;var _3=_1.transferDragData(),_4=(isc.isAn.Array(_3)?_3[0]:_3);var _5=isc.Portlet.create({autoDraw:false,title:_4.title,items:[_4.liveObject],confirmedClosePortlet:function(_6){this.Super("closePortlet",arguments);if(_6)this.destroy()}});return _5}
+);isc.B._maxIndex=isc.C+1;isc.defineClass("EditModePortalColumn","PortalColumn");isc.ClassFactory.mixInInterface("EditModePortalColumn","EditContext");isc.A=isc.EditModePortalColumn.getPrototype();isc.A.portalRowConstructor="EditModePortalRow";isc.A.bodyConstructor="EditModePortalColumnBody";isc.defineClass("EditModePortalColumnBody","PortalColumnBody","EditContext");isc.A=isc.EditModePortalColumnBody.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.getDropComponent=function isc_EditModePortalColumnBody_getDropComponent(_1,_2){var _3;if(!isc.isA.Palette(_1))_3=_1;else{var _4=_1.transferDragData(),_5=(isc.isAn.Array(_4)?_4[0]:_4);var _6=isc.Portlet.create({autoDraw:false,title:_5.title,items:[_5.liveObject],confirmedClosePortlet:function(_7){this.Super("closePortlet",arguments);if(_7)this.destroy()}});_3=_6}
+this.creator.addPortlet(_3,_2)}
+);isc.B._maxIndex=isc.C+1;isc.A=isc.PortalLayout.getPrototype();isc.A.portalColumnConstructor="EditModePortalColumn";isc.ClassFactory.defineClass("Dialog","Window");isc.A=isc.Dialog;isc.A.$76=[];isc.A.OK_BUTTON_TITLE="OK";isc.A.APPLY_BUTTON_TITLE="Apply";isc.A.YES_BUTTON_TITLE="Yes";isc.A.NO_BUTTON_TITLE="No";isc.A.CANCEL_BUTTON_TITLE="Cancel";isc.A.DONE_BUTTON_TITLE="Done";isc.A.CONFIRM_TITLE="Confirm";isc.A.SAY_TITLE="Note";isc.A.WARN_TITLE="Note";isc.A.ASK_TITLE="Question";isc.A.ASK_FOR_VALUE_TITLE="Please enter a value";isc.A.LOGIN_TITLE="Please log in";isc.A.USERNAME_TITLE="Username";isc.A.PASSWORD_TITLE="Password";isc.A.LOGIN_BUTTON_TITLE="Log in";isc.A.LOGIN_ERROR_MESSAGE="Invalid username or password";isc.A.OK={getTitle:function(){return isc.Dialog.OK_BUTTON_TITLE},width:75,click:function(){this.topElement.okClick()}};isc.A.APPLY={getTitle:function(){return isc.Dialog.APPLY_BUTTON_TITLE},width:75,click:function(){this.topElement.applyClick()}};isc.A.YES={getTitle:function(){return isc.Dialog.YES_BUTTON_TITLE},width:75,click:function(){this.topElement.yesClick()}};isc.A.NO={getTitle:function(){return isc.Dialog.NO_BUTTON_TITLE},width:75,click:function(){this.topElement.noClick()}};isc.A.CANCEL={getTitle:function(){return isc.Dialog.CANCEL_BUTTON_TITLE},width:75,click:function(){this.topElement.cancelClick()}};isc.A.DONE={getTitle:function(){return isc.Dialog.DONE_BUTTON_TITLE},width:75,click:function(){this.topElement.doneClick()}};isc.A=isc.Dialog.getPrototype();isc.A.styleName="dialogBackground";isc.A.skinImgDir="images/Dialog/";isc.A.canDragReposition=false;isc.A.canDragResize=false;isc.A.autoCenter=true;isc.A.bodyStyle="dialogBody";isc.A.bodyColor="#DDDDDD";isc.A.hiliteBodyColor="#FFFFFF";isc.A.messageStyle="normal";isc.A.headerStyle="dialogHeader";isc.A.hiliteHeaderStyle="dialogHeaderHilite";isc.A.headerLabelDefaults=isc.addProperties({},isc.Window.getInstanceProperty("headerLabelDefaults"),{styleName:"dialogHeaderText"});isc.A.showHeaderIcon=false;isc.A.showMinimizeButton=false;isc.A.showMaximizeButton=false;isc.A.showFooter=false;isc.A.showToolbar=true;isc.A.askIcon="[SKIN]ask.png";isc.A.sayIcon="[SKIN]say.png";isc.A.warnIcon="[SKIN]warn.png";isc.A.confirmIcon="[SKIN]confirm.png";isc.A.notifyIcon="[SKIN]notify.png";isc.A.errorIcon="[SKIN]error.png";isc.A.stopIcon="[SKIN]stop.png";isc.A=isc.Dialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.namedLocatorChildren=["okButton","applyButton","yesButton","noButton","cancelButton","doneButton"];isc.B.push(isc.A.saveData=function isc_Dialog_saveData(){}
 ,isc.A.cancelClick=function isc_Dialog_cancelClick(){return this.closeClick()}
 ,isc.A.$7e=function isc_Dialog__closeButtonClick(){return this.cancelClick()}
 ,isc.A.okClick=function isc_Dialog_okClick(){this.saveData();this.clear();this.returnValue(true)}
@@ -387,7 +411,8 @@
 {if(_2!=null)_1.pane=_2;return this.addTabs(_1)}
 var _3=this.getTabNumber(_1);if(_3==-1){this.logWarn("no such tab: "+this.echo(_1));return}
 var _4=this.getTabObject(_3),_5=_4?_4.pane:null;if(_4&&_4.pane==_2)return;if(_5!=null){_5.hide();_5.deparent()}
-var _6=this.getTab(_1);if(_2==null)return _4.pane=_6.pane=null;_2=_4.pane=this.createPane(_2,_4);if(_6!=null)_6.pane=_2;if(this.getSelectedTabNumber()==_3){if(!this.paneContainer.hasMember(_2))this.paneContainer.addMember(_2);_2.setVisibility(isc.Canvas.INHERIT)}}
+var _6=this.getTab(_1);if(_2==null){if(_6!=null)_6.pane=null;return _4.pane=null}
+_2=_4.pane=this.createPane(_2,_4);if(_6!=null)_6.pane=_2;if(this.getSelectedTabNumber()==_3){if(!this.paneContainer.hasMember(_2))this.paneContainer.addMember(_2);_2.setVisibility(isc.Canvas.INHERIT)}}
 ,isc.A.fixLayout=function isc_TabSet_fixLayout(){var _1=this._tabBar,_2=this.$l0||this.paneContainer;if(_1==null||_2==null)return;if(_2.getZIndex(true)>=_1.getZIndex(true))_2.moveBelow(_1);var _3=this.$du(this.tabBarOverlap,_1.borderThickness,_1.baseLineThickness);var _4;switch(this.tabBarPosition){case isc.Canvas.TOP:_4=false;_2.setRect(0,_1.getHeight()-_3,this.getWidth(),this.getHeight()-_1.getHeight()+_3);break;case isc.Canvas.BOTTOM:_4=false;_1.setTop(this.getHeight()-_1.getHeight());_2.setRect(0,0,this.getWidth(),this.getHeight()-_1.getHeight()+_3);break;case isc.Canvas.LEFT:_4=true;_2.setRect(_1.getWidth()-_3,0,this.getWidth()-_1.getWidth()+_3,this.getHeight());break;case isc.Canvas.RIGHT:_4=true;_1.setLeft(this.getWidth()-_1.getWidth());_2.setRect(0,0,this.getWidth()-_1.getWidth()+_3,this.getHeight());break}
 var _5=this.showControls();if(_5){if(_4)_1.setHeight(this.getViewportHeight()-this.tabBarControlLayout.getHeight());else _1.setWidth(this.getViewportWidth()-this.tabBarControlLayout.getWidth());this.tabBarControlLayout.bringToFront()}else{_1.resizeTo(_4?null:"100%",_4?"100%":null)}
 var _6=this.$8f();if(_4){if(_1.getScrollTop()>0&&_6<=_1.getViewportHeight())_1.scrollTo(null,0)}else{if(_1.getScrollLeft()>0&&_6<=_1.getViewportWidth())_1.scrollTo(0,null)}}
@@ -473,7 +498,7 @@
 );isc.B._maxIndex=isc.C+1;isc.TabSet.registerDupProperties("tabs",["pane"]);isc._moduleEnd=isc._Containers_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('Containers module init time: ' + (isc._moduleEnd-isc._moduleStart) + 'ms','loadTime');delete isc.definingFramework;}else{if(window.isc && isc.Log && isc.Log.logWarn)isc.Log.logWarn("Duplicate load of module 'Containers'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
Binary file isomorphic/system/modules/ISC_Containers.js.gz has changed
--- a/isomorphic/system/modules/ISC_Core.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/modules/ISC_Core.js	Thu May 05 22:40:54 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -12,7 +12,7 @@
 var isc = window.isc ? window.isc : {};if(window.isc&&!window.isc.module_Core){isc.module_Core=1;isc._moduleStart=isc._Core_start=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc._moduleEnd&&(!isc.Log||(isc.Log && isc.Log.logIsDebugEnabled('loadTime')))){isc._pTM={ message:'Core load/parse time: ' + (isc._moduleStart-isc._moduleEnd) + 'ms', category:'loadTime'};
 if(isc.Log && isc.Log.logDebug)isc.Log.logDebug(isc._pTM.message,'loadTime')
 else if(isc._preLog)isc._preLog[isc._preLog.length]=isc._pTM
-else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-04-17/LGPL Deployment";isc.versionNumber="SC_SNAPSHOT-2011-04-17";isc.buildDate="2011-04-17";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
+else isc._preLog=[isc._pTM]}isc.definingFramework=true;var isc=window.isc?window.isc:{};isc.$d=new Date().getTime();isc.version="SC_SNAPSHOT-2011-05-05/LGPL Deployment";isc.versionNumber="SC_SNAPSHOT-2011-05-05";isc.buildDate="2011-05-05";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
 return _1};isc.hasOptionalModules=function(_1){if(!_1)return true;_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++)if(!isc.hasOptionalModule(_1[i]))return false;return true};isc.getMissingModules=function(_1){var _2=[];_1=isc.canonicalizeModules(_1);for(var i=0;i<_1.length;i++){var _4=_1[i];if(!isc.hasOptionalModule(_4))_2.add(isc.$41r[_4])}
 return _2};isc.hasOptionalModule=function(_1){var v=isc.$41r[_1];if(!v){if(isc.Log)isc.Log.logWarn("isc.hasOptionalModule - unknown module: "+_1);return false}
 return v.present=="true"||v.present.charAt(0)=="$"};isc.getOptionalModule=function(_1){return isc.$41r[_1]};isc.$a=window.isc_useSimpleNames;if(isc.$a==null)isc.$a=true;if(window.OpenAjax){isc.$b=isc.versionNumber.replace(/[a-zA-Z_]+/,".0");OpenAjax.registerLibrary("SmartClient","http://smartclient.com/SmartClient",isc.$b,{namespacedMode:!isc.$a,iscVersion:isc.version,buildDate:isc.buildDate,licenseType:isc.licenseType,licenseCompany:isc.licenseCompany,licenseSerialNumber:isc.licenseSerialNumber});OpenAjax.registerGlobals("SmartClient",["isc"])}
@@ -619,7 +619,7 @@
 ,isc.A.toUSDollarString=function isc_c_Format_toUSDollarString(_1,_2){if(!isc.isA.Number(_1))return _1;return _1.toUSDollarString(_2)}
 ,isc.A.toCurrencyString=function isc_c_Format_toCurrencyString(_1,_2,_3,_4,_5){if(!isc.isA.Number(_1))return _1;return _1.toCurrencyString(_2,_3,_4,_5)}
 );isc.B._maxIndex=isc.C+3;isc.Math={random:function(_1,_2){if(_2==null){return Math.round(Math.random()*_1)}else{return Math.round(Math.random()*(_2-_1))+_1}}}
-isc.addGlobal("timeStamp",function(){return new Date().getTime()});isc.addGlobal("timestamp",isc.timeStamp);Date.prototype.Class="Date";Date.Class="Date";isc.Date=Date;isc.A=Date;isc.A.INVALID_DATE_STRING="Invalid date format";isc.A=Date;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$64g={toUSShortDate:"MDY",toUSShortDateTime:"MDY",toEuropeanShortDate:"DMY",toEuropeanShortDateTime:"DMY",toJapanShortDate:"YMD",toJapanShortDateTime:"YMD"};isc.B.push(isc.A.newInstance=function isc_Date_newInstance(_1,_2,_3,_4,_5,_6,_7){return new Date(_1,_2,_3,_4,_5,_6,_7)}
+isc.defineClass("DateUtil");isc.addGlobal("timeStamp",function(){return new Date().getTime()});isc.addGlobal("timestamp",isc.timeStamp);Date.prototype.Class="Date";Date.Class="Date";isc.Date=Date;isc.A=Date;isc.A.INVALID_DATE_STRING="Invalid date format";isc.A=Date;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$64g={toUSShortDate:"MDY",toUSShortDateTime:"MDY",toEuropeanShortDate:"DMY",toEuropeanShortDateTime:"DMY",toJapanShortDate:"YMD",toJapanShortDateTime:"YMD"};isc.B.push(isc.A.newInstance=function isc_Date_newInstance(_1,_2,_3,_4,_5,_6,_7){return new Date(_1,_2,_3,_4,_5,_6,_7)}
 ,isc.A.create=function isc_Date_create(_1,_2,_3,_4,_5,_6,_7){var _8;if(_1===_8)return new Date();if(_2===_8)return new Date(_1);if(_3===_8)_3=0;if(_4===_8)_4=0;if(_5===_8)_5=0;if(_6===_8)_6=0;if(_7===_8)_7=0;return new Date(_1,_2,_3,_4,_5,_6,_7)}
 ,isc.A.compareDates=function isc_Date_compareDates(_1,_2){var _3=(_1!=null?_1.getTime():0),_4=(_2!=null?_2.getTime():0);return _3>_4?-1:(_4>_3?1:0)}
 ,isc.A.compareLogicalDates=function isc_Date_compareLogicalDates(_1,_2){if(_1==_2)return 0;if(!isc.isA.Date(_1)||!isc.isA.Date(_2))return false;var _3=_1.getFullYear(),_4=_1.getMonth(),_5=_1.getDate(),_6=_2.getFullYear(),_7=_2.getMonth(),_8=_2.getDate();var _9=_3*10000+_4*100+_5,_10=_6*10000+_7*100+_8;return _9>_10?-1:(_10>_9?1:0)}
@@ -730,7 +730,28 @@
 ,isc.A.parsePrettyString=function isc_Date_parsePrettyString(_1,_2){return this.parseShortDate(_1,_2)}
 ,isc.A.parseEuropeanShortDate=function isc_Date_parseEuropeanShortDate(_1,_2){return this.parseInput(_1,"DMY",_2)}
 ,isc.A.parseEuropeanShortDateTime=function isc_Date_parseEuropeanShortDateTime(_1,_2){return this.parseInput(_1,"DMY",_2)}
-);isc.B._maxIndex=isc.C+9;String.prototype.Class="String";isc.$ey=function(){var _1=[Array,Number,Date].getProperty("prototype");for(var i=0;i<_1.length;i++){var _3=_1[i];if(_3.toLocaleString==null){_3.toLocaleString=_3.toString}}
+);isc.B._maxIndex=isc.C+9;isc.A=isc.DateUtil;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.mapRelativeDateShortcut=function isc_c_DateUtil_mapRelativeDateShortcut(_1,_2){switch(_1){case"$now":return"+0MS";case"$today":if(_2=="end"){return"+0D"}else{return"-0D"}
+case"$startOfToday":return"-0D";case"$endOfToday":return"+0D";case"$yesterday":if(_2=="end"){return"-1ms[-0D]"}else{return"-1D"}
+case"$startOfYesterday":return"-1D";case"$endOfYesterday":return"-1ms[-0D]";case"$tomorrow":if(_2=="end"){return"+1D"}else{return"+1ms[+0D]"}
+case"$startOfTomorrow":return"+1ms[+0D]";case"$endOfTomorrow":return"+1D";case"$startOfWeek":return"-0W";case"$endOfWeek":return"+0W";case"$startOfMonth":return"-0M";case"$endOfMonth":return"+0M";case"$startOfYear":return"-0Y";case"$endOfYear":return"+0Y";case"$weekFromNow":if(_2=="end"){return"+1w[+0D]"}else{return"+1w[-0D]"}
+case"$weekAgo":if(_2=="end"){return"-1w[+0D]"}else{return"-1w[-0D]"}
+case"$monthFromNow":if(_2=="end"){return"+1m[+0D]"}else{return"+1m[-0D]"}
+case"$monthAgo":if(_2=="end"){return"-1m[+0D]"}else{return"-1m[-0D]"}}
+return _1}
+,isc.A.getAbsoluteDate=function isc_c_DateUtil_getAbsoluteDate(_1,_2,_3){if(this.isRelativeDate(_1)){if(!_3)_3=_1.rangePosition;_1=_1.value}
+if(_1.startsWith("$")){_1=this.mapRelativeDateShortcut(_1,_3)}
+var _4=_1,_5=new Date();if(_2!=null)_5.setTime(_2.getTime());var _6=this.getRelativeDateParts(_4);if(_6.qualifier){_6.qualifier=_6.qualifier.toUpperCase();var _7=this.getRelativeDateParts(_6.qualifier);var _8=["S","MN","H","D","W","M","Q","Y"];if(_8.contains(_7.period)){_5=this.dateAdd(_5,_7.period,_7.countValue,(_7.direction=="+"?1:-1),_3)}else{isc.logWarn("Invalid date-offset qualifier provided: "+_7.period+".  Valid "+"options are: S, MN, H, D, W, M, Q and Y.")}}
+var _9=this.dateAdd(_5,_6.period,_6.countValue,(_6.direction=="+"?1:-1));return _9}
+,isc.A.isRelativeDate=function isc_c_DateUtil_isRelativeDate(_1){if(isc.isA.Date(_1))return false;if(isc.isAn.Object(_1)&&_1._constructor=="RelativeDate")return true;return false}
+,isc.A.getRelativeDateParts=function isc_c_DateUtil_getRelativeDateParts(_1){var _2=_1,_3=_2.substring(0,1),_4=_2.indexOf("["),_5=(_4>0?_2.substring(_4):null),_6=(_5!=null?_2.substring(1,_4):_2.substring(1)),_7=parseInt(_6),_8=_6.replace(_7,"");return{direction:(_3=="+"||_3=="-"?_3:"+"),qualifier:_5?_5.replace("[","").replace("]","").replace(",",""):null,countValue:isc.isA.Number(_7)?_7:0,period:_8?_8:_3}}
+,isc.A.dateAdd=function isc_c_DateUtil_dateAdd(_1,_2,_3,_4){var _5=false;switch(_2){case"MS":case"ms":_1.setMilliseconds(_1.getMilliseconds()+(_3*_4));break;case"S":_5=true;case"s":_1.setSeconds(_1.getSeconds()+(_3*_4));break;case"MN":_5=true;case"mn":_1.setMinutes(_1.getMinutes()+(_3*_4));break;case"H":_5=true;case"h":_1.setHours(_1.getHours()+(_3*_4));break;case"D":_5=true;case"d":_1.setDate(_1.getDate()+(_3*_4));break;case"W":_5=true;case"w":_1.setDate(_1.getDate()+((_3*7)*_4));break;case"M":_5=true;case"m":_1.setMonth(_1.getMonth()+(_3*_4));break;case"Q":_5=true;case"q":_1.setMonth(_1.getMonth()+((_3*3)*_4));break;case"Y":_5=true;case"y":_1.setFullYear(_1.getFullYear()+(_3*_4));break;case"DC":_5=true;case"dc":_1.setFullYear(_1.getFullYear()+((_3*10)*_4));break;case"C":_5=true;case"c":_1.setFullYear(_1.getFullYear()+((_3*100)*_4));break}
+if(_5){if(_4>0){_1=this.getEndOf(_1,_2)}else{_1=this.getStartOf(_1,_2)}}
+return _1}
+,isc.A.getStartOf=function isc_c_DateUtil_getStartOf(_1,_2){var _3=_1;switch(_2){case"s":case"S":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),_3.getSeconds(),0);case"mn":case"MN":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),0,0);case"h":case"H":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),0,0,0);case"d":case"D":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),0,0,0,0);case"w":case"W":_3.setDate(_1.getDate()-_1.getDay());return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),0,0,0,0);case"m":case"M":return new Date(_1.getFullYear(),_1.getMonth(),1,0,0,0,0);case"q":case"Q":var _4=Math.floor((_1.getMonth()+1)/3)*3;return new Date(_1.getFullYear(),_4-1,1,0,0,0,0);case"y":case"Y":return new Date(_1.getFullYear(),0,1,0,0,0,0);case"dc":case"DC":var _5=Math.floor(_1.getFullYear()/10)*10;return new Date(_5,0,1,0,0,0,0);case"c":case"C":var _6=Math.floor(_1.getFullYear()/100)*100;return new Date(_6,0,1,0,0,0,0)}
+return _3}
+,isc.A.getEndOf=function isc_c_DateUtil_getEndOf(_1,_2){var _3=_1;switch(_2){case"s":case"S":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),_3.getSeconds(),999);case"mn":case"MN":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),_3.getMinutes(),59,999);case"h":case"H":return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),_3.getHours(),59,59,999);case"d":case"D":return new Date(_1.getFullYear(),_1.getMonth(),_1.getDate(),23,59,59,999);case"w":case"W":_3.setDate(_1.getDate()+(6-_1.getDay()));return new Date(_3.getFullYear(),_3.getMonth(),_3.getDate(),23,59,59,999);case"m":case"M":_3=new Date(_1.getFullYear(),_1.getMonth()+1,1,23,59,59,999);_3.setDate(_3.getDate()-1);return _3;case"q":case"Q":var _4=Math.floor((_1.getMonth()+4)/3)*3;_3=new Date(_1.getFullYear(),_4,1,23,59,59,999);_3.setDate(_3.getDate()-1);return _3;case"y":case"Y":return new Date(_1.getFullYear(),11,31,23,59,59,999);case"dc":case"DC":var _5=((_1.getFullYear()/10)*10)+9;return new Date(_5,11,1,23,59,59,999);case"c":case"C":var _6=(Math.floor(_1.getFullYear()/100)*100)+99;return new Date(_6,11,1,23,59,59,999)}
+return _3}
+);isc.B._maxIndex=isc.C+7;String.prototype.Class="String";isc.$ey=function(){var _1=[Array,Number,Date].getProperty("prototype");for(var i=0;i<_1.length;i++){var _3=_1[i];if(_3.toLocaleString==null){_3.toLocaleString=_3.toString}}
 var _4=String.prototype;if(!_4.toLocaleUpperCase){_4.toLocaleUpperCase=_4.toUpperCase;_4.toLocaleLowerCase=_4.toLowerCase}
 if(isc.Browser.isMoz){var _5="x",_6=_5.toLocaleString();if(_6!=_5){_4.toBrowserLocaleString=_4.toLocaleString;_4.toLocaleString=_4.toString}
 _5=true;_6=_5.toLocaleString();if(_6!=_5+""){Boolean.prototype.toBrowserLocaleString=Boolean.prototype.toLocaleString;Boolean.prototype.toLocaleString=Boolean.prototype.toString}}}
@@ -836,7 +857,7 @@
 _4+=")";_2=_2||_1.$cw;if(_2)_4+=" on "+this.echoLeaf(_2);if(!_3&&!_5.$c7)return _4;var _11=this.$e6(_5);if(!_5.$c7){var _12=_11.split(/[\r\n]+/);if(_12.length>1||_12[0].length>200)return _4}
 _4+='\n        "'+_11+'"';return _4},$e6:function(_1){var _2=isc.Func.getBody(_1);return _2.trim()},getStackTrace:function(_1,_2,_3,_4){var _5="";_5+=this.$76x(_1,_2,_3);if(this.hasFireBug()&&!_4){isc.Log.$50m=isc.Log.$50m||0;var _6="FBugTrace"+isc.Log.$50m++;_5+="\r\n"+this.fireBugTrace(_6)}
 return _5},$76x:function(_1,_2,_3){if(!arguments||!arguments.callee||!arguments.callee.caller){return" [Stack trace not supported in this browser]"}
-if(_1==null)_1=arguments.caller||arguments.callee.caller.arguments;var _4=[];var _5=isc.Browser.isIE&&isc.Browser.version<=5;for(var i=0;i<_2;i++){if(_1==null)break;if(!_5){_1=_1.callee.caller.arguments}else{_1=_1.caller}}
+if(_1==null)_1=arguments.caller||arguments.callee.caller.arguments;var _4=[];var _5=isc.Browser.isIE&&isc.Browser.version<=5;if(_2!=null){for(var i=0;i<_2;i++){if(_1==null)break;if(!_5){_1=_1.callee.caller.arguments}else{_1=_1.caller}}}
 if(_1==null){return""}
 var _7=_1.callee;var _8=[];var _9=true;if(_3==null)_3=Number.MAX_VALUE;var _10=0;while(_7!=null&&_1!=null&&_10<_3){if(_1.timerTrace){_4.add("\nStack trace for setTimeout() call:   "+_1.timerTrace);break}
 if(!_5){if(_8.contains(_7)){_4.add("    ** recursed on "+isc.Func.getName(_7,true));break}
@@ -852,7 +873,7 @@
 {_3+=_5;break}
 _3+="Obj"+this.getIDText(_1);break;default:_3+=""+_1}}
 return _3}catch(e){var _6="[Error in echoLeaf: "+e+"]";_3+=_6;this.logDebug(_6,"Log");return _3}},getIDText:function(_1){var _2=_1.name||(isc.isAn.XMLNode(_1)?_1.getAttribute("name"):null);if(_2!=null&&!isc.isAn.emptyString(_2))return"{name:"+_2+"}";var _3=_1.ID!=null?_1.ID:_1.id!=null?_1.id:(isc.isAn.XMLNode(_1)?_1.getAttribute("id"):null);if(_3!=null&&!isc.isAn.emptyString(_3))return"{ID:"+_3+"}";if(_1.nodeName!=null&&!isc.isAn.emptyString(_1.nodeName)){return"{nodeName:"+_1.nodeName+"}"}
-var _4=_1.title||(isc.isAn.XMLNode(_1)?_1.getAttribute("title"):null);if(_4!=null&&!isc.isAn.emptyString(_4))return"{title:"+_4+"}";var _5=_1.type||(isc.isAn.XMLNode(_1)?_1.getAttribute("type"):null);if(_5!=null&&!isc.isAn.emptyString(_5))return"{type:"+_5+"}";var _6=_1.label||(isc.isAn.XMLNode(_1)?_1.getAttribute("label"):null);if(_6!=null&&!isc.isAn.emptyString(_6))return"{label:"+_6+"}";if(_1.length!=null)return"{length:"+_1.length+"}";return""},echo:function(_1,_2,_3,_4){if(_1==null)return this.echoLeaf(_1);if(_2==null)_2=true;if(_1.tagName)return this.echoDOM(_1);if(typeof _1!="object"||isc.isA.Date(_1))return this.echoLeaf(_1,true);if(isc.isAn.Array(_1)){var _5=(_3?"[\n":"[");for(var i=0;i<_1.length;i++){_5+=(_3?this.echo(_1[i],_2):this.echoLeaf(_1[i]));if(i+1<_1.length)_5+=(_3?",\n":", ")}
+var _4=_1.title||(isc.isAn.XMLNode(_1)?_1.getAttribute("title"):null);if(_4!=null&&!isc.isAn.emptyString(_4))return"{title:"+_4+"}";var _5=_1.type||(isc.isAn.XMLNode(_1)?_1.getAttribute("type"):null);if(_5!=null&&!isc.isAn.emptyString(_5))return"{type:"+_5+"}";var _5=_1._constructor;if(_5!=null&&!isc.isAn.emptyString(_5))return"{_constructor:"+_5+"}";var _6=_1.label||(isc.isAn.XMLNode(_1)?_1.getAttribute("label"):null);if(_6!=null&&!isc.isAn.emptyString(_6))return"{label:"+_6+"}";var _5=_1.className;if(_5!=null&&!isc.isAn.emptyString(_5))return"{className:"+_5+"}";if(_1.length!=null)return"{length:"+_1.length+"}";return""},echo:function(_1,_2,_3,_4){if(_1==null)return this.echoLeaf(_1);if(_2==null)_2=true;if(_1.tagName)return this.echoDOM(_1);if(typeof _1!="object"||isc.isA.Date(_1))return this.echoLeaf(_1,true);if(isc.isAn.Array(_1)){var _5=(_3?"[\n":"[");for(var i=0;i<_1.length;i++){_5+=(_3?this.echo(_1[i],_2):this.echoLeaf(_1[i]));if(i+1<_1.length)_5+=(_3?",\n":", ")}
 _5+="\n]";return _5}
 var _5="{";if(_1.getUniqueProperties!=null){_5=_1.getClassName()+"{";_1=_1.getUniqueProperties();if(_4==null)_4=false}
 if(_4==null)_4=true;var _7;try{_7=isc.getKeys(_1)}catch(e){return this.echoLeaf(_1)}
@@ -968,10 +989,11 @@
 isc.Log.defaultPriority=isc.$gg.defaultPriority}else{isc.Log.setPriority("Log",isc.Log.INFO)}
 isc.showConsole=function(_1,_2,_3,_4){isc.showLog(_1,_2,_3,_4)}
 isc.addGlobal("showLog",function(_1,_2,_3,_4){isc.Log.show(_1,_2,_3,_4)})
-isc.Log.logInfo("initialized");isc.Log.$fy();isc.Log.supportsOnError=(isc.Browser.isIE);if(isc.Log.supportsOnError&&!(window.isc_installOnError==false)){window.onerror=function(_1,_2,_3){var _4=arguments.caller;if(_4==null&&arguments.callee.caller!=null){_4=arguments.callee.caller.arguments}
+isc.Log.logInfo("initialized");isc.Log.$fy();isc.Log.supportsOnError=(isc.Browser.isIE);if(isc.Log.supportsOnError&&!(window.isc_installOnError==false)){window.onerror=function(_1,_2,_3){var _4=arguments.caller,_5;if(_4==null&&arguments.callee.caller!=null){_5=arguments.callee.caller;_4=_5.arguments}
 if(_4&&_4.$e9){return}
-var _5="Error:\r\t'"+_1+"'\r\tin "+_2+"\r\tat line "+_3;if(_4){_5+=isc.Log.getStackTrace(_4)}
-isc.Log.logWarn(_5);if(isc.Browser.isIE&&isc.useIEDebugger){if(confirm("Run debugger?\r\r"+_5)){debugger}}}}
+var _6="Error:\r\t'"+_1+"'\r\tin "+_2+"\r\tat line "+_3;if(_5!=null&&_4==null&&isc.Browser.isIE&&isc.Browser.version>=9)
+{_6+="\r\n    crashed in:  "+isc.Func.getName(_5,true)+"()"+"\r\n    Use a pre-9.0 Internet Explorer for best diagnostics, otherwise Firefox or Chrome"}else if(_4!=null){_6+=isc.Log.getStackTrace(_4)}
+isc.Log.logWarn(_6);if(isc.Browser.isIE&&isc.useIEDebugger){if(confirm("Run debugger?\r\r"+_6)){debugger}}}}
 isc.$63a=function(){return"["+this.Class+" ID:"+this.ID+" (created by: "+this.componentId+")]"}
 isc.$63b=function(_1,_2,_3,_4){var _5=isc.Log;if(!_5)return;if(_1==null)_1=_5.defaultPriority;if(_1<=_5.stackTracePriority&&this.getStackTrace!=null){_2+="\nStack trace:\n"+this.getStackTrace(arguments,2)}
 if(!_3)_3=this.Class;_5.log(_1,_2,_3,this.ID+" (created by: "+this.componentId+")",this,_4)}
@@ -1983,7 +2005,8 @@
 {if(this.getPageRight()>=isc.Page.getWidth()||this.getPageBottom()>=isc.Page.getHeight())
 {isc.EH.fireOnPause("checkForBodyOverflowChange",{target:isc.Canvas,methodName:"checkForPageResize"},100)}}
 if(this.parentElement==null&&this.position==this.$411){this.$412=this.getPageLeft();this.$413=this.getPageTop();isc.Page.setEvent("resize",this,isc.Page.FIRE_ONCE,"$414")}
-return this}
+this.onDraw();return this}
+,isc.A.onDraw=function isc_Canvas_onDraw(){}
 ,isc.A.doInitialFetch=function isc_Canvas_doInitialFetch(){}
 ,isc.A.$qb=function isc_Canvas__writeHTML(){this.setDrawnState(isc.Canvas.DRAWING_HANDLE);var _1=this.getDocument(),_2=this.separateContentInsertion;if(this.children!=null&&this.$p2()){this.$p5=true;var _3=this.getTagStart(),_4=this.getTagEnd();_1.write(_2?_3:_3+this.$px())
 this.drawChildren();_1.write(_2?this.$px()+_4:_4);this.setDrawnState(isc.Canvas.HANDLE_DRAWN)}else{_1.write(isc.SB.concat(this.getTagStart(),(_2?null:this.$px()),this.getTagEnd()));this.setDrawnState(isc.Canvas.HANDLE_DRAWN);if(_2)this.$p9();this.drawChildren()}
@@ -3070,8 +3093,8 @@
 return false}
 ,isc.A.$mb=function isc_Canvas__showDragMask(){if(this._eventMask.visibility==isc.Canvas.HIDDEN)this._eventMask.show()}
 ,isc.A.$mc=function isc_Canvas__hideDragMask(){if(this._eventMask.visibility!=isc.Canvas.HIDDEN)this._eventMask.hide()}
-,isc.A.handleDrop=function isc_Canvas_handleDrop(_1,_2){if(this.onDrop!=null&&(this.onDrop()==false))return false;return this.drop(_1,_2)}
-);isc.evalBoundary;isc.B.push(isc.A.getHSnapPosition=function isc_Canvas_getHSnapPosition(_1,_2){if(!_2){_2=this.snapHDirection}
+);isc.evalBoundary;isc.B.push(isc.A.handleDrop=function isc_Canvas_handleDrop(_1,_2){if(this.onDrop!=null&&(this.onDrop()==false))return false;return this.drop(_1,_2)}
+,isc.A.getHSnapPosition=function isc_Canvas_getHSnapPosition(_1,_2){if(!_2){_2=this.snapHDirection}
 if(_2!=isc.Canvas.BEFORE&&_2!=isc.Canvas.AFTER&&_2!=isc.Canvas.NEAREST){return _1}
 var _3=Math.floor(_1/ this.snapHGap)*this.snapHGap;var _4=_3+this.snapHGap;var _5=_3+this.snapHGap/ 2;if(_2==isc.Canvas.BEFORE){return _3}else if(_2==isc.Canvas.AFTER){return _4}else{if(_1<=_5)return _3;else return _4}}
 ,isc.A.getVSnapPosition=function isc_Canvas_getVSnapPosition(_1,_2){if(!_2){_2=this.snapVDirection}
@@ -3133,7 +3156,7 @@
 this.getTopMargin();_1.moveAbove(this);if(_1.isDrawn()&&!this.isDrawn())_1.clear()}
 ,isc.A.$55v=function isc_Canvas__hideGroupLabel(){if(!this.groupLabel)return;var _1=this.groupLabel;this.$wj(_1,isc.Canvas.TOP);this.setTopPadding(null);_1.clear();_1.depeer()}
 ,isc.A.setGroupTitle=function isc_Canvas_setGroupTitle(_1){this.groupTitle=_1;if(this.groupLabel){this.groupLabel.setContents(this.groupTitle)}else{this.$55u()}}
-);isc.B._maxIndex=isc.C+532;isc.A=isc.Canvas;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$hm="[SKIN]";isc.A.printOmitControls=["Button","StretchImgButton","ImgButton","MenuButton","Toolbar","ToolStrip","ButtonItem","ToolbarItem"];isc.A.printIncludeControls=["Label"];isc.A.$ws=0;isc.A.$wt="ID='";isc.A.$ob="'";isc.A.$wu="absmiddle";isc.A.$wv=[,,," eventpart='valueicon' style='vertical-align:middle;margin-left:",,"px;margin-right:",,"px;'"];isc.A.$ww={};isc.A.$wx={png:true,PNG:true,Png:true};isc.A.$wy=["<a",," href='",,"' target='",,"'",,,,">",,"</a>"];isc.A.$wz="[SKINIMG]/blank.gif";isc.A.$w0="0";isc.A.$w1="clearRedrawQueue";isc.A.$65j=[];isc.A.$65k=0;isc.A.$65l="clearDestroyQueue";isc.A.$tw=[];isc.B.push(isc.A.stripScriptTags=function isc_c_Canvas_stripScriptTags(_1){return _1.replace(/<script([^>]*)?>(.|\n|\r)*?<\/script>/ig,isc.emptyString)}
+);isc.B._maxIndex=isc.C+533;isc.A=isc.Canvas;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$hm="[SKIN]";isc.A.printOmitControls=["Button","StretchImgButton","ImgButton","MenuButton","Toolbar","ToolStrip","ButtonItem","ToolbarItem"];isc.A.printIncludeControls=["Label"];isc.A.$ws=0;isc.A.$wt="ID='";isc.A.$ob="'";isc.A.$wu="absmiddle";isc.A.$wv=[,,," eventpart='valueicon' style='vertical-align:middle;margin-left:",,"px;margin-right:",,"px;'"];isc.A.$ww={};isc.A.$wx={png:true,PNG:true,Png:true};isc.A.$wy=["<a",," href='",,"' target='",,"'",,,,">",,"</a>"];isc.A.$wz="[SKINIMG]/blank.gif";isc.A.$w0="0";isc.A.$w1="clearRedrawQueue";isc.A.$65j=[];isc.A.$65k=0;isc.A.$65l="clearDestroyQueue";isc.A.$tw=[];isc.B.push(isc.A.stripScriptTags=function isc_c_Canvas_stripScriptTags(_1){return _1.replace(/<script([^>]*)?>(.|\n|\r)*?<\/script>/ig,isc.emptyString)}
 ,isc.A.stripLinkTags=function isc_c_Canvas_stripLinkTags(_1){return _1.replace(/<link([^>]*)?>/ig,isc.emptyString)}
 ,isc.A.getById=function isc_c_Canvas_getById(_1){var _2=window[_1]||null;return _2?(isc.isA.Canvas(_2)?_2:null):null}
 ,isc.A.getNextZIndex=function isc_c_Canvas_getNextZIndex(){return(isc.Canvas.$ng+=18)}
@@ -3295,26 +3318,25 @@
 if(isc.isA.String(_1.imageSize)){_7=_1.imageSize}else{_3=_3||_1.imageSize;_4=_4||_1.imageSize}
 if(_2!=null){_3=_3||_2[_5]||_2[_7];_4=_4||_2[_6]||_2[_7]}
 return{width:_3,height:_4}}
-,isc.A.$833=function isc_c_Canvas__performActionOnValue(_1,_2,_3,_4,_5,_6,_7,_8){if(!_3||_2==null||isc.isAn.emptyString(_2))return;var _9=_3;var _10=_2.contains(this.$70l);if(_10){_2=_2.trim(isc.Canvas.$70l);var _11=_2.split(this.$70l),_12=[],_13;if(_11[0]&&_3[_11[0]]===_13&&(!_8||_3[_8]===_13)&&_1=="get"&&!_7)
+,isc.A.$833=function isc_c_Canvas__performActionOnValue(_1,_2,_3,_4,_5,_6,_7){if(!_3||_2==null||isc.isAn.emptyString(_2))return;var _8=_3;var _9=_2.contains(this.$70l);if(_9){_2=_2.trim(isc.Canvas.$70l);var _10=_2.split(this.$70l),_11=[],_12;if(_10[0]&&_3[_10[0]]===_12&&_1=="get"&&!_7)
 {if(_4&&isc.ValuesManager&&isc.isA.ValuesManager(_4.valuesManager))
-{return this.$833(_1,_2,_4.valuesManager.getValues(),_4,_5,_6,true,_8)}}
-if(isc.isAn.emptyString(_11.last()))_11.length-=1;for(var i=0;i<_11.length;i++){if(isc.isAn.emptyString(_11[i]))continue;if(_3==null){_12.length=0;break}
-_12.add(_3);if(i==_11.length-1){if(_1=="get"){return _3[_11[i]]}else if(_1=="clear"){delete _3[_11[i]]}else if(_1=="save"){_3[_11[i]]=_6}}else{_3=_3[_11[i]];if(_3===_13&&_8!==_13){if(_1=="get"){return _9[_8]}else if(_1=="clear"){delete _9[_8]}else if(_1=="save"){_9[_8]=_6}}
-if(isc.isAn.Array(_3)){var _15=null;var _16=(parseInt(_11[i+1])==_11[i+1])
-if(_16){_15=parseInt(_11[i+1])
-_11.removeAt(i+1)}else if(_4&&_4.selectionComponent){var _17=isc.Canvas.$70l,_18=_4,_19;for(var j=0;j<=i;j++){_17+=_11[j]+isc.Canvas.$70l}
+{return this.$833(_1,_2,_4.valuesManager.getValues(),_4,_5,_6,true)}}
+if(isc.isAn.emptyString(_10.last()))_10.length-=1;for(var i=0;i<_10.length;i++){if(isc.isAn.emptyString(_10[i]))continue;if(_3==null){_11.length=0;break}
+_11.add(_3);if(i==_10.length-1){if(_1=="get"){return _3[_10[i]]}else if(_1=="clear"){delete _3[_10[i]]}else if(_1=="save"){_3[_10[i]]=_6}}else{var _14=_3[_10[i]];if(_14==_12){if(_1=="get"){return null}else if(_1=="clear"){return}else if(_1=="save"){_14=_3[_10[i]]={}}}
+_3=_14;if(isc.isAn.Array(_3)){var _15=null;var _16=(parseInt(_10[i+1])==_10[i+1])
+if(_16){_15=parseInt(_10[i+1])
+_10.removeAt(i+1)}else if(_4&&_4.selectionComponent){var _17=isc.Canvas.$70l,_18=_4,_19;for(var j=0;j<=i;j++){_17+=_10[j]+isc.Canvas.$70l}
 _17=_17.trim(isc.Canvas.$70l);_18=_4.selectionComponent;while(_18){var _21=_18.dataPath;if(_21)_21=_21.trim(isc.Canvas.$70l);if(_17==_21){var _22=_18.getSelectedRecord();if(_22){_15=_18.getRecordIndex(_22)}else{_19=true}
 break}
 _18=_18.selectionComponent}
 if(_15==null){if(!_19&&_5){_15=0}else{return}}}else{if(_5){_15=0}else{return}}
 _3=_3[_15]}}}
-if(_1=="clear"){for(var i=_12.length-1;i>0;i--){if(isc.isAn.emptyObject(_12[i])){delete _12[i-1][_11[i-1]]}}}}else{if(_1=="get")return _3[_2];else if(_1=="clear")delete _3[_2];else if(_1=="save")_3[_2]=_6}}
-,isc.A.$70m=function isc_c_Canvas__clearFieldValue(_1,_2,_3,_4){var _5=this.$84y(_1,_3);this.$833("clear",_1,_2,_3,_4,null,false,_5)}
-,isc.A.$70n=function isc_c_Canvas__saveFieldValue(_1,_2,_3,_4,_5){var _6=this.$84y(_1,_4);this.$833("save",_1,_3,_4,_5,_2,false,_6);return _3}
-,isc.A.$70o=function isc_c_Canvas__getFieldValue(_1,_2,_3,_4){var _5=this.$84y(_1,_3);return this.$833("get",_1,_2,_3,_4,null,false,_5)}
-,isc.A.$84y=function isc_c_Canvas__getFlatFieldName(_1,_2){if(_2&&_2.getField){var _3=_2.getField(_1);if(_3)return _3.name}}
+if(_1=="clear"){for(var i=_11.length-1;i>0;i--){if(isc.isAn.emptyObject(_11[i])){delete _11[i-1][_10[i-1]]}}}}else{if(_1=="get")return _3[_2];else if(_1=="clear")delete _3[_2];else if(_1=="save")_3[_2]=_6}}
+,isc.A.$70m=function isc_c_Canvas__clearFieldValue(_1,_2,_3,_4){this.$833("clear",_1,_2,_3,_4,null,false)}
+,isc.A.$70n=function isc_c_Canvas__saveFieldValue(_1,_2,_3,_4,_5){this.$833("save",_1,_3,_4,_5,_2,false);return _3}
+,isc.A.$70o=function isc_c_Canvas__getFieldValue(_1,_2,_3,_4){return this.$833("get",_1,_2,_3,_4,null,false)}
 ,isc.A.$702=function isc_c_Canvas__combineDataPaths(_1,_2){if(_1==null)return""+_2;if(_2==null)return _1+"";if(isc.isA.String(_2)&&_2.startsWith(this.$70l))_2=_2.substring(1);if(isc.isA.String(_1)&&_1.endsWith(this.$70l)){return _1+_2}else{return _1+this.$70l+_2}}
-);isc.B._maxIndex=isc.C+7;isc.A=isc.Canvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showComplexFields=true;isc.A.exportIncludeSummaries=true;isc.A.ignoreEmptyCriteria=true;isc.A.dragRecategorize=false;isc.A.duplicateDragMessage="Duplicates not allowed";isc.A.showOfflineMessage=true;isc.A.offlineMessage="This data not available while offline";isc.A.offlineMessageStyle="offlineMessage";isc.A.offlineSaveMessage="Data cannot be saved because you are not online";isc.A.addDropValues=true;isc.A.fieldIdProperty="name";isc.A.dataArity="multiple";isc.A.autoTrackSelection=true;isc.A.$308={date:true,DateItem:true};isc.A.$301="false;";isc.A.$18r="false";isc.A.styleOpposite="cellHiliteOpposite";isc.A.hiliteProperty="_hilite";isc.A.hiliteMarker="$63i";isc.A.$578=0;isc.A.$579=[];isc.A.dragDataAction=isc.Canvas.MOVE;isc.A.dragTrackerStyle="gridDragTracker";isc.A.canExport=true;isc.A.canPrint=true;isc.A.panelControls=["action:edit","action:editNew","action:sort","action:export","action:print"];isc.A.dbcProperties=["autoFetchData","autoFetchTextMatchStyle","autoFetchAsFilter","dataSource"];isc.A.badFormulaResultValue=".";isc.A.missingSummaryFieldValue="-";isc.A.canAddFormulaFields=false;isc.A.addFormulaFieldText="Add formula column...";isc.A.editFormulaFieldText="Edit formula...";isc.A.removeFormulaFieldText="Remove formula";isc.A.canAddSummaryFields=false;isc.A.addSummaryFieldText="Add summary column...";isc.A.editSummaryFieldText="Edit summary format...";isc.A.removeSummaryFieldText="Remove summary column..";isc.A.formulaFieldNamePrefix="formulaField";isc.A.summaryFieldNamePrefix="summaryField";isc.A.uniqueFieldNamePrefix="field";isc.A.exportDataChunkSize=50;isc.A.emptyExportMessage="You are attempting to export an empty dataset";isc.A.unknownErrorMessage="Invalid value";isc.A.$685=["isInteger","isFloat","isBoolean","isString"];isc.A.$746="partial";isc.A.$75a={};isc.A.$75b=null;isc.B.push(isc.A.setValuesManager=function isc_Canvas_setValuesManager(_1){if(_1)_1.addMember(this)}
+);isc.B._maxIndex=isc.C+6;isc.A=isc.Canvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showComplexFields=true;isc.A.exportIncludeSummaries=true;isc.A.ignoreEmptyCriteria=true;isc.A.dragRecategorize=false;isc.A.duplicateDragMessage="Duplicates not allowed";isc.A.showOfflineMessage=true;isc.A.offlineMessage="This data not available while offline";isc.A.offlineMessageStyle="offlineMessage";isc.A.offlineSaveMessage="Data cannot be saved because you are not online";isc.A.addDropValues=true;isc.A.fieldIdProperty="name";isc.A.dataArity="multiple";isc.A.autoTrackSelection=true;isc.A.$308={date:true,DateItem:true};isc.A.$301="false;";isc.A.$18r="false";isc.A.styleOpposite="cellHiliteOpposite";isc.A.hiliteProperty="_hilite";isc.A.hiliteMarker="$63i";isc.A.$578=0;isc.A.$579=[];isc.A.dragDataAction=isc.Canvas.MOVE;isc.A.dragTrackerStyle="gridDragTracker";isc.A.canExport=true;isc.A.canPrint=true;isc.A.panelControls=["action:edit","action:editNew","action:sort","action:export","action:print"];isc.A.dbcProperties=["autoFetchData","autoFetchTextMatchStyle","autoFetchAsFilter","dataSource"];isc.A.badFormulaResultValue=".";isc.A.missingSummaryFieldValue="-";isc.A.canAddFormulaFields=false;isc.A.addFormulaFieldText="Add formula column...";isc.A.editFormulaFieldText="Edit formula...";isc.A.removeFormulaFieldText="Remove formula";isc.A.canAddSummaryFields=false;isc.A.addSummaryFieldText="Add summary column...";isc.A.editSummaryFieldText="Edit summary format...";isc.A.removeSummaryFieldText="Remove summary column..";isc.A.formulaFieldNamePrefix="formulaField";isc.A.summaryFieldNamePrefix="summaryField";isc.A.uniqueFieldNamePrefix="field";isc.A.exportDataChunkSize=50;isc.A.emptyExportMessage="You are attempting to export an empty dataset";isc.A.unknownErrorMessage="Invalid value";isc.A.$685=["isInteger","isFloat","isBoolean","isString"];isc.A.$746="partial";isc.A.$75a={};isc.A.$75b=null;isc.B.push(isc.A.setValuesManager=function isc_Canvas_setValuesManager(_1){if(_1)_1.addMember(this)}
 ,isc.A.initializeValuesManager=function isc_Canvas_initializeValuesManager(){var _1=this.valuesManager;delete this.valuesManager;if(_1!=null){if(isc.ValuesManager==null){this.logWarn("Widget initialized with specified 'valuesManager' property but "+"ValuesManager class is not loaded. This functionality requires the "+"Forms module.");return}
 if(isc.isA.ValuesManager(_1)){_1.addMember(this)}else if(isc.isA.ValuesManager(window[_1])){window[_1].addMember(this)}else if(isc.isA.String(_1)){isc.ValuesManager.create({ID:_1,dataSource:this.dataSource,members:[this]})}else{this.logWarn("Widget initialized with invalid 'valuesManager' property:"+isc.Log.echo(_1)+", clearing this property out")}}}
 ,isc.A.setDataPath=function isc_Canvas_setDataPath(_1){this.dataPath=_1;if(this.getFields==null||this.getFields()==null)return;if(_1==null){delete this.$704;if(this.valuesManager&&this.$703){this.valuesManager.removeMember(this);delete this.$703}
@@ -3325,7 +3347,8 @@
 this.$704=_2;if(_3){if(_3!=this||!this.dataSource){if(_3.valuesManager==null){_3.createDefaultValuesManager()}
 var _4=isc.isA.DynamicForm(this)?this.$834:this.getFields();_4=_4||this.getFields();if(_3.valuesManager.getDataSource()){this.setDataSource(_3.valuesManager.getDataSource(),_4)}
 _3.valuesManager.addMember(this,true)}}}
-,isc.A.getFullDataPath=function isc_Canvas_getFullDataPath(){return this.$704||this.dataPath}
+,isc.A.getFullDataPath=function isc_Canvas_getFullDataPath(){var _1=this.$704||this.dataPath;if(!_1&&this.masterElement){return this.masterElement.$704||this.masterElement.dataPath}
+return _1}
 ,isc.A.buildFieldDataPath=function isc_Canvas_buildFieldDataPath(_1,_2){var _3=_2.dataPath||_2.name;if(_1&&!_3.startsWith("/")){_3=_1+"/"+_3}
 return!_3?null:_3.replace(/^\/*/,"")}
 ,isc.A.createDefaultValuesManager=function isc_Canvas_createDefaultValuesManager(_1){if(!_1)_1=[];_1.add(this);isc.ValuesManager.create({members:_1,ID:this.getID()+"$705",dataSource:this.dataSource})}
@@ -3409,7 +3432,8 @@
 ,isc.A.exportData=function isc_Canvas_exportData(_1){if(!_1)_1={};var _2=this.getSort();if(_2)_1.sortBy=isc.DS.getSortBy(_2);else if(this.sortField)_1.sortBy=(!this.sortDirection?"-":"")+this.sortField;if(!_1.textMatchStyle){var _3=this.data.context;if(_3&&_3.textMatchStyle)_1.textMatchStyle=_3.textMatchStyle}
 if(!this.exportAll&&!_1.exportFields){var _4=this.exportFields;if(!_4){_4=[];for(var i=0;i<this.fields.length;i++){var _6=this.fields.get(i);if(this.$71s(_6)){_4.add(_6.name);if(_6.displayField&&!_6.optionDataSource)_4.add(_6.displayField)}}}
 if(_4&&_4.length>0)_1.exportFields=_4}
-var _7=_1.exportFields||this.exportFields||this.fields;var _8={};for(var i=0;i<_7.length;i++){var _6=_7[i];if(isc.isA.String(_6))_6=this.getField(_6);_8[_6.name]=_6.exportTitle||_6.title}
+var _7=_1.exportFields||this.exportFields||this.fields;var _8={};for(var i=0;i<_7.length;i++){var _6=_7[i];var _9;if(isc.isA.String(_6)){_9=_6;_6=this.getField(_9)}
+if(_6){_8[_6.name]=_6.exportTitle||_6.title}else{_8[_9]=_9}}
 _1.exportFieldTitles=_8;this.getDataSource().exportData(this.getCriteria(),_1)}
 ,isc.A.setCriteria=function isc_Canvas_setCriteria(_1){if(this.data&&this.data.setCriteria)this.data.setCriteria(_1);else this.initialCriteria=_1}
 ,isc.A.getCriteria=function isc_Canvas_getCriteria(){if(!this.isDrawn()&&(!this.data||this.data.getLength()==0)){return isc.shallowClone(this.initialCriteria)}
@@ -3643,7 +3667,7 @@
 ,isc.A.getClientExportDataChunk=function isc_Canvas_getClientExportDataChunk(_1){var _2=_1.settings,_3=_1.data,_4=_1.exportData,_5=_1.fields,_6=_1.includeHiddenFields,_7=_1.allowedProperties,_8=_1.includeCollapsedNodes,_9=_1.alwaysExportExpandedStyles,_10=_1.totalRows,_11=_1.startRow,_12=_1.endRow;for(var _13=_11;_13<_12;_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}
 if(_1.endRow<_1.totalRows){_1.lastTimeStamp=_1.thisTimeStamp;_1.thisTimeStamp=isc.timeStamp();if(this.logIsInfoEnabled("export")){this.logInfo("processed "+_1.endRow+" rows - starting next chunk - "+((_1.thisTimeStamp-_1.lastTimeStamp)/1000),"export")}
 _1.startRow=_1.endRow;_1.endRow=Math.min(_1.startRow+_1.chunkSize,_1.totalRows);return this.delayCall("getClientExportDataChunk",[_1],0)}
-if(this.showGridSummary&&this.summaryRow&&this.exportIncludeSummaries){var _16=this.summaryRow,_3=[_16.$71q];for(var _13=0;_13<_3.getLength();_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}}
+if(this.showGridSummary&&this.summaryRow&&this.exportIncludeSummaries){var _16=this.summaryRow,_3=this.getGridSummaryData(true);for(var _13=0;_13<_3.getLength();_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}}
 if(_1.callback){var _3=_1.exportData;if(this.logIsInfoEnabled("export")){this.logInfo("finished processing "+_1.endRow+" rows - about to export - "+isc.timestamp(),"export")}
 this.fireCallback(_1.callback,"data,context",[_3,_1.settings])}}
 ,isc.A.getClientExportFields=function isc_Canvas_getClientExportFields(_1){var _2=this.getAllFields();if(isc.isA.Object(_1)){if(_1&&_1.exportFields){var _3=[];for(var i=0;i<_2.length;i++){if(_1.exportFields.contains(_2[i].name))_3.add(_2[i])}
@@ -4085,7 +4109,7 @@
 isc._moduleEnd=isc._Core_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('Core module init time: ' + (isc._moduleEnd-isc._moduleStart) + 'ms','loadTime');delete isc.definingFramework;}else{if(window.isc && isc.Log && isc.Log.logWarn)isc.Log.logWarn("Duplicate load of module 'Core'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
Binary file isomorphic/system/modules/ISC_Core.js.gz has changed
--- a/isomorphic/system/modules/ISC_DSBrowser.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/modules/ISC_DSBrowser.js	Thu May 05 22:40:54 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -46,7 +46,7 @@
 );isc.B._maxIndex=isc.C+11;isc._moduleEnd=isc._DSBrowser_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('DSBrowser module init time: ' + (isc._moduleEnd-isc._moduleStart) + 'ms','loadTime');delete isc.definingFramework;}else{if(window.isc && isc.Log && isc.Log.logWarn)isc.Log.logWarn("Duplicate load of module 'DSBrowser'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
Binary file isomorphic/system/modules/ISC_DSBrowser.js.gz has changed
--- a/isomorphic/system/modules/ISC_DataBinding.js	Thu Apr 21 20:11:16 2011 +0200
+++ b/isomorphic/system/modules/ISC_DataBinding.js	Thu May 05 22:40:54 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
+ * Version SC_SNAPSHOT-2011-05-05 (2011-05-05)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -258,7 +258,7 @@
 ,isc.A.handleUpdate=function isc_c_DataSource_handleUpdate(_1,_2){if(!this.isUpdateOperation(_2.operationType))return;var _3=this.get(_2.dataSource);_3.updateCaches(_1,_2)}
 ,isc.A.isUpdateOperation=function isc_c_DataSource_isUpdateOperation(_1){if(_1=="add"||_1=="update"||_1=="remove"||_1=="replace"||_1=="delete"||_1=="insert")return true}
 ,isc.A.getUpdatedData=function isc_c_DataSource_getUpdatedData(_1,_2,_3){var _4=this.get(_1.dataSource);return _4.getUpdatedData(_1,_2,_3)}
-,isc.A.filterCriteriaForFormValues=function isc_c_DataSource_filterCriteriaForFormValues(_1){var _2={};for(var _3 in _1){var _4=_1[_3];if(_4==null||isc.is.emptyString(_4))continue;if(isc.isAn.Array(_4)){if(_4.length==0)continue;for(var i=0;i<_4.length;i++){var _6=_4[i];if(isc.isAn.emptyString(_6))continue}}
+,isc.A.filterCriteriaForFormValues=function isc_c_DataSource_filterCriteriaForFormValues(_1){if(isc.DS.isAdvancedCriteria(_1))return _1;var _2={};for(var _3 in _1){var _4=_1[_3];if(_4==null||isc.is.emptyString(_4))continue;if(isc.isAn.Array(_4)){if(_4.length==0)continue;for(var i=0;i<_4.length;i++){var _6=_4[i];if(isc.isAn.emptyString(_6))continue}}
 _2[_3]=_4}
 return _2}
 ,isc.A.checkEmptyCriteria=function isc_c_DataSource_checkEmptyCriteria(_1,_2){if((_2||this.isAdvancedCriteria(_1))&&_1.criteria){if(_1.criteria.length==0)return null;for(var i=_1.criteria.length;i>=0;i--){var _4=_1.criteria[i],_5=false;if(!_4)_5=true;else{if(!_4.criteria){if(isc.isA.emptyObject(_4))_5=true}else{var _6=this.checkEmptyCriteria(_4,true);if(_6)_1.criteria[i]=_6;else _5=true}}
@@ -287,8 +287,8 @@
 ,isc.A.getCachedResponse=function isc_c_DataSource_getCachedResponse(_1){if(isc.Offline){var _2=isc.Offline.serialize(isc.Offline.trimRequest(_1));return this.$78d.find("requestKey",_2)}
 return null}
 );isc.B._maxIndex=isc.C+31;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.addGlobalId=true;isc.A.dataFormat="iscServer";isc.A.callbackParam="callback";isc.A.preventHTTPCaching=true;isc.A.sendExtraFields=true;isc.A.transformResponseToJS=true;isc.A.supportsRequestQueuing=true;isc.A.copyLocalResults=true;isc.A.criteriaPolicy="dropOnShortening";isc.A.showPrompt=true;isc.A.autoDeriveTitles=true;isc.A.canMultiSort=true;isc.A.nullStringValue="";isc.A.nullIntegerValue=0;isc.A.nullFloatValue=0.0;isc.A.nullBooleanValue=false;isc.A.nullDateValue=new Date(0);isc.A.cacheMaxAge=60;isc.A.cacheLastFetchTime=0;isc.A.autoCacheAllData=false;isc.A.autoConvertRelativeDates=true;isc.B.push(isc.A.setCacheAllData=function isc_DataSource_setCacheAllData(_1){if(!_1){if(this.cacheAllData==true){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheAllData(false): clearing the cache and any "+"deferred requests","cacheAllData")}
-this.cacheAllData=false;this.invalidateCache();this.clearDeferredRequests()}}else{if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheAllData(true): invalidate the cache","cacheAllData")}
-this.cacheAllData=true;this.invalidateCache()}}
+this.cacheAllData=false;delete this.$85n;this.invalidateCache();this.clearDeferredRequests()}}else{if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheAllData(true): invalidate the cache","cacheAllData")}
+this.cacheAllData=true;this.$85n=isc.timestamp();this.invalidateCache()}}
 ,isc.A.cacheNeedsRefresh=function isc_DataSource_cacheNeedsRefresh(){var _1=new Date().getTime(),_2=((_1-this.cacheLastFetchTime)/1000),_3=(this.cacheLastFetchTime==0||_2>this.cacheMaxAge);if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("cacheNeedsRefresh returns "+_3,"cacheAllData")}
 return _3}
 ,isc.A.setCacheData=function isc_DataSource_setCacheData(_1,_2){if(this.cacheAllData||this.clientOnly){if(_2){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("setCacheData: invalidating the cache","cacheAllData")}
@@ -312,10 +312,10 @@
 if(this.logIsInfoEnabled("relativeDates")){this.logInfo("Returning from convertRelativeDates - result is:\n\n"+isc.echoFull(_6)+"\n\n"+"original criteria is: \n\n"+isc.echoFull(_1),"relativeDates")}
 return _6}
 ,isc.A.mapRelativeDate=function isc_DataSource_mapRelativeDate(_1,_2){var _3=isc.addProperties({},_1),_4,_5;_2=_2||new Date();var _6=_3.fieldName,_7=_6?this.getField(_6):null,_8=_7?_7.type:null;if(_3.value&&isc.isAn.Object(_3.value)&&_3.value._constructor=="RelativeDate")
-{_5=_3.value.value;_3.value=isc.RelativeDateItem.getAbsoluteDate(_5,_2,_8,_3.value.rangePosition)}else{if(_3.start&&isc.isAn.Object(_3.start)&&_3.start._constructor=="RelativeDate")
-{_5=_3.start.value;if(_5=="$today")_5="$startOfToday";_3.start=_4=isc.RelativeDateItem.getAbsoluteDate(_5,_2,_8,"start")}
+{_5=_3.value.value;_3.value=isc.DateUtil.getAbsoluteDate(_5,_2,_3.value.rangePosition)}else{if(_3.start&&isc.isAn.Object(_3.start)&&_3.start._constructor=="RelativeDate")
+{_5=_3.start.value;_3.start=_4=isc.DateUtil.getAbsoluteDate(_5,_2,"start")}
 if(_3.end&&isc.isAn.Object(_3.end)&&_3.end._constructor=="RelativeDate")
-{_5=_3.end.value;if(_5=="$today")_5="$endOfToday";_3.end=isc.RelativeDateItem.getAbsoluteDate(_5,_2,_8,"end")}}
+{_5=_3.end.value;_3.end=isc.DateUtil.getAbsoluteDate(_5,_2,"end")}}
 return _3}
 );isc.B._maxIndex=isc.C+10;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$41v="Action";isc.A.resultBatchSize=150;isc.A.$2j=[];isc.A.canExport=true;isc.A.defaultTitleFieldNames=["title","label","name","id"];isc.A.textContentProperty="xmlTextContent";isc.A.$dq="Defaults";isc.A.$dr="Properties";isc.A.$375="name";isc.A.$45t="type";isc.A.dropUnknownCriteria=true;isc.A.$45y="startsWith";isc.A.$19q="substring";isc.A.$50i="exact";isc.A.$50j="iscServer";isc.B.push(isc.A.init=function isc_DataSource_init(){if(this.serverType=="sql")this.dataFormat="iscServer";if(this.dataFormat=="iscServer"&&(this.serviceNamespace!=null||this.recordXPath!=null))this.dataFormat="xml";this.canQueueRequests=(this.dataFormat=="iscServer"||this.clientOnly);if(this.testData&&!this.cacheData)this.cacheData=this.testData;else if(this.clientOnly&&this.cacheData&&!this.testData)
 this.testData=this.cacheData;if(this.ID==null&&this.id!=null)this.ID=this.id;if(this.name==null)this.name=this.ID;var _1=isc.DS.get(this.ID);if(_1&&_1.builtinSchema)return _1;var _2=window[this.ID];if(this.addGlobalId&&this.addGlobalId!=isc.$ae&&(!_2||(!isc.isA.ClassObject(_2)&&isc.isA.DataSource(_2))))
@@ -365,7 +365,7 @@
 var _7=this.getDataProtocol(_1),_8=_7=="clientCustom";if(_8){return{dataProtocol:"clientCustom"}}else{delete this.$624[_1.requestId]}
 if(isc.isA.WebService(_3)){if(_1.wsOperation==null&&isc.isAn.Object(_4)){_1.wsOperation=_4.name}
 this.logInfo("web service: "+_3+", wsOperation: "+this.echoLeaf(_4),"xmlBinding")}
-var _9=this.getDataURL(_1);_9=_1.actionURL||_1.dataURL||_9;if(_1.useHttpProxy==null){_1.useHttpProxy=this.$du(_2.useHttpProxy,this.useHttpProxy)}
+_1.$85o=isc.timestamp();var _9=this.getDataURL(_1);_9=_1.actionURL||_1.dataURL||_9;if(_1.useHttpProxy==null){_1.useHttpProxy=this.$du(_2.useHttpProxy,this.useHttpProxy)}
 var _10,_11=_2.defaultParams||this.defaultParams,_12=_1.params;if(_11||_12){_10=isc.addProperties({},_11,_12)}
 var _13=_7=="getParams"||_7=="postParams";if(_13){_10=isc.addProperties(_10||{},_1.data)}
 if(_13){if(_10)_10=this.serializeFields(_10,_1);return{actionURL:_9,httpMethod:_1.httpMethod||(_7=="getParams"?"GET":"POST"),params:_10}}
@@ -582,7 +582,7 @@
 if(_1.showPrompt==null){_1.showPrompt=this.showPrompt}
 if(!this.cacheAllData&&this.autoCacheAllData&&_1.downloadResult!=true&&_1.operationType=="fetch"&&_1.startRow==null&&_1.endRow==null&&(_1.data==null||isc.isAn.emptyObject(_1.data)))
 {if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("sendDSRequest: switching on cacheAllData","cacheAllData")}
-this.cacheAllData=true}
+this.cacheAllData=true;this.$85n=isc.timestamp()}
 if(this.fetchingClientOnlyData(_1))return;if(this.logIsDebugEnabled()){this.logDebug("Outbound DSRequest: "+this.echo(_1))}
 _1.$376=_1.callback;var _3=_1.operationType;if((_3=="update"||_3=="add")&&(this.sparseUpdates||this.noNullUpdates))
 {this.$79c(_1.data,_1.oldValues,_3,this)}
@@ -628,6 +628,8 @@
 ,isc.A.hasSuperDS=function isc_DataSource_hasSuperDS(){if(this.inheritsFrom)return true;return false}
 ,isc.A.superDS=function isc_DataSource_superDS(){if(this.hasSuperDS())return this.getSchema(this.inheritsFrom);return null}
 ,isc.A.getField=function isc_DataSource_getField(_1){if(isc.isAn.Object(_1))_1=_1.name;var _2=this.getFields();return _2?_2[_1]:null}
+,isc.A.getFieldByTitle=function isc_DataSource_getFieldByTitle(_1){var _2=isc.getValues(this.getFields());for(var i=0;i<_2.length;i++){var _4=_2[i],_5=_4.title||isc.DS.getAutoTitle(_2[i].name);if(_5==_1)return _4}
+return null}
 ,isc.A.getDisplayValue=function isc_DataSource_getDisplayValue(_1,_2){var _3=this.getField(_1);if(_3==null)return _2;if(isc.isAn.Object(_3.valueMap)&&!isc.isAn.Array(_3.valueMap)&&isc.propertyDefined(_3.valueMap,_2))
 {return _3.valueMap[_2]}
 return _2}
@@ -721,9 +723,11 @@
 ,isc.A.firstCacheAllDataRequest=function isc_DataSource_firstCacheAllDataRequest(_1){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: refreshing cache","cacheAllData")}
 this.$498=[_1];if(this.$839==null){var _2=this.transformRequest,_3=this.transformResponse,_4=this.$ba;if(_4){if(_4.transformRequest){_2=this[isc.$ah+"transformRequest"]}
 if(_4.transformResponse){_3=this[isc.$ah+"transformResponse"]}}
-this.transformServerRequest=_2;this.transformServerResponse=_3;this.addMethods({transformRequest:function(_1){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5)return _1;return this.transformServerRequest(_1)},transformResponse:function(_7,_1,_8){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5)return _7;return this.transformServerResponse(_7,_1,_8)}});this.$839=true}
-this.cacheResultSet=isc.ResultSet.create({dataSource:this,fetchMode:"local",allRows:this.cacheData?this.cacheData:null,cachingAllData:true,dataArrived:function(_7,_8){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("cacheAllData - cacheResultSet.dataArrived: startRow/endRow: "+_7+"/"+_8)}
-if(this.lengthIsKnown()){var _6=this.getDataSource();if(_6.cacheResultSet==null)return;_6.cacheLastFetchTime=new Date().getTime();if(_6.clientOnly)_6.testData=_6.cacheData=this.getAllRows();_6.processDeferredRequests()}}});if(!this.cacheData){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: issuing fetch","cacheAllData")}
+this.transformServerRequest=_2;this.transformServerResponse=_3;this.addMethods({transformRequest:function(_1){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5)return _1;return this.transformServerRequest(_1)},transformResponse:function(_9,_1,_10){var _5=(_1.cachingAllData||(_1.operationType&&_1.operationType!="fetch"));if(!_5){var _6=this.$85n,_7=_1.$85o;if(!_6||!_7||_7>=_6)
+return _9}
+return this.transformServerResponse(_9,_1,_10)}});this.$839=true}
+this.cacheResultSet=isc.ResultSet.create({dataSource:this,fetchMode:"local",allRows:this.cacheData?this.cacheData:null,cachingAllData:true,dataArrived:function(_9,_10){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("cacheAllData - cacheResultSet.dataArrived: startRow/endRow: "+_9+"/"+_10)}
+if(this.lengthIsKnown()){var _8=this.getDataSource();if(_8.cacheResultSet==null)return;_8.cacheLastFetchTime=new Date().getTime();if(_8.clientOnly)_8.testData=_8.cacheData=this.getAllRows();_8.processDeferredRequests()}}});if(!this.cacheData){if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: issuing fetch","cacheAllData")}
 this.cacheResultSet.get(0);return true}else{if(this.logIsInfoEnabled("cacheAllData")){this.logInfo("firstCacheAllDataRequest: updating last fetch time","cacheAllData")}
 this.cacheLastFetchTime=new Date().getTime();if(this.clientOnly)this.testData=this.cacheData;this.processDeferredRequests()}}
 ,isc.A.fetchingClientOnlyData=function isc_DataSource_fetchingClientOnlyData(_1){if(_1.cachingAllData){return false}
@@ -765,13 +769,13 @@
 ,isc.A.findByKeys=function isc_DataSource_findByKeys(_1,_2,_3,_4){return _2.findByKeys(_1,this,_3,_4)}
 ,isc.A.applyFilter=function isc_DataSource_applyFilter(_1,_2,_3){var _4=[];if(!_1||_1.length==0)return _4;if(this.isAdvancedCriteria(_2)){return this.recordsMatchingAdvancedFilter(_1,_2,_3)}
 return this.recordsMatchingFilter(_1,_2,_3)}
-,isc.A.recordsMatchingFilter=function isc_DataSource_recordsMatchingFilter(_1,_2,_3){var _4=isc.getKeys(_2),_5=_4.length,_6=[],_7,_8,_9,_10,_11,j;if(_3&&_3.operation&&this.operationBindings){var _13=_3.operation;if(_13.ID==_13.dataSource+"_"+_13.type){var _14=this.operationBindings.find({operationId:null,operationType:_13.type})}else{var _14=this.operationBindings.find({operationId:_3.operation.ID,operationType:_13.type})}
+);isc.evalBoundary;isc.B.push(isc.A.recordsMatchingFilter=function isc_DataSource_recordsMatchingFilter(_1,_2,_3){var _4=isc.getKeys(_2),_5=_4.length,_6=[],_7,_8,_9,_10,_11,j;if(_3&&_3.operation&&this.operationBindings){var _13=_3.operation;if(_13.ID==_13.dataSource+"_"+_13.type){var _14=this.operationBindings.find({operationId:null,operationType:_13.type})}else{var _14=this.operationBindings.find({operationId:_3.operation.ID,operationType:_13.type})}
 if(_14){var _15=_14.customCriteriaFields;if(isc.isA.String(_15)){_15=_15.split(",");for(var k=0;k<_15.length;k++){_15[k]=_15[k].replace(/^\s+|\s+$/g,'')}}}}
 for(var i=0,l=_1.length;i<l;i++){_7=_1[i];if(_7==null)continue;_8=true;for(j=0;j<_5;j++){_9=_4[j];if(_9==null)continue;if(this.dropUnknownCriteria&&!this.getField(_9))continue;var _19=false;if(isc.isA.List(_15)&&_15.contains(_9)){_19=true}
 if(!_19&&this.getField(_9).customSQL)continue;_10=_7[_9];_11=_2[_9];if(!this.fieldMatchesFilter(_10,_11,_3)){_8=false;break}}
 if(_8)_6.add(_7)}
 return _6}
-);isc.evalBoundary;isc.B.push(isc.A.recordMatchesFilter=function isc_DataSource_recordMatchesFilter(_1,_2,_3){if(this.isAdvancedCriteria(_2)){return this.recordsMatchingAdvancedFilter([_1],_2,_3).length>0}
+,isc.A.recordMatchesFilter=function isc_DataSource_recordMatchesFilter(_1,_2,_3){if(this.isAdvancedCriteria(_2)){return this.recordsMatchingAdvancedFilter([_1],_2,_3).length>0}
 return this.recordsMatchingFilter([_1],_2,_3).length>0}
 ,isc.A.fieldMatchesFilter=function isc_DataSource_fieldMatchesFilter(_1,_2,_3){if(isc.isAn.Array(_2)){if(_2.contains(_1))return true;return false}
 if(isc.isA.Date(_1)&&isc.isA.Date(_2)){return(Date.compareDates(_1,_2)==0)}
@@ -807,7 +811,7 @@
 if(_6>0){_4.removeList(_5);for(var i=0;i<_4.length;i++){if(this.getField(_4[i])==null)return-1}
 return 1}
 return _7}
-);isc.B._maxIndex=isc.C+159;isc.A=isc.DataSource;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$628=0;isc.A.$71l={sum:function(_1,_2,_3){var _4=0;for(var i=0;i<_2.length;i++){var _6=_1[_2[i].name],_7=parseFloat(_6);if(isc.isA.Number(_7)&&_7==_6){_4+=_7}else{if(_6!=null&&_6!=isc.emptyString){return null}}}
+);isc.B._maxIndex=isc.C+160;isc.A=isc.DataSource;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$628=0;isc.A.$71l={sum:function(_1,_2,_3){var _4=0;for(var i=0;i<_2.length;i++){var _6=_1[_2[i].name],_7=parseFloat(_6);if(isc.isA.Number(_7)&&_7==_6){_4+=_7}else{if(_6!=null&&_6!=isc.emptyString){return null}}}
 return _4},avg:function(_1,_2,_3){var _4=0,_5=0;for(var i=0;i<_2.length;i++){var _7=_1[_2[i].name],_8=parseFloat(_7);if(isc.isA.Number(_8)&&(_8==_7)){_5+=1;_4+=_8}else{if(_7!=null&&_7!=isc.emptyString){return null}}}
 return _5>0?_4/ _5:null},max:function(_1,_2,_3){var _4,_5;for(var i=0;i<_2.length;i++){var _7=_1[_2[i].name];if(isc.isA.Date(_7)){if(_5)return null;if(_4==null)_4=_7.duplicate();else if(_4.getTime()<_7.getTime())_4=_7.duplicate()}else{_5=true;var _8=parseFloat(_7);if(isc.isA.Number(_8)&&(_8==_7)){if(_4==null)_4=_8;else if(_4<_7)_4=_8}else{if(_7!=null&&_7!=isc.emptyString){return null}}}}
 return _4},min:function(_1,_2,_3){var _4,_5
@@ -816,6 +820,7 @@
 return _4}};isc.B.push(isc.A.addSearchOperator=function isc_c_DataSource_addSearchOperator(_1){if(!_1||!_1.ID){isc.logWarn("Attempted to add null search operator, or operator with no ID");return}
 if(!isc.DataSource.$57z)isc.DataSource.$57z={};var _2=isc.DataSource.$57z,_3;if(_2[_1.ID]!==_3){isc.logWarn("Attempted to add existing operator "+_1.ID+" - replacing")}
 isc.DataSource.$57z[_1.ID]=_1}
+,isc.A.getSearchOperators=function isc_c_DataSource_getSearchOperators(){return isc.DataSource.$57z}
 ,isc.A.setTypeOperators=function isc_c_DataSource_setTypeOperators(_1,_2){if(!_2)return;if(!isc.isAn.Array(_2))_2=[_2];if(!isc.DataSource.$570)isc.DataSource.$570={};isc.DataSource.$570[_1||"_all_"]=_2}
 ,isc.A.$625=function isc_c_DataSource__getNextRequestId(){return this.$628++}
 ,isc.A.getAutoTitle=function isc_c_DataSource_getAutoTitle(_1,_2){_2=_2||/[_\$]/g;if(!_1)return"";if(!isc.isA.String(_1))_1=_1.toString();var _3;_4=_1.replace(_2," ");var _4=_4.replace(/^\s+|\s+$/g,"");if(_4==_4.toUpperCase()||_4==_4.toLowerCase()){_4=_4.toLowerCase();var _5=true;_3="";for(var i=0;i<_4.length;i++){var _7=_4.substr(i,1);if(_5){_7=_7.toUpperCase();_5=false}
@@ -857,7 +862,7 @@
 ,isc.A.registerRecordSummaryFunction=function isc_c_DataSource_registerRecordSummaryFunction(_1,_2){if(isc.isA.String(_2)){_2=isc.Func.expressionToFunction("record,fields,summaryField",_2)}
 this.$71l[_1]=_2}
 ,isc.A.exportClientData=function isc_c_DataSource_exportClientData(_1,_2){var _3=_2||{},_4=_3&&_3.exportAs?_3.exportAs:"csv",_5=_3&&_3.exportFilename?_3.exportFilename:"export",_6=_3&&_3.exportDisplay?_3.exportDisplay:"download";var _7={showPrompt:false,transport:"hiddenFrame",exportResults:true,downloadResult:true,downloadToNewWindow:(_6=="window"),download_filename:(_6=="window"?_5:null)};var _8={exportAs:_3.exportAs,exportDelimiter:_3.exportDelimiter,exportFields:_3.exportFields,exportHeader:_3.exportHeader,exportFooter:_3.exportFooter,exportTitleSeparatorChar:_3.exportTitleSeparatorChar,lineBreakStyle:_3.lineBreakStyle};isc.DMI.callBuiltin({methodName:"downloadClientExport",arguments:[_1,_4,_5,_6,_8],requestParams:_7})}
-);isc.B._maxIndex=isc.C+13;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.supportsAdvancedCriteria=function isc_DataSource_supportsAdvancedCriteria(){if(this.clientOnly||this.cacheData)return true;if(this.willHandleAdvancedCriteria!=null)return this.willHandleAdvancedCriteria;return false}
+);isc.B._maxIndex=isc.C+14;isc.A=isc.DataSource.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.B.push(isc.A.supportsAdvancedCriteria=function isc_DataSource_supportsAdvancedCriteria(){if(this.clientOnly||this.cacheData)return true;if(this.willHandleAdvancedCriteria!=null)return this.willHandleAdvancedCriteria;return false}
 ,isc.A.isAdvancedCriteria=function isc_DataSource_isAdvancedCriteria(_1){return isc.DS.isAdvancedCriteria(_1,this)}
 ,isc.A.addSearchOperator=function isc_DataSource_addSearchOperator(_1,_2){if(!_1||!_1.ID){isc.logWarn("Attempted to add null search operator, or operator with no ID");return}
 isc.DataSource.addSearchOperator(_1);if(!this.$570)this.$570={$58d:true};if(_2){for(var _3=0;_3<this.$570.length;_3++){this.$570[_3].remove(_1.ID)}
@@ -946,15 +951,15 @@
 if(_60.value.equals(_61.value)){return 0}
 if(!_62.negate&&_61.value.containsAll(_60.value)){return 1}
 if(_62.negate&&_60.value.containsAll(_61.value)){return 1}}
-return-1};var _58=function(_60,_61,_62){if(_60.value==_61.value&&_60.fieldName==_61.fieldName){return 0}else{return-1}};var _59=[{ID:"equals",titleProperty:"equalsTitle",negate:false,valueType:"fieldType",condition:_5,compareCriteria:_41,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"notEqual",titleProperty:"notEqualTitle",negate:true,valueType:"fieldType",condition:_5,compareCriteria:_41,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"greaterThan",titleProperty:"greaterThanTitle",lowerBounds:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"lessThan",titleProperty:"lessThanTitle",upperBounds:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"greaterOrEqual",titleProperty:"greaterOrEqualTitle",lowerBounds:true,inclusive:true,valueType:"fieldType",condition:_8,compareCriteria:_42,getCriterion:function(_60,_61){var _19={fieldName:_60,operator:this.ID};if(isc.isA.RelativeDateItem(_61))
-_19.value=_61.getRelativeDate()||_61.getValue();else _19.value=_61.getValue();return _19}},{ID:"lessOrEqual"