Upgraded to 8.1 9-9-2011
authorMartin Taal <martin.taal@openbravo.com>
Fri, 09 Sep 2011 18:00:31 +0200
changeset 15 aca6f07c693c
parent 14 acb15813d12f
child 16 c52e294dca20
Upgraded to 8.1 9-9-2011
ISC_Combined.js
build.xml
docs/changelog.html
docs/readme.html
docs/resources/explorer.html
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/Workflow.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/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/modules/ISC_Workflow.js
sources/reference/exampleTree.xml
sources/scheduler/QuartzJobDetail.js
sources/scheduler/QuartzManager.js
sources/schema/DataSource.ds.xml
sources/schema/DataSourceField.ds.xml
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
web/org.openbravo.userinterface.smartclient/isomorphic/login/loginRequiredMarker.html
web/org.openbravo.userinterface.smartclient/isomorphic/skins/Enterprise/images/ListGrid/headerSprite.png
web/org.openbravo.userinterface.smartclient/isomorphic/skins/Enterprise/load_skin.js
web/org.openbravo.userinterface.smartclient/isomorphic/skins/Enterprise/load_skin.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/skins/Enterprise/skin_styles.css
web/org.openbravo.userinterface.smartclient/isomorphic/skins/Enterprise/skin_styles.css.gz
web/org.openbravo.userinterface.smartclient/isomorphic/skins/SmartClient/load_skin.js
web/org.openbravo.userinterface.smartclient/isomorphic/skins/SmartClient/load_skin.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/skins/SmartClient/skin_styles.css
web/org.openbravo.userinterface.smartclient/isomorphic/skins/SmartClient/skin_styles.css.gz
web/org.openbravo.userinterface.smartclient/isomorphic/skins/SmartClient/unsupported_browser.html
web/org.openbravo.userinterface.smartclient/isomorphic/skins/standard/load_skin.js
web/org.openbravo.userinterface.smartclient/isomorphic/skins/standard/load_skin.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/skins/standard/skin_styles.css.gz
web/org.openbravo.userinterface.smartclient/isomorphic/skins/standard/unsupported_browser.html
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Calendar.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Calendar.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_ClassBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_ClassBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Containers.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Containers.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Core.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Core.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DBConsole.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DBConsole.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DSBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DSBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DataBinding.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DataBinding.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DeveloperConsole.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DeveloperConsole.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DocViewer.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_DocViewer.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_EBay.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_EBay.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_ExampleViewer.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_ExampleViewer.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_FileBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_FileBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_FileLoader.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_FileLoader.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Forms.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Forms.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Foundation.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Foundation.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Grids.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Grids.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_History.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_History.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Kapow.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Kapow.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_PluginBridges.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_PluginBridges.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_RichTextEditor.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_RichTextEditor.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_SQLBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_SQLBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_SalesForce.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_SalesForce.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Scheduler.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Scheduler.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_SyntaxHiliter.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_SyntaxHiliter.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Tools.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Tools.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Workflow.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/development/ISC_Workflow.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/helpers/Log.html
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Calendar.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Calendar.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_ClassBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_ClassBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Containers.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Containers.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Core.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Core.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_DSBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_DSBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_DataBinding.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_DataBinding.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_EBay.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_EBay.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Forms.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Forms.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Foundation.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Foundation.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Grids.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Grids.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_History.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_History.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Kapow.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Kapow.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_PluginBridges.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_PluginBridges.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_RichTextEditor.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_RichTextEditor.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_SQLBrowser.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_SQLBrowser.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_SalesForce.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_SalesForce.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Scheduler.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Scheduler.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Workflow.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/modules/ISC_Workflow.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/SmartClient_Explorer.html
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/SmartClient_Reference.html
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/docTree.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/docTree.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/exampleTree.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/exampleTree.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/exampleTree.xml
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/inlineExamples/databind/validation/customTypes.ds.xml
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/inlineExamples/databind/validation/customTypes.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/inlineExamples/extending/dateFormat_local.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/inlineExamples/grids/filtering/expressionFilter.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/inlineExamples/grids/summaries/gridHeaderSummary.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/inlineExamples/grids/summaries/multiLineSummaries.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/referenceDocs.js
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/referenceDocs.js.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/referenceDocs.xml
web/org.openbravo.userinterface.smartclient/isomorphic/system/reference/referenceDocs.xml.gz
web/org.openbravo.userinterface.smartclient/isomorphic/system/schema/DataSource.ds.xml
web/org.openbravo.userinterface.smartclient/isomorphic/system/schema/DataSourceField.ds.xml
web/org.openbravo.userinterface.smartclient/isomorphic/system/schema/SectionStackSection.ds.xml
--- a/ISC_Combined.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/ISC_Combined.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * 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-07-19/LGPL Deployment";isc.versionNumber="SC_SNAPSHOT-2011-07-19";isc.buildDate="2011-07-19";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-09-09/LGPL Deployment";isc.versionNumber="SC_SNAPSHOT-2011-09-09";isc.buildDate="2011-09-09";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"])}
@@ -22,7 +22,7 @@
 isc.Browser.isFirefox=(isc.Browser.isMoz&&navigator.userAgent.indexOf("Firefox/")!=-1);if(isc.Browser.isFirefox){isc.Browser.firefoxVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox/")+8)}
 if(isc.Browser.isMoz){isc.Browser.$g=navigator.userAgent.indexOf("Gecko/")+6;isc.Browser.geckoVersion=parseInt(navigator.userAgent.substring(isc.Browser.$g,isc.Browser.$g+8));if(isc.Browser.isFirefox){if(isc.Browser.firefoxVersion.match(/^1\.0/))isc.Browser.geckoVersion=20050915;else if(isc.Browser.firefoxVersion.match(/^2\.0/))isc.Browser.geckoVersion=20071108}}
 isc.Browser.isStrict=document.compatMode=="CSS1Compat";if(isc.Browser.isStrict&&isc.Browser.isMoz){isc.Browser.$51p=document.doctype.publicId;isc.Browser.$51q=document.doctype.systemId;isc.Browser.isTransitional=isc.Browser.$51p.indexOf("Transitional")!=-1||isc.Browser.$51p.indexOf("Frameset")!=-1}
-isc.Browser.isIE8=isc.Browser.isIE&&isc.Browser.version>=8&&document.documentMode==8
+isc.Browser.isIE7=isc.Browser.isIE&&isc.Browser.version==7;isc.Browser.isIE8=isc.Browser.isIE&&isc.Browser.version>=8&&document.documentMode==8
 isc.Browser.isIE8Strict=isc.Browser.isIE&&isc.Browser.isStrict&&document.documentMode>=8;isc.Browser.isIE9=isc.Browser.isIE&&isc.Browser.version>=9&&document.documentMode>=9;isc.Browser.isAIR=(navigator.userAgent.indexOf("AdobeAIR")!=-1);isc.Browser.AIRVersion=(isc.Browser.isAIR?navigator.userAgent.substring(navigator.userAgent.indexOf("AdobeAir/")+9):null);isc.Browser.isWebKit=navigator.userAgent.indexOf("WebKit")!=-1;isc.Browser.isSafari=isc.Browser.isAIR||navigator.userAgent.indexOf("Safari")!=-1||navigator.userAgent.indexOf("AppleWebKit")!=-1;isc.Browser.isChrome=isc.Browser.isSafari&&(navigator.userAgent.indexOf("Chrome/")!=-1);if(isc.Browser.isSafari){if(isc.Browser.isAIR){isc.Browser.safariVersion=530}else{if(navigator.userAgent.indexOf("Safari/")!=-1){isc.Browser.rawSafariVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Safari/")+7)}else if(navigator.userAgent.indexOf("AppleWebKit/")!=-1){isc.Browser.rawSafariVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("AppleWebKit/")+12)}else{isc.Browser.rawSafariVersion="530"}
 isc.Browser.safariVersion=(function(){var _1=isc.Browser.rawSafariVersion,_2=_1.indexOf(".");if(_2==-1)return parseInt(_1);var _3=_1.substring(0,_2+1),_4;while(_2!=-1){_2+=1;_4=_1.indexOf(".",_2);_3+=_1.substring(_2,(_4==-1?_1.length:_4));_2=_4}
 return parseFloat(_3)})()}}
@@ -194,9 +194,11 @@
 if(!_4.$cd)_4.$cd=[];else _4.$cd=_4.$cd.duplicate();while(_3){this.$ce(_3,_4,true);this.$ce(_3,_4);_4.$cd[_4.$cd.length]=_2;_3=_3.getSuperClass();if(_3&&!_3.$a5)break}}
 ,isc.A.$ce=function isc_ClassFactory__mixInProperties(_1,_2,_3){var _4;if(_3){_4=isc.$a3[_1.Class]}else{_4=isc.$a2[_1.Class];_1=_1.getPrototype();_2=_2.getPrototype()}
 if(_4==null)return;for(var i=0;i<_4.length;i++){var _6=_4[i];if(_2[_6]!=null)continue;var _7=_1[_6];if(isc.isA.String(_7)&&_7==this.TARGET_IMPLEMENTS){var _8=(_3?"Class":"Instance")+" method "+_6+" of Interface "+_1.Class+" must be implemented by "+"class "+_2.Class;_2[_6]=new Function('this.logError("'+_8+'")')}else{_2[_6]=_7}}}
-,isc.A.makePassthroughMethods=function isc_ClassFactory_makePassthroughMethods(_1,_2){if(!_2)_2="parentElement";var _3=this.$cf;if(_3==null){_3=this.$cf=["return this.",,".",,"("+this.$b1+")"]}
-var _4={};for(var i=0;i<_1.length;i++){var _6=_1[i];_3[1]=_2;_3[3]=_6;_4[_6]=new Function(this.$b1,_3.join(isc.emptyString))}
-return _4}
+,isc.A.makePassthroughMethods=function isc_ClassFactory_makePassthroughMethods(_1,_2,_3,_4){if(!_2)_2="parentElement";var _5;if(!_3){_5=this.$cf;if(_5==null){_5=this.$cf=["return this.",,".",,"("+this.$b1+")"]}}else{_5=this.$89q;if(_5==null){_5=this.$89q=["if(this.",,"==null){\n",,"return}\nreturn this.",,".",,"("+this.$b1+")"]}}
+var _6={};for(var i=0;i<_1.length;i++){var _8=_1[i];if(_3){_5[1]=_2;if(_4!=null){var _9={methodName:_8,propName:_2};var _10=_4.evalDynamicString(this,_9);_5[3]="isc.logWarn(\""+_10+"\");"}
+_5[5]=_2;_5[7]=_8}else{_5[1]=_2;_5[3]=_8}
+_6[_8]=new Function(this.$b1,_5.join(isc.emptyString))}
+return _6}
 ,isc.A.writePassthroughFunctions=function isc_ClassFactory_writePassthroughFunctions(_1,_2,_3){var _4=this.makePassthroughMethods(_3,_2);_1.addMethods(_4)}
 );isc.B._maxIndex=isc.C+23;isc.A=isc.ClassFactory;isc.A.TARGET_IMPLEMENTS="TARGET_IMPLEMENTS";isc.A.$cb=0;isc.A.classList=[];isc.defineClass=function(_1,_2,_3,_4){return isc.ClassFactory.defineClass(_1,_2,_3,_4)}
 isc.overwriteClass=function(_1,_2,_3,_4){return isc.ClassFactory.overwriteClass(_1,_2,_3,_4)}
@@ -678,7 +680,9 @@
 return _6}
 ,isc.A.getWeekendDays=function isc_Date_getWeekendDays(){var _1=Date.weekendDays;if(_1==null)_1=Date.$54i;if(_1==null){_1=Date.$54i=[0,6]}
 return _1}
-,isc.A.getFormattedDateRangeString=function isc_Date_getFormattedDateRangeString(_1,_2){var _3=_1?_1.getMonth():null,_4=_1?_1.getShortMonthName():null,_5=_1?_1.getFullYear():null,_6=_1?_1.getDate():null,_7=_2?_2.getMonth():null,_8=_2?_2.getShortMonthName():null,_9=_2?_2.getFullYear():null,_10=_2?_2.getDate():null,_11="";if(_1&&_2){if(_5==_9){if(_3==_7){if(_6==_10){_11=_4+" "+_1.getDate()+", "+_5}else{_11=_4+" "+_1.getDate()+" - "+_2.getDate()+", "+_5}}else{_11=_4+" "+_1.getDate()+" - "+_8+" "+_2.getDate()+", "+_5}}else{_11=_4+" "+_1.getDate()+", "+_5+" - "+_8+" "+_2.getDate()+", "+_9}}else if(_1){_11=_4+" "+_1.getDate()+", "+_5}else if(_2){_11=_8+" "+_2.getDate()+", "+_9}
+,isc.A.getFormattedDateRangeString=function isc_Date_getFormattedDateRangeString(_1,_2){if(_1!=null&&!isc.isA.Date(_1)){_1=null}
+if(_2!=null&&!isc.isA.Date(_2)){_2=null}
+var _3=_1?_1.getMonth():null,_4=_1?_1.getShortMonthName():null,_5=_1?_1.getFullYear():null,_6=_1?_1.getDate():null,_7=_2?_2.getMonth():null,_8=_2?_2.getShortMonthName():null,_9=_2?_2.getFullYear():null,_10=_2?_2.getDate():null,_11="";if(_1&&_2){if(_5==_9){if(_3==_7){if(_6==_10){_11=_4+" "+_1.getDate()+", "+_5}else{_11=_4+" "+_1.getDate()+" - "+_2.getDate()+", "+_5}}else{_11=_4+" "+_1.getDate()+" - "+_8+" "+_2.getDate()+", "+_5}}else{_11=_4+" "+_1.getDate()+", "+_5+" - "+_8+" "+_2.getDate()+", "+_9}}else if(_1){_11=_4+" "+_1.getDate()+", "+_5}else if(_2){_11=_8+" "+_2.getDate()+", "+_9}
 return _11}
 );isc.B._maxIndex=isc.C+29;isc.A=Date.prototype;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$em=[,,,,"/",,,,,"/",,,,null];isc.A.$en="MDY";isc.A.$eo="DMY";isc.A.$ep="YMD";isc.A.$en="MDY";isc.A.$w0="0";isc.A.$68f=[null,null];isc.B.push(isc.A.duplicate=function isc_Dat_duplicate(){var _1=new Date();_1.setTime(this.getTime());_1.logicalDate=this.logicalDate;_1.logicalTime=this.logicalTime;return _1}
 ,isc.A.clearTimeFields=function isc_Dat_clearTimeFields(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this}
@@ -1575,10 +1579,10 @@
 ,isc.A.bubbleEvent=function isc_c_EventHandler_bubbleEvent(_1,_2,_3,_4){var _5=this,_6=_5.lastEvent;var _7=this.logIsDebugEnabled()&&!this.$ju[_2];var _8=this.isMouseEvent(_2);if(_8){if(_4==null){_4=this.targetIsMasked(_1,null)}
 if(_4){if(_7){this.logDebug(_2+" on "+_1+" blocked by clickmask")}
 return false}}
-var _9=this.$mi(_2),_10;while(_1){if(_1.destroyed)break;var _11=null;if(_1.mouseEventParent&&_2.startsWith("mouse")){_11=_1.mouseEventParent}else if(_1.keyEventParent&&_2.startsWith("key")){_11=_1.keyEventParent}else{_11=(_1.eventParent||_1.parentElement)}
-if(_11&&_11.eventProxy)_11=_11.eventProxy;if(_1[_9]!=null){_10=_9}else if(_1[_2]!=null&&_1[_2]!=isc.Class.NO_OP&&!isc.is.emptyString(_1[_2])){_10=_2;if(isc.isA.String(_1[_2])){_1.convertToMethod(_2)}
+var _9=this.$mi(_2);while(_1){if(_1.destroyed)break;var _10=null;var _11=null;if(_1.mouseEventParent&&_2.startsWith("mouse")){_10=_1.mouseEventParent}else if(_1.keyEventParent&&_2.startsWith("key")){_10=_1.keyEventParent}else{_10=(_1.eventParent||_1.parentElement)}
+if(_10&&_10.eventProxy)_10=_10.eventProxy;if(_1[_9]!=null){_11=_9}else if(_1[_2]!=null&&_1[_2]!=isc.Class.NO_OP&&!isc.is.emptyString(_1[_2])){_11=_2;if(isc.isA.String(_1[_2])){_1.convertToMethod(_2)}
 if(_7){this.logDebug("Bubbling event '"+_2+"', target '"+_1+"' has handler: "+this.echoLeaf(_1[_2]))}}
-if(_1[_10]!=null){var _12;_12=_1[_10](_6,_3);if(_12==false){if(_7){this.logDebug("Bubbling for event '"+_2+"' cancelled via false return value by target: "+_1)}
+if(_11!=null&&_1[_11]!=null){var _12;_12=_1[_11](_6,_3);if(_12==false){if(_7){this.logDebug("Bubbling for event '"+_2+"' cancelled via false return value by target: "+_1)}
 return false}
 if(_12==_5.STOP_BUBBLING){if(_7){this.logDebug("Bubbling for event '"+_2+"' cancelled via STOP_BUBBLING return value by target: "+_1)}
 return _5.STOP_BUBBLING}}
@@ -1586,7 +1590,7 @@
 {if(_7){this.logDebug("Bubbling for event '"+_2+"' stopped by '"+_1+"' which does not allow bubbling")}
 return true}else if(isc.isAn.Array(_1.bubbleMouseEvents)){if(_1.bubbleMouseEvents.contains(_2)){if(_7){this.logDebug("Bubbling for event '"+_2+"' stopped by '"+_1+"' which does not allow bubbling")}
 return true}}
-_1=_11}
+_1=_10}
 if(isc.Browser.isAndroid){if(_2.startsWith('touch')){_5.DOMevent.preventDefault();_5.DOMevent=null}}
 if(_7)this.logDebug("Event '"+_2+"' bubbled to top");return true}
 ,isc.A.$mi=function isc_c_EventHandler__getInternalHandlerName(_1){if(!this.$jc[_1]){this.$jc[_1]="handle"+_1.charAt(0).toUpperCase()+_1.substring(1)}
@@ -1981,7 +1985,7 @@
 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._isA_Canvas=true;isc.A.AUTO="auto";isc.A.ANYTHING="**anything**";isc.A.ABSOLUTE="absolute";isc.A.RELATIVE="relative";isc.A.INHERIT="inherit";isc.A.VISIBLE="visible";isc.A.HIDDEN="hidden";isc.A.COMPLETE="complete";isc.A.DRAWN="complete";isc.A.DRAWING_HANDLE="drawingHandle";isc.A.HANDLE_DRAWN="handleDrawn";isc.A.UNDRAWN="undrawn";isc.A.SCROLL="scroll";isc.A.CLIP_H="clip-h";isc.A.CLIP_V="clip-v";isc.A.IGNORE="ignore";isc.A.NATIVE="native";isc.A.CLIP="clip";isc.A.NESTED_DIV="nestedDiv";isc.A.CENTER="center";isc.A.LEFT="left";isc.A.RIGHT="right";isc.A.TOP="top";isc.A.BOTTOM="bottom";isc.A.UP="up";isc.A.DOWN="down";isc.A.BOTH="both";isc.A.NONE="none";isc.A.VERTICAL="vertical";isc.A.HORIZONTAL="horizontal";isc.A.MARKED="marked";isc.A.MIDDLE="middle";isc.A.ALL="all";isc.A.DEFAULT="default";isc.A.ARROW="default";isc.A.WAIT="wait";isc.A.HAND=(isc.Browser.isMoz||(isc.Browser.isSafari&&isc.Browser.isStrict)?"pointer":"hand");isc.A.MOVE="move";isc.A.HELP="help";isc.A.TEXT="text";isc.A.CROSSHAIR="crosshair";isc.A.NOT_ALLOWED="not-allowed";isc.A.COL_RESIZE=(isc.Browser.isIE&&isc.Browser.version>=6?"col-resize":"e-resize");isc.A.ROW_RESIZE=(isc.Browser.isIE&&isc.Browser.version>=6?"row-resize":"n-resize");isc.A.TILE="tile";isc.A.STRETCH="stretch";isc.A.NORMAL="normal";isc.A.REPEAT="repeat";isc.A.NO_REPEAT="no-repeat";isc.A.REPEAT_X="repeat-x";isc.A.REPEAT_Y="repeat-y";isc.A.LTR="ltr";isc.A.RTL="rtl";isc.A.BEFORE="before";isc.A.AFTER="after";isc.A.NEAREST="nearest";isc.A.$ng=200000;isc.A.$nh=199950;isc.A.$ni=800000;isc.A.TAB_INDEX_GAP=50;isc.A.TAB_INDEX_FLOOR=1000;isc.A.TAB_INDEX_CEILING=32766;isc.A.$nj=[];isc.A.textStyleAttributes=["fontFamily","fontSize","color","backgroundColor","fontWeight","fontStyle","textDecoration","textAlign"];isc.A.$816=[];isc.A.allowExternalFilters=true;isc.A.$nm=[];isc.A._redrawQueueDelay=(0);isc.A.$nn=200;isc.A._canvasList=[];isc.A._iscInternalCount=0;isc.A._stats={redraws:0,clears:0,destroys:0,draws:0};isc.A.$no={};isc.A.$np={};isc.A.$nq=[];isc.A.useMozBackMasks=false;isc.A.useNativeWheelDelta=true;isc.A.scrollWheelDelta=50;isc.A.loadingImageSrc="[SKINIMG]loadingSmall.gif";isc.A.loadingImageSize=16;isc.B.push(isc.A.$814=function isc_c_Canvas__setDoublingStrings(){this.$42a=isc.Browser.isIE&&(!this.neverUseFilters||this.allowExternalFilters)?"margin:0px;border:0px;padding:0px;background-color:transparent;filter:none;background-image:none;":"margin:0px;border:0px;padding:0px;background-image:none;background-color:transparent;";isc.Canvas.addProperties({$4o:"' style='"+isc.Canvas.$42a});for(var i=0;i<this.$816.length;i++){var _2=this.$816[i];if(_2.target==null||_2.target.destroyed)continue;_2.target[_2.methodName](this.$42a)}}
 ,isc.A.setNeverUseFilters=function isc_c_Canvas_setNeverUseFilters(_1){this.neverUseFilters=_1;this.$814()}
 ,isc.A.setAllowExternalFilters=function isc_c_Canvas_setAllowExternalFilters(_1){this.allowExternalFilters=_1;this.$814()}
-);isc.B._maxIndex=isc.C+3;isc.Canvas.$814();isc.A=isc.Canvas.getPrototype();isc.A._isA_Canvas=true;isc.A.autoDraw=true;isc.A.allowContentAndChildren=true;isc.A.htmlPosition="afterBegin";isc.A.position=null;isc.A.left=0;isc.A.top=0;isc.A.defaultWidth=100;isc.A.defaultHeight=100;isc.A.minWidth=10;isc.A.maxWidth=10000;isc.A.minHeight=10;isc.A.maxHeight=10000;isc.A.zIndex=isc.Canvas.AUTO;isc.A.autoShowParent=false;isc.A.visibility=isc.Canvas.INHERIT;isc.A.styleName="normal";isc.A.contents=isc.nbsp;isc.A.backgroundRepeat=isc.Canvas.REPEAT;isc.A.mozOutlineOffset="-1px";isc.A.appImgDir="";isc.A.skinImgDir="images/";isc.A.cursor=isc.Canvas.DEFAULT;isc.A.disabledCursor=isc.Canvas.DEFAULT;isc.A.noDropCursor=isc.Canvas.NOT_ALLOWED;isc.A.$65q=(isc.Browser.isMoz&&isc.Browser.geckoVersion<20081201);isc.A.overflow=isc.Canvas.VISIBLE;isc.A.alwaysShowVScrollbar=false;isc.A.showCustomScrollbars=!((isc.Browser.isOpera||isc.Browser.isIE&&isc.Browser.version>4)||(isc.Browser.isUnix&&isc.Browser.isMoz&&isc.Browser.geckoVersion>=20020826&&isc.Browser.geckoVersion<=20031007));isc.A.scrollbarSize=16;isc.A.scrollbarConstructor="Scrollbar";isc.A.scrollLeft=0;isc.A.scrollTop=0;isc.A.scrollDelta=20;isc.A.$nr="unset";isc.A.enabled="unset";isc.A.redrawOnDisable=false;isc.A.$jp=true;isc.A.$jo=true;isc.A.$ns=true;isc.A.$nt=true;isc.A.$jq=true;isc.A._redrawWithParent=true;isc.A.showFocusOutline=true;isc.A._useNativeTabIndex=(isc.Browser.isIE&&isc.Browser.version>=5)||(isc.Browser.isMoz&&isc.Browser.geckoVersion>=20051111);isc.A.$kn=(isc.Browser.isMoz&&isc.Browser.geckoVersion<20051111)||(isc.Browser.isSafari&&!isc.Browser.isTouch)||isc.Browser.isOpera;isc.A.contextMenuProperties={autoDraw:false,width:200,showIcons:true};isc.A.menuConstructor="Menu";isc.A.clippedCorners=["TL","TR","BL","BR"];isc.A.cornerClipColor="FFFFFF";isc.A.cornerClipImage="[SKIN]corner.gif";isc.A.cornerClipSize=10;isc.A.$nv={_generated:true,overflow:"hidden",$jp:false,$jo:false,autoDraw:false,skinImgDir:"images/corners/",draw:function(){this.Super("draw",arguments)}};isc.A.dragOutlineStyle="dragOutline";isc.A.dragStartDistance=5;isc.A.canDragScroll=true;isc.A.dragScrollDelay=100;isc.A.dragScrollThreshold="10%";isc.A.minDragScrollIncrement=1;isc.A.maxDragScrollIncrement="5%";isc.A.dragIntersectStyle=isc.EventHandler.INTERSECT_WITH_MOUSE;isc.A.dragRepositionCursor=isc.Canvas.MOVE;isc.A.dragScrollType="any";isc.A.hoverDelay=300;isc.A.showHover=true;isc.A.edgeMarginSize=5;isc.A.edgeCursorMap={"T":"n-resize","L":"w-resize","B":"s-resize","R":"e-resize","TL":"nw-resize","TR":"ne-resize","BL":"sw-resize","BR":"se-resize"};isc.A.dragAppearance=isc.EventHandler.OUTLINE;isc.A.dropTypes=isc.Canvas.ANYTHING;isc.A.mouseStillDownInitialDelay=400;isc.A.mouseStillDownDelay=100;isc.A.doubleClickDelay=250;isc.A.refreshVariable="refresh";isc.A.$ks=(isc.Browser.isMoz&&(!isc.Browser.isUnix||isc.Browser.geckoVersion>20031007));isc.A.useClipDiv=(isc.Browser.isMoz||isc.Browser.isSafari||isc.Browser.isOpera);isc.A.manageChildOverflow=true;isc.A.$nw={};isc.A.percentBox="visible";isc.A.$520="viewport";isc.A.snapHGap=20;isc.A.snapVGap=20;isc.A.snapHDirection=isc.Canvas.AFTER;isc.A.snapVDirection=isc.Canvas.AFTER;isc.A.snapAxis=isc.Canvas.BOTH;isc.A.snapOnDrop=true;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.$nx="resize";isc.A.$ny="draw";isc.A.$nz="hidden";isc.A.$n0="redraw";isc.A.$n1="undefined";isc.A.$n2="draws";isc.A.$n3="drawing";isc.A.$n4="redraws";isc.A.$n5="autoDraw";isc.A.$n6="beforeBegin";isc.A.$n7="afterBegin";isc.A.$n8="beforeEnd";isc.A.$n9="afterEnd";isc.A.$oa=">";isc.A.$ob="'";isc.A.$77b='"';isc.A.$oc="initWidget";isc.A.$55w="html";isc.A.$54t="&nbsp;";isc.A.$od="initial draw";isc.A.$oe="parentDrawn";isc.A.notifyAncestorsOnReflow=false;isc.A.$of="eventProxy";isc.A.reuseDOMIDs=false;isc.A.$og="canvas";isc.A.$oh="canvas_clipDiv";isc.A.$oi="MARGIN-LEFT:";isc.A.$oj="MARGIN-RIGHT:";isc.A.$ok="MARGIN-TOP:";isc.A.$ol="MARGIN-BOTTOM:";isc.A.$om="MARGIN:";isc.A.$on="</div>";isc.A.$oo="</div></div>";isc.A.$op=[];isc.A.isBorderBox=(isc.Browser.isMoz||isc.Browser.isBorderBox);isc.A.$oq="isc.EH.focusInCanvas(";isc.A.$or="if(event.target!=this)return;isc.EH.focusInCanvas(";isc.A.$os="if(window.isc)isc.EH.blurFocusCanvas(";isc.A.$ot=",true);";isc.A.$ou="autoChild:";isc.A.$ov=["<DIV ID='",null,"'style='position:absolute;width:1px;height:1px;overflow:hidden;left:",null,"px;top:",null,"px;'>&nbsp;</DIV>"];isc.A.$ow="scrollSizeDiv";isc.A.$ox="enforceScrollSize";isc.A.$oy="-1px";isc.A.useClientRectAPI=(isc.Browser.isMoz&&isc.Browser.geckoVersion>20071109);isc.A.useBoxObjectAPI=false;isc.A.useBoxObjectAPISelectively=true;isc.A.$65h="0px";isc.A.$oz="left";isc.A.$o0="top";isc.A.$o1="right";isc.A.$o2="bottom";isc.A.$o3="center";isc.A.$o4="childMoved";isc.A.$o5="height";isc.A.$o6="width";isc.A.$oz="left";isc.A.$o0="top";isc.A.$o7="$o8";isc.A.$o9="%";isc.A.$pa="*";isc.A.$pb={height:"_percent_height",width:"_percent_width",left:"_percent_left",top:"_percent_top"};isc.A.$pc="resized";isc.A.$pd="childResized";isc.A.momentumScrolling=true;isc.A.momentumScrollTime=1500;isc.A.momentumScrollAcceleration="smoothStart";isc.A.hoopSelectorDefaults={_constructor:"Canvas",keepInParentRect:true,redrawOnResize:false,overflow:"hidden",border:"1px solid blue",opacity:10,backgroundColor:"blue"};isc.A.hoopSelectAxis="both";isc.A.shouldSetNoDropTracker=isc.Browser.isOpera;isc.A.noDropTracker="[SKIN]/shared/no_drop.png";isc.A.adjustOverflowWhileDirty=true;isc.A.$pe={hidden:true,visible:true,scroll:true,auto:true,"clip-v":true,"clip-h":true,ignore:true};isc.A.$pf="sizing";isc.A.$pg="overflow";isc.A.$ph="px";isc.A.$27r="none";isc.A.$411="relative";isc.A.$pi="disabled";isc.A.$27r="none";isc.A.$pj="styleName";isc.A.$pk="eventpart";isc.A.$f8="count";isc.A.$pl=["edgeImage","edgeColor","customEdges","shownEdges","edgeSize","edgeTop","edgeBottom","edgeLeft","edgeRight","edgeOffset","edgeOffsetTop","edgeOffsetBottom","edgeOffsetLeft","edgeOffsetRight","canDragResize","canDragReposition"];isc.A.shadowDepth=4;isc.A.dragResizeFromShadow=true;isc.A.$pm="shadow";isc.A.isGroup=false;isc.A.groupBorderCSS="2px solid black";isc.A.groupLabelPadding=10;isc.A.showGroupLabel=true;isc.A.groupLabelStyleName="groupLabel";isc.A.groupLabelDefaults={_constructor:"Label",overflow:"visible",height:1,width:1,wrap:false,vAlign:"center",align:"center"};isc.B.push(isc.A.init=function isc_Canvas_init(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13){if(isc.$cv)arguments.$cw=this;if(!isc.Canvas.$80c){if(this.getDocumentBody(true)==null){isc.logWarn("Canvas created in a page outside the BODY tag. This is not supported. "+"Isomorphic Software requires the tag to be present and all widgets be created "+"and drawn inside it. Canvas details follow:\n"+isc.Log.echo(this))}
+);isc.B._maxIndex=isc.C+3;isc.Canvas.$814();isc.A=isc.Canvas.getPrototype();isc.A._isA_Canvas=true;isc.A.autoDraw=true;isc.A.allowContentAndChildren=true;isc.A.htmlPosition="afterBegin";isc.A.position=null;isc.A.left=0;isc.A.top=0;isc.A.defaultWidth=100;isc.A.defaultHeight=100;isc.A.minWidth=10;isc.A.maxWidth=10000;isc.A.minHeight=10;isc.A.maxHeight=10000;isc.A.zIndex=isc.Canvas.AUTO;isc.A.autoShowParent=false;isc.A.visibility=isc.Canvas.INHERIT;isc.A.styleName="normal";isc.A.contents=isc.nbsp;isc.A.backgroundRepeat=isc.Canvas.REPEAT;isc.A.mozOutlineOffset="-1px";isc.A.appImgDir="";isc.A.skinImgDir="images/";isc.A.cursor=isc.Canvas.DEFAULT;isc.A.disabledCursor=isc.Canvas.DEFAULT;isc.A.noDropCursor=isc.Canvas.NOT_ALLOWED;isc.A.$65q=(isc.Browser.isMoz&&isc.Browser.geckoVersion<20081201);isc.A.overflow=isc.Canvas.VISIBLE;isc.A.alwaysShowVScrollbar=false;isc.A.showCustomScrollbars=!((isc.Browser.isOpera||isc.Browser.isIE&&isc.Browser.version>4)||(isc.Browser.isUnix&&isc.Browser.isMoz&&isc.Browser.geckoVersion>=20020826&&isc.Browser.geckoVersion<=20031007));isc.A.scrollbarSize=16;isc.A.scrollbarConstructor="Scrollbar";isc.A.scrollLeft=0;isc.A.scrollTop=0;isc.A.scrollDelta=20;isc.A.$nr="unset";isc.A.enabled="unset";isc.A.redrawOnDisable=false;isc.A.$jp=true;isc.A.$jo=true;isc.A.$ns=true;isc.A.$nt=true;isc.A.$jq=true;isc.A._redrawWithParent=true;isc.A.showFocusOutline=true;isc.A._useNativeTabIndex=(isc.Browser.isIE&&isc.Browser.version>=5)||isc.Browser.isSafari||(isc.Browser.isMoz&&isc.Browser.geckoVersion>=20051111);isc.A.$kn=(isc.Browser.isMoz&&isc.Browser.geckoVersion<20051111)||isc.Browser.isOpera;isc.A.contextMenuProperties={autoDraw:false,width:200,showIcons:true};isc.A.menuConstructor="Menu";isc.A.clippedCorners=["TL","TR","BL","BR"];isc.A.cornerClipColor="FFFFFF";isc.A.cornerClipImage="[SKIN]corner.gif";isc.A.cornerClipSize=10;isc.A.$nv={_generated:true,overflow:"hidden",$jp:false,$jo:false,autoDraw:false,skinImgDir:"images/corners/",draw:function(){this.Super("draw",arguments)}};isc.A.dragOutlineStyle="dragOutline";isc.A.dragStartDistance=5;isc.A.canDragScroll=true;isc.A.dragScrollDelay=100;isc.A.dragScrollThreshold="10%";isc.A.minDragScrollIncrement=1;isc.A.maxDragScrollIncrement="5%";isc.A.dragIntersectStyle=isc.EventHandler.INTERSECT_WITH_MOUSE;isc.A.dragRepositionCursor=isc.Canvas.MOVE;isc.A.dragScrollType="any";isc.A.hoverDelay=300;isc.A.showHover=true;isc.A.edgeMarginSize=5;isc.A.edgeCursorMap={"T":"n-resize","L":"w-resize","B":"s-resize","R":"e-resize","TL":"nw-resize","TR":"ne-resize","BL":"sw-resize","BR":"se-resize"};isc.A.dragAppearance=isc.EventHandler.OUTLINE;isc.A.dropTypes=isc.Canvas.ANYTHING;isc.A.mouseStillDownInitialDelay=400;isc.A.mouseStillDownDelay=100;isc.A.doubleClickDelay=250;isc.A.refreshVariable="refresh";isc.A.$ks=(isc.Browser.isMoz&&(!isc.Browser.isUnix||isc.Browser.geckoVersion>20031007));isc.A.useClipDiv=(isc.Browser.isMoz||isc.Browser.isSafari||isc.Browser.isOpera);isc.A.manageChildOverflow=true;isc.A.$nw={};isc.A.percentBox="visible";isc.A.$520="viewport";isc.A.snapHGap=20;isc.A.snapVGap=20;isc.A.snapHDirection=isc.Canvas.AFTER;isc.A.snapVDirection=isc.Canvas.AFTER;isc.A.snapAxis=isc.Canvas.BOTH;isc.A.snapOnDrop=true;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.$nx="resize";isc.A.$ny="draw";isc.A.$nz="hidden";isc.A.$n0="redraw";isc.A.$n1="undefined";isc.A.$n2="draws";isc.A.$n3="drawing";isc.A.$n4="redraws";isc.A.$n5="autoDraw";isc.A.$n6="beforeBegin";isc.A.$n7="afterBegin";isc.A.$n8="beforeEnd";isc.A.$n9="afterEnd";isc.A.$oa=">";isc.A.$ob="'";isc.A.$77b='"';isc.A.$oc="initWidget";isc.A.$55w="html";isc.A.$54t="&nbsp;";isc.A.$od="initial draw";isc.A.$oe="parentDrawn";isc.A.notifyAncestorsOnReflow=false;isc.A.$of="eventProxy";isc.A.reuseDOMIDs=false;isc.A.$og="canvas";isc.A.$oh="canvas_clipDiv";isc.A.$oi="MARGIN-LEFT:";isc.A.$oj="MARGIN-RIGHT:";isc.A.$ok="MARGIN-TOP:";isc.A.$ol="MARGIN-BOTTOM:";isc.A.$om="MARGIN:";isc.A.$on="</div>";isc.A.$oo="</div></div>";isc.A.$op=[];isc.A.isBorderBox=(isc.Browser.isMoz||isc.Browser.isBorderBox);isc.A.$oq="isc.EH.focusInCanvas(";isc.A.$or="if(event.target!=this)return;isc.EH.focusInCanvas(";isc.A.$os="if(window.isc)isc.EH.blurFocusCanvas(";isc.A.$ot=",true);";isc.A.$ou="autoChild:";isc.A.$ov=["<DIV ID='",null,"'style='position:absolute;width:1px;height:1px;overflow:hidden;left:",null,"px;top:",null,"px;'>&nbsp;</DIV>"];isc.A.$ow="scrollSizeDiv";isc.A.$ox="enforceScrollSize";isc.A.$oy="-1px";isc.A.useClientRectAPI=(isc.Browser.isMoz&&isc.Browser.geckoVersion>20071109);isc.A.useBoxObjectAPI=false;isc.A.useBoxObjectAPISelectively=true;isc.A.$65h="0px";isc.A.$oz="left";isc.A.$o0="top";isc.A.$o1="right";isc.A.$o2="bottom";isc.A.$o3="center";isc.A.$o4="childMoved";isc.A.$o5="height";isc.A.$o6="width";isc.A.$oz="left";isc.A.$o0="top";isc.A.$o7="$o8";isc.A.$o9="%";isc.A.$pa="*";isc.A.$pb={height:"_percent_height",width:"_percent_width",left:"_percent_left",top:"_percent_top"};isc.A.$pc="resized";isc.A.$pd="childResized";isc.A.momentumScrolling=true;isc.A.momentumScrollTime=1500;isc.A.momentumScrollAcceleration="smoothStart";isc.A.hoopSelectorDefaults={_constructor:"Canvas",keepInParentRect:true,redrawOnResize:false,overflow:"hidden",border:"1px solid blue",opacity:10,backgroundColor:"blue"};isc.A.hoopSelectAxis="both";isc.A.shouldSetNoDropTracker=isc.Browser.isOpera;isc.A.noDropTracker="[SKIN]/shared/no_drop.png";isc.A.adjustOverflowWhileDirty=true;isc.A.$pe={hidden:true,visible:true,scroll:true,auto:true,"clip-v":true,"clip-h":true,ignore:true};isc.A.$pf="sizing";isc.A.$pg="overflow";isc.A.$ph="px";isc.A.$27r="none";isc.A.$411="relative";isc.A.$pi="disabled";isc.A.$27r="none";isc.A.$pj="styleName";isc.A.$pk="eventpart";isc.A.$f8="count";isc.A.$pl=["edgeImage","edgeColor","customEdges","shownEdges","edgeSize","edgeTop","edgeBottom","edgeLeft","edgeRight","edgeOffset","edgeOffsetTop","edgeOffsetBottom","edgeOffsetLeft","edgeOffsetRight","canDragResize","canDragReposition"];isc.A.shadowDepth=4;isc.A.dragResizeFromShadow=true;isc.A.$pm="shadow";isc.A.isGroup=false;isc.A.groupBorderCSS="2px solid black";isc.A.groupLabelPadding=10;isc.A.showGroupLabel=true;isc.A.groupLabelStyleName="groupLabel";isc.A.groupLabelDefaults={_constructor:"Label",overflow:"visible",height:1,width:1,wrap:false,vAlign:"center",align:"center"};isc.B.push(isc.A.init=function isc_Canvas_init(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13){if(isc.$cv)arguments.$cw=this;if(!isc.Canvas.$80c){if(this.getDocumentBody(true)==null){isc.logWarn("Canvas created in a page outside the BODY tag. This is not supported. "+"Isomorphic Software requires the tag to be present and all widgets be created "+"and drawn inside it. Canvas details follow:\n"+isc.Log.echo(this))}
 isc.Canvas.$80c=true}
 this.ns.ClassFactory.addGlobalID(this);this._canvasList(true);if(this.position==null){this.position=this.htmlElement!=null?isc.Canvas.RELATIVE:isc.Canvas.ABSOLUTE}
 if(this.className!=null&&this.logIsInfoEnabled(this.$pj)){this.logInfo("'className' property specified. This property has been deprecated in "+"favor of 'styleName' as of SmartClient 5.5.",this.$pj)}
@@ -2454,20 +2458,24 @@
 return this.$s6}
 ,isc.A.setMargin=function isc_Canvas_setMargin(_1){this.$s7=null;this.$s8=null;if(_1==null){delete this.margin}else{var _2=_1;if(isc.isA.String(_1))_1=parseInt(_1);if(!isc.isA.Number(_1)){this.logWarn("setMargin() passed invalid margin:"+_2+", ignoring.");return}
 this.margin=_1}
-var _3=this.getStyleHandle();if(!_3)return;if(_1==null){_3.margin=0}else{_3.margin=this.margin+isc.px}
-this.adjustOverflow("setMargin");this.innerSizeChanged("Margin thickness changed")}
+var _3=this.getStyleHandle();if(!_3)return;this.$883();this.adjustOverflow("setMargin");this.innerSizeChanged("Margin thickness changed")}
+,isc.A.$883=function isc_Canvas__applyFullMargins(){var _1=this.getClipHandle();if(!_1)return;if(!this.$sb()&&this.$sc==null){_1.style.marginTop="";_1.style.marginBottom="";_1.style.marginLeft="";_1.style.marginRight="";if(this.margin==null)_1.style.margin=0;else _1.style.margin=this.margin+isc.px;return}
+var _2=this.$sd();_1.style.marginTop=_2.top+isc.px;_1.style.marginLeft=_2.left+isc.px;_1.style.marginBottom=_2.bottom+isc.px;_1.style.marginRight=_2.right+isc.px}
 ,isc.A.getMargin=function isc_Canvas_getMargin(){return this.margin}
 ,isc.A.getTopMargin=function isc_Canvas_getTopMargin(){return this.$sd().top}
 ,isc.A.getLeftMargin=function isc_Canvas_getLeftMargin(){return this.$sd().left}
 ,isc.A.getBottomMargin=function isc_Canvas_getBottomMargin(){return this.$sd().bottom}
 ,isc.A.getRightMargin=function isc_Canvas_getRightMargin(){return this.$sd().right}
-,isc.A.$sd=function isc_Canvas__calculateMargins(){var _1=this.$sc,_2=(_1!=null),_3,_4,_5,_6;if(_2){_3=_1.top;_6=_1.bottom;_4=_1.left;_5=_1.right;if((_3==null||_3.length==0)&&(_6==null||_6.length==0)&&(_4==null||_4.length==0)&&(_5==null||_5.length==0))_2=false}
-if(!this.$sb()&&!_2)return this.$s9();var _7=this.$s8;if(_7)return _7;var _8=this.$ta();_7={left:_8.left,right:_8.right,top:_8.top,bottom:_8.bottom};if(_2){if(_3){for(var i=0;i<_3.length;i++){var _10=_3[i];_7.top+=_10.getVisibleHeight();if(_10.$55s!=null){_7.top-=_10.$55s}}}
-if(_6){for(var i=0;i<_6.length;i++){var _11=_6[i];_7.bottom+=_11.getVisibleHeight();if(_11.$55s!=null){_7.bottom-=_11.$55s}}}
-if(_4){for(var i=0;i<_4.length;i++){var _12=_4[i];_7.left+=_12.getVisibleWidth();if(_12.$55s!=null){_7.left-=_12.$55s}}}
-if(_5){for(var i=0;i<_5.length;i++){var _13=_5[i];_7.right+=_13.getVisibleWidth();if(_13.$55s!=null){_7.right-=_13.$55s}}}}
-if(this.$sb()){var _14=this.$pq();_7.left+=_14.$tb,_7.right+=_14.$tc,_7.top+=_14.$td,_7.bottom+=_14.$te}
-return(this.$s8=_7)}
+,isc.A.$88x=function isc_Canvas__removeDestroyedPeers(_1,_2){var _3=[];for(var i=0;i<_1.length;i++){if(_1[i].destroyed){_3[_3.length]={peer:_1[i],side:_2};_1[i]=null}}
+_1.removeEmpty();return _3}
+,isc.A.$sd=function isc_Canvas__calculateMargins(){var _1=this.$sc,_2=(_1!=null),_3,_4,_5,_6;if(_2){_3=_1.top;_6=_1.bottom;_4=_1.left;_5=_1.right;var _7=[];if(_3!=null)_7.addList(this.$88x(_3,"top"));if(_6!=null)_7.addList(this.$88x(_6,"bottom"));if(_4!=null)_7.addList(this.$88x(_4,"left"));if(_5!=null)_5.addList(this.$88x(_5,"right"));if(_7.length>0){for(var i=0;i<_7.length;i++){this.$wj(_7[i].peer,_7[i].side)}}
+if((_3==null||_3.length==0)&&(_6==null||_6.length==0)&&(_4==null||_4.length==0)&&(_5==null||_5.length==0))_2=false}
+if(!this.$sb()&&!_2)return this.$s9();var _9=this.$s8;if(_9)return _9;var _10=this.$ta();_9={left:_10.left,right:_10.right,top:_10.top,bottom:_10.bottom};if(_2){if(_3){for(var i=0;i<_3.length;i++){var _11=_3[i];_9.top+=_11.getVisibleHeight();if(_11.$55s!=null){_9.top-=_11.$55s}}}
+if(_6){for(var i=0;i<_6.length;i++){var _12=_6[i];_9.bottom+=_12.getVisibleHeight();if(_12.$55s!=null){_9.bottom-=_12.$55s}}}
+if(_4){for(var i=0;i<_4.length;i++){var _13=_4[i];_9.left+=_13.getVisibleWidth();if(_13.$55s!=null){_9.left-=_13.$55s}}}
+if(_5){for(var i=0;i<_5.length;i++){var _14=_5[i];_9.right+=_14.getVisibleWidth();if(_14.$55s!=null){_9.right-=_14.$55s}}}}
+if(this.$sb()){var _15=this.$pq();_9.left+=_15.$tb,_9.right+=_15.$tc,_9.top+=_15.$td,_9.bottom+=_15.$te}
+return(this.$s8=_9)}
 ,isc.A.$ta=function isc_Canvas__getSpecifiedMargins(){var _1=this.$if;this.$if=false;var _2=this.$s9();this.$if=_1;return _2}
 ,isc.A.$s9=function isc_Canvas__calculateNormalMargins(){if(this.$s7!=null)return this.$s7;var _1={},_2=isc.px;if(!this.isDrawn()){var _3=this.margin;if(isc.isA.String(_3)){if(isc.endsWith(_3,_2)||parseInt(_3)+isc.emptyString==_3)
 _3=parseInt(_3)}
@@ -2682,11 +2690,11 @@
 ,isc.A.shouldRedrawOnResize=function isc_Canvas_shouldRedrawOnResize(_1,_2){var _3=this.redrawOnResize;if(_3==null){_3=!((this.children!=null&&this.children.length>0&&!this.allowContentAndChildren)||(this.getInnerHTML==isc.Canvas.$b4.getInnerHTML&&!isc.isA.Function(this.contents)))}
 return _3}
 ,isc.A.dragResizing=function isc_Canvas_dragResizing(){var _1=isc.EH;return(_1.dragging&&_1.dragOperation==_1.DRAG_RESIZE&&_1.dragTarget==this)}
-,isc.A.$5y=function(deltaX,deltaY,reason){if(isc.$cv)arguments.$cw=this;if(this.snapTo)this.$qw(true);if(this.parentElement)this.parentElement.childResized(this,deltaX,deltaY,reason);if(this.masterElement)this.masterElement.peerResized(this,deltaX,deltaY,reason);var peers=this.peers;if(peers){for(var i=0;i<peers.length;i++){if(isc.isA.Canvas(peers[i]))peers[i].masterResized(deltaX,deltaY,reason)}}
+);isc.evalBoundary;isc.B.push(isc.A.$5y=function(deltaX,deltaY,reason){if(isc.$cv)arguments.$cw=this;if(this.snapTo)this.$qw(true);if(this.parentElement)this.parentElement.childResized(this,deltaX,deltaY,reason);if(this.masterElement)this.masterElement.peerResized(this,deltaX,deltaY,reason);var peers=this.peers;if(peers){for(var i=0;i<peers.length;i++){if(isc.isA.Canvas(peers[i]))peers[i].masterResized(deltaX,deltaY,reason)}}
 if(this.clipCorners&&this.$uc){var clips=this.$uc;if(clips.TR)clips.TR.moveBy(deltaX,null);if(clips.BL)clips.BL.moveBy(null,deltaY);if(clips.BR)clips.BR.moveBy(deltaX,deltaY)}
 if(this.$ud!=null)delete this.$ud;if(this.$ue!=null)delete this.$ue;this.resized(deltaX,deltaY,reason);if(!this.$832&&this.isDrawn()&&this.parentElement==null&&!isc.Page.pollPageSize)
 {isc.EH.fireOnPause("checkForBodyOverflowChange",{target:isc.Canvas,methodName:"checkForPageResize"},100)}}
-);isc.evalBoundary;isc.B.push(isc.A.$ub=function isc_Canvas__handleResized(){}
+,isc.A.$ub=function isc_Canvas__handleResized(){}
 ,isc.A.resized=function isc_Canvas_resized(_1,_2){}
 ,isc.A.innerSizeChanged=function isc_Canvas_innerSizeChanged(_1){this.$81b();this.layoutChildren(_1);var _2=this.peers;if(_2){for(var i=0;i<_2.length;i++){if(!_2[i].percentSource&&_2[i].snapTo&&_2[i].percentBox==this.$520)
 {_2[i].$qw()}}}}
@@ -2889,10 +2897,10 @@
 if(_3!=null){isc.EH.$kx(null,isc.EH.lastEvent)}}}
 this.$81b();if(this.scrolled)this.scrolled()}
 ,isc.A.$81b=function isc_Canvas__childrenCoordsChanged(){if(!isc.Element.cacheOffsetCoords)return;var _1=this.children;if(_1!=null&&_1.length>0){for(var i=0;i<_1.length;i++){_1[i].$808=_1[i].$809=null;_1[i].$81b()}}}
-,isc.A.scrollToPercent=function isc_Canvas_scrollToPercent(_1,_2,_3){if(isc.isA.String(_1))_1=parseInt(_1);if(isc.isA.String(_2))_2=parseInt(_2);if(!isc.isA.Number(_1))_1=0;if(!isc.isA.Number(_2))_2=0;_1=parseInt(_1/ 100*Math.max(0,(this.getScrollWidth()-this.getViewportWidth())));_2=parseInt(_2/ 100*Math.max(0,(this.getScrollHeight()-this.getViewportHeight())));this.scrollTo(_1,_2,_3||"scrollToPercent")}
+);isc.evalBoundary;isc.B.push(isc.A.scrollToPercent=function isc_Canvas_scrollToPercent(_1,_2,_3){if(isc.isA.String(_1))_1=parseInt(_1);if(isc.isA.String(_2))_2=parseInt(_2);if(!isc.isA.Number(_1))_1=0;if(!isc.isA.Number(_2))_2=0;_1=parseInt(_1/ 100*Math.max(0,(this.getScrollWidth()-this.getViewportWidth())));_2=parseInt(_2/ 100*Math.max(0,(this.getScrollHeight()-this.getViewportHeight())));this.scrollTo(_1,_2,_3||"scrollToPercent")}
 ,isc.A.$u5=function isc_Canvas__scrollHandle(_1,_2){var _3=this.getScrollingMechanism();if(_3==isc.Canvas.NATIVE){var _4=this.getScrollHandle();if(_4){this.$u7=true;_4.scrollLeft=_1;_4.scrollTop=_2;delete this.$u7;if(_4.scrollLeft!=this.scrollLeft||_4.scrollTop!=this.scrollTop){this.scrollLeft=_4.scrollLeft;this.scrollTop=_4.scrollTop}}}else if(_3==isc.Canvas.NESTED_DIV){var _4=this.getHandle();if(_4==null){this.logWarn(this.getCallTrace(arguments)+" in NS6 with null handle");return}
 _4=_4.style;_4.left=-_1+"px";_4.top=-_2+"px"}}
-);isc.evalBoundary;isc.B.push(isc.A.$lh=function isc_Canvas__handleCSSScroll(_1,_2){isc.EH.$h1("SCR");if(isc.$cv)arguments.$cw=this;if(this.$u7)return;if(isc.Browser.isMoz&&!_1&&(_2||isc.Browser.geckoVersion<20030312)){if(!this.$u8)
+,isc.A.$lh=function isc_Canvas__handleCSSScroll(_1,_2){isc.EH.$h1("SCR");if(isc.$cv)arguments.$cw=this;if(this.$u7)return;if(isc.Browser.isMoz&&!_1&&(_2||isc.Browser.geckoVersion<20030312)){if(!this.$u8)
 this.$u8=this.delayCall("$lh",[true],10);return}
 this.$u8=null;if(!this.isDrawn())return;var _3=this.getScrollHandle(),_4=_3.scrollLeft,_5=_3.scrollTop;if(_4==this.scrollLeft&&_5==this.scrollTop)return;var _6=this.getScrollingMechanism();if(_6!=isc.Canvas.NATIVE){this.logWarn("unsupported native scroll occurred on this widget - resetting");if(_6==isc.Canvas.NESTED_DIV){_3.scrollLeft=_3.scrollTop=0}else{_3.scrollLeft=this.scrollLeft;_3.scrollTop=this.scrollTop}
 return}
@@ -3127,14 +3135,14 @@
 this.$nw=_3}
 if(this.mouseMove)return this.mouseMove(_1,_2)}
 ,isc.A.$we=function isc_Canvas__handleRectHover(_1,_2){if(this.$nw)this.$wd(this.$nw.part,"hover",_1,_2)}
-,isc.A.handleMouseOut=function isc_Canvas_handleMouseOut(_1,_2){if(_1.target==this&&this.useEventParts){var _3=this.$nw;if(_3&&_3.part){this.$wd(_3.part,isc.EH.MOUSE_OUT,_3.element,_3.ID,_1)}}
+);isc.evalBoundary;isc.B.push(isc.A.handleMouseOut=function isc_Canvas_handleMouseOut(_1,_2){if(_1.target==this&&this.useEventParts){var _3=this.$nw;if(_3&&_3.part){this.$wd(_3.part,isc.EH.MOUSE_OUT,_3.element,_3.ID,_1)}}
 if(this.mouseOut)return this.mouseOut(_1,_2)}
 ,isc.A.handleMouseDown=function isc_Canvas_handleMouseDown(_1,_2){var _3=this.$772;if(_3!=null){this.cancelAnimation(_3)}
 if(_1.target==this&&this.useEventParts)this.firePartEvent(_1,isc.EH.MOUSE_DOWN);if(this.mouseDown)return this.mouseDown(_1,_2)}
 ,isc.A.handleMouseUp=function isc_Canvas_handleMouseUp(_1,_2){if(_1.target==this&&this.useEventParts)this.firePartEvent(_1,isc.EH.MOUSE_UP);if(this.mouseUp)return this.mouseUp(_1,_2)}
 ,isc.A.handleClick=function isc_Canvas_handleClick(_1,_2){if(_1.target==this&&this.useEventParts)this.firePartEvent(_1,isc.EH.CLICK);if(this.click)return this.click(_1,_2)}
 ,isc.A.handleDoubleClick=function isc_Canvas_handleDoubleClick(_1,_2){if(_1.target==this&&this.useEventParts)this.firePartEvent(_1,isc.EH.DOUBLE_CLICK);if(this.doubleClick)return this.doubleClick(_1,_2)}
-);isc.evalBoundary;isc.B.push(isc.A.handleLongTouch=function isc_Canvas_handleLongTouch(_1,_2){return this.handleShowContextMenu(_1,_2)}
+,isc.A.handleLongTouch=function isc_Canvas_handleLongTouch(_1,_2){return this.handleShowContextMenu(_1,_2)}
 ,isc.A.getEventPart=function isc_Canvas_getEventPart(_1){if(!_1)_1=isc.EH.lastEvent;var _2=_1.nativeTarget;return this.getElementPart(_2)}
 ,isc.A.getElementPart=function isc_Canvas_getElementPart(_1){var _2,_3;if(_1&&_1.getAttribute)_2=_1.getAttribute(this.$pk);if(_2&&_2!=isc.emptyString){var _4=_1.id;if(_4&&_4!=isc.emptyString){_3=_4.substring(this.getID().length+_2.length+2)}}
 return{part:_2,ID:_3,element:_1}}
@@ -3178,9 +3186,13 @@
 ,isc.A._canvasList=function isc_Canvas__canvasList(_1){var _2=isc.Canvas._canvasList;if(_1)_2.add(this);else _2.remove(this);if(this.$ih){isc.Canvas._iscInternalCount+=(_1?1:-1)}else{isc.Log.updateStats(this.$f8)}}
 ,isc.A.$p6=function isc_Canvas__addStat(_1){if(!this.$ih){isc.Canvas._stats[_1]++;isc.Log.updateStats(_1)}}
 ,isc.A.$wh=function isc_Canvas__attachedPeers(_1){var _2=this.$sc;if(!_2)return null;if(_1)return _2[_1]}
-,isc.A.$wi=function isc_Canvas__registerAttachedPeer(_1,_2,_3){if(_1==null||_2==null)return;if(!this.$sc)this.$sc={};if(!this.$sc[_2])this.$sc[_2]=[];this.$sc[_2].add(_1);if(_3!=null)_1.$55s=_3
+,isc.A.$wi=function isc_Canvas__registerAttachedPeer(_1,_2,_3,_4){if(_1==null||_2==null)return;if(!this.$sc)this.$sc={};if(!this.$sc[_2])this.$sc[_2]=[];this.$sc[_2].add(_1);if(_3!=null)_1.$55s=_3
+if(_4){this.observe(_1,"resized","observer.$88y(observed)")}
 delete this.$s7;delete this.$s8}
-,isc.A.$wj=function isc_Canvas__unRegisterAttachedPeer(_1,_2,_3){if(_1==null||_2==null)return;if(!this.$sc||!this.$sc[_2])return;this.$sc[_2].remove(_1);delete _1.$55s;delete this.$s7;delete this.$s8}
+,isc.A.$wj=function isc_Canvas__unRegisterAttachedPeer(_1,_2,_3){if(_1==null||_2==null)return;if(!this.$sc||!this.$sc[_2])return;this.$sc[_2].remove(_1);if(this.isObserving(_1,"resized")){this.ignore(_1,"resized")}
+delete _1.$55s;delete this.$s7;delete this.$s8}
+,isc.A.$88y=function isc_Canvas__attachedPeerResized(_1){this.refreshMargin()}
+,isc.A.refreshMargin=function isc_Canvas_refreshMargin(){this.setMargin(this.margin)}
 ,isc.A.$ps=function isc_Canvas__makeCornerClips(){this.$uc={};for(var i=0;i<this.clippedCorners.length;i++){this.$wk(this.clippedCorners[i])}}
 ,isc.A.$wk=function isc_Canvas__makeCornerClip(_1){var _2=this.$uc,_3=this.left,_4=this.top,_5=this.cornerClipWidth||this.cornerClipSize,_6=this.cornerClipHeight||this.cornerClipSize;if(_1=="TR"||_1=="BR"){_3=_3+this.getWidth()-_5}
 if(_1=="BL"||_1=="BR"){_4=_4+this.getHeight()-_6}
@@ -3214,7 +3226,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+537;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+541;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)}
@@ -3496,7 +3508,7 @@
 _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)}
-else if(this.data&&this.data.getCriteria)return isc.shallowClone(this.data.getCriteria());else return null}
+else if(this.data&&this.data.getCriteria){if(isc.isA.Tree(this.data)){return isc.shallowClone(this.data.getCriteria(this.getDataSource()))}else{return isc.shallowClone(this.data.getCriteria())}}else return null}
 ,isc.A.doInitialFetch=function isc_Canvas_doInitialFetch(){var _1=false;if(this.autoFetchData&&!this.$p7&&this.fetchData){if(!this.dataSource){this.logWarn("autoFetchData is set, but no dataSource is specified, can't fetch")}else{_1=!isc.RPCManager.startQueue();this.fetchData(this.getInitialCriteria(),null,this.getInitialFetchContext());this.$p7=true}}
 return _1}
 ,isc.A.getInitialCriteria=function isc_Canvas_getInitialCriteria(){return this.initialCriteria}
@@ -3573,7 +3585,7 @@
 ,isc.A.fireSelectionUpdated=function isc_Canvas_fireSelectionUpdated(){if(this.selectionUpdated){var _1=this.getSelection(),_2=(_1&&_1.length>0?_1[0]:null);this.selectionUpdated(_2,_1)}}
 ,isc.A.getHilites=function isc_Canvas_getHilites(){return this.hilites}
 ,isc.A.setHilites=function isc_Canvas_setHilites(_1){this.hilites=_1;this.$63j(this.hilites)}
-,isc.A.getHiliteState=function isc_Canvas_getHiliteState(){var _1=this.getHilites();if(_1==null)return null;return"("+isc.JSON.encode(_1,{dateFormat:"dateConstructor"})+")"}
+,isc.A.getHiliteState=function isc_Canvas_getHiliteState(){var _1=this.getHilites();if(_1==null)return null;return"("+isc.JSON.encode(_1,{dateFormat:"dateConstructor",prettyPrint:false})+")"}
 ,isc.A.setHiliteState=function isc_Canvas_setHiliteState(_1){if(_1==null)this.setHilites(null);var _2=eval(_1);this.setHilites(_2)}
 ,isc.A.$63j=function isc_Canvas__setupHilites(_1,_2){if(_1!=null){for(var i=0;i<_1.length;i++){if(_1[i].id==null){this.$63k=this.$63k||0;_1[i].id=this.$63k++}}
 this.$58b=_1.makeIndex("id")}
@@ -3661,7 +3673,7 @@
 if(!this.$67v){isc.Log.logDebug("All updates complete, calling dragComplete()","dragDrop");if(isc.isA.Function(this.dragComplete))this.dragComplete()}}
 ,isc.A.getDropValues=function isc_Canvas_getDropValues(_1,_2,_3,_4,_5,_6){if(!this.addDropValues)return;var _7={},_8;if(this.data&&this.data.getNodeDataSource){_8=this.data.getNodeDataSource(_3)}
 if(!_8){_8=this.getDataSource()}
-if(this.data&&this.data.getCriteria)_7=this.data.getCriteria(_8);var _9;if(isc.isAn.emptyObject(_7)||!_8.isAdvancedCriteria(_7)){var _10=this.data.context;if(_10&&(_10.textMatchStyle==null||_10.textMatchStyle=="exact")){_9=isc.addProperties({},_7);if(this.dropValues){_9=isc.addProperties(_9,this.dropValues)}
+if(this.data&&this.data.getCriteria)_7=this.data.getCriteria(_8);var _9;if(isc.isAn.emptyObject(_7)||(_8&&!_8.isAdvancedCriteria(_7))){var _10=this.data.context;if(_10&&(_10.textMatchStyle==null||_10.textMatchStyle=="exact")){_9=isc.addProperties({},_7);if(this.dropValues){_9=isc.addProperties(_9,this.dropValues)}
 return _9}}
 return this.dropValues}
 ,isc.A.transferDragData=function isc_Canvas_transferDragData(_1,_2){var _3=[],_4,_5,_6;if(_2&&_2.$67k){_6=_2.$67k.shift();_4=_6.dropRecords;_5=_6.callback}else{_4=this.getDragData();_6={}}
@@ -4178,7 +4190,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-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -4189,7 +4201,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -4518,8 +4530,8 @@
 return _1}
 ,isc.A.$2q=function isc_Layout__allGeneratedChildren(){for(var i=0;i<this.children.length;i++){var _2=this.children[i];if(_2!=null&&!_2._generated)return false}
 return true}
-,isc.A.setLayoutMargin=function isc_Layout_setLayoutMargin(){var _1=this.layoutHMargin,_2=this.layoutVMargin,_3=this.layoutMargin,_4=this.reverseOrder?this.layoutEndMargin:this.layoutStartMargin,_5=this.reverseOrder?this.layoutStartMargin:this.layoutEndMargin;var _6,_7,_8,_9;if(this.paddingAsLayoutMargin){var _10=this.$tq();_6=_10.left;_7=_10.right;_8=_10.top;_9=_10.bottom}
-this.$tb=this.$du(this.layoutLeftMargin,(!this.vertical?_4:null),_1,_3,_6,0);this.$tc=this.$du(this.layoutRightMargin,(!this.vertical?_5:null),_1,_3,_7,0);this.$td=this.$du(this.layoutTopMargin,(this.vertical?_4:null),_2,_3,_8,0);this.$te=this.$du(this.layoutBottomMargin,(this.vertical?_5:null),_2,_3,_9,0);this.$2s=true;this.reflow()}
+,isc.A.setLayoutMargin=function isc_Layout_setLayoutMargin(_1){if(_1!=null)this.layoutMargin=_1;var _2=this.layoutHMargin,_3=this.layoutVMargin,_4=this.layoutMargin,_5=this.reverseOrder?this.layoutEndMargin:this.layoutStartMargin,_6=this.reverseOrder?this.layoutStartMargin:this.layoutEndMargin;var _7,_8,_9,_10;if(this.paddingAsLayoutMargin){var _11=this.$tq();_7=_11.left;_8=_11.right;_9=_11.top;_10=_11.bottom}
+this.$tb=this.$du(this.layoutLeftMargin,(!this.vertical?_5:null),_2,_4,_7,0);this.$tc=this.$du(this.layoutRightMargin,(!this.vertical?_6:null),_2,_4,_8,0);this.$td=this.$du(this.layoutTopMargin,(this.vertical?_5:null),_3,_4,_9,0);this.$te=this.$du(this.layoutBottomMargin,(this.vertical?_6:null),_3,_4,_10,0);this.$2s=true;this.reflow()}
 ,isc.A.$2t=function isc_Layout__getSideMargin(_1){if(this.$tb==null)this.setLayoutMargin();if(_1)return this.$tb+this.$tc;else return this.$td+this.$te}
 ,isc.A.$2u=function isc_Layout__getBreadthMargin(){return this.$2t(this.vertical)}
 ,isc.A.$2v=function isc_Layout__getLengthMargin(){return this.$2t(!this.vertical)}
@@ -5046,7 +5058,10 @@
 ,isc.A.addFormItem=function isc_ToolStrip_addFormItem(_1,_2,_3){if(isc.isA.Canvas(_1)){this.addMember(_1,_3);return _1}
 var _4=this.createAutoChild("formWrapper",_2);_4.setItems([_1]);this.addMember(_4,_3);return _4}
 );isc.B._maxIndex=isc.C+4;isc.defineClass("ToolStripSeparator","Img");isc.A=isc.ToolStripSeparator.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.skinImgDir="images/ToolStrip/";isc.A.vSrc="[SKIN]separator.png";isc.A.hSrc="[SKIN]hseparator.png";isc.A.layoutAlign="center";isc.B.push(isc.A.initWidget=function isc_ToolStripSeparator_initWidget(){if(isc.isA.Img(this))this.src=this.vertical?this.vSrc:this.hSrc;this.Super("initWidget",arguments)}
-);isc.B._maxIndex=isc.C+1;isc.defineClass("ToolStripButton","StretchImgButton");isc.A=isc.ToolStripButton.getPrototype();isc.A.showTitle=true;isc.A.showRollOver=true;isc.A.showDown=true;isc.A.labelVPad=0;isc.A.labelHPad=7;isc.A.autoFit=true;isc.A.src="[SKIN]/ToolStrip/button/button.png";isc.A.capSize=3;isc.A.height=22;isc.defineClass("SectionStack","VLayout");isc.addGlobal("ListBar",isc.SectionStack);isc.A=isc.SectionStack.getPrototype();isc.A.overflow="hidden";isc.A.styleName="sectionStack";isc.A.sectionHeaderClass="SectionHeader";isc.A.headerHeight=20;isc.A.printHeaderStyleName="printHeader";isc.A.canResizeSections=true;isc.A.canResizeStack=true;isc.A.canReorderSections=false;isc.A.scrollSectionIntoView=true;isc.A.useGlobalSectionIDs=false;isc.A.animateMemberEffect="wipe";isc.A.visibilityMode="mutex";isc.A.forceFill=true;isc.A.itemIndent=0;isc.A.showExpandControls=true;isc.A=isc.SectionStack.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.sectionNameIndex=0;isc.B.push(isc.A.initWidget=function isc_SectionStack_initWidget(){this.Super(this.$oc);if(this.canReorderSections)this.canAcceptDrop=true;if(this.visibilityMode=="mutex")this.animateSections=false;if(this.animateSections!=null)this.animateMembers=this.animateSections
+);isc.B._maxIndex=isc.C+1;isc.defineClass("ToolStripButton","StretchImgButton");isc.A=isc.ToolStripButton.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showTitle=true;isc.A.showRollOver=true;isc.A.showDown=true;isc.A.labelHPad=6;isc.A.labelVPad=0;isc.A.autoFit=true;isc.A.src="[SKIN]/ToolStrip/button/button.png";isc.A.capSize=3;isc.A.height=22;isc.B.push(isc.A.initWidget=function isc_ToolStripButton_initWidget(){if(!this.title)this.iconSpacing=0;this.Super("initWidget",arguments)}
+,isc.A.setTitle=function isc_ToolStripButton_setTitle(_1){if(!_1){this.iconSpacing=0;if(this.label)this.label.iconSpacing=0}
+this.Super("setTitle",arguments)}
+);isc.B._maxIndex=isc.C+2;isc.defineClass("SectionStack","VLayout");isc.addGlobal("ListBar",isc.SectionStack);isc.A=isc.SectionStack.getPrototype();isc.A.overflow="hidden";isc.A.styleName="sectionStack";isc.A.sectionHeaderClass="SectionHeader";isc.A.headerHeight=20;isc.A.printHeaderStyleName="printHeader";isc.A.canResizeSections=true;isc.A.canResizeStack=true;isc.A.canReorderSections=false;isc.A.scrollSectionIntoView=true;isc.A.useGlobalSectionIDs=false;isc.A.animateMemberEffect="wipe";isc.A.visibilityMode="mutex";isc.A.forceFill=true;isc.A.itemIndent=0;isc.A.showExpandControls=true;isc.A=isc.SectionStack.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.sectionNameIndex=0;isc.B.push(isc.A.initWidget=function isc_SectionStack_initWidget(){this.Super(this.$oc);if(this.canReorderSections)this.canAcceptDrop=true;if(this.visibilityMode=="mutex")this.animateSections=false;if(this.animateSections!=null)this.animateMembers=this.animateSections
 if(this.groups!=null&&this.sections==null)this.sections=this.groups;var _1=this.sections;this.sections=[];this.addSections(_1,null,true)}
 ,isc.A.$735=function isc_SectionStack__dragIsSectionReorder(){if(this.canReorderSections){var _1=this.ns.EH.dragTarget;return(this.sections!=null&&this.sections.contains(_1))}
 return false}
@@ -5413,7 +5428,7 @@
 );isc.B._maxIndex=isc.C+34;isc.SplitPane.registerStringMethods({paneChanged:"pane"});isc._moduleEnd=isc._Foundation_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('Foundation 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 'Foundation'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5424,7 +5439,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5443,7 +5458,7 @@
 this.buttons=this.tabs;if(this.moreTab){this.$79t=this.buttons.length;this.buttons[this.$79t]=this.moreTab}
 this.skinImgDir=this.skinImgDir+this.tabBarPosition+"/";var _3=this.tabDefaults;if(_3==null)_3=this.tabDefaults={};_3=this.buttonDefaults=isc.addProperties({},this.buttonDefaults,_3);_3.actionType=isc.StatefulCanvas.RADIO;if(this.vertical){_3.defaultHeight=this.defaultTabSize}else{_3.defaultWidth=this.defaultTabSize}
 _3.overflow=isc.Canvas.VISIBLE;_3.vertical=(this.tabBarPosition==isc.Canvas.LEFT||this.tabBarPosition==isc.Canvas.RIGHT);var _4=isc.ClassFactory.getClass(this.buttonConstructor);if(_4&&_4.isA("ImgTab")){_3.skinImgDir=_4.getInstanceProperty("skinImgDir")+this.tabBarPosition+"/"}
-_3.iconClick=this.$42k;_3.handleDoubleClick=function(){var _5=this.parentElement.parentElement;if(_5&&_5.titleEditEvent=="doubleClick"&&_5.$798(this))return;return this.Super("handleDoubleClick",arguments)}
+_3.iconMouseDown=this.$42k;_3.handleDoubleClick=function(){var _5=this.parentElement.parentElement;if(_5&&_5.titleEditEvent=="doubleClick"&&_5.$798(this))return;return this.Super("handleDoubleClick",arguments)}
 _3.handleClick=function(){var _5=this.parentElement.parentElement;if(_5&&_5.titleEditEvent=="click"&&_5.$798(this))return;return this.Super("handleClick",arguments)},_3._generated=true;var _6=this.tabBarPosition+"StyleName";if(this[_6])this.setStyleName(this[_6]);this.Super(this.$oc);if(this._baseLine==null)this.makeBaseLine()}
 ,isc.A.isShowingMoreTab=function isc_TabBar_isShowingMoreTab(){return(this.showMoreTab&&this.moreTab&&this.$79t>=0&&this.getMembers(this.$79t).isVisible&&this.getMembers(this.$79t).isVisible())}
 ,isc.A.$42k=function isc_TabBar__tabIconClickHandler(){return this.parentElement.tabIconClick(this)}
@@ -5462,7 +5477,7 @@
 if(_3.length-1<=this.moreTabCount){this.$79t=null;_3[_3.length-1].hide()}else{this.$79t=_3.length-1}}
 for(var i=0;i<_2.length;i++){if(_2[i]!=null)_2[i].destroy()}}
 ,isc.A.draw=function isc_TabBar_draw(_1,_2,_3,_4){arguments.$cw=this;this.fixLayout();this.invokeSuper(isc.TabBar,"draw",_1,_2,_3,_4);this.bringToFront();var _5=this.getButton(this.selectedTab);if(_5){_5.setSelected(true)}}
-,isc.A.makeBaseLine=function isc_TabBar_makeBaseLine(){this._baseLine=this.addAutoChild("baseLine",{ID:this.getID()+"_baseLine",vertical:(this.tabBarPosition==isc.Canvas.LEFT||this.tabBarPosition==isc.Canvas.RIGHT),skinImgDir:this.skinImgDir,src:this.baseLineSrc,capSize:this.baseLineCapSize,imageType:isc.Img.STRETCH,addAsChild:true,autoDraw:false},isc.StretchImg);this.ignoreMemberZIndex(this._baseline)}
+,isc.A.makeBaseLine=function isc_TabBar_makeBaseLine(){this._baseLine=this.addAutoChild("baseLine",{ID:this.getID()+"_baseLine",vertical:(this.tabBarPosition==isc.Canvas.LEFT||this.tabBarPosition==isc.Canvas.RIGHT),skinImgDir:this.skinImgDir,src:this.baseLineSrc,capSize:this.baseLineCapSize,imageType:isc.Img.STRETCH,overflow:"hidden",addAsChild:true,autoDraw:false},isc.StretchImg);this.ignoreMemberZIndex(this._baseline)}
 ,isc.A.scrollTo=function isc_TabBar_scrollTo(_1,_2,_3,_4,_5,_6){this.invokeSuper(isc.TabBar,"scrollTo",_1,_2,_3,_4,_5,_6);if(this._baseLine)this.fixLayout()}
 ,isc.A.fixLayout=function isc_TabBar_fixLayout(){var _1=this._baseLine;if(_1==null)return;var _2=this.parentElement,_3=0;if(this.tabBarPosition==isc.Canvas.TOP){_1.setRect(this.getScrollLeft(),this.getHeight()-this.baseLineThickness,this.parentElement.getWidth()-_3,this.baseLineThickness)}else if(this.tabBarPosition==isc.Canvas.BOTTOM){_1.setRect(this.getScrollLeft(),0,this.parentElement.getWidth()-_3,this.baseLineThickness)}else if(this.tabBarPosition==isc.Canvas.LEFT){_1.setRect(this.getWidth()-this.baseLineThickness,this.getScrollTop(),this.baseLineThickness,this.parentElement.getHeight()-_3)}else if(this.tabBarPosition==isc.Canvas.RIGHT){_1.setRect(0,this.getScrollTop(),this.baseLineThickness,this.parentElement.getHeight()-_3)}}
 ,isc.A.layoutChildren=function isc_TabBar_layoutChildren(_1,_2,_3,_4){this.invokeSuper(isc.TabBar,"layoutChildren",_1,_2,_3,_4);this.fixLayout()}
@@ -5902,7 +5917,7 @@
 if(_8&&_8.members){var _9=[];for(var i=_5;i<_8.members.length;i++){_9.add(i)}
 _8.removeMembers(_9)}
 if(_5==0){this.hideControls();return false}
-this.placeControlLayout(_2);if(!this.$8g){var _10=this._tabBar;this.$8g=this._tabBar.createAutoChild("baseLine",{vertical:(_3==isc.Canvas.LEFT||_3==isc.Canvas.RIGHT),_generated:true,skinImgDir:_10.skinImgDir,src:_10.baseLineSrc,capSize:_10.baseLineCapSize,imageType:isc.Img.STRETCH,autoDraw:false});this.addChild(this.$8g)}
+this.placeControlLayout(_2);if(!this.$8g){var _10=this._tabBar;this.$8g=this._tabBar.createAutoChild("baseLine",{vertical:(_3==isc.Canvas.LEFT||_3==isc.Canvas.RIGHT),_generated:true,skinImgDir:_10.skinImgDir,src:_10.baseLineSrc,capSize:_10.baseLineCapSize,imageType:isc.Img.STRETCH,overflow:"hidden",autoDraw:false});this.addChild(this.$8g)}
 var _10=this._tabBar,_11=(this.tabBarThickness-_10.baseLineThickness);if(_3==isc.Canvas.LEFT){this.$8g.setRect(_11,0,_10.baseLineThickness,this.getHeight())}else if(_3==isc.Canvas.RIGHT){this.$8g.setRect(this.getWidth()-this.tabBarThickness,0,_10.baseLineThickness,this.getHeight())}else if(_3==isc.Canvas.TOP){this.$8g.setRect(0,_11,this.getWidth(),_10.baseLineThickness)}else if(_3==isc.Canvas.BOTTOM){this.$8g.setRect(0,this.getHeight()-this.tabBarThickness,this.getWidth(),_10.baseLineThickness)}
 if(!_8.isVisible())_8.show();this.$8g.moveBelow(_10);if(!this.$8g.isVisible())this.$8g.show();return true}
 ,isc.A.placeControlLayout=function isc_TabSet_placeControlLayout(_1){var _2,_3,_4,_5,_6=this._tabBar,_7=_6.getBreadth()-_6.baseLineThickness,_8=this.tabBarPosition;if(_8==isc.Canvas.LEFT){_2=0;_3=this.getHeight()-_1;_4=_7;_5=_1}else if(_8==isc.Canvas.RIGHT){_2=this.getWidth()-_7;_3=this.getHeight()-_1;_4=_7;_5=_1}else if(_8==isc.Canvas.BOTTOM){_4=_1;_2=this.getWidth()-_1;_3=this.getHeight()-_7;_5=_7}else{_4=_1;_2=this.getWidth()-_1;_3=0;_5=_7}
@@ -5952,7 +5967,7 @@
 ,isc.A.clearTitleEditorForm=function isc_TabSet_clearTitleEditorForm(){if(this.titleEditorForm==null)return;this.titleEditorForm.clear();if(this.titleEditorForm.$803!=null){isc.Page.clearEvent(this.$803);delete this.$803}}
 ,isc.A.placeTitleEditor=function isc_TabSet_placeTitleEditor(_1){var _2=this.titleEditorForm;if(!_2)return;var _3=this.tabBar.getLeft()+this.tabBar.getLeftMargin()-this.tabBar.getScrollLeft()+this.tabBar.getLeftBorderSize()+_1.getLeft()+_1.capSize,_4=_1.getVisibleWidth()-_1.capSize*2;if(this.titleEditorLeftOffset){_3+=this.titleEditorLeftOffset;_4-=this.titleEditorLeftOffset}
 if(this.titleEditorRightOffset){_4-=this.titleEditorRightOffset}
-var _5=_2.getItem("title");_5.setWidth(_4);var _6=this.tabBar.getTop()+this.tabBar.getTopMargin()-this.tabBar.getScrollTop()+this.tabBar.getTopBorderSize()+_1.getTop();if(this.titleEditorTopOffset){_6+=this.titleEditorTopOffset}
+var _5=_2.getItem("title");_5.setWidth(_4);var _6=this.getTop()+this.tabBar.getTop()+this.tabBar.getTopMargin()-this.tabBar.getScrollTop()+this.tabBar.getTopBorderSize()+_1.getTop();if(this.titleEditorTopOffset){_6+=this.titleEditorTopOffset}
 _2.setTop(_6);_2.setLeft(_3);if(_2.$799){this.showTitleEditor();_2.$799=false}}
 ,isc.A.showTitleEditor=function isc_TabSet_showTitleEditor(){var _1=this.titleEditorForm,_2=_1.getItem("title");if(_1.masterElement!=this){_1.$ns=true;_1.$jo=false;_1.$jq=false;this.addPeer(_1)}else{_1.draw()}
 _2.focusInItem();_2.delayCall("selectValue",[],100);if(this.$803==null){var _3=this;var _4=function(){if(!_3.destroyed){_3.$804()}}
@@ -5968,7 +5983,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-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5979,7 +5994,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -6716,7 +6731,7 @@
 if(this.rowOut){this.rowOut(_6,_4,_5)}}}
 ,isc.A.$29q=function isc_GridRenderer__cellHover(_1,_2){var _3=this.getCellRecord(_1,_2);var _4;if(this.cellHover&&this.cellHover(_3,_1,_2)==false)_4=false;if(this.rowHover&&this.rowHover(_3,_1,_2)==false)_4=false;if(_4==false)return;if(this.showHover)this.$29r(_3,_1,_2)}
 ,isc.A.$29r=function isc_GridRenderer__showHover(_1,_2,_3){var _4=this.$wc();var _5=this.$784(_1,_2,_3);if(!_5)_5=this.cellHoverHTML(_1,_2,_3);isc.Hover.show(_5,_4,this.cellHoverBoundary(_2,_3),this.getHoverTarget())}
-,isc.A.$784=function isc_GridRenderer__getCellHoverComponent(_1,_2,_3){return this.grid.$784(_1,_2,_3)}
+,isc.A.$784=function isc_GridRenderer__getCellHoverComponent(_1,_2,_3){}
 ,isc.A.getHoverTarget=function isc_GridRenderer_getHoverTarget(){return this}
 ,isc.A.cellHoverHTML=function isc_GridRenderer_cellHoverHTML(_1,_2,_3){return null}
 ,isc.A.getCellHoverComponent=function isc_GridRenderer_getCellHoverComponent(_1,_2,_3){return null}
@@ -6747,7 +6762,7 @@
 ,isc.A.mouseUp=function isc_GridRenderer_mouseUp(){if(this.$29p())return;var _1=this.getEventRow(),_2=this.getEventColumn();if(!(_1>=0&&_2>=0))return;if(!this.cellIsEnabled(_1,_2))return;var _3=this.getCellRecord(_1,_2);var _4;if(this.cellMouseUp&&(this.cellMouseUp(_3,_1,_2)==false))_4=false;if(this.rowMouseUp&&(this.rowMouseUp(_3,_1,_2)==false))_4=false;if(this.recordMouseUp&&this.recordMouseUp(_1,_2)==false)_4=false;if(_4==false)return _4;this.selectOnMouseUp(_3,_1,_2)}
 ,isc.A.selectOnMouseUp=function isc_GridRenderer_selectOnMouseUp(_1,_2,_3){if(!this.selectionEnabled())return true;if(_2>=0&&_3>=0){this.selection.selectOnMouseUp(this,_2,_3);if(this.$828){if(this.fireSelectionUpdated)this.fireSelectionUpdated();this.$828=null}}}
 ,isc.A.click=function isc_GridRenderer_click(){if(this.$29p())return;var _1=this.getEventRow(),_2=this.getEventColumn();return this.$29y(_1,_2)}
-,isc.A.$29y=function isc_GridRenderer__rowClick(_1,_2){this.$29z=this.$290=null;var _3=this.$29u;if(_1!=_3){if(isc.EH.getX()==this.$723){_1=this.$29u}else{return false}}
+,isc.A.$29y=function isc_GridRenderer__rowClick(_1,_2){this.$29z=this.$290=null;var _3=this.$29u;if(_1!=_3){if(isc.EH.getX()==this.$723){_1=this.$29u}else{return}}
 if(isc.EH.getY()==this.$724){_2=this.$29v}
 if(!(_1>=0&&_2>=0))return;if(!this.cellIsEnabled(_1,_2))return false;this.$29z=_1;var _4=this.getCellRecord(_1,_2),_5;if(!this.$22n(_4,_1,_2))_5=false;if(this.rowClick&&(this.rowClick(_4,_1,_2)==false))
 _5=false;this.$29u=null;return _5}
@@ -6822,6 +6837,7 @@
 ,isc.A.resizeBy=function isc_GridBody_resizeBy(_1,_2,_3,_4,_5){if(!_5){this.$1i=this.getWidth()+(_1!=null?_1:0)}
 return this.invokeSuper(isc.GridBody,"resizeBy",_1,_2,_3,_4,_5)}
 ,isc.A.cellContextClick=function isc_GridBody_cellContextClick(_1,_2,_3){var _4=this.grid.getFieldNumFromLocal(_3,this);return this.grid.$298(_1,_2,_4)}
+,isc.A.$784=function isc_GridBody__getCellHoverComponent(_1,_2,_3){if(this.grid&&isc.isA.ListGrid(this.grid)){var _4=this.grid.getFieldNumFromLocal(_3,this);return this.grid.$784(_1,_2,_4)}}
 ,isc.A.getInnerHTML=function isc_GridBody_getInnerHTML(){this.grid.bodyDrawing(this);return this.Super("getInnerHTML",arguments)}
 ,isc.A.getTablePrintHTML=function isc_GridBody_getTablePrintHTML(_1){var _2=_1.startRow,_3=_1.endRow,_4=_3!=null?(_3-_2):this.getTotalRows(),_5=this.printMaxRows,_6=_1.printWidths,_7=_1.printProps;var _8={target:this,methodName:"gotTablePrintHTML",printContext:_1,printCallback:_1.callback}
 _1.callback=_8;if(_5<_4){this.logDebug("get table print html - breaking HTML into chunks","printing");if(_2==null)_2=_1.startRow=0;if(_3==null)_3=_1.endRow=this.getTotalRows();this.getPrintHTMLChunk(_1);return null}
@@ -6867,10 +6883,10 @@
 ,isc.A.redraw=function isc_GridBody_redraw(_1,_2,_3,_4){this.$58p=true;var _5=this.grid;if(_5.alwaysShowEditors&&!_5.$30a){_5.startEditing(null,null,true,null,true)}
 var _6=_5.$286,_7=_5.$30a,_8,_9,_10,_11,_12;_5.$69l();if(!_5.leaveScrollbarGap&&_5.predictScrollbarGap&&(this.overflow==isc.Canvas.AUTO)){var _13=this.vscrollOn,_14=!_5.isEmpty()&&(_5.getTotalRows()*_5.cellHeight)>this.getInnerHeight();if(_13!=_14){delete this.$773;_5.$45m("body redrawing with changed vertical scroll-state")}}
 var _15=false;if(_7){this.logInfo("redraw with editors showing, editForm.hasFocus: "+_6.hasFocus,"gridEdit");_8=_5.getEditCol();this.$516();_12=this.$517()}else if(isc.screenReader){_15=true}
-if(this.$773!=null){delete this.$773;_5.$45m(this.$773)}
-var _16=this.getDrawArea();var _17=this.grid,_18=this.$74k;if(!_18)_18=this.$74k=[0,0,0,0];var _17=this.grid,_19=_17.getRecord(_16[0]),_20=_17.getRecord(_16[1]),_21=(_19&&_19!=Array.LOADING)&&(_20&&_20!=Array.LOADING);;if(_21&&!_18.equals(_16))
-{if(!this.frozen){_17.$74l(_18[0],_18[1],_18[2],_18[3],this);this.$74k=_16}}
-if(!(this.frozen&&(_1==this.$81l||_1=="scrolled"))){_17.updateRecordComponents()}
+if(this.$773!=null){var _16=this.$773;delete this.$773;_5.$45m(_16)}
+var _17=this.getDrawArea();var _18=this.grid,_19=this.$74k;if(!_19)_19=this.$74k=[0,0,0,0];var _18=this.grid,_20=_18.getRecord(_17[0]),_21=_18.getRecord(_17[1]),_22=(_20&&_20!=Array.LOADING)&&(_21&&_21!=Array.LOADING);;if(_22&&!_19.equals(_17))
+{if(!this.frozen){_18.$74l(_19[0],_19[1],_19[2],_19[3],this);this.$74k=_17}}
+if(!(this.frozen&&(_1==this.$81l||_1=="scrolled"))){_18.updateRecordComponents()}
 this.invokeSuper(null,"redraw",_1,_2,_3,_4);delete this.$58p;if(_7){if(_12!=null&&_12.length>0){_6.removeItems(_12)}
 _5.$30b(null,true,this);_5.updateEditRow(_5.getEditRow());if(_6.hasFocus||(this.$519&&isc.EH.getFocusCanvas()==null))
 {this.$518(_8)}else{delete this.$519}}else if(_6!=null){_5.$30b(null,null,this)}else if(isc.screenReader&&this.hasFocus&&_15){this.$86a(this.$86b)}}
@@ -6945,7 +6961,7 @@
 ,isc.A.startRowAnimation=function isc_GridBody_startRowAnimation(_1,_2,_3,_4,_5,_6,_7,_8,_9){this.finishRowAnimation();var _10=(_9&&(this.$34y!=null)),_11=this.grid;if(_10){_11.$34v=true;_11.data.openFolder(this.$34y);_11.$34v=null}
 this.Super("startRowAnimation",arguments);if(_10){_11.$34v=true;_11.data.closeFolder(this.$34y);_11.$34v=null}
 delete this.$34y}
-);isc.B._maxIndex=isc.C+64;isc.A=isc.ListGrid;isc.A.CORNER="corner";isc.A.FIELD="field";isc.A.BEFORE="before";isc.A.AFTER="after";isc.A.OVER="over";isc.A.CLICK_OUTSIDE="click_outside";isc.A.CLICK="click";isc.A.DOUBLE_CLICK="doubleClick";isc.A.ENTER_KEYPRESS="enter";isc.A.ESCAPE_KEYPRESS="escape";isc.A.UP_ARROW_KEYPRESS="arrow_up";isc.A.DOWN_ARROW_KEYPRESS="arrow_down";isc.A.LEFT_ARROW_KEYPRESS="arrow_left";isc.A.RIGHT_ARROW_KEYPRESS="arrow_right";isc.A.TAB_KEYPRESS="tab";isc.A.SHIFT_TAB_KEYPRESS="shift_tab";isc.A.EDIT_FIELD_CHANGE="field_change";isc.A.EDIT_ROW_CHANGE="row_change";isc.A.PROGRAMMATIC="programmatic";isc.A.FOCUS="focus";isc.A.$295=["selection","selectionType","canSelectCells","canDragSelect","canSelectOnRightMouse","recordCanSelectProperty","canDrag","canAcceptDrop","canDrop","autoFit","wrapCells","cellSpacing","cellPadding","cellHeight","enforceVClipping","autoFitData","autoFitMaxRecords","autoFitMaxWidth","autoFitMaxColumns","autoFitMaxHeight","autoFitExtraRecords","showAllColumns","drawAllMaxCells","drawAheadRatio","quickDrawAheadRatio","instantScrollTrackRedraw","scrollRedrawDelay","printMaxRows","animateRowsMaxTime","fastCellUpdates","showRollOver","useCellRollOvers","canHover","showHover","hoverDelay","hoverWidth","hoverHeight","hoverAlign","hoverVAlign","hoverStyle","hoverOpacity","hoverMoveWithMouse","hoverByCell","keepHoverActive","cellHoverOutset","showEmptyMessage","emptyMessageStyle","emptyMessageTableStyle","showOfflineMessage","offlineMessageStyle","singleCellValueProperty","isSeparatorProperty","accessKey","canFocus","_useNativeTabIndex","tableStyle","baseStyle","recordCustomStyleProperty","showSelectedStyle","fullRowSpans","showFocusOutline"];isc.A.$296=["getCellStyleName","getCellStyleIndex","getRowTop","getRowPageTop","getRowSize","getDrawnRowHeight","getCellPageRect","getVisibleRows","getDrawnRows"];isc.A.$297=["getTotalRows","isEmpty","cellIsEnabled","willAcceptDrop","scrolled","getTableElementId","getRowElementId","getCellElementId","shouldFixRowHeight","getEmptyMessage","getCanHover","stopHover","updateEmbeddedComponentZIndex"];isc.A=isc.ListGrid;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.makeBodyMethods=function isc_c_ListGrid_makeBodyMethods(_1){var _2=this.$cf;if(_2==null){_2=this.$cf=[,"this.grid.$81e = this;"+"var returnVal = this.grid.",,"(",,");"+"this.grid.$81e=null;"+"return returnVal;"]}
+);isc.B._maxIndex=isc.C+65;isc.A=isc.ListGrid;isc.A.CORNER="corner";isc.A.FIELD="field";isc.A.BEFORE="before";isc.A.AFTER="after";isc.A.OVER="over";isc.A.CLICK_OUTSIDE="click_outside";isc.A.CLICK="click";isc.A.DOUBLE_CLICK="doubleClick";isc.A.ENTER_KEYPRESS="enter";isc.A.ESCAPE_KEYPRESS="escape";isc.A.UP_ARROW_KEYPRESS="arrow_up";isc.A.DOWN_ARROW_KEYPRESS="arrow_down";isc.A.LEFT_ARROW_KEYPRESS="arrow_left";isc.A.RIGHT_ARROW_KEYPRESS="arrow_right";isc.A.TAB_KEYPRESS="tab";isc.A.SHIFT_TAB_KEYPRESS="shift_tab";isc.A.EDIT_FIELD_CHANGE="field_change";isc.A.EDIT_ROW_CHANGE="row_change";isc.A.PROGRAMMATIC="programmatic";isc.A.FOCUS="focus";isc.A.$295=["selection","selectionType","canSelectCells","canDragSelect","canSelectOnRightMouse","recordCanSelectProperty","canDrag","canAcceptDrop","canDrop","autoFit","wrapCells","cellSpacing","cellPadding","cellHeight","enforceVClipping","autoFitData","autoFitMaxRecords","autoFitMaxWidth","autoFitMaxColumns","autoFitMaxHeight","autoFitExtraRecords","showAllColumns","drawAllMaxCells","drawAheadRatio","quickDrawAheadRatio","instantScrollTrackRedraw","scrollRedrawDelay","printMaxRows","animateRowsMaxTime","fastCellUpdates","showRollOver","useCellRollOvers","canHover","showHover","hoverDelay","hoverWidth","hoverHeight","hoverAlign","hoverVAlign","hoverStyle","hoverOpacity","hoverMoveWithMouse","hoverByCell","keepHoverActive","cellHoverOutset","showEmptyMessage","emptyMessageStyle","emptyMessageTableStyle","showOfflineMessage","offlineMessageStyle","singleCellValueProperty","isSeparatorProperty","accessKey","canFocus","_useNativeTabIndex","tableStyle","baseStyle","recordCustomStyleProperty","showSelectedStyle","fullRowSpans","showFocusOutline"];isc.A.$296=["getCellStyleName","getCellStyleIndex","getRowTop","getRowPageTop","getRowSize","getDrawnRowHeight","getCellPageRect","getVisibleRows","getDrawnRows"];isc.A.$297=["getTotalRows","isEmpty","cellIsEnabled","willAcceptDrop","scrolled","getTableElementId","getRowElementId","getCellElementId","shouldFixRowHeight","getEmptyMessage","getCanHover","stopHover","updateEmbeddedComponentZIndex"];isc.A=isc.ListGrid;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.makeBodyMethods=function isc_c_ListGrid_makeBodyMethods(_1){var _2=this.$cf;if(_2==null){_2=this.$cf=[,"this.grid.$81e = this;"+"var returnVal = this.grid.",,"(",,");"+"this.grid.$81e=null;"+"return returnVal;"]}
 var _3={};for(var i=0;i<_1.length;i++){var _5=_1[i],_6=isc.GridRenderer.getArgString(_5);if(isc.contains(_6,"colNum")){_2[0]="if (this.fields[colNum]) colNum = this.fields[colNum].masterIndex;"}else if(isc.isAn.emptyString(_6)){_6="body";_2[0]="body = this;"}else{_2[0]=null}
 _2[2]=_5;_2[4]=_6;var _7=_2.join(isc.emptyString);_3[_5]=new Function(_6,_7)}
 return _3}
@@ -7014,7 +7030,7 @@
 if(_8)_3.$30z(this,_4,_10)}else{_3.logWarn("suppressing editorEnter handlers on focus as listGrid.$30a is null")}}
 ,isc.A.getParentGroupIndex=function isc_ListGrid_getParentGroupIndex(_1){if(!this.isGrouped)return 0;var _2=this.groupTree,_3=_2.getParent(_1),_4=_2.getChildren(_2.getParent(_3)),_5=0;for(var i=0;i<_4.length;i++){var _7=_4[i];if(_7.groupValue==_3.groupValue){_5=i;break}}
 return _5}
-,isc.A.getGroupedRecordIndex=function isc_ListGrid_getGroupedRecordIndex(_1){if(!this.isGrouped)return-1;var _2=this.groupTree,_3=_2.getParent(_1);if(_3==null)return-1;var _4=_2.getChildren(_2.getParent(_3)),_5=0,_6=0;for(var i=0;i<_4.length;i++){var _8=_4[i];if(_8.groupValue==_3.groupValue){var _9=_2.getChildren(_8);for(var j=0;j<_9.length;j++){if(this.objectsAreEqual(_9[j],_1)){return _6+j}}}
+,isc.A.getGroupedRecordIndex=function isc_ListGrid_getGroupedRecordIndex(_1){if(!this.isGrouped)return-1;var _2=this.groupTree,_3=_2==null?null:_2.getParent(_1);if(_3==null)return-1;var _4=_2.getChildren(_2.getParent(_3)),_5=0,_6=0;for(var i=0;i<_4.length;i++){var _8=_4[i];if(_8.groupValue==_3.groupValue){var _9=_2.getChildren(_8);for(var j=0;j<_9.length;j++){if(this.objectsAreEqual(_9[j],_1)){return _6+j}}}
 var _11=_2.getChildren(_8),_12=_11.length;if(this.showGroupSummary&&!this.showGroupSummaryInHeader){for(var _13=_12-1;_13>=0;_13--){if(_11[_13].groupSummaryRecordProperty)_12-=1;else break}}
 _6+=_12}
 return _6}
@@ -7172,11 +7188,13 @@
 {this.$52y=true}else if(_1=="update"){var _11=this.data;if(this.data.isGroupedOutput&&this.originalData)_11=this.originalData;var _7=_11.get(_3);if(_7==null)this.$52y=true;if(!this.$52y){var _12=(this.dataSource!=null?this.getDataSource().getPrimaryKeyFieldNames():[]);for(var i=0;i<_12.length;i++){if(_2[_12[i]]!=_7[_12[i]]){this.$52y=true;break}}}
 if(!this.$52y)for(var i=0;i<_10.length;i++){var _13,_9=_10[i];if(_2[_9]!==_13&&!this.fieldValuesAreEqual(_9,_2[_9],_7[_9])){this.$52y=true;break}}
 if(!this.$52y){var _14=this.getDataSource().getPrimaryKeyFieldNames()[0];var _15=this.data.find(_14,_7[_14]);isc.addProperties(_15,_7)}}}
-if(this.$52y&&!this.$31o){this.$52y=false;this.$75p=this.getSelectedState(true);this.regroup();if(this.$75p){this.setSelectedState(this.$75p);delete this.$75p}}
+if(this.$52y&&!this.$31o&&(!isc.isA.ResultSet(this.data)||this.data.lengthIsKnown()))
+{this.$52y=false;this.$75p=this.getSelectedState(true);this.regroup();if(this.$75p){this.setSelectedState(this.$75p);delete this.$75p}}
 if(this.body)this.body.finishRowAnimation();if(!this.$31o&&!this.suppressEditRowRemap)this.$31n();this.$74c();if(this.$686()&&!this.$30a){this.startEditing(null,null,true,null,true)}
 var _16=this.getTotalRows()-1;if(this.body){if(this.body.lastOverRow>_16)delete this.body.lastOverRow;if(this.body.lastMouseOverRow>_16)delete this.body.lastMouseOverRow;if(this.body.$31p>_16)delete this.body.$31p}
 if(this.$31q>_16)delete this.$31q;if(this.hilites)this.applyHilites();if(!this.$50w){if(_6)this.updateFieldWidthsForAutoFitValue(this.$81l);this.$25a(this.$81l);if(this.summaryRow&&this.showGridSummary)this.summaryRow.$855()}
-if(this.$75p){this.setSelectedState(this.$75p);delete this.$75p}
+if(this.$75p&&(!isc.isA.ResultSet(this.data)||this.data.lengthIsKnown()))
+{this.setSelectedState(this.$75p);delete this.$75p}
 delete this.$67i}
 ,isc.A.$66d=function isc_ListGrid__dataArrived(_1,_2){var _3=this.$60z();if(_3!=null&&_3!=-1){var _4=this.getFieldNum(_3),_5=this.getField(_4);if(_5&&_5.canSortClientOnly&&!this.$66c(_5)){this.$600(null);if(_3!=null&&this.header&&isc.isA.Toolbar(this.header)){this.header.deselectButton(_3);var _6=this.header.getButton(_3);if(_6)_6.setTitle(this.getHeaderButtonTitle(_6))}
 if(this.sorter)this.sorter.setTitle(this.sorter.getTitle())}}
@@ -7329,7 +7347,7 @@
 ,isc.A.deriveVisibleFields=function isc_ListGrid_deriveVisibleFields(){this.fields.setArray(this.getVisibleFields(this.completeFields));this.deriveFrozenFields();this.refreshMasterIndex()}
 ,isc.A.refreshFields=function isc_ListGrid_refreshFields(){this.setFields(this.completeFields)}
 ,isc.A.getFieldWidths=function isc_ListGrid_getFieldWidths(_1){var _2=this.$78q();if(this.autoFitFieldWidths&&!this.$813){this.$813=true;var _3=_2.duplicate(),_4=null;if(this.frozenFields!=null){var _5=this.freezeLeft;if(_5){_4=_3.slice(0,this.frozenFields.length);_3=_3.slice(this.frozenFields.length)}else{_4=_3.slice(this.frozenFields.length);_3=_3.slice(0,this.frozenFields.length)}}
-var _6=this.getAvailableFieldWidth(),_7=_3.sum();var _8=_6;if(_4!=null)_8-=_4.sum();var _9=true;if(this.autoFitWidthApproach!="title"){var _10=this.getDrawArea();if(!this.data||Array.isLoading(this.data.get(_10[0]))){_9=false}}
+var _6=this.getAvailableFieldWidth(true),_7=_3.sum();var _8=_6;if(_4!=null)_8-=_4.sum();var _9=true;if(this.autoFitWidthApproach!="title"){var _10=this.getDrawArea();if(!this.data||Array.isLoading(this.data.get(_10[0]))){_9=false}}
 if(_7<_8&&_9){var _11=this.getAutoFitExpandField();if(_11){var _12=this.getFieldNum(_11);var _13=_8-_7;_2[_12]+=_13;var _14=this.getFieldHeaderButton(_12);if(_14&&_14.isDrawn()){_14.setWidth(_2[_12])}}}else if(_7>_8&&this.autoFitClipFields!=null){var _15;if(this.header&&this.header.isDrawn()){_15=this.header.hPolicy;this.header.hPolicy="fill"}
 var _16=this.autoFitClipFields;for(var i=0;i<_16.length;i++){var _18=this.getField(_16[i]),_19=this.getFieldNum(_18);if(_18==null||_19<0)continue;if(_18.frozen){this.logInfo("auto-fitting field:"+_18.name+" is present in the autoFitClipFields array for this grid, but is"+" currently frozen. This is not supported - the field will not be clipped.","frozenFields");continue}
 delete _18.$776;var _20=this.getFieldHeader(_19);if(_20&&_20.isDrawn()){_14=_20.getMember(this.getLocalFieldNum(_19));_14.setWidth(_18.width||"*");_14.setOverflow("hidden")}}
@@ -7344,8 +7362,9 @@
 return _4}
 ,isc.A.getStretchResizeWidths=function isc_ListGrid_getStretchResizeWidths(){if(this.fields==null)return[];var _1=this.fields.getProperty("width"),_2=this.fields.getProperty("$776");for(var i=0;i<_1.length;i++){if(_2[i]!=null)_1[i]=_2[i]}
 return isc.Canvas.applyStretchResizePolicy(_1,(this.innerWidth!=null?this.innerWidth:this.getAvailableFieldWidth()),this.minFieldSize)}
-,isc.A.getAvailableFieldWidth=function isc_ListGrid_getAvailableFieldWidth(){var _1=((this.autoFitData=="both"||this.autoFitData=="horizontal")?this.getVisibleWidth():this.getWidth())-this.getHMarginBorder();var _2=this.$54u();if(_2){_1-=this.body?this.body.getScrollbarSize():this.getScrollbarSize()}
-return _1}
+,isc.A.getAvailableFieldWidth=function isc_ListGrid_getAvailableFieldWidth(_1){if(_1==null){_1=this.autoFitData!="both"&&this.autoFitData!="horizontal"}
+var _2=(!_1?this.getVisibleWidth():this.getWidth())-this.getHMarginBorder();var _3=this.$54u();if(_3){_2-=this.body?this.body.getScrollbarSize():this.getScrollbarSize()}
+return _2}
 ,isc.A.getFieldWidth=function isc_ListGrid_getFieldWidth(_1){_1=this.getFieldNum(_1);if(_1==-1||!this.fields||_1>=this.fields.length)return null;if(this.body!=null)return this.getColumnWidth(_1);return this.getFieldWidths()[_1]}
 ,isc.A.$310=function isc_ListGrid__adjustFieldSizesForBodyStyling(_1,_2){if(_2==null)_2=false;if(_1==null||_1.length==0)return _1;if(!this.body){return _1}
 _1[_1.length-1]=this.$311(_1[_1.length-1],_1.sum(),_2);_1[0]=this.$312(_1[0],_2);return _1}
@@ -7366,12 +7385,14 @@
 ,isc.A.$45m=function isc_ListGrid__updateFieldWidths(_1,_2,_3){if(this.body==null)return;this.$26a=null;if(this.fields&&!this.fields.$775&&!this.skipAutoFitWidths){var _4=this.getAutoFitValueWidths(null,true);if(_4==null){this.fields.setProperty("$776",null)}else{for(var i=0;i<this.fields.length;i++){var _6=this.fields[i];if(_4[i]==null){_6.$776=null;continue}
 var _7=_6.width;if(!isc.isA.Number(_7))_7=this.minFieldWidth;if(!isc.isA.Number(_7))_7=1;if(_7<_4[i]){_6.$776=_4[i];var _8=this.getFieldHeaderButton(i);if(_8!=null){_8.setWidth(_4[i]);_8.parentElement.reflow()}}else if(_6.$776!=null){_6.$776=null;var _8=this.getFieldHeaderButton(i);if(_8!=null){_8.setWidth(_7);_8.parentElement.reflow()}}}
 this.fields.$775=true}}
-var _9=this.getAvailableFieldWidth(),_10=(_9!=this.innerWidth);this.innerWidth=_9;var _11=this.header,_12=(this.showHeader?this.headerHeight:0);if(_11!=null){var _13=(this.isRTL()&&this.$54u()?this.body.getScrollbarSize():0);_11.hPolicy="fill";if(this.frozenHeader)this.frozenHeader.hPolicy="fill";var _14=this.innerWidth;if(!this.leaveScrollbarGap&&_11.isDrawn()&&_14!=_11.getWidth()&&_1=="body scroll changed"){if(this.$54e||!this.resizeFieldsForScrollbar){_11.hPolicy="none"}}
-var _15=this.headerLayout||_11;_15.setRect(_13,0,_14,_12);if(!_11.isDrawn()&&(_1=="initial draw"||this.isDrawn())){if(!this.frozenFields){_11.draw()}else{var _16=this.getFieldWidths(_1),_17=this.getFrozenSlots(_16);this.frozenHeader.setWidth(_17.sum());this.headerLayout.draw()}}
+var _9=this.getAvailableFieldWidth(true),_10=(_9!=this.innerWidth);this.innerWidth=_9;var _11=this.header,_12=(this.showHeader?this.headerHeight:0);if(_11!=null){var _13=(this.isRTL()&&this.$54u()?this.body.getScrollbarSize():0);_11.hPolicy="fill";if(this.frozenHeader)this.frozenHeader.hPolicy="fill";var _14=this.innerWidth,_15;if(this.autoFitData=="horizontal"||this.autoFitData=="both"){_15=this.getFieldWidths(_1+" [sizing horizontal auto-fit header]");_14=Math.max(_14,_15.sum())}
+if(!this.leaveScrollbarGap&&_11.isDrawn()&&_14!=_11.getWidth()&&_1=="body scroll changed"){if(this.$54e||!this.resizeFieldsForScrollbar){_11.hPolicy="none"}}
+var _16=this.headerLayout||_11;_16.setRect(_13,0,_14,_12);if(!_11.isDrawn()&&(_1=="initial draw"||this.isDrawn())){if(!this.frozenFields){_11.draw()}else{if(_15==null){_15=this.getFieldWidths(_1+" [sizing frozen fields]")}
+var _17=this.getFrozenSlots(_15);this.frozenHeader.setWidth(_17.sum());this.headerLayout.draw()}}
 _11.hPolicy="none";if(this.frozenHeader)this.frozenHeader.hPolicy="none";if(this.sorter){this.sorter.setLeft(this.getSorterLeft());var _18=this.$313();this.sorter.setVisibility(this.$313()?isc.Canvas.INHERIT:isc.Canvas.HIDDEN)}}
 if((!this.$26a||_10)&&((_11&&_11.isDrawn())||_12==0))
-{var _16=this.getFieldWidths(_1);this.setBodyFieldWidths(_16);if(this.filterEditor&&this.filterEditor.body!=null){this.filterEditor.setBodyFieldWidths(_16.duplicate())}
-if(this.summaryRow&&this.showGridSummary&&this.summaryRow.body!=null){this.summaryRow.setBodyFieldWidths(_16.duplicate())}
+{var _15=this.getFieldWidths(_1);this.setBodyFieldWidths(_15);if(this.filterEditor&&this.filterEditor.body!=null){this.filterEditor.setBodyFieldWidths(_15.duplicate())}
+if(this.summaryRow&&this.showGridSummary&&this.summaryRow.body!=null){this.summaryRow.setBodyFieldWidths(_15.duplicate())}
 if(this.logIsDebugEnabled("layout")){this.logDebug("new field widths: "+this.$26a,"layout")}}
 if(!this.$618){this.$618={}
 this.$618[this.$pc]=true;this.$618[this.$60m]=true;this.$618[this.$604]=true;this.$618[this.$616]=true;this.$618[this.$617]=true}
@@ -7386,7 +7407,6 @@
 var _2=this.getLocalFieldNum(this.getFieldNum(_1));var _3;if(_1.frozen){_3=this.frozenBody.getColumnAutoSize(_2)}else{_3=this.body.getColumnAutoSize(_2)}
 if(_3==null)_3=_1.width;return _3}
 ,isc.A.getAutoFitWidthApproach=function isc_ListGrid_getAutoFitWidthApproach(_1){if(_1.autoFitWidthApproach!=null)return _1.autoFitWidthApproach;return this.autoFitWidthApproach}
-,isc.A.resizePeersBy=function isc_ListGrid_resizePeersBy(_1,_2,_3,_4){this.invokeSuper(isc.ListGrid,"resizePeersBy",_1,_2,_3,_4);if(this.filterEditor!=null){this.filterEditor.resizeBy(_1,0)}}
 ,isc.A.draw=function isc_ListGrid_draw(_1,_2,_3,_4){if(isc.$cv)arguments.$cw=this;if(!this.readyToDraw())return this;this.prepareForDraw();this.invokeSuper(isc.ListGrid,"draw",_1,_2,_3,_4);this.body.getColumnSizes();for(var i=0;i<this.bodies.length;i++){var _6=this.bodies[i];if(_6.$29a)this.markForRedraw()}
 var _7=this.$60z();if(this.header&&_7!=null){var _8=this.getFieldHeader(_7),_9=this.getFieldHeaderButton(_7);_8.selectButton(_9)}
 this.bodyScrolled();return this}
@@ -7402,7 +7422,8 @@
 if(this.$314)this.$314.destroy();if(this.$58q)this.$58q.destroy();if(this.cellContextMenu)this.cellContextMenu.destroy();if(this.$286){this.$286.destroy();delete this.$286;delete this.$30a}
 if(this.data){if(this.data.$31k&&isc.isA.Function(this.data.destroy)){this.data.destroy()}else{this.$31j(this.data);delete this.data}}
 if(this.selection){this.destroySelectionModel()}
-if(this.selectionCanvas)this.selectionCanvas.destroy();if(this.selectionUnderCanvas)this.selectionUnderCanvas.destroy();if(this.rollOverCanvas)this.rollOverCanvas.destroy();if(this.rollUnderCanvas)this.rollUnderCanvas.destroy();this.$67a();this.Super("destroy",arguments)}
+if(this.selectionCanvas)this.selectionCanvas.destroy();if(this.selectionUnderCanvas)this.selectionUnderCanvas.destroy();if(this.rollOverCanvas)this.rollOverCanvas.destroy();if(this.rollUnderCanvas)this.rollUnderCanvas.destroy();this.$67a();var _2=this.getRecordComponentPool();if(_2){for(var i=0;i<_2.length;i++){var _4=_2[i];if(_4&&_4.destroy&&!_4.destroyed)_4.destroy()}}
+this.Super("destroy",arguments)}
 ,isc.A.redrawHeader=function isc_ListGrid_redrawHeader(){if(this.header)this.header.markForRedraw()}
 ,isc.A.getBaseStyle=function isc_ListGrid_getBaseStyle(_1,_2,_3){if(this.canEdit==true&&!this.isPrinting){if(this.editFailedBaseStyle&&this.cellHasErrors(_2,_3))
 return this.editFailedBaseStyle;if(this.editPendingBaseStyle&&this.cellHasChanges(_2,_3,false))
@@ -7446,11 +7467,12 @@
 _10=this.getValueIcon(_8,_9,_1,_2);if(!_13){var _18=_8.valueMap;if(_18){if(isc.isA.String(_18))_18=this.getGlobalReference(_18);if(!isc.isAn.Array(_18)){if(isc.isAn.Array(_9)){var _19=[];for(var i=0;i<_9.length;i++){var _21=isc.getValueForKey(_9[i],_18,_9[i]);_19[_19.length]=_21}
 _9=_19}else{_9=isc.getValueForKey(_9,_18)}}}}
 if(_16)_9=_15}}
-if(!_14){var _22=null;if(_10!=null){_22=this.getValueIconHTML(_10,_8)}
+if(!_14){if(_1&&((_1[this.groupSummaryRecordProperty]&&!this.shouldShowGroupSummary(_8))||(_1[this.gridSummaryRecordProperty]&&!this.shouldShowGridSummary(_8))))
+{_9=this.emptyCellValue}else{var _22=null;if(_10!=null){_22=this.getValueIconHTML(_10,_8)}
 if(_13){if(!_22||isc.isAn.emptyString(_22))_22=this.emptyCellValue;_9=_22}else{_9=this.$315(_9,_1,_8,_2,_3);var _23=this.getFieldHilites(_1,_8);if(_23)_9=this.applyHiliteHTML(_23,_9);if(_22){if(_8.valueIconOrientation!=isc.Canvas.RIGHT)
 _9=_22+_9;else
 _9=_9+_22}}
-if(this.isEditable()&&this.showErrorIcons&&this.cellHasErrors(_2,_3)){_9=this.getErrorIconHTML(_2,_3)+_9}}
+if(this.isEditable()&&this.showErrorIcons&&this.cellHasErrors(_2,_3)){_9=this.getErrorIconHTML(_2,_3)+_9}}}
 var _24=this.isGrouped?this.getGroupTitleField():null;if(_24&&this.fields[_3].name==_24){var _25=isc.Canvas.spacerHTML(this.groupIndentSize+this.groupLeadingIndent,1);_9=_25+_9}
 return _9}
 ,isc.A.getTitleFieldValue=function isc_ListGrid_getTitleFieldValue(_1){var _2=this.getDataSource().getTitleField(),_3=this.getCellValue(_1,this.getRecordIndex(_1),this.getFieldNum(_2),this.body);if(!_3||_3==""){_3=this.getRawCellValue(_1,this.getRecordIndex(_1),_2,true)}
@@ -7464,11 +7486,11 @@
 if(_6&&_6.$pn&&isc.isA.Number(_6.$pn)){_5=_6.$pn}}
 return _5}
 ,isc.A.getValueIconHTML=function isc_ListGrid_getValueIconHTML(_1,_2){var _3=_2.imageURLPrefix||_2.baseURL||_2.imgDir,_4=_2.imageURLSuffix,_5=this.getValueIconWidth(_2),_6=this.getValueIconHeight(_2),_7=this.getValueIconLeftPadding(_2),_8=this.getValueIconRightPadding(_2);if(_4!=null)_1+=_4;var _9=isc.Canvas.$xq(_1,_3,_5,_6,_7,_8,null,this);return _9}
-,isc.A.getCellAlign=function isc_ListGrid_getCellAlign(_1,_2,_3){if(_1&&_1[this.singleCellValueProperty]!=null&&(!this.showSingleCellCheckboxField(_1)||!this.isCheckboxField(this.getField(_3))))
+);isc.evalBoundary;isc.B.push(isc.A.getCellAlign=function isc_ListGrid_getCellAlign(_1,_2,_3){if(_1&&_1[this.singleCellValueProperty]!=null&&(!this.showSingleCellCheckboxField(_1)||!this.isCheckboxField(this.getField(_3))))
 {return this.isRTL()?isc.Canvas.RIGHT:isc.Canvas.LEFT}
 var _4=_3;var _5=this.fields[_4];if(!_5)return isc.Canvas.LEFT;if(_5.userFormula||_5.userSummary){return this.isRTL()?isc.Canvas.LEFT:isc.Canvas.RIGHT}
 return(_5.cellAlign||_5.align)}
-);isc.evalBoundary;isc.B.push(isc.A.showSingleCellCheckboxField=function isc_ListGrid_showSingleCellCheckboxField(_1){return(this.getCurrentCheckboxField()!=null)&&_1&&!_1.$52e&&!_1[this.isSeparatorProperty]}
+,isc.A.showSingleCellCheckboxField=function isc_ListGrid_showSingleCellCheckboxField(_1){return(this.getCurrentCheckboxField()!=null)&&_1&&!_1.$52e&&!_1[this.isSeparatorProperty]}
 ,isc.A.$425=function isc_ListGrid__useDisplayFieldValue(_1){return _1&&_1.displayField&&(_1.displayField!=_1.name)&&(!_1.optionDataSource||isc.DS.get(_1.optionDataSource)==this.getDataSource())}
 ,isc.A.getValueIcon=function isc_ListGrid_getValueIcon(_1,_2,_3,_4){if(!_1.valueIcons||_1.suppressValueIcon){if(this.$31s(_1)){var _5=(_2?this.booleanTrueImage:this.booleanFalseImage);_4=(_4!=null)?_4:this.findRowNum(_3);var _6=_1.masterIndex;if(!this.canEditCell(_4,_6)&&_1.canToggle){_5=isc.Img.urlForState(_5,false,false,"Disabled")}
 if(_5==null)_5=isc.Canvas.getImgURL(isc.Canvas.$wz);return _5}
@@ -7747,9 +7769,10 @@
 ,isc.A.recordClick=function isc_ListGrid_recordClick(){}
 ,isc.A.recordDoubleClick=function isc_ListGrid_recordDoubleClick(){}
 ,isc.A.setShowGridSummary=function isc_ListGrid_setShowGridSummary(_1){if(this.showGridSummary==_1)return;this.showGridSummary=_1;if(this.showGridSummary){this.showSummaryRow()}else{this.clearSummaryRow()}}
-,isc.A.recalculateSummaries=function isc_ListGrid_recalculateSummaries(_1,_2){_2=(_2!=null?_2:true);this.calculateRecordSummaries(_1,_2);this.$855(!_2)}
+,isc.A.recalculateSummaries=function isc_ListGrid_recalculateSummaries(_1,_2){_2=(_2!=null?_2:true);this.calculateRecordSummaries(_1,_2,true);this.$855(_2)}
 ,isc.A.$855=function isc_ListGrid__recalculateSummaries(_1){if(this.showGridSummary&&this.summaryRow!=null&&_1!=false){this.summaryRow.$855()}
 if(this.showGroupSummary){this.refreshGroupSummary()}}
+,isc.A.recalculateGridSummary=function isc_ListGrid_recalculateGridSummary(){if(this.showGridSummary&&this.summaryRow!=null){this.summaryRow.$855()}}
 ,isc.A.shouldShowGridSummary=function isc_ListGrid_shouldShowGridSummary(_1){if(_1.showGridSummary!=null)return _1.showGridSummary;return(_1.getGridSummary!=null||this.getGridSummaryFunction(_1)!=null)}
 ,isc.A.getGridSummaryFunction=function isc_ListGrid_getGridSummaryFunction(_1){if(!_1)return;var _2=_1.summaryFunction||isc.SimpleType.getDefaultSummaryFunction(_1.type);return _2}
 ,isc.A.getGridSummary=function isc_ListGrid_getGridSummary(_1){if(!_1||!this.data||(isc.isA.ResultSet(this.data)&&!this.data.lengthIsKnown()))
@@ -7792,18 +7815,18 @@
 if(_8){_4.add(_7)}}
 var _9=_2.recordSummaryFunction||"sum";var _10=isc.DataSource.applyRecordSummaryFunction(_9,_3,_4,_2);return _10}
 ,isc.A.shouldApplyRecordSummaryToRecord=function isc_ListGrid_shouldApplyRecordSummaryToRecord(_1){return _1&&(_1.type==this.$71t)&&(_1.summaryFunction!=null||_1.getGroupSummary!=null)}
-,isc.A.calculateRecordSummaries=function isc_ListGrid_calculateRecordSummaries(_1,_2){if(!this.fields)return;if(_1==null){_1=this.getOriginalData()}
+,isc.A.calculateRecordSummaries=function isc_ListGrid_calculateRecordSummaries(_1,_2,_3){if(!this.fields)return;if(_1==null){_1=this.getOriginalData()}
 if(_1==null||(isc.isA.ResultSet(_1)&&!_1.lengthIsKnown()))
-return;var _3=false;var _4=[];for(var i=0;i<this.fields.length;i++){var _6=this.getField(i);if(this.shouldApplyRecordSummaryToRecord(_6)){_4.add(_6)}}
-if(_4.length>0){for(var i=0;i<_1.getLength();i++){var _7=_1.get(i),_8=this.getEditValues(_7),_9=_8?isc.addProperties({},_7,_8):_7;if(_7==null)continue;for(var _10=0;_10<_4.length;_10++){var _6=_4[_10];if(!this.shouldShowRecordSummary(_6,_7))continue;var _11=_7[_6.name];var _12=this.getRecordSummary(_9,_6);_7[_6.name]=_12;if(!this.fieldValuesAreEqual(_6,_11,_12)){_3=true}}}}
-if(_3&&!_2){if(!this.isDirty())this.markForRedraw();if(this.showGridSummary&&this.summaryRow)this.summaryRow.$855()}}
+return;var _4=false;var _5=[];for(var i=0;i<this.fields.length;i++){var _7=this.getField(i);if(this.shouldApplyRecordSummaryToRecord(_7)){_5.add(_7)}}
+if(_5.length>0){for(var i=0;i<_1.getLength();i++){var _8=_1.get(i),_9=this.getEditValues(_8),_10=_9?isc.addProperties({},_8,_9):_8;if(_8==null)continue;for(var _11=0;_11<_5.length;_11++){var _7=_5[_11];if(!this.shouldShowRecordSummary(_7,_8))continue;var _12=_8[_7.name];var _13=this.getRecordSummary(_10,_7);_8[_7.name]=_13;if(!this.fieldValuesAreEqual(_7,_12,_13)){_4=true}}}}
+if((_3||_4)&&!_2){if(!this.isDirty())this.markForRedraw();if(this.showGridSummary&&this.summaryRow)this.summaryRow.$855()}}
 ,isc.A.clearSummaryRow=function isc_ListGrid_clearSummaryRow(){if(this.summaryRow&&this.summaryRow.masterElement==this){this.summaryRow.clear();this.removePeer(this.summaryRow);this.$wj(this.summaryRow,isc.Canvas.BOTTOM);if(this.isDrawn()){this.clear();this.draw()}}}
-,isc.A.showSummaryRow=function isc_ListGrid_showSummaryRow(){if(this.summaryRow&&this.summaryRow.masterElement==this)return;if(!this.summaryRow){var _1=this.getSummaryRowDataSource();var _2;if(this.completeFields)_2=this.completeFields.duplicate();else if(this.fields)_2=this.fields.duplicate();var _3=this.summaryRowHeight;this.summaryRow=this.createAutoChild("summaryRow",{warnOnReusedFields:false,autoDraw:false,width:"100%",snapTo:"B",height:_3,autoFitData:"vertical",bodyOverflow:"hidden",showHeader:false,getBaseStyle:function(){return this.creator.summaryRowStyle},alternateRecordStyles:false,disabled:this.disabled,$67b:function(){},$31s:function(_9){return false},dataSource:_1,data:_1==null?this.getGridSummaryData():null,$855:function(){var _4=this.creator;if(this.dataSource!=null){var _5=_4.getSummaryRowCriteria(),_6=isc.ResultSet&&isc.isA.ResultSet(this.data)&&!this.data.willFetchData(_5);this.fetchData(_5,null,_4.getSummaryRowFetchRequestConfig());if(_6)this.invalidateCache()}else{this.setData(_4.getGridSummaryData(true))}},fieldSourceGrid:this,fields:_2,skipAutoFitWidths:true,getFieldWidths:function(){return this.creator.getFieldWidths()},$315:function(_9,_10,_11,_12,_13){var _4=this.creator;if(_4.shouldShowGridSummary(_11)){if(_9==null)return this.invalidSummaryValue;if(_11.formatGridSummary){if(!isc.isA.Function(_11.formatGridSummary)){_11.formatGridSummary=isc.Func.expressionToFunction("value",_11.formatGridSummary)}
+,isc.A.showSummaryRow=function isc_ListGrid_showSummaryRow(){if(this.summaryRow&&this.summaryRow.masterElement==this)return;if(!this.summaryRow){var _1=this.getSummaryRowDataSource();var _2;if(this.completeFields)_2=this.completeFields.duplicate();else if(this.fields)_2=this.fields.duplicate();var _3=this.summaryRowHeight;this.summaryRow=this.createAutoChild("summaryRow",{warnOnReusedFields:false,autoDraw:false,draw:function(){this.Super("draw",arguments);this.creator.refreshMargin()},width:"100%",snapTo:"B",height:_3,autoFitData:"vertical",bodyOverflow:"hidden",showHeader:false,getBaseStyle:function(){return this.creator.summaryRowStyle},alternateRecordStyles:false,disabled:this.disabled,$67b:function(){},$31s:function(_9){return false},dataSource:_1,data:_1==null?this.getGridSummaryData():null,$855:function(){var _4=this.creator;if(this.dataSource!=null){var _5=_4.getSummaryRowCriteria(),_6=isc.ResultSet&&isc.isA.ResultSet(this.data)&&!this.data.willFetchData(_5);this.fetchData(_5,null,_4.getSummaryRowFetchRequestConfig());if(_6)this.invalidateCache()}else{this.setData(_4.getGridSummaryData(true))}},fieldSourceGrid:this,fields:_2,skipAutoFitWidths:true,getFieldWidths:function(){return this.creator.getFieldWidths()},$315:function(_9,_10,_11,_12,_13){var _4=this.creator;if(_4.shouldShowGridSummary(_11)){if(_9==null)return this.invalidSummaryValue;if(_11.formatGridSummary){if(!isc.isA.Function(_11.formatGridSummary)){_11.formatGridSummary=isc.Func.expressionToFunction("value",_11.formatGridSummary)}
 if(isc.isA.Function(_11.formatGridSummary)){return _11.formatGridSummary(_9)}}else{var _7=this.creator.getGridSummaryFunction(_11);if(!isc.isAn.Array(_7)){_7=[_7]}
 if(_7[_12]=="count"){var _8=_11.pluralTitle;if(_8==null)_8=_11.title;if(_8!=null)_9+=" "+_8;return _9}}
 return this.Super("$315",arguments)}
 return this.Super("$315",arguments)}});this.addPeer(this.summaryRow)}else{this.summaryRow.setDataSource(this.getSummaryRowDataSource());this.summaryRow.setFields(this.completeFields.duplicate());this.summaryRow.$855();this.addPeer(this.summaryRow);this.summaryRow.setBodyFieldWidths(this.$26a.duplicate());this.syncSummaryRowScrolling(this.body.getScrollLeft(),this.body.getScrollTop)}
-this.summaryRow.moveAbove(this);this.$wi(this.summaryRow,isc.Canvas.BOTTOM);if(this.isDrawn()){this.clear();this.draw()}}
+this.summaryRow.moveAbove(this);this.$wi(this.summaryRow,isc.Canvas.BOTTOM,null,true);this.refreshMargin()}
 ,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",fieldSourceGrid:this,actionType:"filter",actionButtonPrompt:this.filterButtonPrompt,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)}
@@ -7971,7 +7994,7 @@
 ,isc.A.handleEditorChanged=function isc_ListGrid_handleEditorChanged(_1){var _2=_1.getFieldName(),_3=this.getField(_2),_4;if(_3&&_3.validateOnChange!=null)_4=_3.validateOnChange;else _4=this.validateOnChange;var _5=this.getEditRow();if(_5==null||_5!=_1.rowNum)return;if(_4){this.validateCell(_5,_2,false,true)}else if(!_1.hasFocus&&!this.editByCell){if(_1.isDrawn()&&_1.isVisible()){this.storeUpdatedEditorValue(false,_1.colNum);if(this.saveByCell){var _6=isc.ListGrid.EDIT_FIELD_CHANGE;this.saveEdits(_6,null,_5,_1.colNum)}else if(this.validateByCell)this.validateCell(_5,_2)}}}
 ,isc.A.$325=function isc_ListGrid__editorHandleChangedOverride(_1,_2,_3,_4){this.invokeSuper(this.getClassName(),"handleChanged",_1,_2,_3,_4);if(!this.destroyed)this.grid.handleEditorChanged(this)}
 ,isc.A.$45p=function isc_ListGrid__editorGetAutoComplete(){var _1=this.grid;if(!_1)return null;var _2=_1.getField(this.getFieldName());if(_2.autoComplete!=null)return _2.autoComplete;if(_1.autoComplete!=null)return _1.autoComplete;return this.Super("$17h",arguments)}
-,isc.A.getEditItem=function isc_ListGrid_getEditItem(_1,_2,_3,_4,_5,_6,_7){var _8={};_8.width=_6;_8.record=_2;_8.rowNum=_4;_8.colNum=_5;var _9=this.getEditorName(_4,_1);_8[this.fieldIdProperty]=_9;_8.valueMap=this.getEditorValueMap(_1,_3);if(_1.valueField!=null)_8.valueField=_1.valueField
+,isc.A.getEditItem=function isc_ListGrid_getEditItem(_1,_2,_3,_4,_5,_6,_7){var _8={};_8.width=_6;_8.record=_2;_8.rowNum=_4;_8.colNum=_5;var _9=this.getEditorName(_4,_1);_8[this.fieldIdProperty]=_9;if(_1.title!=null)_8.title=_1.title;_8.valueMap=this.getEditorValueMap(_1,_3);if(_1.valueField!=null)_8.valueField=_1.valueField
 if(_1.displayField!=null)_8.displayField=_1.displayField
 if(_1.optionDataSource)_8.optionDataSource=_1.optionDataSource
 if(_1.optionFilterContext)_8.optionFilterContext=_1.optionFilterContext
@@ -8585,12 +8608,12 @@
 return this.Super("mouseOver",arguments)},mouseOut:function(){var _4=this.parentElement.grid,_8=_4.headerMenuButton;if(_8&&_8.isVisible()&&_8.masterElement==this&&isc.EH.getTarget()!=_8)
 {_4.headerMenuButton.hide()}
 return this.Super("mouseOut",arguments)}},_1);return _2}
-,isc.A.makeHeader=function isc_ListGrid_makeHeader(_1){if(this.header!=null)return;if(this.headerSpans){this.spanMap={};for(var i=0;i<this.headerSpans.length;i++){var _3=this.headerSpans[i];for(var j=0;j<_3.fields.length;j++){this.spanMap[_3.fields[j]]=_3}}}
+);isc.evalBoundary;isc.B.push(isc.A.makeHeader=function isc_ListGrid_makeHeader(_1){if(this.header!=null)return;if(this.headerSpans){this.spanMap={};for(var i=0;i<this.headerSpans.length;i++){var _3=this.headerSpans[i];for(var j=0;j<_3.fields.length;j++){this.spanMap[_3.fields[j]]=_3}}}
 var _5=this.header=this.makeHeaderForFields(this.normalFields||this.fields);_5.locatorParent=this;if(this.sorter==null)this.makeCornerSortButton();this.headers=[_5];if(!this.frozenFields){this.addChild(_5,null,!_1);return}
 var _6=this.frozenHeader=this.makeHeaderForFields(this.frozenFields,"visible",this.getID()+"$51f");if(this.freezeLeft()){this.headers.unshift(this.frozenHeader)}else{this.headers.add(this.frozenHeader)}
 this.headerLayout=this.createAutoChild("headerLayout",{autoDraw:false,overflow:"hidden",height:this.headerHeight,members:this.headers},isc.HLayout)
 this.addChild(this.headerLayout,null,!_1)}
-);isc.evalBoundary;isc.B.push(isc.A.makeHeaderForFields=function isc_ListGrid_makeHeaderForFields(_1,_2,_3){var _4=this.createHeader({ID:_3,grid:this,buttons:_1.duplicate(),reorderOnDrop:false,height:null,minMemberSize:this.minFieldWidth,tabWithinToolbar:false,overflow:_2||"hidden",_redrawWithParent:!this.fixedFieldWidths})
+,isc.A.makeHeaderForFields=function isc_ListGrid_makeHeaderForFields(_1,_2,_3){var _4=this.createHeader({ID:_3,grid:this,buttons:_1.duplicate(),reorderOnDrop:false,height:null,minMemberSize:this.minFieldWidth,tabWithinToolbar:false,overflow:_2||"hidden",_redrawWithParent:!this.fixedFieldWidths})
 this.observe(_4,"scrollTo","observer.headerScrolled()");return _4}
 ,isc.A.createHeader=function isc_ListGrid_createHeader(_1){var _2=this;var _3=-1;if(this.canTabToHeader||(this.canTabToHeader==null&&isc.screenReader)){_3=this.getTabIndex()}
 var _4=isc.addProperties({makeButton:function(_6,_26,_27,_28,_29){_6=isc.addProperties({},_6);if(_6.headerTitleStyle)_6.titleStyle=_6.headerTitleStyle;else if(_6.frozen&&this.buttonProperties.frozenTitleStyle)
@@ -8744,7 +8767,7 @@
 ,isc.A.getHeaderContextMenu=function isc_ListGrid_getHeaderContextMenu(){return this.createAutoChild("headerContextMenu",{ID:this.getID()+"$314",grid:this})}
 ,isc.A.getSortArrowImage=function isc_ListGrid_getSortArrowImage(_1){var _2;if(_1==null||_1==_2)_1=this.$60z();if(this.canSort&&_1!=null){return this.imgHTML((Array.shouldSortAscending(this.getField(_1).sortDirection)?this.sortAscendingImage:this.sortDescendingImage),null,null,null,null,this.widgetImgDir)}else{return isc.Canvas.spacerHTML(1,1)}}
 ,isc.A.sorterClick=function isc_ListGrid_sorterClick(){if(!this.canSort)return false;var _1=this.$60z();if(_1!=null){var _2=this.getField(_1),_3=_2[this.fieldIdProperty],_4=this.$765,_5=_2.sortDirection;if(this.isSortField(_3)){if(_4==_5||this.canUnsort==false){this.toggleSort(_3)}else{this.toggleSort(_3,"unsort")}}else{this.setSort({property:_3,direction:_4})}}else{this.sort(_1,(_1!=null?!Array.shouldSortAscending(this.getField(_1).sortDirection):null))}}
-,isc.A.showDragLineForRecord=function isc_ListGrid_showDragLineForRecord(_1,_2){var _3=this.body;if(_1==null)_1=this.getEventRecordNum();var _4=_3.getVisibleRows()[1];if(_1==-2)_1=_4;if(!this.recordIsEnabled(_1)&&_1!=_4)return this._dragLine.hide();if(_2==null)_2=this.getReorderPosition(_1);var _5=this.getLeftBody();var _6=_5.getPageLeft()+(this.isRTL()&&_5.vscrollOn?_5.getScrollbarSize():0);if(_2==isc.ListGrid.BEFORE){this.showHDragLine(_6,_3.getRowPageTop(_1));this._dragLine.afterRow=_1-1}else if(_2==isc.ListGrid.AFTER){this.showHDragLine(_6,(_3.getRowPageTop(_1)+_3.getRowSize(_1)));this._dragLine.afterRow=_1}else{return this._dragLine.hide()}
+,isc.A.showDragLineForRecord=function isc_ListGrid_showDragLineForRecord(_1,_2){var _3=this.body;if(_1==null)_1=this.getEventRecordNum();var _4=_3.getVisibleRows()[1];if(_1==-2)_1=_4;if(this._dragLine&&!this.recordIsEnabled(_1)&&_1!=_4)return this._dragLine.hide();if(_2==null)_2=this.getReorderPosition(_1);var _5=this.getLeftBody();var _6=_5.getPageLeft()+(this.isRTL()&&_5.vscrollOn?_5.getScrollbarSize():0);if(_2==isc.ListGrid.BEFORE){this.showHDragLine(_6,_3.getRowPageTop(_1));this._dragLine.afterRow=_1-1}else if(_2==isc.ListGrid.AFTER){this.showHDragLine(_6,(_3.getRowPageTop(_1)+_3.getRowSize(_1)));this._dragLine.afterRow=_1}else{return this._dragLine.hide()}
 if(this.recordDropMove){this.fireCallback("recordDropMove","viewer,recordNum,record,position",[this,_1,this.getRecord(_1),_2])}}
 ,isc.A.showHDragLine=function isc_ListGrid_showHDragLine(_1,_2){this.makeDragLine();this._dragLine.resizeTo(this.getViewportWidth()-(this.body.vscrollOn?this.body.getScrollbarSize():0),2);var _3=this.body.getPageTop(),_4=_3+this.body.getVisibleHeight();if(_2<_3)_2=_3;else if(_2>_4)_2=_4;this._dragLine.setPageRect(_1,_2);this._dragLine.show();this._dragLine.bringToFront()}
 ,isc.A.showDragLineForField=function isc_ListGrid_showDragLineForField(_1,_2){this.makeDragLine();if(_2==true){this._dragLine.resizeTo(2,this.headerHeight)}else{this._dragLine.resizeTo(2,this.getOuterViewportHeight())}
@@ -8777,7 +8800,7 @@
 ,isc.A.getSortFieldCount=function isc_ListGrid_getSortFieldCount(){return this.$73p?this.$73p.length:0}
 ,isc.A.isSortField=function isc_ListGrid_isSortField(_1){var _2=this.getSortSpecifier(_1)?true:false;if(!_2){var _3=this.getSpecifiedField(_1);if(_3&&_3.displayField&&!_3.optionDataSource){_2=this.getSortSpecifier(_3.displayField)?true:false}}
 return _2}
-,isc.A.getSortNumeralHTML=function isc_ListGrid_getSortNumeralHTML(_1,_2){return"<span class="+this.sortNumeralStyle+">"+(_2+1)+"</span>"}
+);isc.evalBoundary;isc.B.push(isc.A.getSortNumeralHTML=function isc_ListGrid_getSortNumeralHTML(_1,_2){return"<span class="+this.sortNumeralStyle+">"+(_2+1)+"</span>"}
 ,isc.A.clearSort=function isc_ListGrid_clearSort(){this.setSort(null)}
 ,isc.A.setSort=function isc_ListGrid_setSort(_1){if(this.logIsInfoEnabled("sorting"))this.logInfo("Entering setSort","sorting");if(!this.fields&&!this.getDataSource()){if(this.logIsInfoEnabled("sorting")){this.logInfo("setSort() not performing sort - no fields","sorting")}
 return false}
@@ -8812,7 +8835,7 @@
 if(_13>=0){if(this.logIsInfoEnabled("sorting")){this.logInfo("In setSort - $600 called with fieldNum: "+_13+" - sortField is now: "+this.sortField+"\ngetSortState() now returns: "+isc.echoAll(this.getSortState()),"sorting")}}
 if(this.sorter){this.sorter.setTitle(this.sorter.getTitle())}
 if(this.body&&this.showRecordComponents)delete this.body.$74k;this.$25a(this.$73y);if(this.logIsInfoEnabled("sorting"))this.logInfo("Leaving setSort","sorting");this.handleSortChanged(this.$73p);return true}
-);isc.evalBoundary;isc.B.push(isc.A.handleSortChanged=function isc_ListGrid_handleSortChanged(_1){this.sortChanged(_1);this.handleViewStateChanged()}
+,isc.A.handleSortChanged=function isc_ListGrid_handleSortChanged(_1){this.sortChanged(_1);this.handleViewStateChanged()}
 ,isc.A.sortChanged=function isc_ListGrid_sortChanged(_1){}
 ,isc.A.$34g=function isc_ListGrid__continueSort(){var _1=this.$34i;delete this.$34i;this.setSort(_1)}
 ,isc.A.$34h=function isc_ListGrid__cancelSort(){var _1;var _1=this.$34i?this.$34i[0]:null;delete this.$34i;if(_1!=null){var _2=this.getFieldNum(_1.property);if(_2!=-1&&this.sortFieldNum!=_2){this.header.deselectButton(_2)}}}
@@ -8852,7 +8875,7 @@
 var _3;if(this.data.isGroupedOutput&&this.originalData)_3=this.originalData;else this.originalData=_3=this.data;var _4=_3.getLength();if(isc.ResultSet&&isc.isA.ResultSet(_3)&&(!_3.lengthIsKnown()||!_3.rangeIsLoaded(0,_4-1)))
 {_3.getRange(0,_4-1);this.$52y=true;this.logInfo("postponing grouping until data is loaded","grouping");return}
 if(_4>=this.groupByMaxRecords){this.logInfo("Results too numerous - disabling grouping.","grouping");this.clearGroupBy();return}
-var _5;if(this.groupTree){if(this.canCollapseGroup&&this.retainOpenStateOnRegroup&&(this.groupTree.getLength()>0)&&(this.groupTree.$684==this.groupByField))
+var _5;if(this.groupTree){if(!_1&&this.canCollapseGroup&&this.retainOpenStateOnRegroup&&(this.groupTree.getLength()>0)&&(this.groupTree.$684==this.groupByField))
 {_5=[];this.$45q(this.groupTree,this.groupTree.getRoot(),_5,true)}
 this.ignore(this.groupTree,"changeDataVisibility");this.groupTree.destroy()}
 this.groupTree=this.createAutoChild("groupTree",{idField:this.groupIdField,parentIdField:this.groupParentIdField,titleProperty:"groupValue",childrenProperty:"groupMembers",parentProperty:"_groupTree_"+this.ID,showRoot:false,isGroupedOutput:true,alwaysSortGroupHeaders:(this.showGroupSummary&&this.showGroupSummaryInHeader),$684:this.groupByField,criteria:this.data.criteria,separateFolders:true,getCriteria:function(){return this.criteria},getChildren:function(_30,_31,_32,_33,_34,_35,_36){var _6=this.Super("getChildren",arguments);if(_36||_31==isc.Tree.FOLDERS_ONLY||_30==null||_30==this.getRoot())
@@ -9093,7 +9116,8 @@
 ,isc.A.getIndentHTML=function isc_TreeGrid_getIndentHTML(_1,_2){var _3=_1;if(!this.showRoot)_3--;var _4=(this.showConnectors?this.getOpenerIconSize(_2):this.indentSize);if(this.showConnectors&&this.showFullConnectors){var _5=this.data.$59a(_2);_5.remove(_1);if(!this.showRoot)_5.remove(0);if(_5.length!=0){if(!this.$59b){var _6=isc.Img.urlForState(this.connectorImage,null,null,"ancestor"),_7=this.getIconHTML(_6,null,this.cellHeight);this.$59c=_7}
 var _8=this.$348(_4),_9=isc.StringBuffer.create(isc.emptyString);_9.append("<NOBR>");for(var i=(this.showRoot?0:1);i<_1;i++){if(_5.contains(i))_9.append(this.$59c);else _9.append(_8)}
 _9=_9.release();return _9}}
-var _11=this.$348(_3*_4);if(isc.Browser.isIE9)_11="<NOBR>"+_11+"</NOBR>";return _11}
+var _11=this.$348(_3*_4);if(isc.Browser.isIE9||(isc.Browser.isStrict&&(isc.Browser.isIE7||isc.Browser.isIE8))){_11="<NOBR>"+_11+"</NOBR>"}
+return _11}
 ,isc.A.$348=function isc_TreeGrid__indentHTML(_1){if(_1==0)return isc.emptyString;var _2=isc.TreeGrid.$35c;if(_2==null)_2=isc.TreeGrid.$35c={};if(_2[_1]==null)_2[_1]=isc.Canvas.spacerHTML(_1,1);return _2[_1]}
 ,isc.A.getOpenIcon=function isc_TreeGrid_getOpenIcon(_1){if(this.showOpener==false)return null;if(!this.data)return null;if(isc.isA.Number(_1))_1=this.data.get(_1);if(_1==null)return null;if(_1.openIcon){return _1.openIcon}else{var _2=this.data.isFolder(_1),_3=_2,_4=_2,_5,_6;if(_2){var _7=this.data.getLoadState(_1);if(_7==isc.Tree.UNLOADED||(_7==isc.Tree.FOLDERS_LOADED&&this.displayNodeType!=isc.Tree.FOLDERS_ONLY))
 {_3=true;_4=false}else{_3=this.data.hasChildren(_1,this.displayNodeType);_4=_3&&this.data.isOpen(_1)}}
@@ -9132,15 +9156,17 @@
 );isc.B._maxIndex=isc.C+1;isc.defineClass("GridToolStrip","ObserverToolStrip");isc.A=isc.GridToolStrip.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.membersMargin=5;isc.A.addButtonDefaults={_constructor:"Img",size:16,layoutAlign:"center",src:"[SKIN]/actions/add.png",click:"this.creator.grid.startEditingNew()"};isc.A.removeButtonDefaults={_constructor:"Img",size:16,layoutAlign:"center",src:"[SKIN]/actions/remove.png",click:"this.creator.grid.removeSelectedData()"};isc.A.refreshButtonDefaults={_constructor:"Img",size:16,layoutAlign:"center",src:"[SKIN]/actions/refresh.png",click:"this.creator.grid.invalidateCache()"};isc.A.exportButtonDefaults={_constructor:"IButton",title:"Export to CSV",layoutAlign:"center",click:"this.creator.grid.exportData()"};isc.A.totalRowsIndicatorDefaults={_constructor:"GridTotalRowsIndicator",layoutAlign:"center"};isc.A.members=["autoChild:removeButton","autoChild:addButton","autoChild:exportButton","starSpacer","autoChild:refreshButton","autoChild:totalRowsIndicator"];isc.B.push(isc.A.initWidget=function isc_GridToolStrip_initWidget(){this.Super("initWidget",arguments)}
 );isc.B._maxIndex=isc.C+1;isc.ClassFactory.defineClass("RecordEditor","ListGrid");isc.A=isc.RecordEditor.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.cellSpacing=0;isc.A.cellPadding=0;isc.A.selectionType="none";isc.A.showRollOver=false;isc.A.baseStyle="recordEditorCell";isc.A.showHeader=false;isc.A.showEmptyMessage=false;isc.A.bodyOverflow="hidden";isc.A.fixedRecordHeights=true;isc.A.drawAllMaxCells=0;isc.A.skinImgDir="images/RecordEditor/";isc.A.saveImg={src:"[SKIN]add.png",width:16,height:16,showOver:true};isc.A.filterImg={src:"[SKIN]filter.png",width:16,height:16,showOver:true};isc.A.actionButtonStyle="normal";isc.A.listEndEditAction="next";isc.A.canEdit=true;isc.A.editByCell=false;isc.A.canFocus=false;isc.A.$jo=false;isc.A.bodyStyleName="normal";isc.B.push(isc.A.shouldAutoFitField=function isc_RecordEditor_shouldAutoFitField(){return false}
 ,isc.A.$32t=function isc_RecordEditor__showEditClickMask(){}
-);isc.B._maxIndex=isc.C+2;isc.A=isc.RecordEditor.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$65g="filter";isc.B.push(isc.A.initWidget=function isc_RecordEditor_initWidget(){if(this.sourceWidget!=null){var _1=this.sourceWidget;this.setWidth(_1.getWidth()-(_1.getLeftMargin()+_1.getRightMargin()));this.leaveScrollbarGap=this.sourceWidget.leaveScrollbarGap;if(this.isAFilterEditor()){this.actOnCellChange=this.sourceWidget.filterByCell;this.actOnKeypress=this.sourceWidget.filterOnKeypress}else{this.actOnCellChange=this.sourceWidget.saveByCell}
+);isc.B._maxIndex=isc.C+2;isc.A=isc.RecordEditor.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$65g="filter";isc.B.push(isc.A.initWidget=function isc_RecordEditor_initWidget(){if(this.sourceWidget!=null){var _1=this.sourceWidget;this.setWidth(_1.getVisibleWidth()-(_1.getLeftMargin()+_1.getRightMargin()));this.observe(_1,"resized","observer.sourceWidgetResized(observed)");this.leaveScrollbarGap=this.sourceWidget.leaveScrollbarGap;if(this.isAFilterEditor()){this.actOnCellChange=this.sourceWidget.filterByCell;this.actOnKeypress=this.sourceWidget.filterOnKeypress}else{this.actOnCellChange=this.sourceWidget.saveByCell}
 isc.addProperties(this.editFormDefaults,{autoFocus:false});this.fieldIDProperty=this.sourceWidget.fieldIDProperty;this.fields=this.sourceWidget.completeFields.duplicate();this.cellHeight=this.getInnerHeight()}else{this.logWarn("RecordEditor initialized without a sourceWidget property. "+"This widget is not supported as a standalone component.")}
 return this.Super(this.$oc)}
+,isc.A.destroy=function isc_RecordEditor_destroy(){this.ignore(this.sourceWidget,"resized");this.Super("destroy",arguments)}
+,isc.A.sourceWidgetResized=function isc_RecordEditor_sourceWidgetResized(_1){this.setWidth(_1.getVisibleWidth()-(_1.getLeftMargin()+_1.getRightMargin()))}
 ,isc.A.isAFilterEditor=function isc_RecordEditor_isAFilterEditor(){return(this.actionType==this.$65g)}
 ,isc.A.$315=function isc_RecordEditor__formatCellValue(_1,_2,_3,_4,_5){if(_3.isRemoveField)return"&nbsp;"
 return this.Super("$315",arguments)}
 ,isc.A.$425=function isc_RecordEditor__useDisplayFieldValue(_1){return false}
-,isc.A.draw=function isc_RecordEditor_draw(){var _1=this.findNextEditCell(0,0,1,true,true,false,true,true);if(_1==null){this.logWarn("No editable fields in this record editor."+(this.isAFilterEditor()?" Check the 'canFilter' property for each field in ":" Check the 'canEdit' property for each field in ")+this.sourceWidget.getID())}else{var _2=this.isAFilterEditor(),_3;if(_2){_3=this.sourceWidget.$32e()}else{var _4;_3={};for(var i=0;i<this.fields.length;i++){var _6=this.fields[i];if(_6.defaultValue!==_4){_3[_6[this.fieldIdProperty]]=_6.defaultValue}}}
-if(this.isAFilterEditor())this.setValuesAsCriteria(_3);else this.setEditValues(0,_3);var _7=_1[1];this.$31u(0,_7)}
+,isc.A.draw=function isc_RecordEditor_draw(){var _1=this.sourceWidget;this.setWidth(_1.getVisibleWidth()-(_1.getLeftMargin()+_1.getRightMargin()));var _2=this.findNextEditCell(0,0,1,true,true,false,true,true);if(_2==null){this.logWarn("No editable fields in this record editor."+(this.isAFilterEditor()?" Check the 'canFilter' property for each field in ":" Check the 'canEdit' property for each field in ")+this.sourceWidget.getID())}else{var _3=this.isAFilterEditor(),_4;if(_3){_4=this.sourceWidget.$32e()}else{var _5;_4={};for(var i=0;i<this.fields.length;i++){var _7=this.fields[i];if(_7.defaultValue!==_5){_4[_7[this.fieldIdProperty]]=_7.defaultValue}}}
+if(this.isAFilterEditor())this.setValuesAsCriteria(_4);else this.setEditValues(0,_4);var _8=_2[1];this.$31u(0,_8)}
 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);var _1=this.getEditForm();if(_1!=null&&this.$789){_1.setValuesAsCriteria(this.$789);delete this.$789;if(this.isAFilterEditor())_1.isSearchForm=true}
@@ -9203,7 +9229,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+40;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+42;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}}}}
@@ -9268,7 +9294,7 @@
 this.setOverflow(isc.Canvas.AUTO);this.adjustOverflow()}
 this.$35y=true}
 this.setVisibility(isc.Canvas.HIDDEN)}
-,isc.A.dataChanged=function isc_Menu_dataChanged(_1,_2,_3,_4){if(this.$35k&&this.$35m!=null){if(!this.$501(this.$35m)){this.destroy();return}}
+,isc.A.dataChanged=function isc_Menu_dataChanged(_1,_2,_3,_4){if(this.$35k&&this.$35m!=null){if(!this.$501(this.$35m)){if(this.$35q==null){this.setTreeNode(this.$35k.getRoot())}else{this.destroy(true);return}}}
 var _5=this.invokeSuper(isc.Menu,"dataChanged",_1,_2,_3,_4);delete this.$35y;if(this.autoSetDynamicItems){this.$795()}
 return _5}
 ,isc.A.$501=function isc_Menu__treeContains(_1){while(_1){if(this.$35k.isRoot(_1))return true;_1=this.$35k.getParent(_1)}
@@ -9335,8 +9361,10 @@
 return(this.itemIsEnabled(_1)?this.$356:this.$357)}
 ,isc.A.setUpKeyListening=function isc_Menu_setUpKeyListening(){var _1="";var _2,_3,_4=this.data.length;for(var i=0;i<_4;i++){_2=this.getItem(i);if(!_2)continue;_3=_2.keys;if(!_3)continue;if(!isc.isAn.Array(_3))_3=[_3];for(var _6,k=0,_8=_3.length;k<_8;k++){_6=_3[k];if(_6==null)continue;isc.Page.registerKey(_6,"target.menuKey("+i+");",this);if(!this.registeredKeys)this.registeredKeys=[];this.registeredKeys.add(_6)}
 if(!_2.keyTitle)this.setItemKeyTitle(_2,_3[0])}}
-,isc.A.destroy=function isc_Menu_destroy(){if(this.registeredKeys){for(var i=0;i<this.registeredKeys.length;i++){isc.Page.unregisterKey(this.registeredKeys[i],this)}}
-if(this.$352)this.$352.map("destroy");this.Super("destroy",arguments)}
+,isc.A.destroy=function isc_Menu_destroy(_1){if(this.registeredKeys){for(var i=0;i<this.registeredKeys.length;i++){isc.Page.unregisterKey(this.registeredKeys[i],this)}}
+if(this.$352)this.$352.map("destroy");this.Super("destroy",arguments);if(this.$35k){var _3=this.$35k;if(!_1&&_3.$31k&&isc.isA.Function(_3.destroy)&&(_3.componentId==this.ID))
+{_3.destroy()}else{this.$31j(_3)}
+delete this.$35k}}
 ,isc.A.menuKey=function isc_Menu_menuKey(_1){if(this.setDynamicItems)this.setDynamicItems();return this.selectMenuItem(_1)}
 ,isc.A.setItemKeyTitle=function isc_Menu_setItemKeyTitle(_1,_2){var _3;if(isc.isA.String(_2))_3=_2
 else if(isc.isAn.Object(_2)){if(_2.title)_3=_2.title
@@ -9830,7 +9858,7 @@
 ,isc.A.okClick=function isc_FieldEditor_okClick(){var _1=isc.clone(this.visibleFieldsGrid.data);var _2=isc.clone(this.hiddenFieldsGrid.data);_1.setProperty("visible",null);_2.setProperty("visible",false);_1.addList(_2);var _3=_1.getProperties(["name","visible"]);this.done(_1,_3);this.hide();this.destroy()}
 ,isc.A.done=function isc_FieldEditor_done(_1,_2){}
 );isc.B._maxIndex=isc.C+3}
-isc.ClassFactory.defineClass("FormulaBuilder","VLayout");isc.A=isc.FormulaBuilder.getPrototype();isc.A.vertical=true;isc.A.padding=10;isc.A.showFormulaField=true;isc.A.formulaFieldDefaults={type:"text",formItemType:"AutoFitTextAreaItem",height:20,width:"*",hoverWidth:300,keyPress:function(){if(this.form.creator.autoTest){this.fireOnPause("autoTest",{target:this.form.creator,methodName:"testFunction"},this.form.creator.autoTestDelay)}}};isc.A.showTitleField=true;isc.A.titleFieldDefaults={type:"text",width:"*"};isc.A.showHelpIcon=true;isc.A.helpIconDefaults={src:"[SKIN]actions/help.png"};isc.A.autoHideCheckBoxLabel="Auto hide fields used in formula";isc.A.showAutoHideCheckBox=true;isc.A.autoHideCheckBoxDefaults={type:"boolean"};isc.A.builderTypeText="Formula";isc.A.helpTextIntro="For basic arithmetic, type in symbols (+-/%) directly.<P>The following functions are also available:";isc.A.fieldKeyDefaults={_constructor:"ListGrid",leaveScrollbarGap:false,showResizeBar:true,autoFitData:"vertical",autoFitMaxRecords:6,autoFetchData:true,showRollOver:false,selectionType:"none",defaultFields:[{name:"mappingKey",title:this.keyColumnTitle,width:40},{name:"title",title:this.sourceFieldColumnTitle},{name:"name",showIf:"false"},{name:"type",showIf:"false"},{name:"length",showIf:"false"}]};isc.A.instructionsTextStart="The following fields are available for use in this \${builderType}";isc.A.instructionsDefaults={_constructor:"Label",height:1,extraSpace:10,overflow:"visible"};isc.A.titleFormDefaults={_constructor:"DynamicForm",extraSpace:5};isc.A.formulaFormDefaults={_constructor:"DynamicForm",extraSpace:5};isc.A.hideFieldsFormDefaults={_constructor:"DynamicForm",extraSpace:20};isc.A.sampleHeaderDefaults={_constructor:"Label",height:15,extraSpace:5};isc.A.sampleLabelDefaults={_constructor:"Canvas",height:40,width:"100%",align:"center",valign:"top",extraSpace:10,showHover:true,overflow:"hidden",styleName:"sampleOutput"};isc.A.messageLabelDefaults={_constructor:"Label",height:20,width:"100%",align:"right",valign:"center",overflow:"hidden",showHover:true};isc.A.buttonLayoutDefaults={_constructor:"HLayout",width:"100%",align:"right"};isc.A.cancelButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",width:70,extraSpace:10,click:function(){this.creator.completeEditing(true)}};isc.A.testButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",width:70,extraSpace:10,click:function(){this.creator.testFunction()}};isc.A.saveAddAnotherButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",autoFit:true,extraSpace:10,click:function(){if(this.creator.titleForm.validate())this.creator.saveAddAnother()}};isc.A.saveButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",autoFit:true,click:function(){if(this.creator.titleForm.validate())this.creator.save()}};isc.A.fieldType="float";isc.A.allowEscapedKeys=false;isc.A.invalidBuilderPrompt="Invalid \${builderType}: \${errorText}";isc.A.defaultErrorText="[No Explicit Error]";isc.A.invalidBlankPrompt="Invalid blank \${builderType}";isc.A.validBuilderPrompt="Valid \${builderType}";isc.A.helpWindowTitle="\${builderType} Help";isc.A.titleFieldTitle="Title";isc.A.defaultNewFieldTitle="New Field";isc.A.keyColumnTitle="Key";isc.A.sourceFieldColumnTitle="Source Field";isc.A.cancelButtonTitle="Cancel";isc.A.saveAddAnotherButtonTitle="Save & Add Another";isc.A.saveButtonTitle="Save";isc.A.saveConfirmationPrompt="Save changes to this \${builderType}?";isc.A.invalidGeneratedFunctionPrompt="The generated function is invalid - Check your \${builderType} and retry.";isc.A.sampleHeaderTitle="Sample:";isc.A.testButtonTitle="Test";isc.A=isc.FormulaBuilder.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.warnDuplicateTitlesMessage="Another field already has the title '${fieldTitle}'.  Continue anyway?";isc.A.autoTest=true;isc.A.autoTestDelay=200;isc.A.samplePrompt="<nobr>For Record: ${title}</nobr><br><nobr>Output: ${output}</nobr>";isc.B.push(isc.A.getValue=function isc_FormulaBuilder_getValue(){return this.formulaField?this.formulaField.getValue():null}
+isc.ClassFactory.defineClass("FormulaBuilder","VLayout");isc.A=isc.FormulaBuilder.getPrototype();isc.A.vertical=true;isc.A.padding=10;isc.A.showFormulaField=true;isc.A.formulaFieldDefaults={type:"text",formItemType:"AutoFitTextAreaItem",height:20,width:"*",hoverWidth:300,keyPress:function(){if(this.form.creator.autoTest){this.fireOnPause("autoTest",{target:this.form.creator,methodName:"testFunction"},this.form.creator.autoTestDelay)}}};isc.A.showTitleField=true;isc.A.titleFieldDefaults={type:"text",width:"*"};isc.A.showHelpIcon=true;isc.A.helpIconDefaults={src:"[SKIN]actions/help.png"};isc.A.autoHideCheckBoxLabel="Auto hide fields used in formula";isc.A.showAutoHideCheckBox=true;isc.A.autoHideCheckBoxDefaults={type:"boolean"};isc.A.builderTypeText="Formula";isc.A.helpTextIntro="For basic arithmetic, type in symbols (+-/%) directly.<P>The following functions are also available:";isc.A.fieldKeyDefaults={_constructor:"ListGrid",leaveScrollbarGap:false,showResizeBar:true,autoFitData:"vertical",autoFitMaxRecords:6,autoFetchData:true,showRollOver:false,selectionType:"none",defaultFields:[{name:"mappingKey",title:this.keyColumnTitle,width:40},{name:"title",title:this.sourceFieldColumnTitle},{name:"name",showIf:"false"},{name:"type",showIf:"false"},{name:"length",showIf:"false"}]};isc.A.instructionsTextStart="The following fields are available for use in this \${builderType}";isc.A.instructionsDefaults={_constructor:"Label",height:1,extraSpace:10,overflow:"visible"};isc.A.titleFormDefaults={_constructor:"DynamicForm",extraSpace:5};isc.A.formulaFormDefaults={_constructor:"DynamicForm",extraSpace:5};isc.A.hideFieldsFormDefaults={_constructor:"DynamicForm",extraSpace:20};isc.A.sampleHeaderDefaults={_constructor:"Label",height:15,extraSpace:5};isc.A.sampleLabelDefaults={_constructor:"Canvas",height:40,width:"100%",align:"center",valign:"top",extraSpace:10,showHover:true,overflow:"hidden",styleName:"sampleOutput"};isc.A.messageLabelDefaults={_constructor:"Label",height:20,width:"100%",align:"right",valign:"center",overflow:"hidden",showHover:true};isc.A.buttonLayoutDefaults={_constructor:"HLayout",width:"100%",align:"right"};isc.A.cancelButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",autoFit:true,extraSpace:10,click:function(){this.creator.completeEditing(true)}};isc.A.testButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",autoFit:true,extraSpace:10,click:function(){this.creator.testFunction()}};isc.A.saveAddAnotherButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",autoFit:true,extraSpace:10,click:function(){if(this.creator.titleForm.validate())this.creator.saveAddAnother()}};isc.A.saveButtonDefaults={_constructor:"IButton",autoParent:"buttonLayout",autoFit:true,click:function(){if(this.creator.titleForm.validate())this.creator.save()}};isc.A.fieldType="float";isc.A.allowEscapedKeys=false;isc.A.invalidBuilderPrompt="Invalid \${builderType}: \${errorText}";isc.A.defaultErrorText="[No Explicit Error]";isc.A.invalidBlankPrompt="Invalid blank \${builderType}";isc.A.validBuilderPrompt="Valid \${builderType}";isc.A.helpWindowTitle="\${builderType} Help";isc.A.titleFieldTitle="Title";isc.A.defaultNewFieldTitle="New Field";isc.A.keyColumnTitle="Key";isc.A.sourceFieldColumnTitle="Source Field";isc.A.cancelButtonTitle="Cancel";isc.A.saveAddAnotherButtonTitle="Save & Add Another";isc.A.saveButtonTitle="Save";isc.A.saveConfirmationPrompt="Save changes to this \${builderType}?";isc.A.invalidGeneratedFunctionPrompt="The generated function is invalid - Check your \${builderType} and retry.";isc.A.sampleHeaderTitle="Sample:";isc.A.testButtonTitle="Test";isc.A=isc.FormulaBuilder.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.warnDuplicateTitlesMessage="Another field already has the title '${fieldTitle}'.  Continue anyway?";isc.A.autoTest=true;isc.A.autoTestDelay=200;isc.A.samplePrompt="<nobr>For Record: ${title}</nobr><br><nobr>Output: ${output}</nobr>";isc.B.push(isc.A.getValue=function isc_FormulaBuilder_getValue(){return this.formulaField?this.formulaField.getValue():null}
 ,isc.A.setValue=function isc_FormulaBuilder_setValue(_1){if(this.formulaField){this.formulaField.setValue(_1)}}
 ,isc.A.setFormula=function isc_FormulaBuilder_setFormula(_1){this.setValue(_1)}
 ,isc.A.getFieldIdProperty=function isc_FormulaBuilder_getFieldIdProperty(){return this.getClass().getFieldIdProperty(this.component)}
@@ -9909,7 +9937,7 @@
 {_4[_7[_3]]=1}else _4[_7[_3]]=_7[_3];else
 _4[_7[_3]]=_7[_3]}}
 return _4}
-,isc.A.generateFunction=function isc_c_FormulaBuilder_generateFunction(_1,_2,_3){var _4=isc.SB.create(),_5=_1.text,_6=this.getFieldIdProperty(_3),_7=this.getFieldDetailsFromValue(_1.formulaVars,_2,_3),_8=_7.usedFields,_9=_7.missingFields;_8=_8.sortByProperties(["mappingKey"],[false],[function(_12,_16,_17){var _10=_12[_16];if(_10.length==1)_10='  '+_10;else if(_10.length==2)_10=' '+_10;return _10}]);if(_9.length==0){if(_8.length>0){_4.append("var ");for(var i=0;i<_8.length;i++){var _12=_8.get(i);if(i>0)_4.append("        ");_4.append(_12.mappingKey,"= (record['",_12[_6],"'] ? ","record['",_12[_6],"'] : component ? ","component.getStandaloneFieldValue(record, '",_12[_6],"', true) : 0)");_4.append(i==_8.length-1?";":",","\n");if(_1.allowEscapedKeys){_5=_5.replaceAll("#"+_12.mappingKey,_12.mappingKey);_5=_5.replaceAll("#{"+_12.mappingKey+"}",_12.mappingKey)}}
+,isc.A.generateFunction=function isc_c_FormulaBuilder_generateFunction(_1,_2,_3){var _4=isc.SB.create(),_5=_1.text,_6=this.getFieldIdProperty(_3),_7=this.getFieldDetailsFromValue(_1.formulaVars,_2,_3),_8=_7.usedFields,_9=_7.missingFields;_8=_8.sortByProperties(["mappingKey"],[false],[function(_12,_16,_17){var _10=_12[_16];if(_10.length==1)_10='  '+_10;else if(_10.length==2)_10=' '+_10;return _10}]);if(_9.length==0){if(_8.length>0){_4.append("var ");for(var i=0;i<_8.length;i++){var _12=_8.get(i);if(i>0)_4.append("        ");_4.append(_12.mappingKey,"= (record['",_12[_6],"'] ? ","record['",_12[_6],"'] : component && component.getStandaloneFieldValue ? ","component.getStandaloneFieldValue(record, '",_12[_6],"', true) : 0)");_4.append(i==_8.length-1?";":",","\n");if(_1.allowEscapedKeys){_5=_5.replaceAll("#"+_12.mappingKey,_12.mappingKey);_5=_5.replaceAll("#{"+_12.mappingKey+"}",_12.mappingKey)}}
 _4.append("\n")}
 var _13=isc.MathFunction.getRegisteredFunctions();if(_13&&_13.length>0){_4.append("var functions=isc.MathFunction.getRegisteredFunctionIndex(),\n");for(var i=0;i<_13.length;i++){var _12=_13.get(i);_4.append("        ");_4.append(_12.name,"=","functions.",_12.name,".jsFunction");_4.append(i==_13.length-1?";":",","\n")}
 _4.append("\n")}
@@ -9939,7 +9967,7 @@
 ,isc.A.testFunction=function isc_c_SummaryBuilder_testFunction(_1,_2,_3,_4){var _5={},_6=this.getFieldIdProperty(_3);try{_5.component=_3;_5.record=this.getTestRecord(_3,_4);if(_2.text==""){_5.emptyTestValue=true;return _5}
 _5.jsFunction=this.generateFunction(_2,_4,_3);_5.result=_5.jsFunction(_5.record,_1[_6],_3)}catch(err){if(!_5.jsFunction)_5.failedGeneration=true;_5.failedExecution=true;_5.errorText=err.message}
 return _5}
-,isc.A.generateFunction=function isc_c_SummaryBuilder_generateFunction(_1,_2,_3){var _4=isc.SB.create(),_5=_1.text,_6=this.getFieldIdProperty(_3),_7=this.getFieldDetailsFromValue(_1.summaryVars,_2,_3),_8=_7.usedFields,_9=_7.missingFields;_8=_8.sortByProperties(["mappingKey"],[false],[function(_12,_15,_16){var _10=_12[_15];if(_10.length==1)_10='  '+_10;else if(_10.length==2)_10=' '+_10;return _10}]);if(_8.length>0){_4.append("var ");for(var i=0;i<_8.length;i++){var _12=_8.get(i);if(i>0)_4.append("        ");_4.append(_12.mappingKey,"=(component ? component.getStandaloneFieldValue(record,'",_12[_6],"') : record['",_12[_6],"']");_4.append(i==_8.length-1?");":"),","\n");_5=_5.replaceAll("#{"+_12.mappingKey+"}","'+"+_12.mappingKey+"+'");_5=_5.replaceAll("#"+_12.mappingKey,"'+"+_12.mappingKey+"+'")}
+,isc.A.generateFunction=function isc_c_SummaryBuilder_generateFunction(_1,_2,_3){var _4=isc.SB.create(),_5=_1.text,_6=this.getFieldIdProperty(_3),_7=this.getFieldDetailsFromValue(_1.summaryVars,_2,_3),_8=_7.usedFields,_9=_7.missingFields;_8=_8.sortByProperties(["mappingKey"],[false],[function(_12,_15,_16){var _10=_12[_15];if(_10.length==1)_10='  '+_10;else if(_10.length==2)_10=' '+_10;return _10}]);if(_8.length>0){_4.append("var ");for(var i=0;i<_8.length;i++){var _12=_8.get(i);if(i>0)_4.append("        ");_4.append(_12.mappingKey,"=(component && component.getStandaloneFieldValue ? component.getStandaloneFieldValue(record,'",_12[_6],"') : record['",_12[_6],"']");_4.append(i==_8.length-1?");":"),","\n");_5=_5.replaceAll("#{"+_12.mappingKey+"}","'+"+_12.mappingKey+"+'");_5=_5.replaceAll("#"+_12.mappingKey,"'+"+_12.mappingKey+"+'")}
 _4.append("\n")}
 _5=_5.replace(/(#({[A-Z][A-Z]?}|[A-Z][A-Z]?))/g,(_3&&_3.missingSummaryFieldValue)||"-");if(_5.substr(0,2)=="'+"){_5=_5.substr(2)}else if(_5.substr(0,1)!="'"){_5="'"+_5}
 if(_5.substr(_5.length-2)=="+'"){_5=_5.substr(0,_5.length-2)}else if(_5.substr(_5.length-1)!="'"){_5=_5+"'"}
@@ -10048,7 +10076,7 @@
 );isc.B._maxIndex=isc.C+17;isc._moduleEnd=isc._Grids_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('Grids 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 'Grids'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -10059,7 +10087,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -10174,8 +10202,8 @@
 ,isc.A.showPrevYear=function isc_DateChooser_showPrevYear(){this.year--;this.markForRedraw()}
 ,isc.A.showNextYear=function isc_DateChooser_showNextYear(){this.year++;this.markForRedraw()}
 ,isc.A.showYear=function isc_DateChooser_showYear(_1){this.year=_1;if(this.yearMenu)this.yearMenu.hide();this.markForRedraw()}
-,isc.A.showYearMenu=function isc_DateChooser_showYearMenu(){if(!this.yearMenu){var _1=[[]],_2=(this.endYear-this.startYear),_3=Math.round(_2/ 10)>3?Math.round(_2/ 10):3;for(var i=0;i<=(this.endYear-this.startYear);i++){var _5=i+this.startYear;_1[_1.length-1].add({contents:_5,action:this.getID()+".showYear("+_5+")"});if((i+1)%_3==0)_1.add([])}
-this.yearMenu=isc.ButtonTable.newInstance({styleName:this.yearMenuStyle,top:this.getPageTop()+this.headerHeight,width:Math.min(this.getWidth(),(40*_3)),height:Math.min(this.getHeight()-this.headerHeight,80),items:_1,visibility:isc.Canvas.HIDDEN,baseButtonStyle:this.baseButtonStyle});this.yearMenu.setPageLeft(this.getPageLeft()+((this.width-this.yearMenu.width)/2))}else{var _6=this.getPageTop()+this.headerHeight,_7=Math.min(this.getWidth(),(40*_3)),_8=Math.min(this.getHeight()-this.headerHeight,80),_9=this.getPageLeft()+((this.width-_7)/2)
+,isc.A.showYearMenu=function isc_DateChooser_showYearMenu(){var _1=(this.endYear-this.startYear),_2=Math.round(_1/ 10)>3?Math.round(_1/ 10):3;if(!this.yearMenu){var _3=[[]];for(var i=0;i<=(this.endYear-this.startYear);i++){var _5=i+this.startYear;_3[_3.length-1].add({contents:_5,action:this.getID()+".showYear("+_5+")"});if((i+1)%_2==0)_3.add([])}
+this.yearMenu=isc.ButtonTable.newInstance({styleName:this.yearMenuStyle,top:this.getPageTop()+this.headerHeight,width:Math.min(this.getWidth(),(40*_2)),height:Math.min(this.getHeight()-this.headerHeight,80),items:_3,visibility:isc.Canvas.HIDDEN,baseButtonStyle:this.baseButtonStyle});this.yearMenu.setPageLeft(this.getPageLeft()+((this.width-this.yearMenu.width)/2))}else{var _6=this.getPageTop()+this.headerHeight,_7=Math.min(this.getWidth(),(40*_2)),_8=Math.min(this.getHeight()-this.headerHeight,80),_9=this.getPageLeft()+((this.width-_7)/2)
 this.yearMenu.setPageRect(_9,_6,_7,_8)}
 this.yearMenu.showModal()}
 ,isc.A.dateClick=function isc_DateChooser_dateClick(_1,_2,_3){var _4=this.chosenDate=Date.createLogicalDate(_1,_2,_3);this.month=_2;this.year=_1;this.dataChanged();if(window.dateClickCallback){if(isc.isA.String(window.dateClickCallback)){window.dateClickCallback=new Function("date",window.dateClickCallback)}
@@ -10804,7 +10832,7 @@
 {if(_1.dataSource){_6=this.$12k}else if(_1.valueMap||_1.optionDataSource||_1.displayField){_6=(_1.showValueIconOnly?this.$12i:this.$12b)}else if(_2&&(_1.length&&_1.length>_2.longTextEditorThreshold))
 {_6=_2.longTextEditorType}else{_6=_5}}}
 return _6}
-,isc.A.canEditField=function isc_c_DynamicForm_canEditField(_1,_2){if(_1.canEdit!=null)return _1.canEdit;if(_2.canEdit!=null)return _2.canEdit;if(_1.canSave==false&&(!_2||!_2.$66m)){return false}
+,isc.A.canEditField=function isc_c_DynamicForm_canEditField(_1,_2){var _3=(_2&&_2.canEditFieldAttribute)||"canEdit";if(_1[_3]!=null)return _1[_3];if(_2.canEdit!=null)return _2.canEdit;if(_1.canSave==false&&(!_2||!_2.$66m)){return false}
 return true}
 ,isc.A.$mu=function isc_c_DynamicForm__getItemInfoFromElement(_1,_2){var _3=_2?_2.getClipHandle():document,_4={},_5=isc.DynamicForm.$89,_6=isc.DynamicForm.$9a,_7=isc.DynamicForm.$9b,_8=isc.DynamicForm.$9c,_9=isc.DynamicForm.$9e,_10=isc.DynamicForm.$9g;while(_1&&_1!=_3&&_1!=document){var _11=_1.getAttribute?_1.getAttribute(_5):null;if(_11!=null&&!isc.isAn.emptyString(_11)){var _12=window[_11];if(_12&&!_12.destroyed){_4.item=_12;var _13=_12.$681(_1);if(_13!=null){if(this.logIsDebugEnabled("inactiveEditorHTML")){this.logDebug("Event occurred over inactive HTML for item:"+_12+" inactiveContext:"+this.echo(_13),"inactiveEditorHTML")}
 _4.inactiveContext=_13}
@@ -11109,7 +11137,7 @@
 return this.$150}
 ,isc.A.getElementHTML=function isc_FormItem_getElementHTML(_1,_2){var _3=isc.SB.create(),_4=this.$15m();var _5=this.$872(),_6,_7;if(_5){var _8=this.$154(),_9=this.isDisabled()?null:this.accessKey;if(_4){_7=isc.Canvas.getFocusProxyString(this.getID(),false,0,0,this.getTextBoxWidth(),this.getTextBoxHeight(),this.isVisible(),!this.isDisabled(),_8,_9,false)}else{var _10=isc.SB.create();if(_9!=null)_10.append(this.$14e,_9,this.$ob);_10.append(this.$14f,_8,this.$ob);_6=_10.release()}}
 if(_7!=null)_3.append(_7);var _11=this.$14g;_11[1]=this.$15g();_11[3]=this.getID();_11[6]=this.getTextBoxStyle();_11[8]=this.getTextBoxCSS();_11[10]=_6;_11[12]=this.$xq(_2);_11[13]=(this.showValueIconOnly?null:_1);_3.append(_11);return _3.release()}
-,isc.A.$15m=function isc_FormItem__writeOutFocusProxy(){return(isc.Browser.isSafari||(isc.Browser.isMoz&&isc.Browser.geckoVersion<20051111))&&this.$kk()&&!this.hasDataElement()}
+,isc.A.$15m=function isc_FormItem__writeOutFocusProxy(){if(this.useFocusProxy!=null)return this.useFocusProxy;return(isc.Browser.isMoz&&isc.Browser.geckoVersion<20051111)&&this.$kk()&&!this.hasDataElement()}
 ,isc.A.$155=function isc_FormItem__getItemElementAttributeHTML(){if(!isc.FormItem.$156){isc.FormItem.$156=[" ",isc.DynamicForm.$89,"='",null,"' ",isc.DynamicForm.$9a,"='",isc.DynamicForm.$9b,"'"]}
 isc.FormItem.$156[3]=this.getItemID();return isc.FormItem.$156.join(isc.emptyString)}
 ,isc.A.getErrors=function isc_FormItem_getErrors(){if(this.form)return this.form.getFieldErrors(this)}
@@ -11715,28 +11743,30 @@
 ,isc.A.parseValueExpressions=function isc_FormItem_parseValueExpressions(_1,_2){var _3=this.getType(),_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={operator:"and",criteria:[]},_8=_7.criteria,_9=[],_10=this.$85m(),_11=isc.DS.get(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=_11?_11.getSearchOperator(_12):{id:_12};var _14=_13.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 _15=_5["..."],_16;if(_15)_16=(_14?_15.find("caseInsensitive",true):_15[0]);var _17=_11?_11.getField(_2):null;if(_17&&isc.SimpleType.inheritsFrom(_17.type,"date")){_9[0]=new Date(Date.parse(_9[0]));_9[0].logicalDate=true;_9[1]=new Date(Date.parse(_9[1]));_9[1].logicalDate=true}else if(_17&&_17.type=="text"){if(!_9[1].endsWith(this.$87p)){_9[1]+=this.$87p}}
 return{fieldName:_2,operator:_16.ID,start:_9[0],end:_9[1]}}}else{_9=[_1]}
 var _18=[" and "," or ","..."];for(var i=0;i<_9.length;i++){var _20=_9[i].trim(),_21={fieldName:_2}
-_17=_11?_11.getField(_2):null,_22=(_17?_17&&isc.SimpleType.inheritsFrom(_17.type,"date"):false);for(var _23 in _5){if(!_23)continue;var _24=_5[_23],_25=false,_26;if(_23=="=="&&_20.startsWith("=")&&!_20.startsWith("==")){_25=true}
+_17=_11?_11.getField(_2):null,_22=(_17?_17&&isc.SimpleType.inheritsFrom(_17.type,"date"):false);for(var _23 in _5){if(!_23)continue;var _24=_5[_23],_25=false,_26;if(_23=="=="&&isc.isA.String(_20)&&_20.startsWith("=")&&!_20.startsWith("==")&&!_20.startsWith("=("))
+{_25=true}
 if(_24&&_24.length){_26=_24.find("insensitive",_14)||_24[0]}
-if(!_26||!_26.symbol||_18.contains(_26.symbol))continue;if(_6.contains(_26.symbol)&&_20.startsWith(_26.symbol)||_25){_20=_20.substring(_26.symbol.length-(_25?1:0)).trim();if(_26.closingSymbol){if(_20.endsWith(_26.closingSymbol)){_20=_20.substring(0,_20.length-1)}}
+if(!_26||!_26.symbol||_18.contains(_26.symbol))continue;if(_6.contains(_26.symbol)&&((isc.isA.String(_20)&&_20.startsWith(_26.symbol))||_25))
+{_20=_20.substring(_26.symbol.length-(_25?1:0)).trim();if(_26.closingSymbol){if(_20.endsWith(_26.closingSymbol)){_20=_20.substring(0,_20.length-_26.closingSymbol.length)}}
 if(_22){_20=new Date(Date.parse(_20));_20.logicalDate=true}
 _21.operator=_26.ID;if(_26.processValue){_20=_26.processValue(_20,_11)}
 if(_26.wildCard&&isc.isA.String(_20)&&_20.contains(_26.wildCard)){var _27=_20.split(_26.wildCard),_28;if(_27.length>1){for(var _29=0;_29<_27.length;_29++){var _30=_27[_29];if(!_30||_30.length==0)continue;_28={fieldName:_2,value:_30};var _31=_29>0,_32=_27.length-1>_29;if(_31&&_32){_28.operator=_14?"iContains":"contains"}else if(_31){_28.operator=_14?"iEndsWith":"endsWith"}else if(_32){_28.operator=_14?"iStartsWith":"startsWith"}
 _7.criteria.add(_28)}
-_21.operator=null}}else{if(_26.valueType!="none")_21.value=_20}
+this.$877=true;_21.operator=null}}else{if(_26.valueType!="none")_21.value=_20}
 break}}
 if(_21.operator)_7.criteria.add(_21)}
 if(_7.criteria.length==1)_7=_7.criteria[0];if(_7.criteria&&_7.criteria.length==0)_7=null;return _7}
 ,isc.A.buildValueExpressions=function isc_FormItem_buildValueExpressions(_1){var _2=_1,_3=" "+_2.operator+" ",_4=[],_5="",_6=isc.DS.get(this.form.expressionDataSource||this.form.dataSource);var _7=isc.DynamicForm.getOperatorIndex(),_8=isc.getKeys(_7),_9=this.validOperators;if(!_9){_9=[];for(var j=0;j<_8.length;j++){var _11=_7[_8[j]];_9.addList(_11.getProperty("ID"))}}
 var _12=this.getOperator();if(_12)_9.add(_12);var _13=_6?_6.getSearchOperator(_12):{id:_12};var _14=_13.caseInsensitive,_15=false,_16;if(!_2.criteria){var _17=[_2];_2={criteria:_17}}
-var _18=["startsWith","iStartsWith","contains","iContains","endsWith","iEndsWith"];if(this.useWildCardsByDefault&&this.type=="text"&&(_2.criteria.length>1||(_2.criteria.length==1&&_18.contains(_2.criteria[0].operator))))
+var _18=["startsWith","iStartsWith","contains","iContains","endsWith","iEndsWith"];if(this.useWildCardsByDefault&&this.type=="text"&&(_2.criteria.length>1||(_2.criteria.length==1&&_18.contains(_2.criteria[0].operator)&&_2.criteria[0].value&&_2.criteria[0].value.startsWith("=")&&!_2.criteria[0].value.startsWith("==")&&!_2.criteria[0].value.startsWith("=("))||this.$877))
 {_15=true;var _11=_7["=="];var _19=_11.find({"ID":"equals"});_16=_19.wildCard;_3=""}
 for(var i=0;i<_2.criteria.length;i++){var _21=_2.criteria[i],_22=_21.operator,_23=_21.value,_24=_6?_6.getField(_21.fieldName):null;for(var j=0;j<_8.length;j++){var _11=_7[_8[j]];var _25=_11.find({"ID":_22});if(_25){_22=_25;break}}
-if(isc.isA.String(_22)){this.logWarn("Unknown filter-expression operator: '"+_22+"'")}else if(_15){if(_22.ID=="contains"||_22.ID=="iContains"){if(_4[_4.length-1]!=_16)_4.add(_16);_4.add(_21.value);_4.add(_16)}else if(_22.ID=="startsWith"||_22.ID=="iStartsWith"){_4.add(_21.value);_4.add(_16)}else if(_22.ID=="endsWith"||_22.ID=="iEndsWith"){if(_4[_4.length-1]!="*")_4.add(_16);_4.add(_21.value)}}else if(_22.ID==_12){_4.add(_21.value)}else if(_22.ID=="betweenInclusive"||_22.ID=="iBetweenInclusive"){_3="...";var _26=_21.end;if(_24&&_24.type=="text"){if(_26&&_26.endsWith(this.$87p)){_26=_26.replace(this.$87p,"")}}
-_4.addList([_21.start,_26])}else if(_9.contains(_22.ID)){var _27=_22;if(_27.ID!=_13){_23=(_27&&_27.symbol?_27.symbol:"")+_23;if(_27.closingSymbol)_23+=_27.closingSymbol}
+if(isc.isA.String(_22)){this.logWarn("Unknown filter-expression operator: '"+_22+"'")}else if(_15){if(_22.ID=="contains"||_22.ID=="iContains"){if(_4[_4.length-1]!=_16)_4.add(_16);_4.add(_21.value);_4.add(_16)}else if(_22.ID=="startsWith"||_22.ID=="iStartsWith"){_4.add(_21.value);_4.add(_16)}else if(_22.ID=="endsWith"||_22.ID=="iEndsWith"){if(_4[_4.length-1]!=_16)_4.add(_16);_4.add(_21.value)}}else if(_22.ID==_12){_4.add(_21.value)}else if(_22.ID=="betweenInclusive"||_22.ID=="iBetweenInclusive"){_3="...";var _26=_21.end;if(_24&&_24.type=="text"){if(_26&&_26.endsWith(this.$87p)){_26=_26.replace(this.$87p,"")}}
+_4.addList([_21.start,_26])}else if(_22.ID=="isNull"||_22.ID=="notNull"){_4.add(_22.symbol)}else if(_9.contains(_22.ID)){var _27=_22;if(isc.isAn.Array(_23))_23=_23.join(_22.valueSeparator);if(_27.ID!=_13){_23=(_27&&_27.symbol?_27.symbol:"")+_23;if(_27.closingSymbol)_23+=_27.closingSymbol}
 _4.add(_23)}else if(_22.ID.startsWith("i")){var _28=_22.ID.substring(1),_29=_28.charAt(0);_28=_29.toLowerCase()+_28.substring(1)
 if(_9.contains(_28)){var _30=_8.find("ID",_28);if(_30.ID!=_13){_23=(_27&&_27.symbol?_27.symbol:"")+_23;if(_27.closingSymbol)_23+=_27.closingSymbol}
 _4.add(_23)}}}
-if(_15)_4.addAt("=",0);_5=_4.join((_4.length>1?_3:""));return _5.length>0?_5:null}
+if(_15)_4.addAt("=",0);_5=_4.join((_4.length>1?_3:""));delete this.$877;return _5.length>0?_5:null}
 );isc.B._maxIndex=isc.C+417;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"}}
@@ -11833,7 +11863,7 @@
 ,isc.A.addValidatorDefinitions=function isc_c_Validator_addValidatorDefinitions(_1){if(!_1||!isc.isAn.Object(_1))return;for(var _2 in _1){if(this.$74u[_2]){isc.logWarn("addValidatorDefinitions: Validator definition already exists "+"for type "+_2+". Replacing.")}}
 isc.addProperties(this.$74u,_1)}
 );isc.B._maxIndex=isc.C+8;isc.ClassFactory.defineClass("ContainerItem","FormItem");isc.A=isc.ContainerItem.getPrototype();isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.cellBorder=0;isc.A.recalculateItemsOnRedraw=false;isc.A.$125=false;isc.A.changeOnKeypress=false;isc.ContainerItem.addMethods(isc.applyMask(isc.DynamicForm.getPrototype(),["getTableStartHTML","$11n","$11o","getCellStartHTML","$11g","getCellEndHTML","$11h","getTitleAlign","getItemPromptHTML","getItem","fieldIdProperty"]))
-isc.A=isc.ContainerItem.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_ContainerItem_init(){this.Super("init",arguments);this.setItems(this.items?this.items:null)}
+isc.A=isc.ContainerItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.writeOutLabelTag=true;isc.B.push(isc.A.init=function isc_ContainerItem_init(){this.Super("init",arguments);this.setItems(this.items?this.items:null)}
 ,isc.A.destroy=function isc_ContainerItem_destroy(){this.Super("destroy",arguments);if(this.items){for(var i=0;i<this.items.length;i++){this.items[i].destroy()}}}
 ,isc.A.setItems=function isc_ContainerItem_setItems(_1){var _2=this.items?this.items:null;if(_1)this.items=_1;else _1=this.items;if(!this.items)return null;this.logDebug("Creating "+this.items.length+" contained items");var _3=false;for(var _4=0;_4<_1.length;_4++){var _5=_1[_4];if(!_5){_1.removeItem(_4--);continue}
 isc.addMethods(_5,{$154:function(){return this.parentItem.$154()}});_5.containerWidget=this.containerWidget;_5.parentItem=this;_5.eventParent=this;_5.form=this.form;_5.showTitle=false;if(!isc.isA.FormItem(_5))_1[_4]=_5=isc.FormItemFactory.makeItem(_5);if(this.accessKey!=null&&!_3&&_5.$kk()){_5.accessKey=this.accessKey;_3=true}
@@ -11841,7 +11871,7 @@
 if(this.isDrawn()){if(_2&&_2!=this.items){this.$60r={};for(var i=0;i<_2.length;i++){var _7=_2[i];if(!_1.contains(_2[i])){this.$60r[_2[i].getID()]=true}}}}
 this.redraw()}
 ,isc.A.getItems=function isc_ContainerItem_getItems(){return this.items}
-,isc.A.getTitleHTML=function isc_ContainerItem_getTitleHTML(){var _1,_2;var _3=this.getTitle();if(!this.getCanFocus()){return _3}
+,isc.A.getTitleHTML=function isc_ContainerItem_getTitleHTML(){var _1,_2;var _3=this.getTitle();if(!this.writeOutLabelTag||!this.getCanFocus()){return _3}
 if(this.accessKey!=null){_3=isc.Canvas.hiliteCharacter(_3,this.accessKey)}
 for(var i=0;i<this.items.length;i++){if(this.items[i].getCanFocus()&&this.items[i].hasDataElement()){_2=this.items[i];break}}
 if(!_2){return _3}
@@ -11897,19 +11927,20 @@
 ,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+26;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)}
+this.showValue(_1,_2,this.form,this)}
 ,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+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.A.editCriteriaInInnerForm=true;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.A.editCriteriaInInnerForm=true;isc.B.push(isc.A.init=function isc_CanvasItem_init(){this.Super("init",arguments);this.$18y(this.form,this)}
 ,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.click=function(){this.Super("click",arguments);if(this.canvasItem)this.canvasItem.handleClick()}
+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(!isc.isA.StatefulCanvas(this)&&this.canvasItem){this.canvasItem.handleClick()}}
+_2.handleActivate=function(){this.Super("handleActivate",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}}}}
@@ -11956,7 +11987,7 @@
 return this.Super("canEditCriterion",arguments)}
 ,isc.A.getCriterion=function isc_CanvasItem_getCriterion(){if(this.editCriteriaInInnerForm&&isc.isA.DynamicForm(this.canvas)){return this.canvas.getValuesAsAdvancedCriteria()}else return this.Super("getCriterion",arguments)}
 ,isc.A.setCriterion=function isc_CanvasItem_setCriterion(_1){if(this.editCriteriaInInnerForm&&isc.isA.DynamicForm(this.canvas)){this.canvas.setValuesAsCriteria(_1,true)}else return this.Super("setCriterion",arguments)}
-);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.formatOnFocusChange=false;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:"form,item",showValue:"displayValue,dataValue,form,item"});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.formatOnFocusChange=false;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"}
@@ -12179,7 +12210,8 @@
 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])}}}}
-if(!_5)_3=_1.duplicate();if(this.showAllOptions&&_4.length>1)_3.addList(_4);return _3},shouldHideEmptyPickList:function(){if(this.hideEmptyPickList!=null)return this.hideEmptyPickList;return!this.$19m()},getPickListPosition:function(){return[this.getPageLeft(),this.getPageTop()+this.getHeight()]},placePickList:function(){var _1=this.pickList,_2=this.getPickListPosition(),_3=_2[0],_4=_2[1];if(this.allowPickListToClip)_1.setRect([_3,_4]);else _1.placeNear(_3,_4)},pickValue:function(_1){}});isc.A=isc.PickList;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.optionsFromValueMap=function isc_c_PickList_optionsFromValueMap(_1){var _2=_1.getValueMap(),_3=[];if(_2==null)_2=[];var _4=_1.getValueFieldName(),_5=_1.getDisplayFieldName();if(isc.isAn.Array(_2)){for(var i=0;i<_2.length;i++){_3[i]={}
+if(!_5)_3=_1.duplicate();if(this.showAllOptions&&_4.length>1)_3.addList(_4);return _3},shouldHideEmptyPickList:function(){if(this.hideEmptyPickList!=null)return this.hideEmptyPickList;return!this.$19m()},getPickListPosition:function(){return[this.getPageLeft(),this.getPageTop()+this.getHeight()]},placePickList:function(){var _1=this.pickList;if(_1.isDirty()||(_1.body&&_1.body.isDirty())){_1.redraw("Refreshing stale pickList content before positioning")}
+var _2=this.getPickListPosition(),_3=_2[0],_4=_2[1];if(this.allowPickListToClip)_1.setRect([_3,_4]);else _1.placeNear(_3,_4)},pickValue:function(_1){}});isc.A=isc.PickList;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.optionsFromValueMap=function isc_c_PickList_optionsFromValueMap(_1){var _2=_1.getValueMap(),_3=[];if(_2==null)_2=[];var _4=_1.getValueFieldName(),_5=_1.getDisplayFieldName();if(isc.isAn.Array(_2)){for(var i=0;i<_2.length;i++){_3[i]={}
 _3[i][_4]=_2[i];if(_5!=null)_3[i][_5]=_2[i]}}else if(isc.isAn.Object(_2)){var i=0;for(var j in _2){_3[i]={};_3[i][_4]=j;if(_5!=null)_3[i][_5]=_2[j];i++}}
 return _3}
 );isc.B._maxIndex=isc.C+1}
@@ -12374,7 +12406,8 @@
 ,isc.A.getElementHTML=function isc_NativeCheckboxItem_getElementHTML(_1){var _2=this.form.getID(),_3=this.getItemID(),_4=this.$20c,_5=this.getAnchorTitle();_4[2]=this.$183;_4[4]=this.getElementName();_4[6]=this.getDataElementId();_4[7]=this.$155();if(this.value!=null){_4[8]=" VALUE='";_4[9]=this.value;_4[10]="'";if(this.containerWidget&&this.containerWidget.isPrinting){if(_1==this.value)_4[10]+=" CHECKED='true'"}}else{_4[8]=null;_4[9]=null;_4[10]=null}
 if(this.isDisabled())_4[11]=" DISABLED";else _4[11]=null;if(this.implementsPromptNatively){if(this.prompt!=null){_4[13]=" TITLE='";_4[14]=this.prompt;_4[15]="'"}else{_4[13]=_4[14]=_4[15]=null}}
 var _6=this.$154();_4[17]=_6;if(isc.Browser.isMoz){_4[19]=(_6>0?"normal;'":"ignore;'")}
-if(this.showLabel&&!this.showValueIconOnly){var _7=this.getElementWidth(),_8=this.getInnerHeight();if(isc.isA.Number(_7))_7=Math.max(20,_7-20);if(isc.Browser.isSafari&&!this.isDisabled()){var _9=this.$20e;_9[1]=_3;_9[3]=this.prompt;_9[5]=this.getTextBoxStyle();_9[7]=this.prompt;_9[9]=_5;_5=_9.join(isc.emptyString)}
+if(this.showLabel&&!this.showValueIconOnly){var _7=this.getElementWidth(),_8=this.getInnerHeight();if(isc.isA.Number(_7))_7=Math.max(20,_7-20);if(isc.Browser.isSafari&&!this.isDisabled()&&(isc.Browser.isChrome?isc.Browser.safariVersion<535:isc.Browser.safariVersion<534.5))
+{var _9=this.$20e;_9[1]=_3;_9[3]=this.prompt;_9[5]=this.getTextBoxStyle();_9[7]=this.prompt;_9[9]=_5;_5=_9.join(isc.emptyString)}
 var _10=this.$20d;_10[1]=this.getTextBoxStyle();if(_7!=null){_10[3]=" WIDTH=";_10[4]=_7}else{_10[3]=null;_10[4]=null}
 if(_8!=null){_10[5]=" HEIGHT=";_10[6]=_8}else{_10[5]=null;_10[6]=null}
 if(this.wrap==false){_10[8]=this.$136}else{_10[8]=null}
@@ -12421,7 +12454,8 @@
 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+"='",,,"' CLASS='",,"' STYLE='",,"'>",,"</DIV>"];isc.B.push(isc.A.$15m=function isc_LinkItem__writeOutFocusProxy(){return false}
+,isc.A.$kk=function isc_StaticTextItem__canFocus(){if(this.canFocus!=null)return this.canFocus;return isc.screenReader}
+);isc.B._maxIndex=isc.C+3;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)}}
@@ -12434,7 +12468,7 @@
 _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}}
+);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.writeOutLabelTag=false;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}}
 return this.Super("init",arguments)}
 ,isc.A.$11d=function isc_RadioGroupItem__useHiddenDataElement(){return false}
 ,isc.A.setItems=function isc_RadioGroupItem_setItems(){var _1=this.getValueMap();if(!this.itemCache)this.itemCache={};var _2=[];if(isc.isAn.Array(_1)){for(var i=0;i<_1.length;i++){var _4=_1[i];_2.add(this.$20k(_4,_4))}}else{for(var _4 in _1){var _5=_1[_4];_2.add(this.$20k(_5,_4))}}
@@ -12467,7 +12501,7 @@
 ,isc.A.mapValueToDisplay=function isc_RadioItem_mapValueToDisplay(_1){return _1}
 ,isc.A.mapDisplayToValue=function isc_RadioItem_mapDisplayToValue(_1){return _1}
 );isc.B._maxIndex=isc.C+5;isc.ClassFactory.defineClass("ResetItem","ButtonItem");isc.A=isc.ResetItem.getPrototype();isc.A.title="Reset";isc.A=isc.ResetItem.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.handleClick=function isc_ResetItem_handleClick(){if(this.Super("handleClick",arguments)==false)return false;this.form.resetValues()}
-);isc.B._maxIndex=isc.C+1;if(isc.ListGrid){isc.defineClass("DateItem","ContainerItem");isc.A=isc.DateItem;isc.A.mapCache={};isc.A.DAY_MONTH_YEAR="DMY";isc.A.MONTH_DAY_YEAR="MDY";isc.A.YEAR_MONTH_DAY="YMD";isc.A.DAY_MONTH="DM";isc.A.MONTH_DAY="MD";isc.A.YEAR_MONTH="YM";isc.A.MONTH_YEAR="MY";isc.A.DEFAULT_START_DATE=Date.createLogicalDate(1995,0,1);isc.A.DEFAULT_END_DATE=Date.createLogicalDate(2015,11,31);isc.A.DEFAULT_CENTURY_THRESHOLD=25;isc.A.chooserWidth=150;isc.A.chooserHeight=171;isc.A=isc.DateItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.textFieldDefaults={name:"dateTextField",type:"text",changeOnBlur:true,changeOnKeypress:true,changed:function(){this.isDirty=true},blur:function(){this.isDirty=false;if(this.parentItem)this.parentItem.updateValue()},shouldSaveValue:false,getInnerWidth:function(){if(this.parentItem)return this.parentItem.getTextBoxWidth();return this.Super("getInnerWidth",arguments)}};isc.A.daySelectorDefaults={name:"daySelector",prompt:"Choose a day",type:"select",valueMap:"this.parentItem.getDayOptions()",shouldSaveValue:false,saveValue:function(){this.Super("saveValue",arguments);this.parentItem.updateValue()},cssText:"padding-left:3px;",width:45,suppressItemChanged:true};isc.A.monthSelectorDefaults={name:"monthSelector",prompt:"Choose a month",type:"select",valueMap:"this.parentItem.getMonthOptions()",shouldSaveValue:false,saveValue:function(){this.Super("saveValue",arguments);this.parentItem.updateValue()},width:55,suppressItemChanged:true};isc.A.yearSelectorDefaults={name:"yearSelector",prompt:"Choose a year",type:"select",valueMap:"this.parentItem.getYearOptions()",shouldSaveValue:false,saveValue:function(){this.Super("saveValue",arguments);this.parentItem.updateValue()},cssText:"padding-left:3px;",width:60,suppressItemChanged:true};isc.A.width=150;isc.A.cellPadding=0;isc.A.useSharedPicker=true;isc.A.pickerConstructor="DateChooser";isc.A.pickerDefaults={width:isc.DateItem.chooserWidth,height:isc.DateItem.chooserHeight,border:"1px solid black;",showCancelButton:true,autoHide:true};isc.A.textAlign=isc.Canvas.RIGHT;isc.A.enforceDate=false;isc.A.invalidDateStringMessage="Invalid date";isc.A.showPickerIcon=true;isc.A.pickerIconWidth=20;isc.A.pickerIconHeight=20;isc.A.pickerIconSrc="[SKIN]/DynamicForm/DatePicker_icon.gif";isc.A.pickerIconHSpace=3;isc.A.pickerIconPrompt="Show Date Chooser";isc.A.pickerIconProperties={};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.B.push(isc.A.getOperator=function isc_DateItem_getOperator(_1){if(!this.operator)return"equals";return this.operator}
+);isc.B._maxIndex=isc.C+1;if(isc.ListGrid){isc.defineClass("DateItem","ContainerItem");isc.A=isc.DateItem;isc.A.mapCache={};isc.A.DAY_MONTH_YEAR="DMY";isc.A.MONTH_DAY_YEAR="MDY";isc.A.YEAR_MONTH_DAY="YMD";isc.A.DAY_MONTH="DM";isc.A.MONTH_DAY="MD";isc.A.YEAR_MONTH="YM";isc.A.MONTH_YEAR="MY";isc.A.DEFAULT_START_DATE=Date.createLogicalDate(1995,0,1);isc.A.DEFAULT_END_DATE=Date.createLogicalDate(2015,11,31);isc.A.DEFAULT_CENTURY_THRESHOLD=25;isc.A.chooserWidth=150;isc.A.chooserHeight=171;isc.A=isc.DateItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.textFieldDefaults={name:"dateTextField",type:"text",changeOnBlur:true,changeOnKeypress:true,changed:function(){this.isDirty=true},blur:function(){this.isDirty=false;if(this.parentItem)this.parentItem.updateValue()},shouldSaveValue:false,getTextBoxWidth:function(){if(this.parentItem)return this.parentItem.getTextBoxWidth();return this.Super("getTextBoxWidth",arguments)}};isc.A.daySelectorDefaults={name:"daySelector",title:"Day",prompt:"Choose a day",type:"select",valueMap:"this.parentItem.getDayOptions()",shouldSaveValue:false,saveValue:function(){this.Super("saveValue",arguments);this.parentItem.updateValue()},cssText:"padding-left:3px;",width:45,suppressItemChanged:true};isc.A.monthSelectorDefaults={name:"monthSelector",title:"Month",prompt:"Choose a month",type:"select",valueMap:"this.parentItem.getMonthOptions()",shouldSaveValue:false,saveValue:function(){this.Super("saveValue",arguments);this.parentItem.updateValue()},width:55,suppressItemChanged:true};isc.A.yearSelectorDefaults={name:"yearSelector",title:"Year",prompt:"Choose a year",type:"select",valueMap:"this.parentItem.getYearOptions()",shouldSaveValue:false,saveValue:function(){this.Super("saveValue",arguments);this.parentItem.updateValue()},cssText:"padding-left:3px;",width:60,suppressItemChanged:true};isc.A.width=150;isc.A.cellPadding=0;isc.A.useSharedPicker=true;isc.A.pickerConstructor="DateChooser";isc.A.pickerDefaults={width:isc.DateItem.chooserWidth,height:isc.DateItem.chooserHeight,border:"1px solid black;",showCancelButton:true,autoHide:true};isc.A.textAlign=isc.Canvas.RIGHT;isc.A.enforceDate=false;isc.A.invalidDateStringMessage="Invalid date";isc.A.showPickerIcon=true;isc.A.pickerIconWidth=20;isc.A.pickerIconHeight=20;isc.A.pickerIconSrc="[SKIN]/DynamicForm/DatePicker_icon.gif";isc.A.pickerIconHSpace=3;isc.A.pickerIconPrompt="Show Date Chooser";isc.A.pickerIconProperties={};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.B.push(isc.A.getOperator=function isc_DateItem_getOperator(_1){if(!this.operator)return"equals";return this.operator}
 );isc.B._maxIndex=isc.C+1;isc.A=isc.DateItem.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$792="[01][0-9]";isc.A.$793="[0-3]#";isc.A.$794="####";isc.A.$73d="[0-2][0-9]:[0-6][0-9]";isc.A.$73r={"MDY":"toUSShortDate","DMY":"toEuropeanShortDate","YMD":"toJapanShortDate"};isc.A.selectorPadding=2;isc.B.push(isc.A.init=function isc_DateItem_init(){if(this.useTextField==null)this.useTextField=this.useMask||false;return this.Super("init",arguments)}
 ,isc.A.getSelectorFormat=function isc_DateItem_getSelectorFormat(){if(this.selectorFormat){return this.selectorFormat}else if(this.inputFormat&&isc.isA.String(this.inputFormat)){return this.inputFormat}else{var _1=Date.getInputFormat();if(isc.isA.String(_1))return _1;this.logInfo("DateItem selectorFormat unspecified - assuming US format");return"MDY"}}
 ,isc.A.getInputFormatMask=function isc_DateItem_getInputFormatMask(_1){var _2=this.maskDateSeparator||this.$79w();var _3;if(_1=="YMD"){_3=[this.$794,_2,this.$792,_2,this.$793]}else if(_1=="DMY"){_3=[this.$793,_2,this.$792,_2,this.$794]}else{_3=[this.$792,_2,this.$793,_2,this.$794]}
@@ -12476,7 +12510,7 @@
 ,isc.A.$79w=function isc_DateItem__getDefaultDateSeparator(){return Date.getDefaultDateSeparator()}
 ,isc.A.$79x=function isc_DateItem__getDefaultDateSeparatorRegex(){var _1=this.$79w();return new RegExp(_1,"/g")}
 ,isc.A.setItems=function isc_DateItem_setItems(_1){var _2=isc.DateItem,_3=this.getSelectorFormat();if(_1!=null&&_1.length!=0){this.logWarn("setItems() called for dateItem with itemList:"+_1+" - ignoring, and making use of default date fields")}
-_1=this.items=[];if(this.useTextField){var _4={textAlign:this.textAlign,emptyDisplayValue:this.emptyDisplayValue,operator:this.operator};if(this.showHintInField){_4.showHintInField=this.showHintInField;_4.hint=this.hint;this.hint=null}
+_1=this.items=[];if(this.useTextField){var _4={textAlign:this.textAlign,emptyDisplayValue:this.emptyDisplayValue,operator:this.operator,title:this.title};if(this.showHintInField){_4.showHintInField=this.showHintInField;_4.hint=this.hint;this.hint=null}
 var _5={};if(this.useMask){var _6=this.getInputFormat();if(!_6)_6="MDY";var _7=this.getInputFormatMask(_6);_5.mask=_7;_5.maskSaveLiterals=true;_5.maskOverwriteMode=true;if(this.inputFormat){this.dateFormatter=this.$73r[_6]}}
 var _8=isc.addProperties(_4,this.textFieldDefaults,_2.TEXT_FIELD,this.textFieldProperties,_5);_8.name="dateTextField";if(this.height&&(!this.textFieldProperties||!this.textFieldProperties.height))
 {_8.height=this.getTextBoxHeight()}
@@ -12503,6 +12537,7 @@
 ,isc.A.$17e=function isc_DateItem__setHiddenDataElementValue(_1){var _2=this.$15b();if(_2!=null){if(isc.isA.Date(_1))_2.value=_1.toDBDate();else _2.value=_1}}
 ,isc.A.getCellHeight=function isc_DateItem_getCellHeight(){var _1=this.Super("getCellHeight",arguments);if(isc.Browser.isIE&&this.useTextField&&isc.isA.Number(_1))_1+=2;return _1}
 ,isc.A.elementChanged=function isc_DateItem_elementChanged(){return}
+,isc.A.getCriteriaValue=function isc_DateItem_getCriteriaValue(){return this.parseDate(this.getValue())}
 ,isc.A.updateValue=function isc_DateItem_updateValue(){if(this.$20l)return;this.$20l=true;var _1;if(this.useTextField){this.dateTextField.updateValue();var _2=this.dateTextField.getValue(),_3;if(_2==isc.emptyString||_2==null)_1=null;else{_1=this.parseDate(_2);if(_1==null){_3=true;_1=_2}else{var _4=this.formatDate(_1);if(_2!=_4){this.dateTextField.setValue(_4)}}}
 if(_2==this.getValue()){delete this.$20l;return}
 if(this.enforceDate){if(this.$20m&&!_3){delete this.$20m;this.clearErrors();this.redraw()}else if(_3){this.logWarn("Invalid date string entered in date text field :"+_1);if(!this.$20m){this.$20m=true;this.setError(this.invalidDateStringMessage);this.redraw()}}}}else{_1=(this._value||this.getDefaultValue());_1=_1.duplicate();var _5,_6,_7;_5=(this.daySelector?this.daySelector.getValue():_1.getDate());_1.setDate(1);if(this.yearSelector){_7=this.yearSelector.getValue()
@@ -12565,7 +12600,7 @@
 ,isc.A.getPickerData=function isc_DateItem_getPickerData(){var _1=this.getValue();if(_1!=null&&isc.isA.Date(_1))return _1;return this.getDefaultChooserDate()}
 ,isc.A.getDefaultChooserDate=function isc_DateItem_getDefaultChooserDate(){return this.defaultChooserDate}
 ,isc.A.propertyChanged=function isc_DateItem_propertyChanged(_1){if(_1=="useTextField"||_1=="useMask")this.setItems()}
-);isc.B._maxIndex=isc.C+43}
+);isc.B._maxIndex=isc.C+44}
 if(isc.ListGrid){isc.defineClass("DateTimeItem","DateItem");isc.A=isc.DateTimeItem.getPrototype();isc.A.useTextField=true;isc.A.showTime=true}
 isc.ClassFactory.defineClass("SpacerItem","FormItem");isc.A=isc.SpacerItem.getPrototype();isc.A.shouldSaveValue=false;isc.A.showTitle=false;isc.A.width=20;isc.A.height=20;isc.A.showHint=false;isc.A.showIcons=false;isc.A=isc.SpacerItem.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.isEditable=function isc_SpacerItem_isEditable(){return false}
 ,isc.A.getElementHTML=function isc_SpacerItem_getElementHTML(_1){return isc.Canvas.spacerHTML(this.width,this.height)}
@@ -12711,7 +12746,7 @@
 return this.pendingTextBoxStyle}
 ,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{if(this.changeOnKeypress&&this.length!=null&&isc.isA.String(_1)&&_1.length>this.length){_1=_1.substring(0,this.length);this.setElementValue(_1)}
-this.refreshPickList(_1)}}
+if(this.$82t==null)return;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)}}}
@@ -12739,7 +12774,7 @@
 ,isc.A.editorExit=function isc_ComboBoxItem_editorExit(_1,_2,_3){var _4;if(this.showHintInField&&(_3===_4||_3==null||isc.is.emptyString(_3)))
 {this.$66t()}}
 ,isc.A.showPicker=function isc_ComboBoxItem_showPicker(){this.focusInItem();this.filterWithValue=false;var _1=this.getEnteredValue(),_2=(!_1||_1==isc.emptyString);this.$84k=_1;this.$200=_2;return this.showPickList()}
-,isc.A.pickValue=function isc_ComboBoxItem_pickValue(_1){var _2=this.mapValueToDisplay(_1);this.setElementValue(_2);if(this.hasFocus)this.selectValue();this.$201=true;this.$66x={};this.$66x[_2]=_1;this.updateValue();delete this.$201}
+,isc.A.pickValue=function isc_ComboBoxItem_pickValue(_1){this.$66s();var _2=this.mapValueToDisplay(_1);this.setElementValue(_2);if(this.hasFocus)this.selectValue();this.$201=true;this.$66x={};this.$66x[_2]=_1;this.updateValue();delete this.$201}
 ,isc.A.setValueMap=function isc_ComboBoxItem_setValueMap(){this.Super("setValueMap",arguments);if(this.pickList){if(this.pickList.isVisible())this.pickList.hide();delete this.pickList.formItem
 this.setUpPickList(this.pickList.isVisible())}
 if(this.addUnknownValues){this.setElementValue(this.mapValueToDisplay(this.getValue()))}}
@@ -12931,7 +12966,10 @@
 ,isc.A.setValue=function isc_PickTreeItem_setValue(_1){this.Super("setValue",arguments);var _2=this.$21s(this.getValue());this.$21n=_2;if(this.canvas){this.canvas.setSelectedItem(_2)}}
 ,isc.A.updateValueMap=function isc_PickTreeItem_updateValueMap(_1){this.Super("updateValueMap",arguments);if(_1)this.canvas.markForRedraw()}
 ,isc.A.$21s=function isc_PickTreeItem__getNode(_1){if(!_1)return null;var _2=(this.getOptionDataSource()?this.canvas.getTree():this.valueTree);if(this.$21o())return this.valueTree.find(_1);return _2.find(this.$21p(),_1)}
-);isc.B._maxIndex=isc.C+13;isc.defineClass("IPickTreeItem","PickTreeItem");isc.A=isc.IPickTreeItem.getPrototype();isc.A.buttonConstructor="ITreeMenuButton"}
+,isc.A.fetchData=function isc_PickTreeItem_fetchData(){var _1=this.getOptionDataSource();if(_1==null){this.logWarn("fetchData() called on pickTree item with no option data source. Ignoring.");return}
+var _2=this.canvas.getTree();if(!_2||!_2.invalidateCache){return}
+_2.invalidateCache()}
+);isc.B._maxIndex=isc.C+14;isc.defineClass("IPickTreeItem","PickTreeItem");isc.A=isc.IPickTreeItem.getPrototype();isc.A.buttonConstructor="ITreeMenuButton"}
 isc.ClassFactory.defineClass("PopUpTextAreaItem","StaticTextItem");isc.A=isc.PopUpTextAreaItem.getPrototype();isc.A.canFocus=true;isc.A.wrap=false;isc.A.width=150;isc.A.clipValue=true;isc.A.popUpOnEnter=false;isc.A.popUpOnAnyClick=true;isc.A.textAreaWidth=100;isc.A.textAreaHeight=100;isc.A.iconOnly=false;isc.A.popUpIconSrc="[SKIN]/DynamicForm/PopUpTextAreaEditor_icon.gif";isc.A.popUpIconWidth=20;isc.A.popUpIconHeight=20;isc.A.iconVAlign=isc.Canvas.CENTER;isc.A=isc.PopUpTextAreaItem.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.$14v=function isc_PopUpTextAreaItem__setUpIcons(){if(this.icons==null)this.icons=[];var _1={name:"popUpIcon",src:this.popUpIconSrc,showOver:false,width:this.popUpIconWidth,height:this.popUpIconHeight,click:this.$43p};this.icons.addAt(_1,0);this.Super("$14v",arguments)}
 ,isc.A.$43p=function isc_PopUpTextAreaItem__popUpIconClick(_1,_2,_3){if(_2.popUpOnAnyClick||_2.isDisabled())return;_2.showPopUp(true)}
 ,isc.A.handleCellClick=function isc_PopUpTextAreaItem_handleCellClick(){if(this.Super("handleCellClick")==false)return false;if(this.popUpOnAnyClick&&!this.isDisabled())this.showPopUp(true)}
@@ -12970,7 +13008,7 @@
 ,isc.A.$14v=function isc_ExpressionItem__setUpIcons(){this.Super("$14v",arguments);if(this.showActionIcon){if(this.icons==null)this.icons=[];var _1=this.actionIconPosition;this.icons.addAt({name:"action",src:this.actionIconSrc,showOver:false,width:this.actionIconWidth,height:this.actionIconHeight,click:this.getID()+".showActionMenu();return false;"},_1);this.$36c(this.icons[_1])}}
 ,isc.A.updateAppearance=function isc_ExpressionItem_updateAppearance(_1){this.setElementValue(this.mapValueToDisplay(_1))}
 ,isc.A.showActionMenu=function isc_ExpressionItem_showActionMenu(){var _1=this,_2=isc.ActionMenu.create({sourceComponent:this.form.currentComponent,sourceMethod:this.name,components:this.form.allComponents,bindingComplete:function(_4){_1.$10y(_4)}});_2.show();var _3=this.getIconPageRect(this.icons[1]);_2.placeNear(_3[0]+this.actionIconWidth,_3[1]+this.actionIconHeight-this.containerWidget.getScrollTop())}
-);isc.B._maxIndex=isc.C+5;isc.ClassFactory.defineClass("SearchForm","DynamicForm");isc.A=isc.SearchForm.getPrototype();isc.A.isSearchForm=true;isc.A.hiliteRequiredFields=false;isc.A.operationType="fetch";isc.A.$66m=true;isc.A=isc.SearchForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$21w="DateItem";isc.B.push(isc.A.createItem=function isc_SearchForm_createItem(_1,_2,_3,_4,_5){var _6=this.getDataSource(),_7=_6?_6.getField(_1[this.fieldIdProperty])!=null:false;if(_7){var _8=isc.FormItemFactory.getItemClassName(_1,_2,this),_9=isc.FormItemFactory.getItemClass(_8);if(_9==isc.DateItem&&_1&&(_1.useTextField==null))
+);isc.B._maxIndex=isc.C+5;isc.ClassFactory.defineClass("SearchForm","DynamicForm");isc.A=isc.SearchForm.getPrototype();isc.A.canEditFieldAttribute="canFilter";isc.A.isSearchForm=true;isc.A.hiliteRequiredFields=false;isc.A.operationType="fetch";isc.A.$66m=true;isc.A=isc.SearchForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$21w="DateItem";isc.B.push(isc.A.createItem=function isc_SearchForm_createItem(_1,_2,_3,_4,_5){var _6=this.getDataSource(),_7=_6?_6.getField(_1[this.fieldIdProperty])!=null:false;if(_7){var _8=isc.FormItemFactory.getItemClassName(_1,_2,this),_9=isc.FormItemFactory.getItemClass(_8);if(_9==isc.DateItem&&_1&&(_1.useTextField==null))
 _1.useTextField=true;if(_1.allowEmptyValue==null)_1.allowEmptyValue=true}
 return this.invokeSuper(isc.SearchForm,"createItem",_1,_2,_3,_4,_5)}
 ,isc.A.submitValues=function isc_SearchForm_submitValues(_1,_2){if(this.search!=null){return this.search(this.getValuesAsCriteria(),this)}}
@@ -13394,7 +13432,7 @@
 ,isc.A.getEnteredValue=function isc_RelativeDateItem_getEnteredValue(){if(this.valueField)return this.valueField.getValue();return this.getValue()}
 ,isc.A.getValue=function isc_RelativeDateItem_getValue(){var _1=this.Super("getValue",arguments);return _1||(this.valueField&&this.valueField.getValue())}
 );isc.B._maxIndex=isc.C+26}
-if(isc.ListGrid){isc.defineClass("DateRangeItem","CanvasItem");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.A.shouldSaveValue=true;isc.A.fromTitle="From";isc.A.toTitle="To";isc.A.allowRelativeDates=false;isc.A.dateRangeFormDefaults={_constructor:"DynamicForm",margin:0,padding:0,itemChanged:function(_1,_2){var _3=this.getValues(),_4={_constructor:"DateRange"};if(_3.fromField!=null)_4.start=_3.fromField;if(_3.toField!=null)_4.end=_3.toField;this.creator.updateValue(_4)}};isc.B.push(isc.A.setFromDate=function isc_DateRangeItem_setFromDate(_1){this.fromDate=_1;if(this.fromField)this.fromField.setValue(this.fromDate)}
+if(isc.ListGrid){isc.defineClass("DateRangeItem","CanvasItem");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.A.shouldSaveValue=true;isc.A.fromTitle="From";isc.A.toTitle="To";isc.A.allowRelativeDates=false;isc.A.dateRangeFormDefaults={_constructor:"DynamicForm",margin:0,padding:0,itemChanged:function(_1,_2){var _3=this.getValues(),_4={_constructor:"DateRange"};if(_3.fromField!=null)_4.start=_3.fromField;if(_3.toField!=null)_4.end=_3.toField;this.creator.$10y(_4)}};isc.B.push(isc.A.setFromDate=function isc_DateRangeItem_setFromDate(_1){this.fromDate=_1;if(this.fromField)this.fromField.setValue(this.fromDate)}
 ,isc.A.setToDate=function isc_DateRangeItem_setToDate(_1){this.toDate=_1;if(this.toField)this.toField.setValue(this.toDate)}
 ,isc.A.hasAdvancedCriteria=function isc_DateRangeItem_hasAdvancedCriteria(){return this.fromField&&this.toField&&(this.fromField.getValue()!=null||this.toField.getValue()!=null)}
 ,isc.A.getCriterion=function isc_DateRangeItem_getCriterion(_1){_1=_1||!this.allowRelativeDates;var _2=_1?this.fromField.getValue():this.fromField.getRelativeDate()||this.fromField.getValue(),_3=_2!=null,_4=_1?this.toField.getValue():this.toField.getRelativeDate()||this.toField.getValue(),_5=_4!=null,_6=null;if(_3||_5){_6={_constructor:"AdvancedCriteria",operator:"and",criteria:[]};if(_3){if(isc.isA.RelativeDateItem(_2)){_2.rangePosition="start"}
@@ -13424,8 +13462,7 @@
 ,isc.A.fieldChanged=function isc_DateRangeItem_fieldChanged(){}
 ,isc.A.setValue=function isc_DateRangeItem_setValue(_1){var _2=_1?_1.start:null,_3=_1?_1.end:null,_4=isc.RelativeDateItem;if(!this.allowRelativeDates&&_4.isRelativeDate(_2))this.setFromDate(null);else this.setFromDate(_2);if(!this.allowRelativeDates&&_4.isRelativeDate(_3))this.setToDate(null);else this.setToDate(_3);this.Super("setValue",arguments)}
 ,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+6;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,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())}
@@ -13436,7 +13473,7 @@
 ,isc.A.handleClick=function isc_MiniDateRangeItem_handleClick(){if(!this.disabled)this.showRangeDialog()}
 );isc.B._maxIndex=isc.C+3;isc.A=isc.MiniDateRangeItem.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_MiniDateRangeItem_init(){this.addAutoChild("rangeDialog",{fromDate:this.fromDate,toDate:this.toDate,rangeItemProperties:{allowRelativeDates:this.allowRelativeDates,type:this.getType()},dateDisplayFormat:this.dateDisplayFormat,callback:this.getID()+".rangeDialogCallback(value)"});this.icons=[isc.addProperties({prompt:this.pickerIconPrompt},this.pickerIconDefaults,this.pickerIconProperties)];this.rangeItem=this.rangeDialog.rangeItem;this.rangeItem.name=this.name}
 ,isc.A.showRangeDialog=function isc_MiniDateRangeItem_showRangeDialog(){this.rangeDialog.rangeItem.setFromDate(this.fromDate);this.rangeDialog.rangeItem.setToDate(this.toDate);this.rangeDialog.show()}
-,isc.A.rangeDialogCallback=function isc_MiniDateRangeItem_rangeDialogCallback(_1){this.updateValue(_1)}
+,isc.A.rangeDialogCallback=function isc_MiniDateRangeItem_rangeDialogCallback(_1){if(!this.$10y(_1))return;this.displayValue(_1)}
 ,isc.A.hasAdvancedCriteria=function isc_MiniDateRangeItem_hasAdvancedCriteria(){return this.rangeItem!=null&&this.rangeItem.hasAdvancedCriteria()}
 ,isc.A.getCriterion=function isc_MiniDateRangeItem_getCriterion(){var _1=this.rangeItem?this.rangeItem.getCriterion():null;return _1}
 ,isc.A.setCriterion=function isc_MiniDateRangeItem_setCriterion(_1){if(this.rangeItem){this.rangeItem.setCriterion(_1);var _2=this.rangeItem.getValue();this.setValue(_2,null,true)}}
@@ -13450,13 +13487,12 @@
 this.fromDate=_1.start;this.toDate=_1.end}else{this.fromDate=null;this.toDate=null}}
 ,isc.A.saveValue=function isc_MiniDateRangeItem_saveValue(){this.Super("saveValue",arguments);this.updateStoredDates(this._value)}
 ,isc.A.displayValue=function isc_MiniDateRangeItem_displayValue(_1){var _2=this.mapValueToDisplay(_1)||"";this.setElementValue(_2,_1)}
-,isc.A.updateValue=function isc_MiniDateRangeItem_updateValue(_1){if(!this.$10y(_1))return;this.displayValue(_1)}
 ,isc.A.mapValueToDisplay=function isc_MiniDateRangeItem_mapValueToDisplay(_1){if(_1==null)return"";var _2=_1.start,_3=_1.end,_4=isc.RelativeDateItem,_5=(_4.isRelativeDate(_2)?_4.getAbsoluteDate(_2.value,null,null,"start"):_2),_6=(_4.isRelativeDate(_3)?_4.getAbsoluteDate(_3.value,null,null,"end"):_3);var _7;if(_5||_6){if(this.dateDisplayFormat){if(_5)_7=this.formatDate(_5);if(_6){if(_7)_7+=" - "+this.formatDate(_6);else _7=this.formatDate(_6)}}else _7=Date.getFormattedDateRangeString(_5,_6);if(!_5)_7=this.toDateOnlyPrefix+" "+_7;else if(!_6)_7=this.fromDateOnlyPrefix+" "+_7}
 this.prompt=_7||"";return this.prompt}
 ,isc.A.getValue=function isc_MiniDateRangeItem_getValue(){if(!this.rangeItem)return;return this.rangeItem.getValue()}
 ,isc.A.formatDate=function isc_MiniDateRangeItem_formatDate(_1){if(!isc.isA.Date(_1))return _1;var _2=this.getType(),_3=isc.SimpleType.inheritsFrom(_2,"date")&&!isc.SimpleType.inheritsFrom(_2,"datetime");return _1.toShortDate(this.$45i(),!_3)}
 ,isc.A.getCriteriaValue=function isc_MiniDateRangeItem_getCriteriaValue(){return this.getCriterion()}
-);isc.B._maxIndex=isc.C+16}}
+);isc.B._maxIndex=isc.C+15}}
 if(isc.Portal){isc.defineClass("EntityEditorHeader","VLayout");isc.A=isc.EntityEditorHeader.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.height=1;isc.A.padding=10;isc.A.border="2px solid black";isc.A.headerLayoutDefaults={_constructor:"VLayout",width:"100%",height:1,membersMargin:5};isc.A.headerLabelTitle="<B><H2>Editing ${entityType}</H2><br>"+"<H3>This UI lets you edit the entire data-structure for this Entity-type</H3></B>";isc.A.headerLabelDefaults={_constructor:"Label",width:"100%",height:30,autoParent:"headerLayout"};isc.A.showDetailLabel=false;isc.A.defaultDetailLabelTitle="<B><H3>This UI lets you edit the entire data-structure for this Entity-type</H3></B>";isc.A.detailLabelTitle="<B><H3>$entityComment</H3></B>";isc.A.detailLabelDefaults={_constructor:"Label",width:"100%",height:20,autoParent:"headerLayout"};isc.A.unknownEntityTitle="[Unknown Entity-type]";isc.B.push(isc.A.initWidget=function isc_EntityEditorHeader_initWidget(){var _1=this.headerLabelTitle;var _2=this.detailLabelTitle;if(this.dataSource)this.getDataSource(this.dataSource);if(!this.entityName)this.entityName=this.getEntityName(this.dataSource);if(!this.entityComment)this.entityComment=this.getEntityComment(this.dataSource);if(this.entityName)
 _1=_1.evalDynamicString(this,{entityType:this.entityName});if(this.entityComment)
 _2=_2.evalDynamicString(this,{entityType:this.entityComment});this.headerLayout=this.addAutoChild("headerLayout");this.headerLabel=this.addAutoChild("headerLabel",{contents:_1});this.detailLabel=this.addAutoChild("detailLabel",{contents:_2});this.headerLayout.addMembers([this.headerLabel,this.detailLabel]);this.addMember(this.headerLayout)}
@@ -13537,7 +13573,7 @@
 );isc.B._maxIndex=isc.C+4;isc._moduleEnd=isc._Forms_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('Forms 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 'Forms'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -13548,7 +13584,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -14000,8 +14036,8 @@
 ,isc.A.getSerializeFlags=function isc_DataSource_getSerializeFlags(_1,_2){_2=isc.addProperties({soapStyle:this.getSoapStyle(_1)},_2);var _3=this.getOperationBinding(_1);_2.flatData=this.$du(_1.useFlatFields,_3.useFlatFields,this.useFlatFields);_2.recursiveFlatFields=this.$du(_1.recursiveFlatFields,_3.recursiveFlatFields,this.recursiveFlatFields);_2.textContentProperty=this.$du(_1.textContentProperty,_3.textContentProperty);_2.dsRequest=_1;_2.startRowTag=_3.startRowTag||this.startRowTag;_2.endRowTag=_3.endRowTag||this.endRowTag;return _2}
 ,isc.A.xmlSerialize=function isc_DataSource_xmlSerialize(_1,_2,_3,_4){if(!_2)_2={};if(_2.useFlatFields)_2.flatData=true;var _5=this.getSchemaSet(),_6=(_2.qualifyAll==null);if(_5&&_5.qualifyAll){_2.qualifyAll=true}
 var _7;if(_2.nsPrefixes==null){var _8=this.xmlNamespaces?isc.makeReverseMap(this.xmlNamespaces):null;_2.nsPrefixes=isc.addProperties({},_8);_7=true}
-isc.Comm.xmlSchemaMode=true;var _9;if(isc.Comm.omitXSI==null){_9=isc.Comm.omitXSI=true}
-var _10=this.$ew(_1,_2,_3,_4,_7);if(_6)_2.qualifyAll=null;var _11=isc.Comm.xmlSchemaMode;isc.Comm.xmlSchemaMode=_11;if(_9)isc.Comm.omitXSI=null;return _10}
+var _9=isc.Comm.xmlSchemaMode;isc.Comm.xmlSchemaMode=true;var _10;if(isc.Comm.omitXSI==null){_10=isc.Comm.omitXSI=true}
+var _11=this.$ew(_1,_2,_3,_4,_7);if(_6)_2.qualifyAll=null;isc.Comm.xmlSchemaMode=_9;if(_10)isc.Comm.omitXSI=null;return _11}
 ,isc.A.$ew=function isc_DataSource__xmlSerialize(_1,_2,_3,_4,_5){if(isc.$cv)arguments.$cw=this;if(this.logIsDebugEnabled("xmlSerialize")){this.logDebug("schema: "+this+" serializing: "+this.echo(_1)+" with flags: "+this.echo(_2),"xmlSerialize")}
 var _6=this.mustQualify||_2.qualifyAll,_4=_4||this.tagName||this.ID;var _7;if(_1!=null&&(_1._constructor||isc.isAn.Instance(_1))){var _7=isc.isAn.Instance(_1)?_1.Class:_1._constructor}
 if(isc.DS.isSimpleTypeValue(_1)){if(isc.isA.String(_1)&&isc.startsWith(_1,"ref:")){return"<"+_4+" ref=\""+_1.substring(4)+"\"/>"}
@@ -14111,10 +14147,14 @@
 ,isc.A.exportClientData=function isc_DataSource_exportClientData(_1,_2){return isc.DataSource.exportClientData(_1,_2)}
 ,isc.A.exportData=function isc_DataSource_exportData(_1,_2){if(!_2)_2={};if(this.canExport==false){isc.logWarn("Exporting is disabled for this DataSource.  Set "+"DataSource.canExport to true to enable it.");return}
 if(_2.exportAs&&_2.exportAs.toLowerCase()=="json"){isc.logWarn("Export to JSON is not allowed from a client call - set "+"operationBinding.exportAs on your DataSource instead.");return}
-if(_2.textMatchStyle==null)_2.textMatchStyle="substring";var _3={};_3.exportResults=true;_3.exportAs=_2.exportAs||"csv";_3.exportDelimiter=_2.exportDelimiter||",";_3.exportTitleSeparatorChar=_2.exportTitleSeparatorChar||"";_3.exportFilename=_2.exportFilename||"Results."+(_3.exportAs=="ooxml"?"xlsx":_3.exportAs);_2.exportFilename=_3.exportFilename;_3.exportDisplay=_2.exportDisplay||"download";_3.lineBreakStyle=_2.lineBreakStyle||"default";_3.exportFields=this.getExportableDSFields(_2.exportFields||this.getVisibleDSFields());_3.exportHeader=_2.exportHeader;_3.exportFooter=_2.exportFooter;_3.exportFieldTitles=_2.exportFieldTitles;_2.downloadResult=true;_2.downloadToNewWindow=_2.exportDisplay=="window"?true:false;if(_2.downloadToNewWindow){if(_3.exportFilename.endsWith(".xml")&&_3.exportAs!="xml"){_3.exportFilename=_3.exportFilename+".txt"}
+if(_2.textMatchStyle==null)_2.textMatchStyle="substring";var _3={};_3.exportResults=true;_3.exportAs=_2.exportAs||"csv";_3.exportDelimiter=_2.exportDelimiter||",";_3.exportTitleSeparatorChar=_2.exportTitleSeparatorChar||"";_3.exportFilename=_2.exportFilename||"Results."+(_3.exportAs=="ooxml"?"xlsx":_3.exportAs);_2.exportFilename=_3.exportFilename;_3.exportDisplay=_2.exportDisplay||"download";_3.lineBreakStyle=_2.lineBreakStyle||"default";_3.exportFields=this.getExportableDSFields(_2.exportFields||this.getVisibleDSFields());_3.exportHeader=_2.exportHeader;_3.exportFooter=_2.exportFooter;_3.exportFieldTitles=_2.exportFieldTitles;if(!_3.exportFieldTitles){var _4=_3.exportFields;var _5={};for(var i=0;i<_4.length;i++){var _7=_4[i];var _8;if(isc.isA.String(_7)){_8=_7;_7=this.getField(_8)}
+if(_7){if(_7.hidden)continue;_5[_7.name]=_7.exportTitle||_7.title}else{_5[_8]=_8}}
+_3.exportFieldTitles=_5}
+_2.downloadResult=true;_2.downloadToNewWindow=_2.exportDisplay=="window"?true:false;if(_2.downloadToNewWindow){if(_3.exportFilename.endsWith(".xml")&&_3.exportAs!="xml"){_3.exportFilename=_3.exportFilename+".txt"}
 _2.download_filename=_2.exportFilename;_1.download_filename=_2.download_filename}
 _2.showPrompt=false;_2.parameters=_3;this.performDSOperation("fetch",_1,null,_2)}
-,isc.A.getVisibleDSFields=function isc_DataSource_getVisibleDSFields(){var _1=[];for(var i=0;i<this.fields.length;i++){var _3=this.fields.get(i);if(!_3.hidden)_1.add(_3.name)}
+,isc.A.getVisibleDSFields=function isc_DataSource_getVisibleDSFields(){var _1=[];var _2=this.fields;if(!isc.isAn.Array(_2)){_2=[];for(var _3 in this.fields){_2.add(this.fields[_3])}}
+for(var i=0;i<_2.length;i++){var _5=_2.get(i);if(!_5.hidden)_1.add(_5.name)}
 return _1}
 ,isc.A.getExportableDSFields=function isc_DataSource_getExportableDSFields(_1){var _2=[];if(this.canExport){for(var i=0;i<_1.length;i++){var _4=this.getField(_1[i]);if(_4&&_4.canExport!=false)
 _2.add(_4.name)}}
@@ -15005,7 +15045,7 @@
 ,isc.A.rowOrderInvalid=function isc_ResultSet_rowOrderInvalid(){return this.$50k}
 ,isc.A.dataChanged=function isc_ResultSet_dataChanged(){if(this.onDataChanged)this.onDataChanged()}
 ,isc.A.getNewSelection=function isc_ResultSet_getNewSelection(_1){var _2=this.getDataSource().selectionClass||"Selection";return isc.ClassFactory.getClass(_2).create(_1)}
-);isc.B._maxIndex=isc.C+76;isc.ResultSet.registerStringMethods({transformData:"newData,dsResponse",dataArrived:"startRow,endRow",dataChanged:"operationType,originalRecord,rowNum,updateData,filterChanged"});isc.ResultSet.getPrototype().toString=isc.$63a;isc.ResultSet.getPrototype().logMessage=isc.$63b;isc.ClassFactory.defineClass("LocalResultSet",isc.ResultSet);isc.A=isc.LocalResultSet.getPrototype();isc.A.fetchMode="local";isc.ClassFactory.defineClass("WindowedResultSet",isc.ResultSet);isc.ResultSet.addMethods(isc.ClassFactory.makePassthroughMethods(["find","findIndex","findNextIndex","findAll","getProperty"],"localData"))
+);isc.B._maxIndex=isc.C+76;isc.ResultSet.registerStringMethods({transformData:"newData,dsResponse",dataArrived:"startRow,endRow",dataChanged:"operationType,originalRecord,rowNum,updateData,filterChanged"});isc.ResultSet.getPrototype().toString=isc.$63a;isc.ResultSet.getPrototype().logMessage=isc.$63b;isc.ClassFactory.defineClass("LocalResultSet",isc.ResultSet);isc.A=isc.LocalResultSet.getPrototype();isc.A.fetchMode="local";isc.ClassFactory.defineClass("WindowedResultSet",isc.ResultSet);isc.ResultSet.addMethods(isc.ClassFactory.makePassthroughMethods(["find","findIndex","findNextIndex","findAll","getProperty"],"localData",true,"ResultSet.${methodName} called with no cached local data."+" Calling code can use ResultSet.lengthIsKnown() to determine whether the ResultSet has"+" loaded any data."))
 isc.ClassFactory.defineClass("ResultTree",isc.Tree);isc.A=isc.ResultTree.getPrototype();isc.A.nameProperty="$399";isc.A.nodeTypeProperty="nodeType";isc.A.childTypeProperty="childType";isc.A.modelType="parent";isc.A.loadDataOnDemand=true;isc.A.defaultNewNodesToRoot=false;isc.A.updateCacheFromRequest=true;isc.A=isc.ResultTree.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_ResultTree_init(_1,_2,_3,_4,_5,_6){isc.ClassFactory.addGlobalID(this);if(!this.criteria)this.criteria={};if(!this.operation)this.operation={operationType:"fetch"};if(!this.dataSource)this.dataSource=this.operation.dataSource;if(!this.operation.dataSource)this.operation.dataSource=this.dataSource;if(isc.isAn.Array(this.dataSource)){this.dataSource=this.dataSource[0];this.operation.dataSource=this.dataSource}
 if(!this.isMultiDSTree()){if(!this.root)this.root=this.makeRoot();var _7=this.getTreeRelationship(this.root);var _8;if(this.rootValue===_8)this.rootValue=_7.rootValue;if(!this.loadDataOnDemand&&(this.rootValue!=null||(this.root!=null&&this.root[this.idField]!=null))&&this.discardParentlessNodes==null)
 {this.discardParentlessNodes=true}
@@ -15260,7 +15300,7 @@
 ,isc.A.editModeDoubleClick=function isc_Canvas_editModeDoubleClick(){}
 ,isc.A.editModeWillAcceptDrop=function isc_Canvas_editModeWillAcceptDrop(_1){this.logInfo("editModeWillAcceptDrop for "+this.ID,"editModeDragTarget");var _2=this.ns.EH.dragTarget.getDragData(),_3,_4=true;if(_2==null||(isc.isAn.Array(_2))&&_2.length==0){_4=false;this.logInfo("dragData is null - using the dragTarget itself","editModeDragTarget");_2=this.ns.EH.dragTarget;if(isc.isA.FormItemProxyCanvas(_2)){this.logInfo("The dragTarget is a FormItemProxyCanvas for "+_2.formItem,"editModeDragTarget");_2=_2.formItem}
 _3=_2._constructor||_2.Class}else{if(isc.isAn.Array(_2))_2=_2[0];_3=_2.className||_2.type}
-this.logInfo("Using dragType "+_3,"editModeDragTarget");if(!this.canAdd(_3)){this.logInfo(this.ID+" does not accept drop of type "+_3,"editModeDragTarget");var _5=this.parentElement;while(_5){if(_5.editingOn){var _6=_5.editModeWillAcceptDrop();if(!_6){this.logInfo("No ancestor accepts drop","editModeDragTarget");if(_1!=false){if(_4)isc.EditContext.hideDragHandle();isc.SelectionOutline.hideOutline();this.setNoDropIndicator()}
+this.logInfo("Using dragType "+_3,"editModeDragTarget");if(!this.canAdd(_3)){this.logInfo(this.ID+" does not accept drop of type "+_3,"editModeDragTarget");var _5=this.parentElement;while(_5&&!_5.editorRoot){if(_5.editingOn){var _6=_5.editModeWillAcceptDrop();if(!_6){this.logInfo("No ancestor accepts drop","editModeDragTarget");if(_1!=false){if(_4)isc.EditContext.hideDragHandle();isc.SelectionOutline.hideOutline();this.setNoDropIndicator()}
 return false}
 this.logInfo("An ancestor accepts drop","editModeDragTarget");return true}
 _5=_5.parentElement}
@@ -15300,7 +15340,7 @@
 this.setFields(_4);for(var i=0;i<_5.length;i++){this.editContext.removeComponent(_5[i].editNode,true)}}
 var _8,_2=_1.fields;if(_2&&isc.getKeys(_2).length==1&&_1.fieldIsComplexType(_2[isc.firstKey(_2)].name))
 {_8=_1.getSchema(_2[isc.firstKey(_2)].type)}else{_8=_1}
-var _9=_8.getFields();_2={};for(var _10 in _9){var _7=_9[_10];if(!this.shouldUseField(_7,_1))continue;_2[_10]=_9[_10]}
+var _9=_8.getFields();_2={};for(var _10 in _9){var _7=_9[_10];if(!this.shouldUseField(_7,_1))continue;_2[_10]=isc.addProperties({},_9[_10])}
 _4.addList(isc.getValues(_2));this.baseSetDataSource(_1,_4);for(var _10 in _2){var _7=_2[_10];var _11=this.getFieldEditNode(_7,_8);var _12=this.editContext.makeEditNode(_11);this.editContext.addNode(_12,this.editNode,null,null,true)}}
 ,isc.A.fieldEdited=function isc_Canvas_fieldEdited(_1){return _1.editNode.$71u}
 ,isc.A.getFieldEditNode=function isc_Canvas_getFieldEditNode(_1,_2){var _3=this.Class+"Field";var _4={type:_3,autoGen:true,defaults:{name:_1.name,title:_1.title||_2.getAutoTitle(_1.name)}}
@@ -15334,7 +15374,7 @@
 ,isc.A.saveToOriginalValues=function isc_Class_saveToOriginalValues(_1){var _2;if(!this.editModeOriginalValues)this.editModeOriginalValues={};for(var i=0;i<_1.length;i++){var _4=isc.isAn.Object(_1[i])?_1[i].name:_1[i];if(this[_4]===_2){this.editModeOriginalValues[_4]=null}else{if(this[_4]&&this[_4].$dw){var _5=isc.$ah+_4;this.editModeOriginalValues[_4]=this[_5]}else{this.editModeOriginalValues[_4]=this[_4]}}}}
 ,isc.A.restoreFromOriginalValues=function isc_Class_restoreFromOriginalValues(_1){var _2;if(!this.editModeOriginalValues)this.editModeOriginalValues={};var _3="Retrieving fields from original values:"
 var _4={};for(var i=0;i<_1.length;i++){var _6=isc.isAn.Object(_1[i])?_1[i].name:_1[i];if(this.editModeOriginalValues[_6]!==_2){_4[_6]=this.editModeOriginalValues[_6];delete this.editModeOriginalValues[_6]}else{}}
-this.addProperties(_4)}
+this.setProperties(_4)}
 ,isc.A.propertyHasBeenEdited=function isc_Class_propertyHasBeenEdited(_1){var _2;if(!this.editModeOriginalValues)return false;if(isc.isAn.Object(_1))_1=_1.name;if(this.editModeOriginalValues[_1]!==_2){if(isc.isA.Function(this.editModeOriginalValues[_1]))return false;if(this.editModeOriginalValues[_1]!=this[_1])return true}
 return false}
 ,isc.A.editablePropertiesUpdated=function isc_Class_editablePropertiesUpdated(){if(this.parentElement)this.parentElement.editablePropertiesUpdated()}
@@ -15540,12 +15580,14 @@
 _9.setValue(_10);this.positionTitleEditor(_1,_2,_3,_4,_5);_8.show();_9.focusInItem();_9.delayCall("selectValue",[],100)}
 ,isc.A.positionTitleEditor=function isc_c_EditContext_positionTitleEditor(_1,_2,_3,_4,_5){if(_4==null)_4=_1.getPageTop();if(_5==null)_5=_1.height;if(_2==null)_2=_1.getPageLeft();if(_3==null)_3=_1.getVisibleWidth();var _6=this.titleEditor;var _7=_6.getItem("title");_7.setHeight(_5);_7.setWidth(_3);_6.setTop(_4);_6.setLeft(_2)}
 ,isc.A.deselect=function isc_c_EditContext_deselect(){isc.SelectionOutline.deselect();this.hideDragHandle()}
+,isc.A.setEditMode=function isc_c_EditContext_setEditMode(_1){var _2=isc.SelectionOutline.getSelectedObject();if(_2==null)return;if(_1){this.setupDragProperties(_2);this.showSelectedObjectDragHandle();isc.SelectionOutline.showOutline()}else{this.resetDragProperties(_2);this.hideDragHandle();isc.SelectionOutline.hideOutline()}}
+,isc.A.setupDragProperties=function isc_c_EditContext_setupDragProperties(_1){_1.saveToOriginalValues(["canDrag","canDrop","dragAppearance","dragStart","dragMove","dragStop","setDragTracker"]);_1.setProperties({canDrop:true,dragAppearance:"outline",dragStart:function(){return true},dragMove:function(){return true},setDragTracker:function(){isc.EH.setDragTracker("");return false},dragStop:function(){isc.EditContext.hideProxyCanvas();isc.EditContext.positionDragHandle()}})}
+,isc.A.resetDragProperties=function isc_c_EditContext_resetDragProperties(_1){if(this.observer)this.observer.ignore(_1,"dragMove");_1.restoreFromOriginalValues(["canDrag","canDrop","dragAppearance","dragStart","dragMove","dragStop","setDragTracker"])}
 ,isc.A.selectCanvasOrFormItem=function isc_c_EditContext_selectCanvasOrFormItem(_1,_2){if(!isc.isA.Canvas(_1)&&!isc.isA.FormItem(_1)&&!_1.$73a){return}
 if(isc.isA.Menu(_1)){return}
-if(this.$70r)this.$70r.hide();var _3=isc.SelectionOutline.getSelectedObject();if(_3&&this.observer){this.observer.ignore(_3,"dragMove");_3.restoreFromOriginalValues(["canDrag","canDrop","dragAppearance","dragStart","dragMove","dragStop","setDragTracker"])}
-var _4,_5;if(_1.$73a){var _6=_1.type||_1._constructor;_5="["+_6+" "+(_1.name?"name:":"ID");_5+=_1.name||_1.ID;_5+="]"
+if(this.$70r)this.$70r.hide();var _3=isc.SelectionOutline.getSelectedObject();if(_3)this.resetDragProperties(_3);var _4,_5;if(_1.$73a){var _6=_1.type||_1._constructor;_5="["+_6+" "+(_1.name?"name:":"ID");_5+=_1.name||_1.ID;_5+="]"
 _4=_1;_1=_1.$73a}
-_1.saveToOriginalValues(["canDrag","canDrop","dragAppearance","dragStart","dragMove","dragStop","setDragTracker"]);_1.setProperties({canDrop:true,dragAppearance:"outline",dragStart:function(){return true},dragMove:function(){return true},setDragTracker:function(){isc.EH.setDragTracker("");return false},dragStop:function(){isc.EditContext.hideProxyCanvas();isc.EditContext.positionDragHandle()}});var _7=_4?_4.editContext:_1.editContext;if(!_7)return;var _8=_7.creator;isc.SelectionOutline.select(_1,false,!(_2&&_8.hideLabelWhenSelecting),_5);if(_4)_1=_4;if(_1.editingOn){this.showSelectedObjectDragHandle();var _9=_1.editContext;if(_9.selectRecord){_9.deselectAllRecords();if(isc.isA.Canvas(_1)){if(isc.isA.SectionHeader(_1)||isc.isA.ImgSectionHeader(_1)){_9.selectRecord(_9.data.findById(_1.$42i))}else{_9.selectRecord(_9.data.findById(_1.ID))}}else{_9.selectRecord(_9.data.find({ID:_1.name}))}}
+var _7=_4?_4.editContext:_1.editContext;if(!_7)return;var _8=_7.creator;isc.SelectionOutline.select(_1,false,!(_2&&_8.hideLabelWhenSelecting),_5);if(_4)_1=_4;if(_1.editingOn){this.setupDragProperties(_1);this.showSelectedObjectDragHandle();var _9=_1.editContext;if(_9.selectRecord){_9.deselectAllRecords();if(isc.isA.Canvas(_1)){if(isc.isA.SectionHeader(_1)||isc.isA.ImgSectionHeader(_1)){_9.selectRecord(_9.data.findById(_1.$42i))}else{_9.selectRecord(_9.data.findById(_1.ID))}}else{_9.selectRecord(_9.data.find({ID:_1.name}))}}
 _9.creator.editComponent(_1.editNode,_1)}}
 ,isc.A.showSelectedObjectDragHandle=function isc_c_EditContext_showSelectedObjectDragHandle(){if(!this.$70r){var _1=this;this.$70r=isc.Img.create({src:"[SKIN]/../../ToolSkin/images/controls/dragHandle.gif",prompt:"Grab here to drag component",width:this.$72u,height:this.$72t,cursor:"move",backgroundColor:"white",opacity:80,canDrag:true,canDrop:true,isMouseTransparent:true,mouseDown:function(){this.dragIconOffsetX=isc.EH.getX()-
 isc.EditContext.draggingObject.getPageLeft();this.dragIconOffsetY=isc.EH.getY()-
@@ -15570,7 +15612,7 @@
 {delete _1.initData.inputSchemaDataSource;delete _1.initData.inputServiceName;delete _1.initData.inputServiceNamespace}}}
 ,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
+);isc.B._maxIndex=isc.C+16;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}
@@ -16085,6 +16127,9 @@
 },
 noNullUpdates:{
 type:"boolean"
+},
+canExport:{
+type:"boolean"
 }
 }
 })
@@ -16292,6 +16337,10 @@
 title:"Frozen",
 type:"boolean",
 xmlAttribute:"true"
+},
+canExport:{
+type:"boolean",
+xmlAttribute:"true"
 }
 }
 })
@@ -16522,8 +16571,7 @@
 }
 }
 })
-isc.defineClass("Operators","Class");isc.A=isc.Operators;isc.A.equalsTitle="equals";isc.A.notEqualTitle="not equal";isc.A.iEqualsTitle="equals (ignore case)";isc.A.iNotEqualTitle="not equal (ignore case)";isc.A.greaterThanTitle="greater than";isc.A.lessThanTitle="less than";isc.A.greaterOrEqualTitle="greater than or equal to";isc.A.lessOrEqualTitle="less than or equal to";isc.A.betweenTitle="between (match case)";isc.A.iBetweenTitle="between";isc.A.betweenInclusiveTitle="between (inclusive, match case)";isc.A.iBetweenInclusiveTitle="between (inclusive)";isc.A.iContainsTitle="contains";isc.A.iStartsWithTitle="starts with";isc.A.iEndsWithTitle="ends with";isc.A.containsTitle="contains (match case)";isc.A.startsWithTitle="starts with (match case)";isc.A.endsWithTitle="ends with (match case)";isc.A.iNotContainsTitle="does not contain";isc.A.iNotStartsWithTitle="does not start with";isc.A.iNotEndsWithTitle="does not end with";isc.A.notContainsTitle="does not contain (match case)";isc.A.notStartsWithTitle="does not start with (match case)";isc.A.notEndsWithTitle="does not end with (match case)";isc.A.isNullTitle="is null";isc.A.notNullTitle="not null";isc.A.regexpTitle="matches expression (exact case)";isc.A.iregexpTitle="matches expression";isc.A.inSetTitle="is one of";isc.A.notInSetTitle="is not one of";isc.A.equalsFieldTitle="matches other field";isc.A.notEqualFieldTitle="differs from field";isc.A.greaterThanFieldTitle="greater than field";isc.A.lessThanFieldTitle="less than field";isc.A.greaterOrEqualFieldTitle="greater than or equal to field";isc.A.lessOrEqualFieldTitle="less than or equal to field";isc.A.containsFieldTitle="contains (match case) another field value";isc.A.startsWithFieldTitle="starts with (match case) another field value";isc.A.endsWithFieldTitle="ends with (match case) another field value";isc.A.andTitle="and";isc.A.notTitle="not";isc.A.orTitle="or";if(isc.DynamicForm){isc.defineClass("DynamicFilterForm","DynamicForm");isc.A=isc.DynamicFilterForm;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.canEditField=function isc_c_DynamicFilterForm_canEditField(_1,_2){return(_2.canEditNonFilterableFields||_1.canFilter!=false)}
-);isc.B._maxIndex=isc.C+1;isc.A=isc.DynamicFilterForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.canEditNonFilterableFields=false;isc.A.$10j="Enter";isc.B.push(isc.A.handleKeyPress=function isc_DynamicFilterForm_handleKeyPress(_1,_2){var _3=this.getFocusSubItem();if(isc.isA.TextItem(_3))_2.firedOnTextItem=true;if(_1.keyName!=this.$10j){return this.Super("handleKeyPress",[_1,_2])}}
+isc.defineClass("Operators","Class");isc.A=isc.Operators;isc.A.equalsTitle="equals";isc.A.notEqualTitle="not equal";isc.A.iEqualsTitle="equals (ignore case)";isc.A.iNotEqualTitle="not equal (ignore case)";isc.A.greaterThanTitle="greater than";isc.A.lessThanTitle="less than";isc.A.greaterOrEqualTitle="greater than or equal to";isc.A.lessOrEqualTitle="less than or equal to";isc.A.betweenTitle="between (match case)";isc.A.iBetweenTitle="between";isc.A.betweenInclusiveTitle="between (inclusive, match case)";isc.A.iBetweenInclusiveTitle="between (inclusive)";isc.A.iContainsTitle="contains";isc.A.iStartsWithTitle="starts with";isc.A.iEndsWithTitle="ends with";isc.A.containsTitle="contains (match case)";isc.A.startsWithTitle="starts with (match case)";isc.A.endsWithTitle="ends with (match case)";isc.A.iNotContainsTitle="does not contain";isc.A.iNotStartsWithTitle="does not start with";isc.A.iNotEndsWithTitle="does not end with";isc.A.notContainsTitle="does not contain (match case)";isc.A.notStartsWithTitle="does not start with (match case)";isc.A.notEndsWithTitle="does not end with (match case)";isc.A.isNullTitle="is null";isc.A.notNullTitle="not null";isc.A.regexpTitle="matches expression (exact case)";isc.A.iregexpTitle="matches expression";isc.A.inSetTitle="is one of";isc.A.notInSetTitle="is not one of";isc.A.equalsFieldTitle="matches other field";isc.A.notEqualFieldTitle="differs from field";isc.A.greaterThanFieldTitle="greater than field";isc.A.lessThanFieldTitle="less than field";isc.A.greaterOrEqualFieldTitle="greater than or equal to field";isc.A.lessOrEqualFieldTitle="less than or equal to field";isc.A.containsFieldTitle="contains (match case) another field value";isc.A.startsWithFieldTitle="starts with (match case) another field value";isc.A.endsWithFieldTitle="ends with (match case) another field value";isc.A.andTitle="and";isc.A.notTitle="not";isc.A.orTitle="or";if(isc.DynamicForm){isc.defineClass("DynamicFilterForm","SearchForm");isc.A=isc.DynamicFilterForm.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$10j="Enter";isc.B.push(isc.A.handleKeyPress=function isc_DynamicFilterForm_handleKeyPress(_1,_2){var _3=this.getFocusSubItem();if(isc.isA.TextItem(_3))_2.firedOnTextItem=true;if(_1.keyName!=this.$10j){return this.Super("handleKeyPress",[_1,_2])}}
 ,isc.A.itemChanged=function isc_DynamicFilterForm_itemChanged(_1,_2,_3){if(this.creator.itemChanged)this.creator.itemChanged()}
 );isc.B._maxIndex=isc.C+2;isc.defineClass("FilterClause","HStack");isc.A=isc.FilterClause.getPrototype();isc.A.height=20;isc.A.showFieldTitles=true;isc.A.validateOnChange=true;isc.A.fieldPickerWidth=150;isc.A.operatorPickerWidth=150;isc.A.valueItemWidth=150;isc.A.fieldPickerDefaults={type:"SelectItem",name:"fieldName",showTitle:false,textMatchStyle:"startsWith",changed:function(){this.form.creator.fieldNameChanged(this.form)}};isc.A.fieldPickerTitle="Field Name";isc.A.operatorPickerDefaults={name:"operator",type:"select",showTitle:false,addUnknownValues:false,defaultToFirstOption:true,changed:function(){this.form.creator.operatorChanged(this.form)}};isc.A.operatorPickerTitle="Operator";isc.A.valueItemTitle="Value";isc.A.clauseConstructor=isc.DynamicFilterForm;isc.A.showRemoveButton=true;isc.A.removeButtonPrompt="Remove";isc.A.excludeNonFilterableFields=true;isc.A.removeButtonDefaults={_constructor:isc.ImgButton,width:18,height:18,layoutAlign:"center",src:"[SKIN]/actions/remove.png",showRollOver:false,showDown:false,showDisabled:false,click:function(){this.creator.remove()}};isc.A.flattenItems=true;isc.A=isc.FilterClause.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_FilterClause_initWidget(){this.Super("initWidget",arguments);this.setupClause()}
 ,isc.A.getFilterBuilder=function isc_FilterClause_getFilterBuilder(){return this.filterBuilder}
@@ -16556,7 +16604,7 @@
 this.addMembers([this.topOperatorForm,this.removeButton,this.clause]);if(this.fieldPicker&&this.fieldPicker.type=="staticText"){this.fieldPicker.prompt=this.fieldPicker.getValue()}}
 ,isc.A.updateInlineTopOperator=function isc_FilterClause_updateInlineTopOperator(){if(this.topOperatorAppearance!="inline")return;var _1=this.creator.showSelectionCheckbox?1:0;if(this.creator.isFirstClause(this)){this.topOperatorForm.items[_1].hide()}else{this.topOperatorForm.items[_1].show()}}
 ,isc.A.buildValueItemList=function isc_FilterClause_buildValueItemList(_1,_2){if(_2==null)this.logWarn("buildValueItemList passed null operator");if(_1==null)return;var _3=_1.name,_4=_2?_2.valueType:"text",_5=isc.SimpleType.getType(_1.type)||isc.SimpleType.getType("text"),_6=[],_7,_8=null;while(_5.inheritsFrom){_5=isc.SimpleType.getType(_5.inheritsFrom)}
-_5=_5.name;if(isc.isA.FilterBuilder(this.filterBuilder)){_8=this.filterBuilder.getEditorType(_3,_2.ID);if(_8!=null)_5=_8}
+_5=_5.name;if(isc.isA.FilterBuilder(this.filterBuilder)){_8=this.filterBuilder.getEditorType(_1,_2.ID);if(_8!=null)_5=_8}
 if(_4=="valueSet"){return}else if(_4=="fieldType"||_4=="custom"){_8=null;if(_4=="custom"&&_2&&_2.editorType){_8=_2.editorType}
 var _9=isc.addProperties({type:_5,name:_1.name,showTitle:false,title:this.valueItemTitle,width:this.valueItemWidth,changed:function(){this.form.creator.valueChanged(this,this.form)}},this.getValueFieldProperties(_1.type,_3,_2.ID,"value"));if(_8)_9.editorType=_8;_9=this.combineFieldData(_9,_1);_9.name="value";if(_1.type=="enum"){_9=isc.addProperties(_9,{valueMap:_1.valueMap})}
 if(_5=="boolean"){_9=isc.addProperties(_9,{defaultValue:false})}
@@ -16601,7 +16649,7 @@
 ,isc.A.getCriterionDescription=function isc_c_FilterBuilder_getCriterionDescription(_1,_2){if(!isc.isA.DataSource(_2))_2=isc.DS.getDataSource(_2);if(!_2)return"No DataSource";var _3=_1.fieldName,_4=_1.operator,_5=_1.value,_6=_1.start,_7=_1.end,_8=_2.getField(_3),_9=_2.getSearchOperator(_4),_10=_2.getFieldOperatorMap(_8,true,_9.valueType,false),_11="";if(!_8){if(_1.criteria&&isc.isAn.Array(_1.criteria)){isc.logWarn("FilterBuilder.getCriterionDescription: Passed an AdvancedCriteria - "+"returning through getFilterDescription.");return isc.FilterBuilder.getFilterDescription(_1,_2)}
 _11=_3+" "+isc.FilterBuilder.missingFieldPrompt+" ";isc.logWarn("FilterBuilder.getCriterionDescription: No such field '"+_3+"' "+"in DataSource '"+_2.ID+"'.")}else{_11=(_8.title?_8.title:_3)+" "}
 switch(_4)
-{case"notEqual":case"lessThan":case"greaterThan":case"lessOrEqual":case"greaterOrEqual":case"between":case"notNull":_11+="is "+_10[_4]||_4;break;case"equals":_11+="is equal to";break;case"notEqual":_11+="is not equal to";break;default:_11+=_10[_4]||_4}
+{case"lessThan":case"greaterThan":case"lessOrEqual":case"greaterOrEqual":case"between":case"notNull":_11+="is "+_10[_4]||_4;break;case"equals":_11+="is equal to";break;case"notEqual":_11+="is not equal to";break;default:_11+=_10[_4]||_4}
 if(_9.valueType=="valueRange")_11+=" "+_6+" and "+_7;else if(_4!="notNull")_11+=" "+_5;return _11}
 );isc.B._maxIndex=isc.C+2;isc.A=isc.FilterBuilder.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.vPolicy="none";isc.A.height=1;isc.A.defaultWidth=400;isc.A.fieldPickerDefaults={type:"SelectItem",name:"fieldName",textMatchStyle:"startsWith",showTitle:false,changed:function(){this.form.creator.fieldNameChanged(this.form)}};isc.A.fieldPickerTitle="Field Name";isc.A.showFieldTitles=true;isc.A.validateOnChange=true;isc.A.showRemoveButton=true;isc.A.removeButtonPrompt="Remove";isc.A.removeButtonDefaults={_constructor:isc.ImgButton,width:18,height:18,layoutAlign:"center",src:"[SKIN]/actions/remove.png",showRollOver:false,showDown:false,showDisabled:false,click:function(){this.creator.removeButtonClick(this.clause)}};isc.A.showAddButton=true;isc.A.addButtonPrompt="Add";isc.A.addButtonDefaults={_constructor:isc.ImgButton,autoParent:"buttonBar",width:18,height:18,src:"[SKIN]/actions/add.png",showRollOver:false,showDown:false,click:function(){this.creator.addButtonClick(this.clause)}};isc.A.buttonBarDefaults={_constructor:isc.HStack,autoParent:"clauseStack",membersMargin:4,defaultLayoutAlign:"center",height:1};isc.A.retainValuesAcrossFields=true;isc.A.topOperator="and";isc.A.radioOptions=["and","or","not"];isc.A.topOperatorAppearance="bracket";isc.A.radioOperatorFormDefaults={_constructor:isc.DynamicForm,autoParent:"clauseStack",height:1,items:[{name:"operator",type:"radioGroup",showTitle:false,title:"Overall Operator",vertical:false,width:250,changed:function(_1,_2,_3){_1.creator.topOperatorChanged(_3)}}]};isc.A.radioOperatorTitle="Overall Operator";isc.A.topOperatorFormDefaults={height:1,width:80,numCols:1,colWidths:["*"],layoutAlign:"center",_constructor:isc.DynamicForm,items:[{name:"operator",type:"select",showTitle:false,width:"*",changed:function(_1,_2,_3){_1.creator.topOperatorChanged(_3)}}]};isc.A.topOperatorTitle="Clause Operator";isc.A.defaultSubClauseOperator="or";isc.A.matchAllTitle="Match All";isc.A.matchNoneTitle="Match None";isc.A.matchAnyTitle="Match Any";isc.A.inlineAndTitle="and";isc.A.inlineOrTitle="or";isc.A.inlineAndNotTitle="and not";isc.A.clauseStackDefaults={_constructor:isc.VStack,height:1,membersMargin:1,animateMembers:true,animateMemberTime:150};isc.A.clauseConstructor="FilterClause";isc.A.rangeSeparator="and";isc.A.subClauseButtonTitle="+()";isc.A.subClauseButtonPrompt="Add Subclause";isc.A.subClauseButtonDefaults={_constructor:"IButton",autoParent:"buttonBar",autoFit:true,click:function(){this.creator.addSubClause(this.clause)}};isc.A.bracketDefaults={styleName:"bracketBorders",width:10};isc.A.internalSearchFormDefaults={_constructor:"SearchForm",visibility:"hidden",autoDraw:false};isc.A.$10j="Enter";isc.B.push(isc.A.setDataSource=function isc_FilterBuilder_setDataSource(_1){if(isc.DataSource.get(this.dataSource).ID!=isc.DataSource.get(_1).ID){this.dataSource=_1;this.clearCriteria()}}
 ,isc.A.addButtonClick=function isc_FilterBuilder_addButtonClick(){this.addNewClause()}
@@ -16671,12 +16719,11 @@
 ,isc.A.handleKeyPress=function isc_FilterBuilder_handleKeyPress(_1,_2){if(_1.keyName==this.$10j){if(this.saveOnEnter){if(_2.firedOnTextItem){if(!this.creator&&this.search){this.search(this.getCriteria());return isc.EH.STOP_BUBBLING}}}}}
 ,isc.A.itemChanged=function isc_FilterBuilder_itemChanged(){if(this.creator&&isc.isA.Function(this.creator.itemChanged)){this.creator.itemChanged()}else{if(!this.creator&&isc.isA.Function(this.filterChanged)){this.filterChanged()}}}
 ,isc.A.fieldNameChanged=function isc_FilterBuilder_fieldNameChanged(_1){}
-,isc.A.getEditorType=function isc_FilterBuilder_getEditorType(_1,_2){var _3=this.getPrimaryDS(),_4,_5;var _6=_3.getSearchOperator(_2);if(_6.editorType)return _6.editorType;if(_6.getEditorType&&isc.isA.Function(_6.getEditorType)){return _6.getEditorType()}
-if(this.fieldDataSource){var _7=this.fieldDataSource.testData;_5=_7.find("name",_1)}else{if(_3)_5=_3.getField(_1)}
-if(_5&&(_2=="equals"||_2=="notEqual"||_2=="lessThan"||_2=="greaterThan"||_2=="between"||_2=="betweenInclusive"||_2=="greaterOrEqual"||_2=="lessOrEqual"))
-{if(_5&&isc.SimpleType.inheritsFrom(_5.type,"date"))return"RelativeDateItem"}
-if(_5){if(!this.internalSearchForm){this.internalSearchForm=this.createAutoChild("internalSearchForm",{useAllDataSourceFields:false,dataSource:_3,fields:[_5]})}else{this.internalSearchForm.setFields([_5])}
-return this.internalSearchForm.getEditorType(_5)}else
+,isc.A.getEditorType=function isc_FilterBuilder_getEditorType(_1,_2){var _3=this.getPrimaryDS(),_4;var _5=_3.getSearchOperator(_2);if(_5.editorType)return _5.editorType;if(_5.getEditorType&&isc.isA.Function(_5.getEditorType)){return _5.getEditorType()}
+if(_1&&(_2=="equals"||_2=="notEqual"||_2=="lessThan"||_2=="greaterThan"||_2=="between"||_2=="betweenInclusive"||_2=="greaterOrEqual"||_2=="lessOrEqual"))
+{if(_1&&isc.SimpleType.inheritsFrom(_1.type,"date"))return"RelativeDateItem"}
+if(_1){if(!this.internalSearchForm){this.internalSearchForm=this.createAutoChild("internalSearchForm",{useAllDataSourceFields:false,dataSource:_3,fields:[_1]})}else{this.internalSearchForm.setFields([_1])}
+return this.internalSearchForm.getEditorType(_1)}else
 return isc.FormItemFactory.getItemClassName({},"text",null)}
 ,isc.A.getSelectedClauses=function isc_FilterBuilder_getSelectedClauses(){var _1=[];if(this.showSelectionCheckbox){for(var i=0;i<this.clauses.length;i++){var c=this.clauses[i];if(c.topOperatorForm&&c.topOperatorForm.getValue("select")){_1.add(c)}}}
 return _1}
@@ -16703,11 +16750,11 @@
 ,isc.A.clearAriaState=function isc_FormItem_clearAriaState(_1){var _2=this.getFocusElement();if(_2!=null)isc.Canvas.clearAriaState(_2,_1)}
 ,isc.A.getAriaState=function isc_FormItem_getAriaState(){var _1={};if(this.required&&this.form&&this.form.hiliteRequiredFields)_1.required=true;if(this.hasErrors()){_1.invalid=true;var _2=this.getErrorIconId();_1.describedby=_2}
 if(this.isDisabled())_1.disabled=true;if(isc.isA.CheckboxItem(this))_1.checked=!!this.getValue();return _1}
-,isc.A.addContentRoles=function isc_FormItem_addContentRoles(){if(!isc.Canvas.ariaEnabled()||isc.liteAria)return;if(!this.$kk()||!this.ariaRole)return;this.setAriaRole(this.ariaRole);if(this.textBoxAriaRole){var _1=this.$15h();if(_1!=null)isc.Canvas.setAriaRole(_1,this.textBoxAriaRole)}
-var _2;if(this.controlTableAriaRole){_2=this.$15f();if(_2!=null)isc.Canvas.setAriaRole(_2,this.controlTableAriaRole)}
-if(this.title){_2=_2!=null?_2:this.$15f();if(_2!=null)isc.Canvas.setAriaState(_2,"label",this.title)}
+,isc.A.addContentRoles=function isc_FormItem_addContentRoles(){if(!isc.Canvas.ariaEnabled()||isc.liteAria)return;if(!this.$kk()||!this.ariaRole)return;this.setAriaRole(this.ariaRole);var _1;if(this.outerAriaRole){_1=this.getHandle();if(_1!=null)isc.Canvas.setAriaRole(_1,this.outerAriaRole)}
+if(this.title){var _2;if(this.hasDataElement()){_2=this.getDataElement()}else if(this.outerAriaRole){_2=_1!=null?_1:this.getHandle()}else{_2=this.$15h()}
+if(_2!=null){isc.Canvas.setAriaState(_2,"label",this.title)}}
 if(this.ariaState)this.setAriaStates(this.ariaState);this.setAriaStates(this.getAriaState())}
-);isc.B._maxIndex=isc.C+6;isc.A=isc.TextAreaItem.getPrototype();isc.A.ariaState={multiline:true};isc.A=isc.ComboBoxItem.getPrototype();isc.A.ariaState={autocomplete:"list"};isc.A.ariaRole="combobox";isc.A=isc.SelectItem.getPrototype();isc.A.ariaRole="option";isc.A.controlTableAriaRole="listbox";isc.A.ariaState={expanded:false,selected:true}}
+);isc.B._maxIndex=isc.C+6;isc.A=isc.TextAreaItem.getPrototype();isc.A.ariaState={multiline:true};isc.A=isc.ComboBoxItem.getPrototype();isc.A.ariaState={autocomplete:"list"};isc.A.ariaRole="combobox";isc.A=isc.SelectItem.getPrototype();isc.A.ariaRole="option";isc.A.outerAriaRole="listbox";isc.A.ariaState={expanded:false,selected:true};isc.A=isc.StaticTextItem.getPrototype();isc.A.ariaRole="textbox";isc.A.ariaState={disabled:true}}
 if(isc.GridRenderer){isc.A=isc.GridRenderer.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.setRowAriaState=function isc_GridRenderer_setRowAriaState(_1,_2,_3){var _4=this.getTableElement(_1);if(_4==null)return;isc.Canvas.setAriaState(_4,_2,_3)}
 ,isc.A.setRowAriaStates=function isc_GridRenderer_setRowAriaStates(_1,_2){var _3=this.getTableElement(_1);if(_3==null)return;isc.Canvas.setAriaStates(_3,_2)}
 );isc.B._maxIndex=isc.C+2;isc.A=isc.ListGrid.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.ariaRole="list";isc.A.rowRole="listitem";isc.B.push(isc.A.getRowRole=function isc_ListGrid_getRowRole(_1,_2){if(_2&&_2.isSeparator)return"separator";return this.rowRole}
@@ -16721,7 +16768,7 @@
 ,isc.A.getRowState=function isc_Menu_getRowState(_1){if(this.hasSubmenu(this.getItem(_1)))return{haspopup:true}}
 );isc.B._maxIndex=isc.C+2;isc.A=isc.MenuButton.getPrototype();isc.A.ariaRole="button";isc.A.ariaState={haspopup:true};isc.A=isc.MenuBar.getPrototype();isc.A.ariaRole="menubar"}
 (function(){var _1={Button:"button",StretchImgButton:"button",ImgButton:"button",Label:"label",SectionHeader:"heading",ImgSectionHeader:"heading",CheckboxItem:"checkbox",Slider:"slider",TextItem:"textbox",TextAreaItem:"textbox",Window:"dialog",Toolbar:"toolbar",HTMLFlow:"article",HTMLPane:"article",TabBar:"tablist",PaneContainer:"tabpanel",ImgTab:"tab",EdgedCanvas:"presentation",BackMask:"presentation"}
-for(var _2 in _1){var _3=isc.ClassFactory.getClass(_2);if(_3)_3.addProperties({ariaRole:_1[_2]})}})();if(isc.ListGrid!=null){isc.ClassFactory.defineClass("DataSourceEditor","VLayout");isc.A=isc.DataSourceEditor.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.overflow="visible";isc.A.mainEditorDefaults={_constructor:"ComponentEditor",autoDraw:false,numCols:8,overflow:"visible",backgroundColor:"black",dataSource:"DataSource",fields:[{name:"ID",title:"ID",required:true},{name:"dropExtraFields"},{name:"autoDeriveSchema"},{type:"section",defaultValue:"XPath Binding",showIf:"values.dataFormat != 'iscServer'",itemIds:["dataURL","selectBy","recordXPath","recordName"]},{name:"dataURL",showIf:"values.dataFormat != 'iscServer'"},{name:"selectBy",title:"Select Records By",shouldSaveValue:false,valueMap:{tagName:"Tag Name",xpath:"XPath Expression"},defaultValue:"xpath",redrawOnChange:true,showIf:"values.dataFormat == 'xml'"},{name:"recordXPath",showIf:"values.dataFormat != 'iscServer' && form.getItem('selectBy').getValue() == 'xpath'"},{name:"recordName",showIf:"values.dataFormat == 'xml' && values.selectBy == 'tagName'"},{type:"section",defaultValue:"SQL Binding",showIf:"values.serverType == 'sql' || values.serverType == 'hibernate'",itemIds:["dbName","schemaName","tableName"]},{name:"dbName",showIf:"values.serverType == 'sql'"},{name:"schema",showIf:"values.serverType == 'sql'"},{name:"tableName",showIf:"values.serverType == 'sql' || values.serverType == 'hibernate'"},{name:"beanClassName",showIf:"values.serverType == 'sql' || values.serverType == 'hibernate'"},{type:"section",defaultValue:"Record Titles",sectionExpanded:false,itemIds:["title","pluralTitle","titleField"]},{name:"title"},{name:"pluralTitle"},{name:"titleField"}]};isc.A.fieldEditorDefaults={_constructor:"ListEditor",autoDraw:false,inlineEdit:true,dataSource:"DataSourceField",saveLocally:true,gridButtonsOrientation:"right",backgroundColor:"white",fields:[{name:"name",treeField:true},{name:"title"},{name:"type",width:60},{name:"required",title:"Req.",width:40,canToggle:true},{name:"hidden",width:40},{name:"length",width:60},{name:"primaryKey",title:"is PK",width:40}],formConstructor:isc.ComponentEditor,formProperties:{numCols:4,initialGroups:10},formFields:[{name:"name",canEdit:false},{name:"type"},{name:"title"},{name:"primaryKey"},{name:"valueXPath",colSpan:2,showIf:function(){var _1=this.form.creator,_2=_1?_1.creator.mainEditor:null;return(_2&&_2.getValues().dataFormat!='iscServer')}},{type:"section",defaultValue:"Value Constraints",itemIds:["required","length","valueMap"]},{name:"valueMap",rowSpan:2},{name:"required"},{name:"length"},{type:"section",defaultValue:"Component Binding",itemIds:["hidden","detail","canEdit"]},{name:"canEdit"},{name:"hidden"},{name:"detail"},{type:"section",defaultValue:"Relations",sectionExpanded:false,itemIds:["foreignKey","rootValue"]},{name:"foreignKey"},{name:"rootValue",showTitle:false,colSpan:4}],gridDefaults:{editEvent:"click",listEndEditAction:"next",autoParent:"gridLayout",selectionType:isc.Selection.SINGLE,recordClick:"this.creator.recordClick(record)",modalEditing:true,editorEnter:"if (this.creator.moreButton) this.creator.moreButton.enable()",selectionChanged:function(){if(this.anySelected()&&this.creator.moreButton){this.creator.moreButton.enable()}},contextMenu:{data:[{title:"Remove",click:"target.creator.removeRecord()"}]},styleName:"rightBorderOnly",validateByCell:true,leaveScrollbarGap:false,alternateRecordStyles:true,canRemoveRecords:true,canEdit:true,canEditCell:function(_1,_2){var _3=this.getRecord(_1),_4=this.getField(_2),_5=_4[this.fieldIdProperty],_6=(_5=="name"||_5=="title");if(isc.isA.TreeGrid(this)){if(_3.isFolder&&!(_6||_5=="required"||_5=="hidden")){return false}}
+for(var _2 in _1){var _3=isc.ClassFactory.getClass(_2);if(_3)_3.addProperties({ariaRole:_1[_2]})}})();if(isc.ListGrid!=null){isc.ClassFactory.defineClass("DataSourceEditor","VLayout");isc.A=isc.DataSourceEditor.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.overflow="visible";isc.A.mainEditorDefaults={_constructor:"ComponentEditor",autoDraw:false,numCols:8,overflow:"visible",backgroundColor:"black",dataSource:"DataSource",fields:[{name:"ID",title:"ID",required:true},{name:"dropExtraFields"},{name:"autoDeriveSchema"},{type:"section",defaultValue:"XPath Binding",showIf:"values.dataFormat != 'iscServer'",itemIds:["dataURL","selectBy","recordXPath","recordName"]},{name:"dataURL",showIf:"values.dataFormat != 'iscServer'"},{name:"selectBy",title:"Select Records By",shouldSaveValue:false,valueMap:{tagName:"Tag Name",xpath:"XPath Expression"},defaultValue:"xpath",redrawOnChange:true,showIf:"values.dataFormat == 'xml'"},{name:"recordXPath",showIf:"values.dataFormat != 'iscServer' && form.getItem('selectBy').getValue() == 'xpath'"},{name:"recordName",showIf:"values.dataFormat == 'xml' && values.selectBy == 'tagName'"},{type:"section",defaultValue:"SQL Binding",showIf:"values.serverType == 'sql' || values.serverType == 'hibernate'",itemIds:["dbName","schemaName","tableName"]},{name:"dbName",showIf:"values.serverType == 'sql'"},{name:"schema",showIf:"values.serverType == 'sql'"},{name:"tableName",showIf:"values.serverType == 'sql' || values.serverType == 'hibernate'"},{name:"beanClassName",showIf:"values.serverType == 'sql' || values.serverType == 'hibernate'"},{type:"section",defaultValue:"Record Titles",sectionExpanded:false,itemIds:["title","pluralTitle","titleField"]},{name:"title"},{name:"pluralTitle"},{name:"titleField"}]};isc.A.fieldEditorDefaults={_constructor:"ListEditor",autoDraw:false,inlineEdit:true,dataSource:"DataSourceField",saveLocally:true,gridButtonsOrientation:"right",fields:[{name:"name",treeField:true},{name:"title"},{name:"type",width:60},{name:"required",title:"Req.",width:40,canToggle:true},{name:"hidden",width:40},{name:"length",width:60},{name:"primaryKey",title:"is PK",width:40}],formProperties:{numCols:4,initialGroups:10},formFields:[{name:"name",canEdit:false},{name:"type"},{name:"title"},{name:"primaryKey"},{name:"valueXPath",colSpan:2,showIf:function(){var _1=this.form.creator,_2=_1?_1.creator.mainEditor:null;return(_2&&_2.getValues().dataFormat!='iscServer')}},{type:"section",defaultValue:"Value Constraints",itemIds:["required","length","valueMap"]},{name:"valueMap",rowSpan:2},{name:"required"},{name:"length"},{type:"section",defaultValue:"Component Binding",itemIds:["hidden","detail","canEdit"]},{name:"canEdit"},{name:"hidden"},{name:"detail"},{type:"section",defaultValue:"Relations",sectionExpanded:false,itemIds:["foreignKey","rootValue"]},{name:"foreignKey"},{name:"rootValue"}],gridDefaults:{editEvent:"click",listEndEditAction:"next",autoParent:"gridLayout",selectionType:isc.Selection.SINGLE,recordClick:"this.creator.recordClick(record)",modalEditing:true,editorEnter:"if (this.creator.moreButton) this.creator.moreButton.enable()",selectionChanged:function(){if(this.anySelected()&&this.creator.moreButton){this.creator.moreButton.enable()}},contextMenu:{data:[{title:"Remove",click:"target.creator.removeRecord()"}]},styleName:"rightBorderOnly",validateByCell:true,leaveScrollbarGap:false,alternateRecordStyles:true,canRemoveRecords:true,canEdit:true,canEditCell:function(_1,_2){var _3=this.getRecord(_1),_4=this.getField(_2),_5=_4[this.fieldIdProperty],_6=(_5=="name"||_5=="title");if(isc.isA.TreeGrid(this)){if(_3.isFolder&&!(_6||_5=="required"||_5=="hidden")){return false}}
 else{if(this.getDataSource().fieldIsComplexType(_4)&&!_6)
 return false}
 return this.Super('canEditCell',arguments)}},newRecord:function(){if(this.creator.canEditChildSchema){var _1=this.grid,_2=_1.data,_3=this.getSelectedNode();if(!_3)_3=_2.root;var _4=_2.getParent(_3)
@@ -16752,7 +16799,7 @@
 var _4=_3.xmlSerialize(_1);this.logWarn("saving DS with XML: "+_4);isc.DMI.callBuiltin({methodName:"saveSharedXML",arguments:["DS",_1.ID,_4]});var _5=isc.ClassFactory.getClass(_2).create(_1);this.fireCallback(this.saveCallback,"dataSource",[_5]);this.saveCallback=null}
 ,isc.A.clear=function isc_DataSourceEditor_clear(){if(this.mainEditor)this.mainEditor.clearValues();else this.mainEditorValues=null;this.fieldEditor.setData([])}
 ,isc.A.initWidget=function isc_DataSourceEditor_initWidget(){this.Super('initWidget',arguments);this.addAutoChildren(["mainStack","instructions","mainEditor","buttonLayout","saveButton"]);if(this.canAddChildSchema){this.canEditChildSchema=true;this.addAutoChild("addChildButton")}
-this.addAutoChild("fieldEditor",{gridConstructor:this.canEditChildSchema?isc.TreeGrid:isc.ListGrid,showMoreButton:this.showMoreButton,newButtonTitle:"New Field",newButtonDefaults:this.newButtonDefaults,newButtonProperties:this.newButtonProperties,moreButtonDefaults:this.moreButtonDefaults,moreButtonProperties:this.moreButtonProperties});this.moreButton=this.fieldEditor.moreButton;this.newButton=this.fieldEditor.newButton;if(this.canAddChildSchema)this.fieldEditor.gridButtons.addMember(this.addChildButton);var _1=this.mainStack;_1.addSections([isc.addProperties(this.instructionsSectionDefaults,this.instructionsSectionProperties,{items:[this.instructions]})]);_1.addSections([isc.addProperties(this.mainSectionDefaults,this.mainSectionProperties,{items:[this.mainEditor]})]);if(this.showMainEditor==false)_1.hideSection(1);_1.addSections([isc.addProperties(this.fieldSectionDefaults,this.fieldSectionProperties,{items:[this.fieldEditor]})]);var _2=this;this.deriveForm=this.createAutoChild("deriveForm",{fields:[{name:"sql",showTitle:false,formItemType:"AutoFitTextAreaItem",width:"*",height:40,colSpan:"*",keyPress:function(_3,_4,_5){if(_5=='Enter'&&isc.EH.ctrlKeyDown()){if(isc.Browser.isSafari)_3.setValue(_3.getElementValue());_2.execSQL();if(isc.Browser.isSafari)return false}}},{type:"button",title:"Execute",startRow:true,click:this.getID()+".execSQL()"}]});_1.addSections([isc.addProperties(this.deriveFieldsSectionDefaults,this.deriveFieldsSectionProperties,{items:[this.deriveForm]})]);this.previewGrid=this.createAutoChild("previewGrid");_1.addSection({ID:"previewSection",title:"Preview",expanded:false,items:[this.previewGrid]});_1.addSections({expanded:true,showHeader:false,items:[this.saveButton]})}
+this.addAutoChild("fieldEditor",{formConstructor:isc.TComponentEditor||isc.ComponentEditor,gridConstructor:this.canEditChildSchema?isc.TreeGrid:isc.ListGrid,showMoreButton:this.showMoreButton,newButtonTitle:"New Field",newButtonDefaults:this.newButtonDefaults,newButtonProperties:this.newButtonProperties,moreButtonDefaults:this.moreButtonDefaults,moreButtonProperties:this.moreButtonProperties});this.moreButton=this.fieldEditor.moreButton;this.newButton=this.fieldEditor.newButton;if(this.canAddChildSchema)this.fieldEditor.gridButtons.addMember(this.addChildButton);var _1=this.mainStack;_1.addSections([isc.addProperties(this.instructionsSectionDefaults,this.instructionsSectionProperties,{items:[this.instructions]})]);_1.addSections([isc.addProperties(this.mainSectionDefaults,this.mainSectionProperties,{items:[this.mainEditor]})]);if(this.showMainEditor==false)_1.hideSection(1);_1.addSections([isc.addProperties(this.fieldSectionDefaults,this.fieldSectionProperties,{items:[this.fieldEditor]})]);var _2=this;this.deriveForm=this.createAutoChild("deriveForm",{fields:[{name:"sql",showTitle:false,formItemType:"AutoFitTextAreaItem",width:"*",height:40,colSpan:"*",keyPress:function(_3,_4,_5){if(_5=='Enter'&&isc.EH.ctrlKeyDown()){if(isc.Browser.isSafari)_3.setValue(_3.getElementValue());_2.execSQL();if(isc.Browser.isSafari)return false}}},{type:"button",title:"Execute",startRow:true,click:this.getID()+".execSQL()"}]});_1.addSections({expanded:true,showHeader:false,items:[this.saveButton]})}
 ,isc.A.execSQL=function isc_DataSourceEditor_execSQL(){var _1=this.deriveForm.getValue("sql");if(_1){_1=_1.trim().replace(/(.*);+/,"$1");var _2=isc.DataSource.get("DataSourceStore");_2.performCustomOperation("dsFromSQL",{dbName:this.mainEditor.getValue("dbName"),sql:_1},this.getID()+".deriveDSLoaded(data)")}}
 ,isc.A.deriveDSLoaded=function isc_DataSourceEditor_deriveDSLoaded(_1){var _2=_1.ds;this.dsLoaded(_1.ds)}
 ,isc.A.dsLoaded=function isc_DataSourceEditor_dsLoaded(_1){var _2=isc.DataSource.create(_1);this.currentDS=_2;this.deriveFields(_2);this.previewGrid.setDataSource(_2)}
@@ -16764,7 +16811,7 @@
 isc._moduleEnd=isc._DataBinding_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('DataBinding 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 'DataBinding'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -16775,7 +16822,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -16998,7 +17045,7 @@
 );isc.B._maxIndex=isc.C+6;isc._moduleEnd=isc._RichTextEditor_end=(isc.timestamp?isc.timestamp():new Date().getTime());if(isc.Log&&isc.Log.logIsInfoEnabled('loadTime'))isc.Log.logInfo('RichTextEditor 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 'RichTextEditor'.");}
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/build.xml	Wed Aug 17 12:48:12 2011 +0200
+++ b/build.xml	Fri Sep 09 18:00:31 2011 +0200
@@ -22,7 +22,7 @@
     Combines all required JavaScript files in one file
   </description>
   <property name="isc"
-            location="isomorphic" />
+            location="web/org.openbravo.userinterface.smartclient/isomorphic" />
 
   <target name="combine" description="Concatenates all SmartClient in one file: ISC_Combined.js">
     <concat destfile="ISC_Combined.js">
--- a/docs/changelog.html	Wed Aug 17 12:48:12 2011 +0200
+++ b/docs/changelog.html	Fri Sep 09 18:00:31 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-07-19/LGPL Deployment&nbsp;(2011-07-19)
+	Version&nbsp;SC_SNAPSHOT-2011-09-09/LGPL Deployment&nbsp;(2011-09-09)
 </SPAN></TD></TR></TABLE>
 
 
--- a/docs/readme.html	Wed Aug 17 12:48:12 2011 +0200
+++ b/docs/readme.html	Fri Sep 09 18:00:31 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-07-19/LGPL Deployment&nbsp;(2011-07-19)
+	Version&nbsp;SC_SNAPSHOT-2011-09-09/LGPL Deployment&nbsp;(2011-09-09)
 </SPAN></TD></TR></TABLE>
 
 
@@ -49,53 +49,24 @@
 take a few minutes to review this file. 
 </div>
 
-<h1>What's New in 8.0</h1>
+
+<h1>What's New in 8.1</h1>
 <div class=bodyBlock>
-8.0 is another monster release, with spectacularly powerful new features and a gorgeous look &amp; feel refresh.  The following features have been
-added:
+SmartClient version 8.1 is a significant upgrade from 8.0, containing powerful new features and
+a wealth of bug fixes and general enhancements. A brief overview of the major changes:
 <ul>
-<li>Expandable rows:  several built-in modes including showing a nested grid for related records, 
-as well as, the ability to create your own component on expansion.  Multi-nesting (grid within grid within grid) supported.
-<li>Masked text input: specify the mask in a regular-expression like format, and the rest is handled for you.  Works in grids too.
-<li>New Enterprise skins: The Enterprise skin has been refined and new Enterprise Blue and Graphite skins have been added.
-<li>New ultralight &ldquo;Simplicity&rdquo; skin: the new &ldquo;Simplicity&rdquo; skin takes advantage of early CSS3 support in modern browsers like Firefox, Safari and Chrome to deliver look and feel similar to our classic skins (rounded elements, gradients, and other touches) while remaining almost image free.  Appearance degrades gracefully in Internet Explorer to a more square / solid color appearance.
-<li>(Preliminary) Touch &amp; Mobile support: support for iPhone, iPad and iPod touch devices and partial support for Android devices.  No code changes required, and the full range of interactions is supported, including drag and drop and flick scrolling with momentum.  SmartClient on mobile is a strong choice for long-session mobile &amp; touch applications (like iWork for the iPad) and especially for offline mobile applications.   
-<li>Declarative Security:  protect operations by role by simply declaring requiresRole=&ldquo;manager&rdquo; on an operationBinding.  Codeless integration with J2EE security and JAAS &ldquo; if your security solution is causing httpServletRequest.isUserInRole() to return appropriate values, it just works.  If instead you need to provide roles dynamically, you can do so with a single API call (RPCManager.setUserRoles()).
-<li>Declarative output restriction: declare which fields should be returned by the server on a per-operation or per-request basis  (dsRequest.outputs / operationBinding.outputs).  Use this to cut down on network traffic for combo boxes and other scenarios where only a few fields are needed from a record with dozens of fields.  Or, combine it with Declarative Security to enforce data visibility rules.
-<li>New server-side validators: &rdquo;isUnique&ldquo; makes it trivial to enforce common cases like having a unique user name.  &rdquo;hasRelatedRecords&ldquo; can enforce that inter-record references are valid.
-<li>Validate On Exit: declare that validation for a particular field should be run when focus leaves the field.  This includes automatic trips to the server to run any server-only validators you&rdquo;ve defined.  Combined with the new isUnique validator, this makes on-the-fly unique username checks entirely declarative.
-<li>Server-side declarative custom validators: write a Velocity expression right in your .ds.xml file, or declare a Java class to call (like DMI)
-<p>
-$value.getTime() < $record.deadline.getTime()
-<p>
-<li>Grid totals / summaries: whole grid and group level summaries.  Several built-in functions (sums, averages, etc) and the ability to add your own.
-<li> Selenium support: including Selenium IDE and Selenium Remote Control.  We created a Selenium extension to allow recording abstract &ldquo;locators&rdquo; generated by SmartClient which are valid across browsers, across skins, across versions of SmartClient, and have fallback strategies that allow them to work across application changes like adding or reshuffling components.  Support for Selenium RC means you can now write test cases in Java and other languages.  A sample locator:
-<p>
-//ListGrid[ID="itemList"]/body/row[itemID=1996||itemName=Sugar||2]/col[fieldName=SKU||1]
-<p>
-<li>Automatic Transactions (SQL/Hibernate): batches of updates, such as a multi-row drag or  mass editing of grid rows, are now automatically grouped into a transaction when using either  the SQL or Hibernate connectors with Power edition or better.  APIs have been added to be  notified of transaction success or failure, manually initiate transactions and include or exclude specific requests.
-<li>Deeper SQL customization: customize the SQL used for select, insert and update for an individual field while retaining full support for automatic query generation, efficient data paging, multi-level sort and all other features of the SQLDataSource.  See DataSourceField.customSelect/Insert/UpdateExpression, as well as sqlStorageStrategy.
-<li>JPA DataSource: similar to the built-in SQL and Hibernate connectors, a connector has been added for JPA-based persistence.  This connector does not yet have a DataSource Wizard, but support is planned.  Supports simple Criteria for now &ldquo; support for Advanced Criteria will be available for Power edition in the future.
-<li>Annotation-based configuration in Hibernate: support for Hibernate configuration via annotations rather than explicit mapping files, and support for looking up Hibernate configuration via Spring.   Supported in both the DataSource Wizard and via declarations in .ds.xml files.
-<li>REST Connector: a new built-in servlet exposes all of the operations defined in your .ds.xml files for access via REST &rdquo; the same protocol as defined for the RestDataSource.  This allows other client technologies and automated systems to re-use the same services you provide for your SmartClient front-end.
-<li>Widgets in grid cells: attach any component to any Grid cell.  Includes automatic lifecycle management of components for load-on-demand grids, including a component pooling mode.  Works for trees too.
-<li>Per-Column AutoFit: you can now enable per-column auto-fitting to data or to the field title, or both, in the ListGrid or TreeGrid with field.autoFitWidth.  This integrates with load on demand and incremental rendering by only auto-fitting to initially visible loaded data, so it scales to very large datasets with only a small performance penalty.
-<li>Relative date filtering: enables date filters like &ldquo;last 5 days&rdquo; or &ldquo;next week&rdquo;.  When the user specifies relative dates, saving and restoring criteria preserves the relative date.  This is now also the default filtering interface in grids and the FilterBuilder.
-<li>Enhanced printing: more control over printed output (e.g., number of rows to print in grids); more styling options
-<li>True Excel (.xls) export: goes beyond CSV (comma-separated-values) export by including highlights, and delivering dates and numbers with type information so Excel can sort and filter properly
-<li>Client-driven export: an alternative mode for exporting, this export preserves all client-side formatting.  
-<li>Wrapper components for Plugins: the components for managing browser plugins (Java Applets, Flash players, etc) are now part of the free product (formerly ClientBridges Optional Module)
-<li>Direct editing in Visual Builder: directly drag and drop components into the application and drag to rearrange.  Double click titles to edit them.   In grids, show and hide columns, sort them, resize them, or freeze them and the changes are saved to the generated code.
-<li>WSDL enhancements: automatic loading of imported XML Schema and WSDL files, and support for services with portType vs binding elements in different files
-<li>New WSDL Wizard: Visual Builder features a new WSDL wizard suitable for much less technical people.  Import a service and the set of operations and elements within the service is shown in a panel.  Just drag and drop elements into the application pane and they create appropriate user interface elements.  Drag the operation node out to create a button that invokes the service, automatically using data values from UI controls bound to the input message of the service, and automatically using the result to populate UI controls derived from the output message of the service.
-<li>Tree selection: cascades up/down, with visual indicator for partial selection
-<li>Multi-level sort: ctrl-click, or use a dialog to configure sort levels.  Client and server support.
-<li>Portal layout components: the drag and drop, multiple column portal-style layout manager previously shown as a sample is now an officially supported component.
-<li>18 language packs: SmartClient and Smart GWT are now single-sourcing language packs.  All common locales are covered.
-<li>Shared caching: DataSources now have an option to load and cache all data up front (DataSource.cacheAllData), which can cut down on repeated queries for smaller datasets.  This is similar to the existing &ldquo;clientOnly&rdquo; mode, except that update/add/remove operations will &ldquo;write through&rdquo; to the server.
-<li>Toolstrip: a comprehensive skinning overhaul, including toolstrip/toolbar-specific button and menu styling
+<li><div>IE 9 and Firefox 5 support</div></li>
+<li><div>ARIA/Section 508 accessibility compliance</div></li>
+<li><div>New dataPath Feature that provides a straightforward way to display or edit complex nested data</div></li>
+<li><div>Support for Expressions - allowing users to define complex filter criteria using simple strings</div></li>
+<li><div>Numerous date, time and date-time logic and formatting fixes and enhancements</div></li>
+<li><div>ListGrid grouping and summary improvements, including support for multi-line summaries 
+   in groups and at the grid level, and support for showing group summaries in the header of each group</div></li>
+<li><div>Skinning enhancements, improving both appearance and performance</div></li>
+<li><div>i18n enhancements</div></li>
+<li><div>Improved event recording / playback support for Selenium</div></li>
+<li><div>Numerous <a href="http://forums.smartclient.com/">additional enhancements and bug fixes</a> that were logged in forums</div></li>
 </ul>
-
 See <A href="#previousReleases">below</A> for features introduced in previous releases.<br><br>
 See the <A
 href="changelog.html" target="_blank">change log</A> for a more extensive list of changes 
@@ -129,20 +100,21 @@
 
 <h1>Supported Clients</h1>
 <div class=bodyBlock>
-SmartClient 8.0 applications run in the following standard web browsers:<br>
+SmartClient 8.1 applications run in the following standard web browsers:<br>
 <ul>
-	<li><b>Internet Explorer 6.0-8.x</b> (Windows)<br>
-    NOTE: IE 8.0 is only currently supported in either quirks mode or standards mode
-    in 7.0 emulation mode.  8.0 strict has visual glitches. 
+	<li><b>Internet Explorer 6.0-9.x</b> (Windows)<br>
+    NOTE: For Internet Explorer version 8.0 and earlier, we recommend backcompat or quirks mode where possible
     </li>
-	<li><b>Firefox 2.0-3.x</b> (Windows/MacOS/Linux: 3.0+ only)</li>
-	<li><b>Safari 3.0-4.x</b> (MacOS/Windows)</li>
-	<li><b>Chrome 4.x</b> (Windows)</li>
+	<li><b>Firefox 2.0-5.x</b> (Windows/MacOS/Linux: 3.0+ only)</li>
+	<li><b>Safari 3.0-5.x</b> (MacOS/Windows)</li>
+	<li><b>Chrome 9.x-13.x</b> (MacOS/Windows)</li>
 	<li><b>Opera 9.x-10.x</b> (Windows/MacOS: beta)</li>
 </ul>
-As new browser versions are released, Isomorphic evaluates the stability of the new browser and may announce official support, sometimes with patches or special settings required to work around browser flaws.
+As new browser versions are released, Isomorphic evaluates the stability of the new browser and may
+announce official support, sometimes with patches or special settings required to work around browser flaws.
 <br><br>
-Support is available for earlier browser versions for customers with support contracts.  Please contact Isomorphic for details.
+Support is available for earlier browser versions for customers with support contracts.  
+Please contact Isomorphic for details.
 
 </div>
 
@@ -150,7 +122,7 @@
 
 <h1>Supported Servers</h1>
 <div class=bodyBlock>
-SmartClient 8.0 server-side components require a <b>Java Servlets 2.3</b> compatible server (<a href="http://java.sun.com/products/servlet/industry.html" onClick="var new_win = window.open('http://java.sun.com/products/servlet/industry.html','isomorphic_outlink'); new_win.focus(); return false;">complete list here</a>).<br><br>
+SmartClient 8.1 server-side components require a <b>Java Servlets 2.3</b> compatible server (<a href="http://java.sun.com/products/servlet/industry.html" onClick="var new_win = window.open('http://java.sun.com/products/servlet/industry.html','isomorphic_outlink'); new_win.focus(); return false;">complete list here</a>).<br><br>
 
 SmartClient <span class=filename>.zip</span> and <span class=filename>.tar.gz</span> packages include an embedded <b>Tomcat</b> server for rapid stand-alone development, but SmartClient is
 also tested and supported on <b>BEA WebLogic</b>, <b>IBM WebSphere</b>, <b>Oracle iAS</b>, <b>Sun AS</b>, <b>Caucho Resin</b>, <b>Mortbay Jetty</b>, and <b>JBoss</b> servers. SmartClient <span class=filename>.war</span> and <span class=filename>.ear</span> packages without Tomcat are provided for deployment in existing server environments. See the <a target="_blank" href="installation.html"><i>Server Installation Notes</i></a> for server-specific configuration and tested versions.<br><br>
@@ -223,6 +195,53 @@
 
 <a name="previousReleases">
 
+<h1>What's New in 8.0</h1>
+<div class=bodyBlock>
+8.0 is another monster release, with spectacularly powerful new features and a gorgeous look &amp; feel refresh.  The following features have been
+added:
+<ul>
+<li>Expandable rows:  several built-in modes including showing a nested grid for related records, 
+as well as, the ability to create your own component on expansion.  Multi-nesting (grid within grid within grid) supported.
+<li>Masked text input: specify the mask in a regular-expression like format, and the rest is handled for you.  Works in grids too.
+<li>New Enterprise skins: The Enterprise skin has been refined and new Enterprise Blue and Graphite skins have been added.
+<li>New ultralight &ldquo;Simplicity&rdquo; skin: the new &ldquo;Simplicity&rdquo; skin takes advantage of early CSS3 support in modern browsers like Firefox, Safari and Chrome to deliver look and feel similar to our classic skins (rounded elements, gradients, and other touches) while remaining almost image free.  Appearance degrades gracefully in Internet Explorer to a more square / solid color appearance.
+<li>(Preliminary) Touch &amp; Mobile support: support for iPhone, iPad and iPod touch devices and partial support for Android devices.  No code changes required, and the full range of interactions is supported, including drag and drop and flick scrolling with momentum.  SmartClient on mobile is a strong choice for long-session mobile &amp; touch applications (like iWork for the iPad) and especially for offline mobile applications.   
+<li>Declarative Security:  protect operations by role by simply declaring requiresRole=&ldquo;manager&rdquo; on an operationBinding.  Codeless integration with J2EE security and JAAS &ldquo; if your security solution is causing httpServletRequest.isUserInRole() to return appropriate values, it just works.  If instead you need to provide roles dynamically, you can do so with a single API call (RPCManager.setUserRoles()).
+<li>Declarative output restriction: declare which fields should be returned by the server on a per-operation or per-request basis  (dsRequest.outputs / operationBinding.outputs).  Use this to cut down on network traffic for combo boxes and other scenarios where only a few fields are needed from a record with dozens of fields.  Or, combine it with Declarative Security to enforce data visibility rules.
+<li>New server-side validators: &rdquo;isUnique&ldquo; makes it trivial to enforce common cases like having a unique user name.  &rdquo;hasRelatedRecords&ldquo; can enforce that inter-record references are valid.
+<li>Validate On Exit: declare that validation for a particular field should be run when focus leaves the field.  This includes automatic trips to the server to run any server-only validators you&rdquo;ve defined.  Combined with the new isUnique validator, this makes on-the-fly unique username checks entirely declarative.
+<li>Server-side declarative custom validators: write a Velocity expression right in your .ds.xml file, or declare a Java class to call (like DMI)
+<p>
+$value.getTime() < $record.deadline.getTime()
+<p>
+<li>Grid totals / summaries: whole grid and group level summaries.  Several built-in functions (sums, averages, etc) and the ability to add your own.
+<li> Selenium support: including Selenium IDE and Selenium Remote Control.  We created a Selenium extension to allow recording abstract &ldquo;locators&rdquo; generated by SmartClient which are valid across browsers, across skins, across versions of SmartClient, and have fallback strategies that allow them to work across application changes like adding or reshuffling components.  Support for Selenium RC means you can now write test cases in Java and other languages.  A sample locator:
+<p>
+//ListGrid[ID="itemList"]/body/row[itemID=1996||itemName=Sugar||2]/col[fieldName=SKU||1]
+<p>
+<li>Automatic Transactions (SQL/Hibernate): batches of updates, such as a multi-row drag or  mass editing of grid rows, are now automatically grouped into a transaction when using either  the SQL or Hibernate connectors with Power edition or better.  APIs have been added to be  notified of transaction success or failure, manually initiate transactions and include or exclude specific requests.
+<li>Deeper SQL customization: customize the SQL used for select, insert and update for an individual field while retaining full support for automatic query generation, efficient data paging, multi-level sort and all other features of the SQLDataSource.  See DataSourceField.customSelect/Insert/UpdateExpression, as well as sqlStorageStrategy.
+<li>JPA DataSource: similar to the built-in SQL and Hibernate connectors, a connector has been added for JPA-based persistence.  This connector does not yet have a DataSource Wizard, but support is planned.  Supports simple Criteria for now &ldquo; support for Advanced Criteria will be available for Power edition in the future.
+<li>Annotation-based configuration in Hibernate: support for Hibernate configuration via annotations rather than explicit mapping files, and support for looking up Hibernate configuration via Spring.   Supported in both the DataSource Wizard and via declarations in .ds.xml files.
+<li>REST Connector: a new built-in servlet exposes all of the operations defined in your .ds.xml files for access via REST &rdquo; the same protocol as defined for the RestDataSource.  This allows other client technologies and automated systems to re-use the same services you provide for your SmartClient front-end.
+<li>Widgets in grid cells: attach any component to any Grid cell.  Includes automatic lifecycle management of components for load-on-demand grids, including a component pooling mode.  Works for trees too.
+<li>Per-Column AutoFit: you can now enable per-column auto-fitting to data or to the field title, or both, in the ListGrid or TreeGrid with field.autoFitWidth.  This integrates with load on demand and incremental rendering by only auto-fitting to initially visible loaded data, so it scales to very large datasets with only a small performance penalty.
+<li>Relative date filtering: enables date filters like &ldquo;last 5 days&rdquo; or &ldquo;next week&rdquo;.  When the user specifies relative dates, saving and restoring criteria preserves the relative date.  This is now also the default filtering interface in grids and the FilterBuilder.
+<li>Enhanced printing: more control over printed output (e.g., number of rows to print in grids); more styling options
+<li>True Excel (.xls) export: goes beyond CSV (comma-separated-values) export by including highlights, and delivering dates and numbers with type information so Excel can sort and filter properly
+<li>Client-driven export: an alternative mode for exporting, this export preserves all client-side formatting.  
+<li>Wrapper components for Plugins: the components for managing browser plugins (Java Applets, Flash players, etc) are now part of the free product (formerly ClientBridges Optional Module)
+<li>Direct editing in Visual Builder: directly drag and drop components into the application and drag to rearrange.  Double click titles to edit them.   In grids, show and hide columns, sort them, resize them, or freeze them and the changes are saved to the generated code.
+<li>WSDL enhancements: automatic loading of imported XML Schema and WSDL files, and support for services with portType vs binding elements in different files
+<li>New WSDL Wizard: Visual Builder features a new WSDL wizard suitable for much less technical people.  Import a service and the set of operations and elements within the service is shown in a panel.  Just drag and drop elements into the application pane and they create appropriate user interface elements.  Drag the operation node out to create a button that invokes the service, automatically using data values from UI controls bound to the input message of the service, and automatically using the result to populate UI controls derived from the output message of the service.
+<li>Tree selection: cascades up/down, with visual indicator for partial selection
+<li>Multi-level sort: ctrl-click, or use a dialog to configure sort levels.  Client and server support.
+<li>Portal layout components: the drag and drop, multiple column portal-style layout manager previously shown as a sample is now an officially supported component.
+<li>18 language packs: SmartClient and Smart GWT are now single-sourcing language packs.  All common locales are covered.
+<li>Shared caching: DataSources now have an option to load and cache all data up front (DataSource.cacheAllData), which can cut down on repeated queries for smaller datasets.  This is similar to the existing &ldquo;clientOnly&rdquo; mode, except that update/add/remove operations will &ldquo;write through&rdquo; to the server.
+<li>Toolstrip: a comprehensive skinning overhaul, including toolstrip/toolbar-specific button and menu styling
+</ul>
+
 <!--<h1>What's New in 7.1</h1>
 <div class=bodyBlock>
 This is principally a documentation and bugfixes release.   The following features have been
--- a/docs/resources/explorer.html	Wed Aug 17 12:48:12 2011 +0200
+++ b/docs/resources/explorer.html	Fri Sep 09 18:00:31 2011 +0200
@@ -10,15 +10,15 @@
 ==================================================================-->
 
 <HTML><HEAD><TITLE>
-    SmartClient&trade; SC_SNAPSHOT-2011-07-19 SDK Explorer
+    SmartClient&trade; SC_SNAPSHOT-2011-09-09 SDK Explorer
 </TITLE>
     <SCRIPT>var isomorphicDir="../../isomorphic/";</SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Core.js?isc_version=SC_SNAPSHOT-2011-07-19.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Foundation.js?isc_version=SC_SNAPSHOT-2011-07-19.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Containers.js?isc_version=SC_SNAPSHOT-2011-07-19.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Grids.js?isc_version=SC_SNAPSHOT-2011-07-19.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/system/modules/ISC_DataBinding.js?isc_version=SC_SNAPSHOT-2011-07-19.js></SCRIPT>
-    <SCRIPT SRC=../../isomorphic/skins/SmartClient/load_skin.js?isc_version=SC_SNAPSHOT-2011-07-19.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Core.js?isc_version=SC_SNAPSHOT-2011-09-09.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Foundation.js?isc_version=SC_SNAPSHOT-2011-09-09.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Containers.js?isc_version=SC_SNAPSHOT-2011-09-09.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_Grids.js?isc_version=SC_SNAPSHOT-2011-09-09.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/system/modules/ISC_DataBinding.js?isc_version=SC_SNAPSHOT-2011-09-09.js></SCRIPT>
+    <SCRIPT SRC=../../isomorphic/skins/SmartClient/load_skin.js?isc_version=SC_SNAPSHOT-2011-09-09.js></SCRIPT>
 </HEAD><BODY bgcolor=#e0e0e0 style="font-family:Tahoma,Verdana,Arial,Helvetica,san-serif;">
 
 
--- a/sources/application/ActionMethods.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/ActionMethods.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/DMI.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/DMI.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/DataBoundComponent.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/DataBoundComponent.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -2400,8 +2400,14 @@
     if (!this.isDrawn() && (!this.data || this.data.getLength() == 0)) {
         return isc.shallowClone(this.initialCriteria);
     }
-    else if (this.data && this.data.getCriteria) return isc.shallowClone(this.data.getCriteria());
-    else return null;
+    else if (this.data && this.data.getCriteria) {
+        if (isc.isA.Tree(this.data)) {
+            
+            return isc.shallowClone(this.data.getCriteria(this.getDataSource()));
+        } else {
+            return isc.shallowClone(this.data.getCriteria());
+        }
+    } else return null;
 },
 
 //>	@attr dataBoundComponent.autoFetchData       (boolean : false : IR)
@@ -3505,7 +3511,7 @@
 getHiliteState : function () {
     var hilites = this.getHilites();
     if (hilites == null) return null;
-    return "(" + isc.JSON.encode(hilites, {dateFormat:"dateConstructor"}) + ")";
+    return "(" + isc.JSON.encode(hilites, {dateFormat:"dateConstructor", prettyPrint:false}) + ")";
 },
 
 //>	@method dataBoundComponent.setHiliteState()
@@ -4648,7 +4654,7 @@
    
     var merged;
     // If we have an empty object we know it's not 'advanced' criteria
-    if (isc.isAn.emptyObject(criteria) || !recordDS.isAdvancedCriteria(criteria)) {
+    if (isc.isAn.emptyObject(criteria) || (recordDS && !recordDS.isAdvancedCriteria(criteria))) {
         var context = this.data.context;
         if (context && (context.textMatchStyle == null || context.textMatchStyle == "exact")) {
             merged = isc.addProperties({}, criteria);
--- a/sources/application/DataSource.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/DataSource.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -1747,26 +1747,10 @@
 // The implementation class for JPA 1.0 is <code>com.isomorphic.jpa.JPADataSource</code>.
 // The implementation class for JPA 2.0 is <code>com.isomorphic.jpa.JPA2DataSource</code>.
 // Both implementations support search with simple +link{type:Criteria} and +link{AdvancedCriteria}.</br>
-// The primary difference between JPA 1.0 and JPA 2.0 implementations is how data is fetched:
-// the JPA 1.0 implementation creates
-// a JPQL query string for fetching while the JPA 2.0 implementation uses Criteria API.
-// <p/>
-// <b>Tested JPA 2.0 providers</b>
-// <p/><ul>
-// <li>Hibernate 3.6.1 - <strong>PASS</strong>. <b>Minimum version 3.6.1</b> - older versions
-// have a bug in the Criteria API
-// implementation which prevents correct negation of conjunction and disjunction predicates.</li>
-// <li>EclipseLink 2.2.0 - <strong>PASS</strong>.</li>
-// <li>OpenJPA 2.1.0 - <strong>FAIL</strong>. Does not support "lower(FIELD_NAME) LIKE lower('value')".
-// According to the exception message only "lower(FIELD_NAME) LIKE 'value'" is supported:
-// <pre>org.apache.openjpa.persistence.ArgumentException: The filter listener "matches" requires a constant argument.</pre></li>
-// <li>DataNucleus 2.2.2 - <strong>FAIL</strong>. Was not able to create even a simple query with Criteria API.</li>
-// <li>ObjectDB 2.1.0 - <strong>FAIL</strong>. Does not support Criteria API:
-// <pre>java.lang.UnsupportedOperationException: Unsupported feature - JPA Criteria Builder</pre></li>
-// </ul>
-// <b>Note:</b> MySQL DB - 'like' operator is used in a case insensitive manner. Check
+// JPA 1.0 and JPA 2.0 implementations use JPQL for data fetch. <b>Note:</b> MySQL DB - 'like' operator is used in a case insensitive manner. Check
 // <a href="http://dev.mysql.com/doc/refman/5.5/en/case-sensitivity.html">MySQL Reference Manual :: C.5.5.1 Case Sensitivity in String Searches</a>
-// for more information.
+// for more information.<p/>
+// JPA 2.0 implementation uses Metadata API for data source generation from mapped entities.
 // <p/>
 // <b>JPA configuration</b>
 // <p/>
@@ -2035,8 +2019,10 @@
 // should be set to <b><code>com.isomorphic.jpa.GAEJPADataSource</code></b>.<br/>
 // Because of
 // +externalLink{http://code.google.com/intl/en/appengine/docs/java/datastore/queriesandindexes.html#Restrictions_on_Queries, GAE queries limitations}
-// this DataSource implementation supports only single inequality criteria in filter.
+// this DataSource implementation supports only single inequality criteria in filter.<br/>
 // Only <code>TextMatchStyle.STARTS_WITH</code> filtering mode is supported for text fields.<br/>
+// All queries are case sensitive because GAE does not support <code>upper()/lower()</code> functions in criterias.<br/>
+// <code>TextMatchStyle.EXACT</code> is used for all number fields.<br/>
 // <b><code>com.isomorphic.jpa.EMFProviderLMT</code></b> or
 // <b><code>com.isomorphic.jpa.EMFProviderNoTransactions</code></b> should be used as
 // transaction providers (depending whether you use transactions or not).<br/>
@@ -8298,6 +8284,7 @@
 
         
         // enable xmlSchemaMode for any calls to xmlSerialize
+        var oldXMLSchemaMode = isc.Comm.xmlSchemaMode;
         isc.Comm.xmlSchemaMode = true;
         // disable xsi:type unless it's been set explicitly
         var resetOmitXSI;
@@ -8311,7 +8298,6 @@
         if (enabledQualifyAll) flags.qualifyAll = null;
 
         // restore global xml serialize settings
-        var oldXMLSchemaMode = isc.Comm.xmlSchemaMode;
         isc.Comm.xmlSchemaMode = oldXMLSchemaMode;
         if (resetOmitXSI) isc.Comm.omitXSI = null;
 
@@ -9847,6 +9833,27 @@
         parameters.exportHeader = requestProperties.exportHeader;
         parameters.exportFooter = requestProperties.exportFooter;
         parameters.exportFieldTitles = requestProperties.exportFieldTitles;
+        
+        if (!parameters.exportFieldTitles) {
+            var wkFields = parameters.exportFields;
+            var exportFieldTitles = {};
+            for (var i = 0; i < wkFields.length; i++) {
+                var field = wkFields[i];
+                var fieldName;
+                if (isc.isA.String(field)) {
+                    fieldName = field;
+                    field = this.getField(fieldName);
+                }
+                if (field) {
+                    if (field.hidden) continue;
+                   exportFieldTitles[field.name] = field.exportTitle || field.title;
+                } else {
+                   exportFieldTitles[fieldName] = fieldName;
+                }
+            }
+            parameters.exportFieldTitles = exportFieldTitles;
+        }
+        
 
         requestProperties.downloadResult = true;
         requestProperties.downloadToNewWindow = requestProperties.exportDisplay == "window" 
@@ -9868,8 +9875,16 @@
 	getVisibleDSFields : function () {
         // pass up only visible fields
         var vFields = [];
-        for (var i = 0; i < this.fields.length; i++) {
-            var field = this.fields.get(i);
+        var fields = this.fields;
+        // Internally, the fields collection is held as an index, not an array, so convert
+        if (!isc.isAn.Array(fields)) {
+            fields = [];
+            for (var key in this.fields) {
+                fields.add(this.fields[key]);
+            }
+        }
+        for (var i = 0; i < fields.length; i++) {
+            var field = fields.get(i);
             if (!field.hidden) vFields.add(field.name);
         }
         return vFields;
--- a/sources/application/DataView.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/DataView.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/EBay.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/EBay.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/Kapow.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/Kapow.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/MultiSortDialog.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/MultiSortDialog.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/Offline.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/Offline.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/Operators.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/Operators.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/RPCManager.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/RPCManager.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/RestDataSource.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/RestDataSource.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/ResultSet.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/ResultSet.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -3194,5 +3194,12 @@
 // @include list.getProperty
 //<
 
-isc.ResultSet.addMethods(isc.ClassFactory.makePassthroughMethods(
-    ["find", "findIndex", "findNextIndex", "findAll", "getProperty"], "localData"));
+isc.ResultSet.addMethods(
+    isc.ClassFactory.makePassthroughMethods(
+        ["find", "findIndex", "findNextIndex", "findAll", "getProperty"], "localData",
+        true, 
+        "ResultSet.${methodName} called with no cached local data." +
+        " Calling code can use ResultSet.lengthIsKnown() to determine whether the ResultSet has" +
+        " loaded any data."
+    )
+);
--- a/sources/application/ResultTree.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/ResultTree.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/SForce.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/SForce.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/ServiceOperation.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/ServiceOperation.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/WSDataSource.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/WSDataSource.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/WebService.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/WebService.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/Workflow.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/Workflow.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/application/eBaySvc.wsdl.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/application/eBaySvc.wsdl.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/browser/Browser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/browser/Browser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -208,6 +208,8 @@
                                  isc.Browser._docTypePublicID.indexOf("Frameset") != -1;
 }
 
+isc.Browser.isIE7 = isc.Browser.isIE && isc.Browser.version == 7;
+
 //> @classAttr Browser.isIE8 (boolean : ? : R)
 // Returns true if we're running IE8 and we're in IE8 mode
 // IE8 has a 'back-compat' type mode whereby it can run using IE7 rendering logic.
--- a/sources/browser/Cookie.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/browser/Cookie.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/browser/History.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/browser/History.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/browser/Page.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/browser/Page.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/browser/Params.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/browser/Params.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/communications/Comm.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/communications/Comm.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/debug/DoneLoading.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/debug/DoneLoading.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/debug/Log.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/debug/Log.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/debug/StackTrace.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/debug/StackTrace.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/debug/debug.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/debug/debug.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/event/EventHandler.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/event/EventHandler.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -4257,13 +4257,14 @@
     // defined, call that.
     // - Note: this means 'handleMouseDown' (etc.) as defined on the target widget is
     //   responsible for calling 'mouseDown'.
-    var eventHandlerName = this._getInternalHandlerName(eventType),
-        method;
+    var eventHandlerName = this._getInternalHandlerName(eventType);
 
     while (target) {
         // never fire an event for a destroyed widget
         if (target.destroyed) break;
         var nextTarget = null;
+        var method = null;
+
 
 		// go up the eventParent or parentElement chain, using an eventProxy if one is defined
         // NOTE: calculate the next target here, because parent hierarchy might change during
@@ -4303,7 +4304,7 @@
         }
         
         // if we have either a 'handleEvent' method or a straight 'event' method, fire it
-        if (target[method] != null) {
+        if (method != null && target[method] != null) {
             //this.logWarn(target + "[" + method + "]" + " is:" + target[method]);
     
             var result;
--- a/sources/event/EventRegistry.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/event/EventRegistry.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/event/Timer.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/event/Timer.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Array.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Array.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Array_math.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Array_math.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Array_sort.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Array_sort.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/CellSelection.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/CellSelection.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Class.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Class.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/ClassFactory.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/ClassFactory.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -922,12 +922,24 @@
 	//	@param	propName    (string)		    Property name where the target object is stored.
 	//<
     _$argList : "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p",
-    makePassthroughMethods : function (methodNames, propName) {
+    makePassthroughMethods : function (methodNames, propName, addNullCheck, nullCheckWarning) {
         if (!propName) propName = "parentElement";
-
-        var funcTemplate = this._funcTemplate;
-        if (funcTemplate == null) {
-            funcTemplate = this._funcTemplate = ["return this.",,".",,"("+this._$argList+")"];
+        
+        var funcTemplate;
+        if (!addNullCheck) {
+            funcTemplate = this._funcTemplate;
+            if (funcTemplate == null) {
+                funcTemplate = this._funcTemplate = ["return this.",,".",,"("+this._$argList+")"];
+            }
+        } else {
+            funcTemplate = this._nullCheckFuncTemplate;
+            if (funcTemplate == null) {
+                funcTemplate = this._nullCheckFuncTemplate = 
+                    ["if(this.",,"==null){\n",
+                     ,// optionally log a warning
+                     "return;}\nreturn this.",,".",,"("+this._$argList+")"];
+            }
+        
         }
 
         var methods = {};
@@ -936,8 +948,24 @@
 			var methodName = methodNames[i];
     
 			// create a function that routes a function call to the target object
-            funcTemplate[1] = propName;
-            funcTemplate[3] = methodName;
+            if (addNullCheck) {
+                funcTemplate[1] = propName;
+                if (nullCheckWarning != null) {
+                    var messageArgs = {
+                        methodName:methodName,
+                        propName:propName
+                    };
+                    var warning = nullCheckWarning.evalDynamicString(this, messageArgs);
+                    
+                    funcTemplate[3] = "isc.logWarn(\"" + warning + "\");";
+                }
+                funcTemplate[5] = propName;
+                funcTemplate[7] = methodName;
+            
+            } else {
+                funcTemplate[1] = propName;
+                funcTemplate[3] = methodName;
+            }
 			methods[methodName] = 
                 new Function(this._$argList, funcTemplate.join(isc.emptyString));
 		}
--- a/sources/language/Clone.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Clone.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/DOMTree.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/DOMTree.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Date.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Date.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -913,6 +913,12 @@
 },
 
 getFormattedDateRangeString : function (fromDate, toDate) {
+    if (fromDate != null && !isc.isA.Date(fromDate)) {
+        fromDate = null;
+    }
+    if (toDate != null && !isc.isA.Date(toDate)) {
+        toDate = null;
+    }
     var fromMonth = fromDate ? fromDate.getMonth() : null,
         fromMonthName = fromDate ? fromDate.getShortMonthName() : null,
         fromYear = fromDate ? fromDate.getFullYear() : null,
--- a/sources/language/Function.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Function.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/IsA.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/IsA.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/List.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/List.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Map.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Map.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Math.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Math.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Number.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Number.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Object.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Object.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Packager.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Packager.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -49,9 +49,9 @@
 
 // versioning - values of the form ${value} are replaced with user-provided values at build time.
 // Valid values are: version, date, project (not currently used)
-isc.version = "SC_SNAPSHOT-2011-07-19/LGPL Development Only";
-isc.versionNumber = "SC_SNAPSHOT-2011-07-19";
-isc.buildDate = "2011-07-19";
+isc.version = "SC_SNAPSHOT-2011-09-09/LGPL Development Only";
+isc.versionNumber = "SC_SNAPSHOT-2011-09-09";
+isc.buildDate = "2011-09-09";
 isc.expirationDate = "";
 
 // license template data
--- a/sources/language/RelativeDate.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/RelativeDate.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Selection.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Selection.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Serialize.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Serialize.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/SimpleType.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/SimpleType.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/String.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/String.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/StringBuffer.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/StringBuffer.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/StringMethod.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/StringMethod.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Time.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Time.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/Tree.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/Tree.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/XMLSerialize.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/XMLSerialize.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/language/XMLTools.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/language/XMLTools.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Calendar.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Calendar.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_ClassBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_ClassBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Containers.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Containers.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Core.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Core.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_DSBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_DSBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_DataBinding.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_DataBinding.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_EBay.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_EBay.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Forms.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Forms.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Foundation.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Foundation.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Grids.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Grids.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_History.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_History.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Kapow.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Kapow.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_PluginBridges.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_PluginBridges.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_RichTextEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_RichTextEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_SQLBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_SQLBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_SalesForce.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_SalesForce.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Scheduler.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Scheduler.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/modules/ISC_Workflow.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/modules/ISC_Workflow.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/reference/exampleTree.xml	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/reference/exampleTree.xml	Fri Sep 09 18:00:31 2011 +0200
@@ -1283,7 +1283,7 @@
                     },
                     {
                         isopen:"false",
-                        title:"Grouping",
+                        title:"Grouping and Summaries",
                         description:"\n    List entries can be grouped according to field value.\n    ",
                         children:[
                             {
@@ -1324,24 +1324,52 @@
                                     }
                                 ],
                                 description:"\n        You can specify custom grouping behavior for a field. Group by the Nationhood and \n        Population fields to see examples of custom grouping.\n        "
+                            },
+                            {
+                                id:"summaryGrid",
+                                jsURL:"grids/summaries/gridSummary.js",
+                                title:"Grid Summaries",
+                                tabs:[
+                                    {
+                                        canEdit:"false",
+                                        title:"OrderItem",
+                                        url:"grids/ds/orderItemLocalDS.ds.js"
+                                    }
+                                ],
+                                descriptionHeight:"210",
+                                description:"\n        ListGrids support displaying summaries of the current data set in various ways:\n        <P>\n        Fields from individual records can be summarized into a single field value. In this\n        example the <code>\"Total\"</code> field displays a summary value calculated by\n        multiplying the <code>\"Quantity\"</code> and <code>\"Price\"</code> fields.\n        <P>\n        Summaries can also be displayed for multiple records. This example shows a summary row\n        at the end of each group in the grid as well as an overall summary row with information\n        about every record in the grid. Note that in addition to standard summary functions\n        such as <code>\"sum\"</code> to generate a total, or <code>\"count\"</code> to generate\n        a count of records, completely custom functions may be used. This is demonstrated in\n        the <code>\"Category\"</code> field where a custom function determines how many\n        categories exist in this dataset. \n        <P>\n        Click to edit and summaries are dynamically recalculated to reflect your changes.\n        "
+                            },
+                            {
+                                id:"gridHeaderSummary",
+                                jsURL:"grids/summaries/gridHeaderSummary.js",
+                                title:"Grid Header Summary",
+                                tabs:[
+                                    {
+                                        canEdit:"false",
+                                        title:"OrderItem",
+                                        url:"grids/ds/orderItemLocalDS.ds.js"
+                                    }
+                                ],
+                                descriptionHeight:"210",
+                                description:"\n	ListGrids support displaying summaries of the current data set in various ways:<P>\n\n	Fields from individual records can be summarized into a single field value. In this example the \"Total\" field displays a\n	summary value calculated by multiplying the \"Quantity\" and \"Price\" fields.<P>\n\n	Summaries can also be displayed for multiple records. This example shows a summary row at the end of each group in the grid as\n	well as an overall summary row with information about every record in the grid. Note that in addition to standard summary\n	functions such as \"sum\" to generate a total, or \"count\" to generate a count of records, completely custom functions may be\n	used. This is demonstrated in the \"Category\" field where a custom function determines how many categories exist in this\n	dataset.<P>\n\n	As illustrated in this sample, by calling showGroupSummaryInHeader:true field summary values for each group are\n	displayed directly in the group header node, rather than showing up at the bottom of each expanded group.\n        "
+                            },
+                            {
+                                id:"multiLineSummaries",
+                                jsURL:"grids/summaries/multiLineSummaries.js",
+                                title:"Multi Line Summaries",
+                                tabs:[
+                                    {
+                                        canEdit:"false",
+                                        title:"OrderItem",
+                                        url:"grids/ds/orderItemLocalDS.ds.js"
+                                    }
+                                ],
+                                descriptionHeight:"210",
+                                description:"\n	ListGrids support displaying summaries of the current data set in various ways:<P>\n\n	Fields from individual records can be summarized into a single field value. In this example the \"Total\" field displays a\n	summary value calculated by multiplying the \"Quantity\" and \"Price\" fields.<P>\n\n	Summaries can also be displayed for multiple records. This example shows a summary row at the end of each group in the grid as\n	well as an overall summary row with information about every record in the grid. Note that in addition to standard summary\n	functions such as \"sum\" to generate a total, or \"count\" to generate a count of records, completely custom functions may be\n	used. This is demonstrated in the \"Category\" field where a custom function determines how many categories exist in this\n	dataset.<P>\n\n	By calling summaryFunction multiple times you can apply more than one summary function to a field. This allows the\n	developer to set up multi-line summaries - each specified summary function result will show up in a separate summary row\n        "
                             }
                         ]
                     },
                     {
-                        id:"summaryGrid",
-                        jsURL:"grids/summaries/gridSummary.js",
-                        title:"Grid Summaries",
-                        tabs:[
-                            {
-                                canEdit:"false",
-                                title:"OrderItem",
-                                url:"grids/ds/orderItemLocalDS.ds.js"
-                            }
-                        ],
-                        descriptionHeight:"210",
-                        description:"\n        ListGrids support displaying summaries of the current data set in various ways:\n        <P>\n        Fields from individual records can be summarized into a single field value. In this\n        example the <code>\"Total\"</code> field displays a summary value calculated by\n        multiplying the <code>\"Quantity\"</code> and <code>\"Price\"</code> fields.\n        <P>\n        Summaries can also be displayed for multiple records. This example shows a summary row\n        at the end of each group in the grid as well as an overall summary row with information\n        about every record in the grid. Note that in addition to standard summary functions\n        such as <code>\"sum\"</code> to generate a total, or <code>\"count\"</code> to generate\n        a count of records, completely custom functions may be used. This is demonstrated in\n        the <code>\"Category\"</code> field where a custom function determines how many\n        categories exist in this dataset. \n        <P>\n        Click to edit and summaries are dynamically recalculated to reflect your changes.\n        "
-                    },
-                    {
                         id:"customColumns",
                         jsURL:"grids/customColumns.js",
                         title:"Custom Columns",
@@ -2403,7 +2431,7 @@
                                 title:"List - Select Other",
                                 visibility:"sdk",
                                 xmlURL:"SelectOtherItem.xml",
-                                description:"\n            Select \"Other..\" from the drop down to enter a custom value.\n            <BR><BR>JS and XML tabs show two alternative versions of source, only one is\n             required.\n            "
+                                description:"\n            Select \"Other..\" from the drop down to enter a custom value.\n            <BR><BR>This example source is written in XML. \n            SmartClient supports code written directly in JavaScript, or in this declaritive XML\n            format.\n            "
                             },
                             {
                                 ref:"RichTextEditor",
@@ -3082,14 +3110,6 @@
                                 description:"\n            DataSources can extract field values from complex XML documents via XPath\n            expressions.  Note how the address fields, which are represented in the contacts\n            data as a subelement, appear as columns in the grid. This approach of loading\n            simple XML data over HTTP can be used with PHP and other server technologies.\n            "
                             },
                             {
-                                id:"xmlYahooWebServices",
-                                jsURL:"dataIntegration/xml/yahooWebServices.js",
-                                needXML:"true",
-                                showSkinSwitcher:true,
-                                title:"Yahoo! Web Services",
-                                description:"\n            XPath binding allows declarative integration with web services.  Note how the\n            height and width for the thumbnail images have been declaratively extracted from\n            the \"Thumbnail\" subobject.\n            "
-                            },
-                            {
                                 id:"wsdlOperation",
                                 jsURL:"dataIntegration/xml/wsdlWebServiceOperations.js",
                                 needXML:"true",
@@ -3261,19 +3281,6 @@
                                 description:"\n            DataSources can extract field values from complex JSON structures via XPath\n            expressions.  Note how the address fields, which are represented in the contacts\n            data as a subobject, appear as columns in the grid.\n            "
                             },
                             {
-                                id:"jsonYahooWebServices",
-                                jsURL:"dataIntegration/json/yahooWebServices.js",
-                                showSkinSwitcher:true,
-                                title:"Yahoo! Web Services",
-                                description:"\n            Enter a search term in the Query input field to see images from Yahoo Image\n            Search.<BR>\n            XPath binding allows declarative integration with web services.  Note how the\n            height and width for the thumbnail images have been declaratively extracted from\n            the \"Thumbnail\" subobject.\n            "
-                            },
-                            {
-                                jsURL:"dataIntegration/json/yahooWebServices.js",
-                                showSkinSwitcher:true,
-                                title:"Cross-Site JSON",
-                                description:"\n            Using the \"scriptInclude\" protocol, SmartClient applications can contact compatible\n            JSON web services without the need for any intervening server.\n            "
-                            },
-                            {
                                 id:"jsonServerValidationErrors",
                                 jsURL:"dataIntegration/json/serverValidationErrors/serverValidationErrors.js",
                                 showSkinSwitcher:false,
--- a/sources/scheduler/QuartzJobDetail.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/scheduler/QuartzJobDetail.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/scheduler/QuartzManager.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/scheduler/QuartzManager.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/schema/DataSource.ds.xml	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/schema/DataSource.ds.xml	Fri Sep 09 18:00:31 2011 +0200
@@ -266,6 +266,9 @@
         },
         noNullUpdates:{
             type:"boolean"
+        },
+        canExport:{
+            type:"boolean"
         }
     }
 })
--- a/sources/schema/DataSourceField.ds.xml	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/schema/DataSourceField.ds.xml	Fri Sep 09 18:00:31 2011 +0200
@@ -202,6 +202,10 @@
             title:"Frozen",
             type:"boolean",
             xmlAttribute:"true"
+        },
+        canExport:{
+            type:"boolean",
+            xmlAttribute:"true"
         }
     }
 })
--- a/sources/standalone/SA_Core.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/standalone/SA_Core.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/standalone/SA_Page.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/standalone/SA_Page.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/AutoTest.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/AutoTest.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/ClassBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/ClassBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/DBCompactList.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/DBCompactList.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/DBList.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/DBList.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/DBPane.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/DBPane.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/DBSchemaTree.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/DBSchemaTree.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/DSBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/DSBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/JVMClassTree.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/JVMClassTree.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/JavaClassPane.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/JavaClassPane.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/SQLBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/SQLBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/SQLEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/SQLEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/tools/SQLTableBrowser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/tools/SQLTableBrowser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/ActiveXControl.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ActiveXControl.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Animation.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Animation.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Applet.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Applet.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/BrowserPlugin.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/BrowserPlugin.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Button.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Button.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/ButtonTable.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ButtonTable.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Calendar.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Calendar.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -3279,8 +3279,12 @@
         if (this.eventEditorFields) {
             this.eventEditorLayout.items[0].setCustomValues(this.eventDialog.items[0].getCustomValues());
         }
-        this.eventEditorLayout.setDate(this.eventDialog.currentStart, 
-            this.eventDialog.currentEnd, this.eventDialog.items[0].getItem("name").getValue());
+        var eventName = this.eventDialog.items[0].getValue(this.nameField);
+        this.eventEditorLayout.setDate(
+            this.eventDialog.currentStart, 
+            this.eventDialog.currentEnd, 
+            eventName
+        );
     }
     
     this.eventDialog.hide();
@@ -4292,7 +4296,7 @@
         
         // go back to the first day of the week
         while (displayDate.getDay() != this.creator.firstDayOfWeek) {
-            displayDate.setDate(displayDate.getDate() - 1);    
+            this.incrementDate(displayDate, -1);
         }
         
         // special case when hiding weekends, can have the first row be entirely from the previous
@@ -4306,9 +4310,9 @@
                     hideFirstRow = false;
                     break;
                 }
-                checkDate.setDate(checkDate.getDate() + 1);
+                this.incrementDate(checkDate,1)
             }
-            if (hideFirstRow) displayDate.setDate(displayDate.getDate() + 7); 
+            if (hideFirstRow) this.incrementDate(displayDate, 7);
            
         }
         
@@ -4328,7 +4332,7 @@
             // or a day body.
             if (this.creator.showDayHeaders) dayArr.add(this.getHeaderRowObject(displayDate));
             dayArr.add(this.getEventRowObject(displayDate, eventArr));
-            displayDate.setDate(displayDate.getDate() + 7);
+            this.incrementDate(displayDate, 7);
             // if we hit the next month, don't keep adding rows, we're done.
             if (displayDate.getMonth() != this.creator.month) break;
         }
@@ -4342,14 +4346,30 @@
             obj["day" + (i + 1)] = nDate.getDate();
             // store the complete date
             obj["date" + (i + 1)] = nDate.duplicate();
-            nDate.setDate(nDate.getDate() + 1);
+            this.incrementDate(nDate, 1);
         }
         return obj;
     },
     
+    incrementDate : function (date, offset) {
+        var curDate = date.getDate();
+        date.setDate(curDate + offset);
+        // In some timezones, DST can cause certain date/times to be invalid so if you attempt
+        // to set a java date to (say) 00:00 on Oct 16, 2011, with native timezone set to 
+        // Brasilia, Brazil, the actual date gets set to 23:00 on Oct 15th, leading to 
+        // bad display.
+        // Workaround this by tweaking the time to avoid such an issue
+        
+        if (date.getDate() == (curDate+offset) -1) {
+            date.setHours(date.getHours() + 1);
+            date.setDate(curDate + offset);
+        }
+        return date;
+    },
+    
     getEventRowObject : function (theDate, events) {
         var obj = {};
-        var nDate = new Date(theDate.getFullYear(), theDate.getMonth(), theDate.getDate());
+        var nDate = theDate.duplicate();
         for (var i=0; i<7; i++) {
             var evArr = [];
             while (this._eventIndex < events.length) {
@@ -4366,10 +4386,10 @@
             // store the day number here too
             obj["day" + (i + 1)] = nDate.getDate();
             // store the complete date
-            obj["date" + (i + 1)] = new Date(nDate.getFullYear(), nDate.getMonth(), nDate.getDate());
+            obj["date" + (i + 1)] = nDate.duplicate();
             // store the events
             obj["event" + (i + 1)] = evArr;
-            nDate.setDate(nDate.getDate() + 1);
+            this.incrementDate(nDate, 1);
         }
         return obj;
     },
--- a/sources/widgets/Canvas.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Canvas.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -1781,13 +1781,12 @@
     //    as we enforce the TAB_INDEX_FLOOR upper limit on manually assigned tabindices
     
     
-    _useNativeTabIndex:(isc.Browser.isIE && isc.Browser.version >= 5) || 
+    _useNativeTabIndex:(isc.Browser.isIE && isc.Browser.version >= 5) || isc.Browser.isSafari ||
                         (isc.Browser.isMoz && isc.Browser.geckoVersion >= 20051111),
     
     
     _useFocusProxy:(isc.Browser.isMoz && isc.Browser.geckoVersion < 20051111)
-                   || (isc.Browser.isSafari && !isc.Browser.isTouch) || isc.Browser.isOpera,
-    
+                   || isc.Browser.isOpera,
 
     //> @attr   canvas.accessKey (string : null : IRWA)
     // If specified this governs the accessKey for the widget.
@@ -9193,6 +9192,7 @@
 //<
 setMargin : function (margin) {
     
+    
     this._cachedMargins = null;
     this._fullMargins = null;
     
@@ -9210,13 +9210,8 @@
     var styleHandle = this.getStyleHandle();
     if (!styleHandle) return;
     
-    if (margin == null) {
-        // IE JS errors with an 'Invalid Argument' error if you try to set the margin to null or
-        // undefined.  Zero is the default according to the specs and it works
-        styleHandle.margin = 0;
-    } else {
-        styleHandle.margin = this.margin + isc.px;
-    }
+    this._applyFullMargins();
+    
     // adjustOverflow - since this will change our handle-size
     
     this.adjustOverflow("setMargin");
@@ -9226,6 +9221,31 @@
 
 },
 
+// Update the margins applied to a widget after draw.
+_applyFullMargins : function () {
+    var handle = this.getClipHandle();
+    if (!handle) return;
+    
+    // optimization: if we have nothing that would introduce automatic per-side margin
+    // settings..
+    if (!this._edgesAsPeer() && this._attachedPeerMap == null) {
+        handle.style.marginTop = "";
+        handle.style.marginBottom = "";
+        handle.style.marginLeft = "";
+        handle.style.marginRight = "";
+        if (this.margin == null) handle.style.margin = 0;
+        else handle.style.margin = this.margin + isc.px;
+        return;
+    }
+
+    // Support assymetric margins if necessary.
+    var margins = this._calculateMargins();
+    handle.style.marginTop = margins.top + isc.px;
+    handle.style.marginLeft = margins.left + isc.px;
+    handle.style.marginBottom = margins.bottom + isc.px;
+    handle.style.marginRight = margins.right + isc.px;
+},
+
 //>	@method canvas.getMargin()
 //			Returns the explicitly specified margin for this widget (set up via this.setMargin())
 //		@group	appearance
@@ -9284,17 +9304,40 @@
 //                          width in pixels of the margin on each side of this widget.
 //<
 
+
+_removeDestroyedPeers : function (list, side) {
+    var destroyed = [];
+    for (var i = 0; i < list.length; i++) {
+        if (list[i].destroyed) {
+            destroyed[destroyed.length] = {peer:list[i], side:side};
+            list[i] = null;
+        }
+    }
+    list.removeEmpty();
+    return destroyed;
+},
 _calculateMargins : function () {
     
     var attachedPeers = this._attachedPeerMap,
         hasAPs = (attachedPeers != null),
         topPeers,leftPeers,rightPeers,bottomPeers;
-
     if (hasAPs) {
         topPeers = attachedPeers.top;
         bottomPeers = attachedPeers.bottom;
         leftPeers = attachedPeers.left;
-        rightPeers = attachedPeers.right;                        
+        rightPeers = attachedPeers.right;
+        
+        var destroyedPeers = [];
+        if (topPeers != null) destroyedPeers.addList(this._removeDestroyedPeers(topPeers, "top"));
+        if (bottomPeers != null) destroyedPeers.addList(this._removeDestroyedPeers(bottomPeers, "bottom"));
+        if (leftPeers != null) destroyedPeers.addList(this._removeDestroyedPeers(leftPeers, "left"));
+        if (rightPeers != null) rightPeers.addList(this._removeDestroyedPeers(rightPeers, "right"));
+        if (destroyedPeers.length > 0) {
+            for (var i = 0 ; i < destroyedPeers.length; i++) {
+                this._unRegisterAttachedPeer(destroyedPeers[i].peer, destroyedPeers[i].side);
+            }
+        }
+        
         if ((topPeers == null || topPeers.length == 0) && 
             (bottomPeers == null || bottomPeers.length == 0) && 
             (leftPeers == null || leftPeers.length == 0) && 
@@ -18235,13 +18278,22 @@
     if (side) return attachedPeers[side];
 },
 
-_registerAttachedPeer : function (peer, side, offset) {
+_registerAttachedPeer : function (peer, side, offset, observeResize) {
     if (peer == null || side == null) return;
     if (!this._attachedPeerMap) this._attachedPeerMap = {};
     if (!this._attachedPeerMap[side]) this._attachedPeerMap[side] = [];
     this._attachedPeerMap[side].add(peer);
     
     if (offset != null) peer._attachedPeerOffset = offset
+    // observeResize param -- most "attachedPeers" are statically sized, like edges, so avoid this
+    // unless explicitly requested, but if the peer could change size we'll need to refresh our
+    // margins (and hence resize our handle) to accomodate it when it does.
+    if (observeResize) {
+        this.observe(peer, "resized", "observer._attachedPeerResized(observed)");
+    }
+    // Note: on destroy, we destroy all peers so no need to clean up this list.
+    // We also have a sanity check for the peer being destroyed when calculating margins.
+    
     delete this._cachedMargins;
     delete this._fullMargins;
 },
@@ -18250,11 +18302,24 @@
     if (peer == null || side == null) return;
     if (!this._attachedPeerMap ||!this._attachedPeerMap[side]) return;
     this._attachedPeerMap[side].remove(peer);
+    if (this.isObserving(peer, "resized")) {
+        this.ignore(peer, "resized");
+    }
     delete peer._attachedPeerOffset;
     delete this._cachedMargins;
     delete this._fullMargins;    
 },
 
+_attachedPeerResized : function (peer) {
+    // This will clear the cached margins which were calculated based on attached peer sizes
+    // and refresh on the style-handle
+    this.refreshMargin();
+},
+
+refreshMargin : function () {
+    this.setMargin(this.margin);
+},
+
 // -----------------------------------------------------------------------------------------
 
 
--- a/sources/widgets/ColorPicker.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ColorPicker.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/ColumnTree.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ColumnTree.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/DOMGrid.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/DOMGrid.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/DataSourceEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/DataSourceEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -94,7 +94,6 @@
     dataSource:"DataSourceField",
     saveLocally:true,
     gridButtonsOrientation:"right",
-    backgroundColor:"white",
     fields:[
         {name:"name", treeField: true},
         {name:"title"},
@@ -104,7 +103,6 @@
         {name:"length", width:60},
         {name:"primaryKey", title:"is PK", width:40}
     ],
-    formConstructor:isc.ComponentEditor, // to get documentation hovers, property groupings
     formProperties: { 
         numCols:4,
         initialGroups:10
@@ -138,7 +136,7 @@
         {type:"section", defaultValue:"Relations", sectionExpanded:false,
          itemIds:["foreignKey", "rootValue"] },
         {name:"foreignKey"},
-        {name:"rootValue", showTitle:false, colSpan:4}
+        {name:"rootValue"}
     ],
     gridDefaults:{ 
         editEvent:"click",
@@ -617,6 +615,9 @@
     }
 
     this.addAutoChild("fieldEditor", {
+        // NOTE: provided dynamically because there's currently a forward dependency: DataSourceEditor is
+        // defined in ISC_DataBinding but ComponentEditor is defined in ISC_Tools
+        formConstructor:isc.TComponentEditor || isc.ComponentEditor,
 		gridConstructor: this.canEditChildSchema ? isc.TreeGrid : isc.ListGrid,
         showMoreButton: this.showMoreButton,
         newButtonTitle: "New Field",
@@ -664,6 +665,9 @@
             {type: "button", title: "Execute", startRow: true, click: this.getID()+".execSQL()"}
         ]
     });
+
+    /*
+    // disabled - would need to add some instructions and error handling before this can be shown
     stack.addSections([isc.addProperties(this.deriveFieldsSectionDefaults,
         this.deriveFieldsSectionProperties,
         { items:[this.deriveForm] }
@@ -674,6 +678,7 @@
 
     this.previewGrid = this.createAutoChild("previewGrid");
     stack.addSection({ID: "previewSection", title: "Preview", expanded: false, items: [this.previewGrid]});
+    */
 
     stack.addSections({expanded: true, showHeader: false, items: [this.saveButton]});
 
--- a/sources/widgets/DateChooser.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/DateChooser.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -699,11 +699,11 @@
 	},
 
 	showYearMenu : function () {
+        var yearDiff = (this.endYear-this.startYear),
+            colCount = Math.round(yearDiff/10) > 3 ? Math.round(yearDiff/10) : 3
+        ;
 		if (!this.yearMenu) {
-			var yearItems = [[]],
-                yearDiff = (this.endYear-this.startYear),
-                colCount = Math.round(yearDiff/10) > 3 ? Math.round(yearDiff/10) : 3
-            ;
+			var yearItems = [[]];
 			for (var i = 0; i <= (this.endYear-this.startYear); i++) {
 				var year = i+this.startYear;
 				yearItems[yearItems.length-1].add({contents:year,
@@ -729,7 +729,6 @@
 				width = Math.min(this.getWidth(), (40*colCount)),
 				height = Math.min(this.getHeight()-this.headerHeight, 80),
                 left = this.getPageLeft() + ((this.width - width)/2)
-
             this.yearMenu.setPageRect(left, top, width, height);
         }
         
--- a/sources/widgets/DetailViewer.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/DetailViewer.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Dialog.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Dialog.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/EdgedCanvas.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/EdgedCanvas.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/EditMode.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/EditMode.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -420,7 +420,7 @@
             this.logInfo(this.ID + " does not accept drop of type " + dragType, "editModeDragTarget");
             // Can't drop on this widget, so check its ancestors
             var ancestor = this.parentElement;
-            while (ancestor) {
+            while (ancestor && !ancestor.editorRoot) {
                 if (ancestor.editingOn) {
                     var ancestorAcceptsDrop = ancestor.editModeWillAcceptDrop();
                     if (!ancestorAcceptsDrop) {
@@ -765,7 +765,9 @@
     for (var key in allFields) {
         var field = allFields[key];
         if (!this.shouldUseField(field, dataSource)) continue;
-        fields[key] = allFields[key];
+        // duplicate the field on the DataSource - we don't want to have the live component
+        // sharing actual field objects with the DataSource.
+        fields[key] = isc.addProperties({},allFields[key]);
     }
     
     // Merge the list of fields to keep (because they were manually added, or changed after 
@@ -780,6 +782,7 @@
         
         // What constitutes a "field" varies by DBC type
         var fieldConfig = this.getFieldEditNode(field, schema);
+        
         var editNode = this.editContext.makeEditNode(fieldConfig);
         //this.logWarn("editMode setDataSource adding field: " + field.name);
         this.editContext.addNode(editNode, this.editNode, null, null, true);
@@ -1072,11 +1075,16 @@
             } else {
             }
         }
-        // need to apply via addProperties or StringMethods added to a component in edit mode
-        // will not become live functions in live mode
-        // This also means we shouldn't interfere with any observation of methods - addProperties
-        // correctly updates the underlying method and leaves observation intact.
-        this.addProperties(changes);
+        // Note use setProperties() rather than just hanging the attributes onto the live
+        // widget blindly.
+        // Required because:
+        // - StringMethods need to be converted to live methods
+        // - Observation will be left intact (setProperties/addProperties will correctly update
+        //   the renamed underlying method rather than the notification method sitting in its slot)
+        // - setProperties will fire propertyChanged which we use in some cases (For example
+        //   to update "canDrag" when "canDragRecordsOut" is updated on a ListGrid)
+        
+        this.setProperties(changes);
     },
     
     propertyHasBeenEdited : function (fieldName) {
@@ -3491,49 +3499,26 @@
         this.hideDragHandle();
     },
     
-    selectCanvasOrFormItem : function (object, hideLabel) {
+    setEditMode : function (editingOn) {
+        var selectedComponent = isc.SelectionOutline.getSelectedObject();
+        if (selectedComponent == null) return;
+        
+        if (editingOn) {
+            this.setupDragProperties(selectedComponent);
+            this.showSelectedObjectDragHandle();
+            isc.SelectionOutline.showOutline();
+        } else {
+            this.resetDragProperties(selectedComponent);
+            this.hideDragHandle();
+            isc.SelectionOutline.hideOutline();
+        }
+    },
     
-        // Make sure we're not being asked to select a non-visual object like a DataSource 
-        // or ServiceOperation.  We also support the idea of a visual proxy for a non-widget
-        // object - for example, ListGridFields are represented visually by the corresponding
-        // button in the ListGrid header.
-        if (!isc.isA.Canvas(object) && !isc.isA.FormItem(object) && !object._visualProxy) {
-            return;
-        }
-        // Or a Menu (ie, a context menu which has no visibility until an appropriate object 
-        // is right-clicked by the user)
-        if (isc.isA.Menu(object)) {
-            return;
-        }
+    // In editMode, we allow dragging the selected canvas using the drag-handle
+    // This involves overriding some default behaviors at the widget level.
+    setupDragProperties : function (component) {
     
-        if (this._dragHandle) this._dragHandle.hide();
-        
-        var selectedObject = isc.SelectionOutline.getSelectedObject();
-        if (selectedObject && this.observer) {
-            this.observer.ignore(selectedObject, "dragMove");
-            selectedObject.restoreFromOriginalValues([
-                "canDrag", 
-                "canDrop",
-                "dragAppearance",
-                "dragStart",
-                "dragMove",
-                "dragStop",
-                "setDragTracker"
-            ]);
-        }
-        
-        var underlyingObject,
-            overrideLabel;
-        if (object._visualProxy) {
-            var type = object.type || object._constructor;
-            overrideLabel = "[" + type + " " + (object.name ? "name:" : "ID");
-            overrideLabel += object.name || object.ID;
-            overrideLabel += "]"
-            underlyingObject = object;
-            object = object._visualProxy;
-        }
-        
-        object.saveToOriginalValues([
+        component.saveToOriginalValues([
             "canDrag", 
             "canDrop",
             "dragAppearance",
@@ -3543,7 +3528,7 @@
             "setDragTracker"
         ]);
         
-        object.setProperties({
+        component.setProperties({
             canDrop: true,
             dragAppearance: "outline",
             // These method overrides are to clobber special record-based drag handling
@@ -3557,6 +3542,52 @@
             }
         });
         
+    },
+    resetDragProperties : function (component) {
+        
+        if (this.observer) this.observer.ignore(component, "dragMove");
+        component.restoreFromOriginalValues([
+            "canDrag", 
+            "canDrop",
+            "dragAppearance",
+            "dragStart",
+            "dragMove",
+            "dragStop",
+            "setDragTracker"
+        ]);
+    },
+    
+    selectCanvasOrFormItem : function (object, hideLabel) {
+    
+        // Make sure we're not being asked to select a non-visual object like a DataSource 
+        // or ServiceOperation.  We also support the idea of a visual proxy for a non-widget
+        // object - for example, ListGridFields are represented visually by the corresponding
+        // button in the ListGrid header.
+        if (!isc.isA.Canvas(object) && !isc.isA.FormItem(object) && !object._visualProxy) {
+            return;
+        }
+        // Or a Menu (ie, a context menu which has no visibility until an appropriate object 
+        // is right-clicked by the user)
+        if (isc.isA.Menu(object)) {
+            return;
+        }
+    
+        if (this._dragHandle) this._dragHandle.hide();
+        
+        var selectedObject = isc.SelectionOutline.getSelectedObject();
+        if (selectedObject) this.resetDragProperties(selectedObject);
+        
+        var underlyingObject,
+            overrideLabel;
+        if (object._visualProxy) {
+            var type = object.type || object._constructor;
+            overrideLabel = "[" + type + " " + (object.name ? "name:" : "ID");
+            overrideLabel += object.name || object.ID;
+            overrideLabel += "]"
+            underlyingObject = object;
+            object = object._visualProxy;
+        }
+        
         var editContext = underlyingObject ? underlyingObject.editContext : object.editContext;
         if (!editContext) return;
         
@@ -3570,6 +3601,7 @@
         if (underlyingObject) object = underlyingObject;
         
         if (object.editingOn) {
+            this.setupDragProperties(object);
             this.showSelectedObjectDragHandle();
         
             var ctx = object.editContext;
@@ -4771,7 +4803,6 @@
         var liveObject = component.liveObject;
         this.addChild(liveObject);
 
-
         // Flip it into edit mode depending on the setting on the VB instance
         if (this.creator && this.creator.editingOn) this.enableEditing(component);
 
--- a/sources/widgets/Element.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Element.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/EntityEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/EntityEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/FieldEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/FieldEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Flashlet.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Flashlet.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/FormulaBuilder.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/FormulaBuilder.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -293,7 +293,7 @@
 //<
 cancelButtonDefaults: {_constructor: "IButton",
     autoParent: "buttonLayout",
-    width: 70,
+    autoFit:true,
     extraSpace: 10,
     click: function () {
         this.creator.completeEditing(true);
@@ -308,7 +308,7 @@
 //<
 testButtonDefaults: {_constructor: "IButton", 
     autoParent: "buttonLayout",
-    width: 70, 
+    autoFit:true,
     extraSpace: 10,
     click: function () {
         this.creator.testFunction();
@@ -1419,7 +1419,9 @@
                 var item = usedFields.get(i);
                 if (i > 0) output.append("        ");
                 output.append(item.mappingKey, "= (record['", item[fieldIdProperty], "'] ? ",
-                    "record['", item[fieldIdProperty], "'] : component ? ", 
+                
+                    
+                    "record['", item[fieldIdProperty], "'] : component && component.getStandaloneFieldValue ? ", 
                     "component.getStandaloneFieldValue(record, '",
                     item[fieldIdProperty], "', true) : 0)");
                 output.append(i == usedFields.length - 1 ? ";" : ",", "\n");
@@ -1880,7 +1882,7 @@
         for (var i = 0; i < usedFields.length; i++) {
             var item = usedFields.get(i);
             if (i > 0) output.append("        ");
-            output.append(item.mappingKey, "=(component ? component.getStandaloneFieldValue(record,'",
+            output.append(item.mappingKey, "=(component && component.getStandaloneFieldValue ? component.getStandaloneFieldValue(record,'",
                 item[fieldIdProperty], "') : record['", item[fieldIdProperty],
                 "']");
             output.append(i == usedFields.length - 1 ? ");" : "),", "\n");
--- a/sources/widgets/GridRenderer.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/GridRenderer.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5423,7 +5423,6 @@
 },
 
 _getCellHoverComponent : function (record, rowNum, colNum) {
-    return this.grid._getCellHoverComponent(record, rowNum, colNum);
 },
 
 // getHoverTarget() - returns the 'targetCanvas' passed to Hover.show() in _showHover()
@@ -5716,7 +5715,8 @@
         if (isc.EH.getX() == this._mouseDownX) {
             rowNum = this._mouseDownRow;
         } else {
-            return false;
+            // Don't return false - we don't want to suppress click from bubbling.
+            return;
         }
     }
     if (isc.EH.getY() == this._mouseDownY) {
--- a/sources/widgets/GridToolStrip.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/GridToolStrip.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/HTMLFlow.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/HTMLFlow.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/HiliteEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/HiliteEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Hover.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Hover.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Img.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Img.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/ImgButton.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ImgButton.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/ImgTab.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ImgTab.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Label.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Label.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/Layout.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/Layout.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -830,11 +830,17 @@
 // Method to force a reflow of the layout after directly assigning a value to any of the
 // layout*Margin properties. Takes no arguments.
 //
+// @param [newMargin] (int) optional new setting for layout.layoutMargin.  Regardless of whether a new
+//                          layout margin is passed, the layout reflows according to the current settings
+//                          for layoutStartMargin et al
+//
 // @group layoutMargin
 // @visibility external
 //<
 
-setLayoutMargin : function () {
+setLayoutMargin : function (newMargin) {
+
+    if (newMargin != null) this.layoutMargin = newMargin;
 
     var lhm = this.layoutHMargin,
         lvm = this.layoutVMargin,
--- a/sources/widgets/ListEditor.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ListEditor.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
--- a/sources/widgets/ListGrid.js	Wed Aug 17 12:48:12 2011 +0200
+++ b/sources/widgets/ListGrid.js	Fri Sep 09 18:00:31 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-07-19 (2011-07-19)
+ * Version SC_SNAPSHOT-2011-09-09 (2011-09-09)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -513,6 +513,13 @@
         var gridColNum = this.grid.getFieldNumFromLocal(colNum, this);
         return this.grid._cellContextClick(record, rowNum, gridColNum);
     },
+
+    _getCellHoverComponent : function (record, rowNum, colNum) {
+        if (this.grid && isc.isA.ListGrid(this.grid)) {
+            var gridColNum = this.grid.getFieldNumFromLocal(colNum, this);
+            return this.grid._getCellHoverComponent(record, rowNum, gridColNum);
+        }
+    },
     
     // this ensures that if we're not showing any records we can still scroll the header fields
     // into view.
@@ -990,8 +997,9 @@
         // refresh field widths if necessary
         if (this._fieldWidthsDirty != null) {
             
+            var fwReason = this._fieldWidthsDirty;
             delete this._fieldWidthsDirty;
-            lg._updateFieldWidths(this._fieldWidthsDirty);
+            lg._updateFieldWidths(fwReason);
         }
         // store the new drawArea
         var newDrawArea = this.getDrawArea();
@@ -9261,7 +9269,8 @@
         // find the true index of this record in a grouped grid - indexOf doesn't cater for 
         // closed groups
         var tree = this.groupTree,
-            parentNode = tree.getParent(record);
+            
+            parentNode = tree == null ? null : tree.getParent(record);
             
         // Checking for parentNode == null allows us to skip group-summary nodes which
         // shouldn't be counted anyway.
@@ -10559,7 +10568,6 @@
     }
 },
 
-
 invalidateCache : function () {
     // make sure that header checkbox is unchecked after refreshing cache
     if (this.getCheckboxFieldPosition() != -1) {
@@ -11474,7 +11482,10 @@
     }
     
     
-    if (this._markForRegroup && !this._savingEdits) {
+    if (this._markForRegroup && !this._savingEdits &&
+        // Skip attempting to regroup / reset selection if our resultSet is in mid-fetch
+        (!isc.isA.ResultSet(this.data) || this.data.lengthIsKnown())) 
+    {
         this._markForRegroup = false;
         this._lastStoredSelectedState = this.getSelectedState(true);
         this.regroup();
@@ -11534,7 +11545,10 @@
     }
  
     // restore the selected state after a grouping operation
-    if (this._lastStoredSelectedState) {
+    // Skip this if this.data is an unloaded R.S.
+    if (this._lastStoredSelectedState && 
+        (!isc.isA.ResultSet(this.data) || this.data.lengthIsKnown())) 
+    {
         this.setSelectedState(this._lastStoredSelectedState);
         delete this._lastStoredSelectedState;
     }
@@ -13449,7 +13463,8 @@
             }
         }
         
-        var availableSpace = this.getAvailableFieldWidth(),
+        
+        var availableSpace = this.getAvailableFieldWidth(true),
             totalSize = unfrozenWidths.sum();
 
         var unfrozenSpace = availableSpace;
@@ -13649,9 +13664,12 @@
                 );
 },
 
-getAvailableFieldWidth : function () {
-
-    var width = ((this.autoFitData == "both" || this.autoFitData == "horizontal") 
+getAvailableFieldWidth : function (specifiedWidth) {
+    if (specifiedWidth == null) {
+        specifiedWidth = this.autoFitData != "both" && this.autoFitData != "horizontal";
+    }
+
+    var width = (!specifiedWidth 
                     ? this.getVisibleWidth() : this.getWidth()) - this.getHMarginBorder();
 	// leave a gap for the scrollbar if vertical scrolling is on or if we're configured to
 	// always leave a gap
@@ -13900,7 +13918,7 @@
         
     }
     
-    var innerWidth = this.getAvailableFieldWidth(),
+    var innerWidth = this.getAvailableFieldWidth(true),
         innerWidthChanged = (innerWidth != this.innerWidth);
     this.innerWidth = innerWidth;
 
@@ -13917,7 +13935,17 @@
     	
         header.hPolicy = "fill";
         if (this.frozenHeader) this.frozenHeader.hPolicy = "fill";
-        var headerWidth = this.innerWidth;
+        
+        var headerWidth = this.innerWidth,
+            fieldWidths;
+        
+        // If we're auto-fitting to our fields, we may have specified or calculated field widths
+        // that exceed the specified width for the widget as a whole (availableFieldWidth)
+        // In this case, use the greater value to size the header.
+        if (this.autoFitData == "horizontal" || this.autoFitData == "both") {
+            fieldWidths = this.getFieldWidths(reason + " [sizing horizontal auto-fit header]");
+            headerWidth = Math.max(headerWidth, fieldWidths.sum());
+        }
         
         if (!this.leaveScrollbarGap && header.isDrawn() && 
             headerWidth != header.getWidth() && reason == "body scroll changed") {
@@ -13939,8 +13967,11 @@
                 // running getFieldWidths before the header is drawn
                 // to determine how much space will be required for the frozen header
                 // (see _getCalculatedFieldWidths for explanation)
-                var fieldWidths = this.getFieldWidths(reason),
-                    frozenWidths = this.getFrozenSlots(fieldWidths);
+                if (fieldWidths == null) {
+                    fieldWidths = this.getFieldWidths(reason + " [sizing frozen fields]");
+                }
+                var frozenWidths = this.getFrozenSlots(fieldWidths);
+                
                 this.frozenHeader.setWidth(frozenWidths.sum());
                 this.headerLayout.draw()
             }
@@ -14153,16 +14184,6 @@
     
     
 
-// Override resizePeersBy()
-// If we are showing a filterEditor, we want to resize it horizontally to match our size
-// Note that RecordEditors are _resizeWithMaster false, so it will not be resized in response
-// to the default implementation (appropriate since we don't want it to grow vertically)
-resizePeersBy : function (dX, dY,a,b) {
-    this.invokeSuper(isc.ListGrid, "resizePeersBy", dX,dY,a,b);
-    if (this.filterEditor !=